Lines Matching refs:ipa

16 #include "ipa.h"
102 static bool ipa_endpoint_data_valid_one(struct ipa *ipa, u32 count,
107 struct device *dev = &ipa->pdev->dev;
183 static bool ipa_endpoint_data_valid(struct ipa *ipa, u32 count,
187 struct device *dev = &ipa->pdev->dev;
217 if (!ipa_endpoint_data_valid_one(ipa, count, data, dp))
225 static bool ipa_endpoint_data_valid(struct ipa *ipa, u32 count,
237 struct gsi *gsi = &endpoint->ipa->gsi;
253 struct ipa *ipa = endpoint->ipa;
262 * assert(ipa->version != IPA_VERSION_4.2);
264 * assert(ipa->version == IPA_VERSION_3_5_1);
268 val = ioread32(ipa->reg_virt + offset);
273 iowrite32(val, ipa->reg_virt + offset);
286 if (endpoint->ipa->version != IPA_VERSION_4_2)
293 struct ipa *ipa = endpoint->ipa;
297 /* assert(mask & ipa->available); */
298 offset = ipa_reg_state_aggr_active_offset(ipa->version);
299 val = ioread32(ipa->reg_virt + offset);
307 struct ipa *ipa = endpoint->ipa;
309 /* assert(mask & ipa->available); */
310 iowrite32(mask, ipa->reg_virt + IPA_REG_AGGR_FORCE_CLOSE_OFFSET);
324 struct ipa *ipa = endpoint->ipa;
336 ipa_interrupt_simulate_suspend(ipa->interrupt);
345 if (endpoint->ipa->version != IPA_VERSION_3_5_1)
363 void ipa_endpoint_modem_pause_all(struct ipa *ipa, bool enable)
368 if (ipa->version == IPA_VERSION_4_2)
372 struct ipa_endpoint *endpoint = &ipa->endpoint[endpoint_id];
386 int ipa_endpoint_modem_exception_reset_all(struct ipa *ipa)
388 u32 initialized = ipa->initialized;
398 trans = ipa_cmd_trans_alloc(ipa, count);
400 dev_err(&ipa->pdev->dev,
413 endpoint = &ipa->endpoint[endpoint_id];
461 iowrite32(val, endpoint->ipa->reg_virt + offset);
520 iowrite32(val, endpoint->ipa->reg_virt + offset);
548 iowrite32(val, endpoint->ipa->reg_virt + offset);
567 iowrite32(val, endpoint->ipa->reg_virt + offset);
582 dma_endpoint_id = endpoint->ipa->name_map[name]->endpoint_id;
591 iowrite32(val, endpoint->ipa->reg_virt + offset);
644 iowrite32(val, endpoint->ipa->reg_virt + offset);
652 static u32 ipa_reg_init_hol_block_timer_val(struct ipa *ipa, u32 microseconds)
665 rate = ipa_clock_rate(ipa);
671 if (ipa->version == IPA_VERSION_3_5_1)
704 struct ipa *ipa = endpoint->ipa;
710 val = ipa_reg_init_hol_block_timer_val(ipa, microseconds);
711 iowrite32(val, ipa->reg_virt + offset);
723 iowrite32(val, endpoint->ipa->reg_virt + offset);
726 void ipa_endpoint_modem_hol_block_clear_all(struct ipa *ipa)
731 struct ipa_endpoint *endpoint = &ipa->endpoint[i];
755 iowrite32(val, endpoint->ipa->reg_virt + offset);
774 iowrite32(val, endpoint->ipa->reg_virt + offset);
823 struct ipa *ipa = endpoint->ipa;
836 status_endpoint_id = ipa->name_map[name]->endpoint_id;
846 iowrite32(val, ipa->reg_virt + offset);
942 gsi = &endpoint->ipa->gsi;
950 struct gsi *gsi = &endpoint->ipa->gsi;
1086 dev_err(&endpoint->ipa->pdev->dev,
1169 struct ipa *ipa = endpoint->ipa;
1172 if (endpoint != ipa->name_map[IPA_ENDPOINT_AP_COMMAND_TX]) {
1186 void ipa_endpoint_default_route_set(struct ipa *ipa, u32 endpoint_id)
1197 iowrite32(val, ipa->reg_virt + IPA_REG_ROUTE_OFFSET);
1200 void ipa_endpoint_default_route_clear(struct ipa *ipa)
1202 ipa_endpoint_default_route_set(ipa, 0);
1217 struct device *dev = &endpoint->ipa->pdev->dev;
1218 struct ipa *ipa = endpoint->ipa;
1219 struct gsi *gsi = &ipa->gsi;
1284 legacy = ipa->version == IPA_VERSION_3_5_1;
1306 struct ipa *ipa = endpoint->ipa;
1317 legacy = ipa->version == IPA_VERSION_3_5_1;
1322 gsi_channel_reset(&ipa->gsi, channel_id, legacy);
1325 dev_err(&ipa->pdev->dev,
1349 struct ipa *ipa = endpoint->ipa;
1350 struct gsi *gsi = &ipa->gsi;
1355 dev_err(&ipa->pdev->dev,
1363 ipa_interrupt_suspend_enable(ipa->interrupt,
1368 ipa->enabled |= BIT(endpoint->endpoint_id);
1376 struct ipa *ipa = endpoint->ipa;
1377 struct gsi *gsi = &ipa->gsi;
1380 if (!(ipa->enabled & mask))
1383 ipa->enabled ^= mask;
1387 ipa_interrupt_suspend_disable(ipa->interrupt,
1394 dev_err(&ipa->pdev->dev,
1401 struct device *dev = &endpoint->ipa->pdev->dev;
1402 struct gsi *gsi = &endpoint->ipa->gsi;
1406 if (!(endpoint->ipa->enabled & BIT(endpoint->endpoint_id)))
1415 stop_channel = endpoint->ipa->version != IPA_VERSION_3_5_1;
1424 struct device *dev = &endpoint->ipa->pdev->dev;
1425 struct gsi *gsi = &endpoint->ipa->gsi;
1429 if (!(endpoint->ipa->enabled & BIT(endpoint->endpoint_id)))
1436 start_channel = endpoint->ipa->version != IPA_VERSION_3_5_1;
1445 void ipa_endpoint_suspend(struct ipa *ipa)
1447 if (!ipa->setup_complete)
1450 if (ipa->modem_netdev)
1451 ipa_modem_suspend(ipa->modem_netdev);
1453 ipa_cmd_tag_process(ipa);
1455 ipa_endpoint_suspend_one(ipa->name_map[IPA_ENDPOINT_AP_LAN_RX]);
1456 ipa_endpoint_suspend_one(ipa->name_map[IPA_ENDPOINT_AP_COMMAND_TX]);
1459 void ipa_endpoint_resume(struct ipa *ipa)
1461 if (!ipa->setup_complete)
1464 ipa_endpoint_resume_one(ipa->name_map[IPA_ENDPOINT_AP_COMMAND_TX]);
1465 ipa_endpoint_resume_one(ipa->name_map[IPA_ENDPOINT_AP_LAN_RX]);
1467 if (ipa->modem_netdev)
1468 ipa_modem_resume(ipa->modem_netdev);
1473 struct gsi *gsi = &endpoint->ipa->gsi;
1496 endpoint->ipa->set_up |= BIT(endpoint->endpoint_id);
1501 endpoint->ipa->set_up &= ~BIT(endpoint->endpoint_id);
1509 void ipa_endpoint_setup(struct ipa *ipa)
1511 u32 initialized = ipa->initialized;
1513 ipa->set_up = 0;
1519 ipa_endpoint_setup_one(&ipa->endpoint[endpoint_id]);
1523 void ipa_endpoint_teardown(struct ipa *ipa)
1525 u32 set_up = ipa->set_up;
1532 ipa_endpoint_teardown_one(&ipa->endpoint[endpoint_id]);
1534 ipa->set_up = 0;
1537 int ipa_endpoint_config(struct ipa *ipa)
1539 struct device *dev = &ipa->pdev->dev;
1551 val = ioread32(ipa->reg_virt + IPA_REG_FLAVOR_0_OFFSET);
1567 ipa->available = rx_mask | tx_mask;
1570 if (ipa->initialized & ~ipa->available) {
1572 ipa->initialized & ~ipa->available);
1576 initialized = ipa->initialized;
1584 endpoint = &ipa->endpoint[endpoint_id];
1595 void ipa_endpoint_deconfig(struct ipa *ipa)
1597 ipa->available = 0; /* Nothing more to do */
1600 static void ipa_endpoint_init_one(struct ipa *ipa, enum ipa_endpoint_name name,
1605 endpoint = &ipa->endpoint[data->endpoint_id];
1608 ipa->channel_map[data->channel_id] = endpoint;
1609 ipa->name_map[name] = endpoint;
1611 endpoint->ipa = ipa;
1619 ipa->initialized |= BIT(endpoint->endpoint_id);
1624 endpoint->ipa->initialized &= ~BIT(endpoint->endpoint_id);
1629 void ipa_endpoint_exit(struct ipa *ipa)
1631 u32 initialized = ipa->initialized;
1638 ipa_endpoint_exit_one(&ipa->endpoint[endpoint_id]);
1640 memset(ipa->name_map, 0, sizeof(ipa->name_map));
1641 memset(ipa->channel_map, 0, sizeof(ipa->channel_map));
1645 u32 ipa_endpoint_init(struct ipa *ipa, u32 count,
1651 if (!ipa_endpoint_data_valid(ipa, count, data))
1654 ipa->initialized = 0;
1661 ipa_endpoint_init_one(ipa, name, data);
1667 if (!ipa_filter_map_valid(ipa, filter_map))
1673 ipa_endpoint_exit(ipa);