pci.c (f6fa37a4928ffc4722e4570462bf461634e0d60c) pci.c (d578ec2a0d5cd2859ff6a1347f4429d6c7f730a3)
1// SPDX-License-Identifier: BSD-3-Clause-Clear
2/*
3 * Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
4 */
5
6#include <linux/module.h>
7#include <linux/msi.h>
8#include <linux/pci.h>

--- 932 unchanged lines hidden (view full) ---

941
942 if (ath11k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR)
943 continue;
944
945 tasklet_kill(&ce_pipe->intr_tq);
946 }
947}
948
1// SPDX-License-Identifier: BSD-3-Clause-Clear
2/*
3 * Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
4 */
5
6#include <linux/module.h>
7#include <linux/msi.h>
8#include <linux/pci.h>

--- 932 unchanged lines hidden (view full) ---

941
942 if (ath11k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR)
943 continue;
944
945 tasklet_kill(&ce_pipe->intr_tq);
946 }
947}
948
949static void ath11k_pci_stop(struct ath11k_base *ab)
949static void ath11k_pci_ce_irq_disable_sync(struct ath11k_base *ab)
950{
951 ath11k_pci_ce_irqs_disable(ab);
952 ath11k_pci_sync_ce_irqs(ab);
953 ath11k_pci_kill_tasklets(ab);
950{
951 ath11k_pci_ce_irqs_disable(ab);
952 ath11k_pci_sync_ce_irqs(ab);
953 ath11k_pci_kill_tasklets(ab);
954}
955
956static void ath11k_pci_stop(struct ath11k_base *ab)
957{
958 ath11k_pci_ce_irq_disable_sync(ab);
954 ath11k_ce_cleanup_pipes(ab);
955}
956
957static int ath11k_pci_start(struct ath11k_base *ab)
958{
959 struct ath11k_pci *ab_pci = ath11k_pci_priv(ab);
960
961 set_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags);
962
963 ath11k_pci_ce_irqs_enable(ab);
964 ath11k_ce_rx_post_buf(ab);
965
966 return 0;
967}
968
959 ath11k_ce_cleanup_pipes(ab);
960}
961
962static int ath11k_pci_start(struct ath11k_base *ab)
963{
964 struct ath11k_pci *ab_pci = ath11k_pci_priv(ab);
965
966 set_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags);
967
968 ath11k_pci_ce_irqs_enable(ab);
969 ath11k_ce_rx_post_buf(ab);
970
971 return 0;
972}
973
974static void ath11k_pci_hif_ce_irq_enable(struct ath11k_base *ab)
975{
976 ath11k_pci_ce_irqs_enable(ab);
977}
978
979static void ath11k_pci_hif_ce_irq_disable(struct ath11k_base *ab)
980{
981 ath11k_pci_ce_irq_disable_sync(ab);
982}
983
969static int ath11k_pci_map_service_to_pipe(struct ath11k_base *ab, u16 service_id,
970 u8 *ul_pipe, u8 *dl_pipe)
971{
972 const struct service_to_pipe *entry;
973 bool ul_set = false, dl_set = false;
974 int i;
975
976 for (i = 0; i < ab->hw_params.svc_to_ce_map_len; i++) {

--- 41 unchanged lines hidden (view full) ---

1018 .power_up = ath11k_pci_power_up,
1019 .suspend = ath11k_pci_hif_suspend,
1020 .resume = ath11k_pci_hif_resume,
1021 .irq_enable = ath11k_pci_ext_irq_enable,
1022 .irq_disable = ath11k_pci_ext_irq_disable,
1023 .get_msi_address = ath11k_pci_get_msi_address,
1024 .get_user_msi_vector = ath11k_get_user_msi_assignment,
1025 .map_service_to_pipe = ath11k_pci_map_service_to_pipe,
984static int ath11k_pci_map_service_to_pipe(struct ath11k_base *ab, u16 service_id,
985 u8 *ul_pipe, u8 *dl_pipe)
986{
987 const struct service_to_pipe *entry;
988 bool ul_set = false, dl_set = false;
989 int i;
990
991 for (i = 0; i < ab->hw_params.svc_to_ce_map_len; i++) {

--- 41 unchanged lines hidden (view full) ---

1033 .power_up = ath11k_pci_power_up,
1034 .suspend = ath11k_pci_hif_suspend,
1035 .resume = ath11k_pci_hif_resume,
1036 .irq_enable = ath11k_pci_ext_irq_enable,
1037 .irq_disable = ath11k_pci_ext_irq_disable,
1038 .get_msi_address = ath11k_pci_get_msi_address,
1039 .get_user_msi_vector = ath11k_get_user_msi_assignment,
1040 .map_service_to_pipe = ath11k_pci_map_service_to_pipe,
1041 .ce_irq_enable = ath11k_pci_hif_ce_irq_enable,
1042 .ce_irq_disable = ath11k_pci_hif_ce_irq_disable,
1026};
1027
1028static int ath11k_pci_probe(struct pci_dev *pdev,
1029 const struct pci_device_id *pci_dev)
1030{
1031 struct ath11k_base *ab;
1032 struct ath11k_pci *ab_pci;
1033 u32 soc_hw_version, soc_hw_version_major, soc_hw_version_minor;

--- 191 unchanged lines hidden ---
1043};
1044
1045static int ath11k_pci_probe(struct pci_dev *pdev,
1046 const struct pci_device_id *pci_dev)
1047{
1048 struct ath11k_base *ab;
1049 struct ath11k_pci *ab_pci;
1050 u32 soc_hw_version, soc_hw_version_major, soc_hw_version_minor;

--- 191 unchanged lines hidden ---