Lines Matching refs:pci_priv

42 int cnss_pci_assert_perst(struct cnss_pci_data *pci_priv)  in cnss_pci_assert_perst()  argument
44 struct pci_dev *pci_dev = pci_priv->pci_dev; in cnss_pci_assert_perst()
51 int cnss_pci_disable_pc(struct cnss_pci_data *pci_priv, bool vote) in cnss_pci_disable_pc() argument
53 struct pci_dev *pci_dev = pci_priv->pci_dev; in cnss_pci_disable_pc()
61 int cnss_pci_set_link_bandwidth(struct cnss_pci_data *pci_priv, in cnss_pci_set_link_bandwidth() argument
64 return msm_pcie_set_link_bandwidth(pci_priv->pci_dev, in cnss_pci_set_link_bandwidth()
68 int cnss_pci_set_max_link_speed(struct cnss_pci_data *pci_priv, in cnss_pci_set_max_link_speed() argument
85 static int _cnss_pci_prevent_l1(struct cnss_pci_data *pci_priv) in _cnss_pci_prevent_l1() argument
87 return msm_pcie_prevent_l1(pci_priv->pci_dev); in _cnss_pci_prevent_l1()
100 static void _cnss_pci_allow_l1(struct cnss_pci_data *pci_priv) in _cnss_pci_allow_l1() argument
102 msm_pcie_allow_l1(pci_priv->pci_dev); in _cnss_pci_allow_l1()
114 static int cnss_pci_set_link_up(struct cnss_pci_data *pci_priv) in cnss_pci_set_link_up() argument
116 struct pci_dev *pci_dev = pci_priv->pci_dev; in cnss_pci_set_link_up()
139 static int cnss_pci_set_link_down(struct cnss_pci_data *pci_priv) in cnss_pci_set_link_down() argument
141 struct pci_dev *pci_dev = pci_priv->pci_dev; in cnss_pci_set_link_down()
146 if (pci_priv->drv_connected_last) { in cnss_pci_set_link_down()
162 void cnss_pci_update_drv_supported(struct cnss_pci_data *pci_priv) in cnss_pci_update_drv_supported() argument
164 struct pci_dev *root_port = pcie_find_root_port(pci_priv->pci_dev); in cnss_pci_update_drv_supported()
165 struct cnss_plat_data *plat_priv = pci_priv->plat_priv; in cnss_pci_update_drv_supported()
171 pci_priv->drv_supported = false; in cnss_pci_update_drv_supported()
186 pci_priv->drv_supported = drv_supported; in cnss_pci_update_drv_supported()
197 struct cnss_pci_data *pci_priv; in cnss_pci_event_cb() local
209 pci_priv = cnss_get_pci_priv(pci_dev); in cnss_pci_event_cb()
210 if (!pci_priv) in cnss_pci_event_cb()
212 dev = &pci_priv->pci_dev->dev; in cnss_pci_event_cb()
218 plat_priv = pci_priv->plat_priv; in cnss_pci_event_cb()
230 cnss_pci_handle_linkdown(pci_priv); in cnss_pci_event_cb()
234 cnss_pci_handle_linkdown(pci_priv); in cnss_pci_event_cb()
238 if ((cnss_pci_get_monitor_wake_intr(pci_priv) && in cnss_pci_event_cb()
239 cnss_pci_get_auto_suspended(pci_priv)) || in cnss_pci_event_cb()
241 cnss_pci_set_monitor_wake_intr(pci_priv, false); in cnss_pci_event_cb()
242 cnss_pci_pm_request_resume(pci_priv); in cnss_pci_event_cb()
244 complete(&pci_priv->wake_event_complete); in cnss_pci_event_cb()
248 cnss_pci_set_drv_connected(pci_priv, 1); in cnss_pci_event_cb()
252 if (cnss_pci_get_auto_suspended(pci_priv)) in cnss_pci_event_cb()
253 cnss_pci_pm_request_resume(pci_priv); in cnss_pci_event_cb()
254 cnss_pci_set_drv_connected(pci_priv, 0); in cnss_pci_event_cb()
261 int cnss_reg_pci_event(struct cnss_pci_data *pci_priv) in cnss_reg_pci_event() argument
266 pci_event = &pci_priv->msm_pci_event; in cnss_reg_pci_event()
271 if (cnss_pci_get_drv_supported(pci_priv)) in cnss_reg_pci_event()
276 pci_event->user = pci_priv->pci_dev; in cnss_reg_pci_event()
289 void cnss_dereg_pci_event(struct cnss_pci_data *pci_priv) in cnss_dereg_pci_event() argument
291 msm_pcie_deregister_event(&pci_priv->msm_pci_event); in cnss_dereg_pci_event()
294 int cnss_wlan_adsp_pc_enable(struct cnss_pci_data *pci_priv, in cnss_wlan_adsp_pc_enable() argument
297 struct pci_dev *pci_dev = pci_priv->pci_dev; in cnss_wlan_adsp_pc_enable()
300 struct cnss_plat_data *plat_priv = pci_priv->plat_priv; in cnss_wlan_adsp_pc_enable()
302 if (!cnss_pci_get_drv_supported(pci_priv)) in cnss_wlan_adsp_pc_enable()
326 static int cnss_set_pci_link_status(struct cnss_pci_data *pci_priv, in cnss_set_pci_link_status() argument
329 u16 link_speed, link_width = pci_priv->def_link_width; in cnss_set_pci_link_status()
347 link_speed = pci_priv->def_link_speed; in cnss_set_pci_link_status()
358 ret = cnss_pci_set_link_bandwidth(pci_priv, link_speed, link_width); in cnss_set_pci_link_status()
360 pci_priv->cur_link_speed = link_speed; in cnss_set_pci_link_status()
365 int cnss_set_pci_link(struct cnss_pci_data *pci_priv, bool link_up) in cnss_set_pci_link() argument
371 plat_priv = pci_priv->plat_priv; in cnss_set_pci_link()
378 ret = cnss_pci_set_link_up(pci_priv); in cnss_set_pci_link()
383 if (pci_priv->pci_link_down_ind) in cnss_set_pci_link()
391 if (pci_priv->drv_connected_last && in cnss_set_pci_link()
392 pci_priv->cur_link_speed > PCI_EXP_LNKSTA_CLS_5_0GB) in cnss_set_pci_link()
393 cnss_set_pci_link_status(pci_priv, PCI_GEN2); in cnss_set_pci_link()
395 ret = cnss_pci_set_link_down(pci_priv); in cnss_set_pci_link()
398 if (pci_priv->drv_connected_last) { in cnss_set_pci_link()
400 cnss_set_pci_link_status(pci_priv, PCI_DEF); in cnss_set_pci_link()
409 struct cnss_pci_data *pci_priv = cnss_get_pci_priv(pci_dev); in cnss_pci_prevent_l1() local
412 if (!pci_priv) { in cnss_pci_prevent_l1()
417 if (pci_priv->pci_link_state == PCI_LINK_DOWN) { in cnss_pci_prevent_l1()
422 if (pci_priv->pci_link_down_ind) { in cnss_pci_prevent_l1()
427 ret = _cnss_pci_prevent_l1(pci_priv); in cnss_pci_prevent_l1()
440 struct cnss_pci_data *pci_priv = cnss_get_pci_priv(pci_dev); in cnss_pci_allow_l1() local
442 if (!pci_priv) { in cnss_pci_allow_l1()
447 if (pci_priv->pci_link_state == PCI_LINK_DOWN) { in cnss_pci_allow_l1()
452 if (pci_priv->pci_link_down_ind) { in cnss_pci_allow_l1()
457 _cnss_pci_allow_l1(pci_priv); in cnss_pci_allow_l1()
461 int cnss_pci_get_msi_assignment(struct cnss_pci_data *pci_priv) in cnss_pci_get_msi_assignment() argument
463 pci_priv->msi_config = &msi_config; in cnss_pci_get_msi_assignment()
469 int cnss_pci_get_one_msi_assignment(struct cnss_pci_data *pci_priv) in cnss_pci_get_one_msi_assignment() argument
471 pci_priv->msi_config = &msi_config_one_msi; in cnss_pci_get_one_msi_assignment()
476 bool cnss_pci_fallback_one_msi(struct cnss_pci_data *pci_priv, in cnss_pci_fallback_one_msi() argument
479 struct pci_dev *pci_dev = pci_priv->pci_dev; in cnss_pci_fallback_one_msi()
482 cnss_pci_get_one_msi_assignment(pci_priv); in cnss_pci_fallback_one_msi()
483 msi_config = pci_priv->msi_config; in cnss_pci_fallback_one_msi()
501 bool cnss_pci_is_one_msi(struct cnss_pci_data *pci_priv) in cnss_pci_is_one_msi() argument
503 return pci_priv && pci_priv->msi_config && in cnss_pci_is_one_msi()
504 (pci_priv->msi_config->total_vectors == 1); in cnss_pci_is_one_msi()
507 int cnss_pci_get_one_msi_mhi_irq_array_size(struct cnss_pci_data *pci_priv) in cnss_pci_get_one_msi_mhi_irq_array_size() argument
512 bool cnss_pci_is_force_one_msi(struct cnss_pci_data *pci_priv) in cnss_pci_is_force_one_msi() argument
514 struct cnss_plat_data *plat_priv = pci_priv->plat_priv; in cnss_pci_is_force_one_msi()
519 int cnss_pci_get_one_msi_assignment(struct cnss_pci_data *pci_priv) in cnss_pci_get_one_msi_assignment() argument
524 bool cnss_pci_fallback_one_msi(struct cnss_pci_data *pci_priv, in cnss_pci_fallback_one_msi() argument
530 bool cnss_pci_is_one_msi(struct cnss_pci_data *pci_priv) in cnss_pci_is_one_msi() argument
535 int cnss_pci_get_one_msi_mhi_irq_array_size(struct cnss_pci_data *pci_priv) in cnss_pci_get_one_msi_mhi_irq_array_size() argument
540 bool cnss_pci_is_force_one_msi(struct cnss_pci_data *pci_priv) in cnss_pci_is_force_one_msi() argument
550 struct cnss_pci_data *pci_priv = handler_token; in cnss_pci_smmu_fault_handler() local
554 if (!pci_priv) { in cnss_pci_smmu_fault_handler()
559 pci_priv->is_smmu_fault = true; in cnss_pci_smmu_fault_handler()
560 cnss_pci_update_status(pci_priv, CNSS_FW_DOWN); in cnss_pci_smmu_fault_handler()
561 cnss_force_fw_assert(&pci_priv->pci_dev->dev); in cnss_pci_smmu_fault_handler()
567 int cnss_pci_init_smmu(struct cnss_pci_data *pci_priv) in cnss_pci_init_smmu() argument
569 struct pci_dev *pci_dev = pci_priv->pci_dev; in cnss_pci_init_smmu()
570 struct cnss_plat_data *plat_priv = pci_priv->plat_priv; in cnss_pci_init_smmu()
583 pci_priv->iommu_domain = iommu_get_domain_for_dev(&pci_dev->dev); in cnss_pci_init_smmu()
588 pci_priv->smmu_s1_enable = true; in cnss_pci_init_smmu()
589 iommu_set_fault_handler(pci_priv->iommu_domain, in cnss_pci_init_smmu()
590 cnss_pci_smmu_fault_handler, pci_priv); in cnss_pci_init_smmu()
591 cnss_register_iommu_fault_handler_irq(pci_priv); in cnss_pci_init_smmu()
602 pci_priv->smmu_iova_start = addr_win[0]; in cnss_pci_init_smmu()
603 pci_priv->smmu_iova_len = addr_win[1]; in cnss_pci_init_smmu()
605 &pci_priv->smmu_iova_start, in cnss_pci_init_smmu()
606 pci_priv->smmu_iova_len); in cnss_pci_init_smmu()
611 pci_priv->smmu_iova_ipa_start = res->start; in cnss_pci_init_smmu()
612 pci_priv->smmu_iova_ipa_current = res->start; in cnss_pci_init_smmu()
613 pci_priv->smmu_iova_ipa_len = resource_size(res); in cnss_pci_init_smmu()
615 &pci_priv->smmu_iova_ipa_start, in cnss_pci_init_smmu()
616 pci_priv->smmu_iova_ipa_len); in cnss_pci_init_smmu()
619 pci_priv->iommu_geometry = of_property_read_bool(of_node, in cnss_pci_init_smmu()
621 cnss_pr_dbg("iommu_geometry: %d\n", pci_priv->iommu_geometry); in cnss_pci_init_smmu()
628 int _cnss_pci_get_reg_dump(struct cnss_pci_data *pci_priv, in _cnss_pci_get_reg_dump() argument
631 return msm_pcie_reg_dump(pci_priv->pci_dev, buf, len); in _cnss_pci_get_reg_dump()
647 int cnss_pci_of_reserved_mem_device_init(struct cnss_pci_data *pci_priv) in cnss_pci_of_reserved_mem_device_init() argument
649 struct device *dev_pci = &pci_priv->pci_dev->dev; in cnss_pci_of_reserved_mem_device_init()
670 int cnss_pci_wake_gpio_init(struct cnss_pci_data *pci_priv) in cnss_pci_wake_gpio_init() argument
675 void cnss_pci_wake_gpio_deinit(struct cnss_pci_data *pci_priv) in cnss_pci_wake_gpio_deinit() argument