Hi Fugang,
First bad commit (maybe != root cause):
tree:
https://github.com/Freescale/linux-fslc 5.4-2.3.x-imx
head: a8a2b9ee4bec0b29d031324160b7f11af42a563a
commit: f186a4e65f54a28973c743f8c007b18c1ce95be6 [14893/16543] MLK-24962 net: wireless:
nxp: mxm_wifiex: upgrade to mxm5x16203 release
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
#
https://github.com/Freescale/linux-fslc/commit/f186a4e65f54a28973c743f8c0...
git remote add freescale-fslc
https://github.com/Freescale/linux-fslc
git fetch --no-tags freescale-fslc 5.4-2.3.x-imx
git checkout f186a4e65f54a28973c743f8c007b18c1ce95be6
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=sh
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
In file included from
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c:31:
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.h:133:20: error: array
type has incomplete element type 'struct msix_entry'
133 | struct msix_entry msix_entries[PCIE_NUM_MSIX_VECTORS];
| ^~~~~~~~~~~~
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c:394:5: warning: no
previous prototype for 'woal_pcie_probe' [-Wmissing-prototypes]
394 | int woal_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *id)
| ^~~~~~~~~~~~~~~
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c: In function
'woal_pcie_probe':
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c:441:6: error: implicit
declaration of function 'pci_is_enabled'; did you mean 'pci_acs_enabled'?
[-Werror=implicit-function-declaration]
441 | if (pci_is_enabled(pdev))
| ^~~~~~~~~~~~~~
| pci_acs_enabled
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c: At top level:
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c:896:13: warning: no
previous prototype for 'woal_pcie_write_data_sync' [-Wmissing-prototypes]
896 | mlan_status woal_pcie_write_data_sync(moal_handle *handle, mlan_buffer *pmbuf,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c:912:13: warning: no
previous prototype for 'woal_pcie_read_data_sync' [-Wmissing-prototypes]
912 | mlan_status woal_pcie_read_data_sync(moal_handle *handle, mlan_buffer *pmbuf,
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c: In function
'woal_pcie_init':
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c:1089:8: error: implicit
declaration of function 'pci_request_region'; did you mean
'pci_request_regions'? [-Werror=implicit-function-declaration]
1089 | ret = pci_request_region(pdev, 0, DRV_NAME);
| ^~~~~~~~~~~~~~~~~~
| pci_request_regions
>
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c:1094:19: error: implicit
declaration of function 'pci_iomap'; did you mean 'pcim_iomap'?
[-Werror=implicit-function-declaration]
1094 | card->pci_mmap =
pci_iomap(pdev, 0, 0);
| ^~~~~~~~~
| pcim_iomap
>
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c:1094:17: warning:
assignment to 'void *' from 'int' makes pointer from integer without a
cast [-Wint-conversion]
1094 | card->pci_mmap = pci_iomap(pdev, 0, 0);
| ^
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c:1104:18: warning:
assignment to 'void *' from 'int' makes pointer from integer without a
cast [-Wint-conversion]
1104 | card->pci_mmap1 = pci_iomap(pdev, 2, 0);
| ^
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c:1118:2: error: implicit
declaration of function 'pci_release_region'; did you mean
'pci_release_regions'? [-Werror=implicit-function-declaration]
1118 | pci_release_region(pdev, 2);
| ^~~~~~~~~~~~~~~~~~
| pci_release_regions
>
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c:1120:2: error: implicit
declaration of function 'pci_iounmap'; did you mean 'pcim_iounmap'?
[-Werror=implicit-function-declaration]
1120 | pci_iounmap(pdev,
card->pci_mmap);
| ^~~~~~~~~~~
| pcim_iounmap
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c: In function
'woal_pcie_register_dev':
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c:1174:9: error: implicit
declaration of function 'pci_enable_msix_exact'
[-Werror=implicit-function-declaration]
1174 | ret = pci_enable_msix_exact(pdev, card->msix_entries, nvec);
| ^~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c:1197:6: error: implicit
declaration of function 'pci_disable_msix'; did you mean
'pci_disable_sriov'? [-Werror=implicit-function-declaration]
1197 | pci_disable_msix(pdev);
| ^~~~~~~~~~~~~~~~
| pci_disable_sriov
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c:1209:9: error: implicit
declaration of function 'pci_enable_msi'; did you mean 'pci_enable_ats'?
[-Werror=implicit-function-declaration]
1209 | ret = pci_enable_msi(pdev);
| ^~~~~~~~~~~~~~
| pci_enable_ats
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c:1216:5: error: implicit
declaration of function 'pci_disable_msi'; did you mean 'pci_disable_ats'?
[-Werror=implicit-function-declaration]
1216 | pci_disable_msi(pdev);
| ^~~~~~~~~~~~~~~
| pci_disable_ats
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c: At top level:
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c:1418:5: warning: no
previous prototype for 'woal_pcie_dump_reg_info' [-Wmissing-prototypes]
1418 | int woal_pcie_dump_reg_info(moal_handle *phandle, t_u8 *buffer)
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c:1752:13: warning: no
previous prototype for 'woal_read_reg_eight_bit' [-Wmissing-prototypes]
1752 | mlan_status woal_read_reg_eight_bit(moal_handle *handle, t_u32 reg, t_u8
*data)
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c:1767:13: warning: no
previous prototype for 'woal_pcie_rdwr_firmware' [-Wmissing-prototypes]
1767 | rdwr_status woal_pcie_rdwr_firmware(moal_handle *phandle, t_u8 doneflag)
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c:2013:6: warning: no
previous prototype for 'woal_pcie_dump_fw_info_v2' [-Wmissing-prototypes]
2013 | void woal_pcie_dump_fw_info_v2(moal_handle *phandle)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c:2192:6: warning: no
previous prototype for 'woal_pcie_dump_fw_info' [-Wmissing-prototypes]
2192 | void woal_pcie_dump_fw_info(moal_handle *phandle)
| ^~~~~~~~~~~~~~~~~~~~~~
In file included from
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_main.h:130,
from
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.h:62,
from
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c:31:
drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_priv.h:282:34: warning:
'woal_private_args' defined but not used [-Wunused-const-variable=]
282 | static const struct iw_priv_args woal_private_args[] = {
| ^~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +1094 drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlinux/moal_pcie.c
688b67b2c7220b01 Fugang Duan 2020-04-19 901
688b67b2c7220b01 Fugang Duan 2020-04-19 902 /**
688b67b2c7220b01 Fugang Duan 2020-04-19 903 * @brief This function reads multiple
bytes from card memory
688b67b2c7220b01 Fugang Duan 2020-04-19 904 *
688b67b2c7220b01 Fugang Duan 2020-04-19 905 * @param handle A Pointer to the
moal_handle structure
688b67b2c7220b01 Fugang Duan 2020-04-19 906 * @param pmbuf Pointer to mlan_buffer
structure
688b67b2c7220b01 Fugang Duan 2020-04-19 907 * @param port Port
688b67b2c7220b01 Fugang Duan 2020-04-19 908 * @param timeout Time out value
688b67b2c7220b01 Fugang Duan 2020-04-19 909 *
688b67b2c7220b01 Fugang Duan 2020-04-19 910 * @return MLAN_STATUS_SUCCESS or
MLAN_STATUS_FAILURE
688b67b2c7220b01 Fugang Duan 2020-04-19 911 */
6b4a83a75fc1dccc Fugang Duan 2020-05-28 @912 mlan_status
woal_pcie_read_data_sync(moal_handle *handle, mlan_buffer *pmbuf,
6b4a83a75fc1dccc Fugang Duan 2020-05-28 913 t_u32 port, t_u32 timeout)
688b67b2c7220b01 Fugang Duan 2020-04-19 914 {
688b67b2c7220b01 Fugang Duan 2020-04-19 915 return MLAN_STATUS_SUCCESS;
688b67b2c7220b01 Fugang Duan 2020-04-19 916 }
688b67b2c7220b01 Fugang Duan 2020-04-19 917
688b67b2c7220b01 Fugang Duan 2020-04-19 918 /**
688b67b2c7220b01 Fugang Duan 2020-04-19 919 * @brief This function handles the
interrupt.
688b67b2c7220b01 Fugang Duan 2020-04-19 920 *
688b67b2c7220b01 Fugang Duan 2020-04-19 921 * @param irq The irq no. of PCIE
device
688b67b2c7220b01 Fugang Duan 2020-04-19 922 * @param dev_id A pointer to the
pci_dev structure
688b67b2c7220b01 Fugang Duan 2020-04-19 923 *
688b67b2c7220b01 Fugang Duan 2020-04-19 924 * @return IRQ_HANDLED
688b67b2c7220b01 Fugang Duan 2020-04-19 925 */
6b4a83a75fc1dccc Fugang Duan 2020-05-28 926 static irqreturn_t woal_pcie_interrupt(int
irq, void *dev_id)
688b67b2c7220b01 Fugang Duan 2020-04-19 927 {
688b67b2c7220b01 Fugang Duan 2020-04-19 928 struct pci_dev *pdev;
688b67b2c7220b01 Fugang Duan 2020-04-19 929 pcie_service_card *card;
688b67b2c7220b01 Fugang Duan 2020-04-19 930 moal_handle *handle;
688b67b2c7220b01 Fugang Duan 2020-04-19 931 mlan_status ret = MLAN_STATUS_SUCCESS;
688b67b2c7220b01 Fugang Duan 2020-04-19 932
688b67b2c7220b01 Fugang Duan 2020-04-19 933 pdev = (struct pci_dev *)dev_id;
688b67b2c7220b01 Fugang Duan 2020-04-19 934 if (!pdev) {
688b67b2c7220b01 Fugang Duan 2020-04-19 935 PRINTM(MFATAL, "%s: pdev is
NULL\n", (t_u8 *)pdev);
688b67b2c7220b01 Fugang Duan 2020-04-19 936 goto exit;
688b67b2c7220b01 Fugang Duan 2020-04-19 937 }
688b67b2c7220b01 Fugang Duan 2020-04-19 938
688b67b2c7220b01 Fugang Duan 2020-04-19 939 card = (pcie_service_card
*)pci_get_drvdata(pdev);
688b67b2c7220b01 Fugang Duan 2020-04-19 940 if (!card || !card->handle) {
688b67b2c7220b01 Fugang Duan 2020-04-19 941 PRINTM(MFATAL, "%s: card=%p
handle=%p\n", __func__, card,
688b67b2c7220b01 Fugang Duan 2020-04-19 942 card ? card->handle : NULL);
688b67b2c7220b01 Fugang Duan 2020-04-19 943 goto exit;
688b67b2c7220b01 Fugang Duan 2020-04-19 944 }
688b67b2c7220b01 Fugang Duan 2020-04-19 945 handle = card->handle;
688b67b2c7220b01 Fugang Duan 2020-04-19 946 if (handle->surprise_removed == MTRUE)
{
688b67b2c7220b01 Fugang Duan 2020-04-19 947 ret = MLAN_STATUS_FAILURE;
688b67b2c7220b01 Fugang Duan 2020-04-19 948 goto exit;
688b67b2c7220b01 Fugang Duan 2020-04-19 949 }
688b67b2c7220b01 Fugang Duan 2020-04-19 950 PRINTM(MINFO, "*** IN PCIE IRQ
***\n");
688b67b2c7220b01 Fugang Duan 2020-04-19 951 handle->main_state = MOAL_RECV_INT;
688b67b2c7220b01 Fugang Duan 2020-04-19 952 PRINTM(MINTR, "*\n");
688b67b2c7220b01 Fugang Duan 2020-04-19 953
688b67b2c7220b01 Fugang Duan 2020-04-19 954 ret = mlan_interrupt(0xffff,
handle->pmlan_adapter);
688b67b2c7220b01 Fugang Duan 2020-04-19 955 queue_work(handle->workqueue,
&handle->main_work);
688b67b2c7220b01 Fugang Duan 2020-04-19 956
688b67b2c7220b01 Fugang Duan 2020-04-19 957 exit:
688b67b2c7220b01 Fugang Duan 2020-04-19 958 if (ret == MLAN_STATUS_SUCCESS)
688b67b2c7220b01 Fugang Duan 2020-04-19 959 return IRQ_HANDLED;
688b67b2c7220b01 Fugang Duan 2020-04-19 960 else
688b67b2c7220b01 Fugang Duan 2020-04-19 961 return IRQ_NONE;
688b67b2c7220b01 Fugang Duan 2020-04-19 962 }
688b67b2c7220b01 Fugang Duan 2020-04-19 963
688b67b2c7220b01 Fugang Duan 2020-04-19 964 /**
688b67b2c7220b01 Fugang Duan 2020-04-19 965 * @brief This function handles the MSI-X
interrupt.
688b67b2c7220b01 Fugang Duan 2020-04-19 966 *
688b67b2c7220b01 Fugang Duan 2020-04-19 967 * @param irq The irq no. of PCIE
device
688b67b2c7220b01 Fugang Duan 2020-04-19 968 * @param dev_id A pointer to the
msix_context structure
688b67b2c7220b01 Fugang Duan 2020-04-19 969 *
688b67b2c7220b01 Fugang Duan 2020-04-19 970 * @return IRQ_HANDLED
688b67b2c7220b01 Fugang Duan 2020-04-19 971 */
6b4a83a75fc1dccc Fugang Duan 2020-05-28 972 static irqreturn_t
woal_pcie_msix_interrupt(int irq, void *dev_id)
688b67b2c7220b01 Fugang Duan 2020-04-19 973 {
688b67b2c7220b01 Fugang Duan 2020-04-19 974 struct pci_dev *pdev;
688b67b2c7220b01 Fugang Duan 2020-04-19 975 pcie_service_card *card;
688b67b2c7220b01 Fugang Duan 2020-04-19 976 moal_handle *handle;
688b67b2c7220b01 Fugang Duan 2020-04-19 977 msix_context *ctx = (msix_context
*)dev_id;
688b67b2c7220b01 Fugang Duan 2020-04-19 978 mlan_status ret = MLAN_STATUS_SUCCESS;
688b67b2c7220b01 Fugang Duan 2020-04-19 979
688b67b2c7220b01 Fugang Duan 2020-04-19 980 if (!ctx) {
688b67b2c7220b01 Fugang Duan 2020-04-19 981 PRINTM(MFATAL, "%s: ctx=%p is
NULL\n", __func__, ctx);
688b67b2c7220b01 Fugang Duan 2020-04-19 982 goto exit;
688b67b2c7220b01 Fugang Duan 2020-04-19 983 }
688b67b2c7220b01 Fugang Duan 2020-04-19 984
688b67b2c7220b01 Fugang Duan 2020-04-19 985 pdev = ctx->dev;
688b67b2c7220b01 Fugang Duan 2020-04-19 986
688b67b2c7220b01 Fugang Duan 2020-04-19 987 if (!pdev) {
688b67b2c7220b01 Fugang Duan 2020-04-19 988 PRINTM(MFATAL, "%s: pdev is
NULL\n", (t_u8 *)pdev);
688b67b2c7220b01 Fugang Duan 2020-04-19 989 goto exit;
688b67b2c7220b01 Fugang Duan 2020-04-19 990 }
688b67b2c7220b01 Fugang Duan 2020-04-19 991
688b67b2c7220b01 Fugang Duan 2020-04-19 992 card = (pcie_service_card
*)pci_get_drvdata(pdev);
688b67b2c7220b01 Fugang Duan 2020-04-19 993 if (!card || !card->handle) {
688b67b2c7220b01 Fugang Duan 2020-04-19 994 PRINTM(MFATAL, "%s: card=%p
handle=%p\n", __func__, card,
688b67b2c7220b01 Fugang Duan 2020-04-19 995 card ? card->handle : NULL);
688b67b2c7220b01 Fugang Duan 2020-04-19 996 goto exit;
688b67b2c7220b01 Fugang Duan 2020-04-19 997 }
688b67b2c7220b01 Fugang Duan 2020-04-19 998 handle = card->handle;
688b67b2c7220b01 Fugang Duan 2020-04-19 999 if (handle->surprise_removed == MTRUE)
{
688b67b2c7220b01 Fugang Duan 2020-04-19 1000 ret = MLAN_STATUS_FAILURE;
688b67b2c7220b01 Fugang Duan 2020-04-19 1001 goto exit;
688b67b2c7220b01 Fugang Duan 2020-04-19 1002 }
688b67b2c7220b01 Fugang Duan 2020-04-19 1003 PRINTM(MINFO, "*** IN PCIE IRQ
***\n");
688b67b2c7220b01 Fugang Duan 2020-04-19 1004 handle->main_state = MOAL_RECV_INT;
688b67b2c7220b01 Fugang Duan 2020-04-19 1005 PRINTM(MINTR, "*\n");
688b67b2c7220b01 Fugang Duan 2020-04-19 1006 ret = mlan_interrupt(ctx->msg_id,
handle->pmlan_adapter);
688b67b2c7220b01 Fugang Duan 2020-04-19 1007 queue_work(handle->workqueue,
&handle->main_work);
688b67b2c7220b01 Fugang Duan 2020-04-19 1008
688b67b2c7220b01 Fugang Duan 2020-04-19 1009 exit:
688b67b2c7220b01 Fugang Duan 2020-04-19 1010 if (ret == MLAN_STATUS_SUCCESS)
688b67b2c7220b01 Fugang Duan 2020-04-19 1011 return IRQ_HANDLED;
688b67b2c7220b01 Fugang Duan 2020-04-19 1012 else
688b67b2c7220b01 Fugang Duan 2020-04-19 1013 return IRQ_NONE;
688b67b2c7220b01 Fugang Duan 2020-04-19 1014 }
688b67b2c7220b01 Fugang Duan 2020-04-19 1015 /**
688b67b2c7220b01 Fugang Duan 2020-04-19 1016 * @brief This function pre-initializes
the PCI-E host
688b67b2c7220b01 Fugang Duan 2020-04-19 1017 * memory space, etc.
688b67b2c7220b01 Fugang Duan 2020-04-19 1018 *
688b67b2c7220b01 Fugang Duan 2020-04-19 1019 * @param handle A pointer to
moal_handle structure
688b67b2c7220b01 Fugang Duan 2020-04-19 1020 *
688b67b2c7220b01 Fugang Duan 2020-04-19 1021 * @return MLAN_STATUS_SUCCESS or
MLAN_STATUS_FAILURE
688b67b2c7220b01 Fugang Duan 2020-04-19 1022 */
6b4a83a75fc1dccc Fugang Duan 2020-05-28 1023 static mlan_status woal_pcie_preinit(struct
pci_dev *pdev)
688b67b2c7220b01 Fugang Duan 2020-04-19 1024 {
688b67b2c7220b01 Fugang Duan 2020-04-19 1025 int ret;
688b67b2c7220b01 Fugang Duan 2020-04-19 1026
688b67b2c7220b01 Fugang Duan 2020-04-19 1027 ret = pci_enable_device(pdev);
688b67b2c7220b01 Fugang Duan 2020-04-19 1028 if (ret)
688b67b2c7220b01 Fugang Duan 2020-04-19 1029 goto err_enable_dev;
688b67b2c7220b01 Fugang Duan 2020-04-19 1030
688b67b2c7220b01 Fugang Duan 2020-04-19 1031 pci_set_master(pdev);
688b67b2c7220b01 Fugang Duan 2020-04-19 1032
688b67b2c7220b01 Fugang Duan 2020-04-19 1033 PRINTM(MINFO, "Try
set_consistent_dma_mask(32)\n");
688b67b2c7220b01 Fugang Duan 2020-04-19 1034 ret = pci_set_dma_mask(pdev,
DMA_BIT_MASK(32));
688b67b2c7220b01 Fugang Duan 2020-04-19 1035 if (ret) {
688b67b2c7220b01 Fugang Duan 2020-04-19 1036 PRINTM(MERROR, "set_dma_mask(32)
failed\n");
688b67b2c7220b01 Fugang Duan 2020-04-19 1037 goto err_set_dma_mask;
688b67b2c7220b01 Fugang Duan 2020-04-19 1038 }
688b67b2c7220b01 Fugang Duan 2020-04-19 1039
688b67b2c7220b01 Fugang Duan 2020-04-19 1040 ret = pci_set_consistent_dma_mask(pdev,
DMA_BIT_MASK(32));
688b67b2c7220b01 Fugang Duan 2020-04-19 1041 if (ret) {
688b67b2c7220b01 Fugang Duan 2020-04-19 1042 PRINTM(MERROR,
"set_consistent_dma_mask(64) failed\n");
688b67b2c7220b01 Fugang Duan 2020-04-19 1043 goto err_set_dma_mask;
688b67b2c7220b01 Fugang Duan 2020-04-19 1044 }
688b67b2c7220b01 Fugang Duan 2020-04-19 1045 return MLAN_STATUS_SUCCESS;
688b67b2c7220b01 Fugang Duan 2020-04-19 1046
688b67b2c7220b01 Fugang Duan 2020-04-19 1047 err_set_dma_mask:
688b67b2c7220b01 Fugang Duan 2020-04-19 1048 pci_disable_device(pdev);
688b67b2c7220b01 Fugang Duan 2020-04-19 1049 err_enable_dev:
688b67b2c7220b01 Fugang Duan 2020-04-19 1050 return MLAN_STATUS_FAILURE;
688b67b2c7220b01 Fugang Duan 2020-04-19 1051 }
688b67b2c7220b01 Fugang Duan 2020-04-19 1052
688b67b2c7220b01 Fugang Duan 2020-04-19 1053 /**
688b67b2c7220b01 Fugang Duan 2020-04-19 1054 * @brief This function initializes the
PCI-E host
688b67b2c7220b01 Fugang Duan 2020-04-19 1055 * memory space, etc.
688b67b2c7220b01 Fugang Duan 2020-04-19 1056 *
688b67b2c7220b01 Fugang Duan 2020-04-19 1057 * @param card A pointer to
pcie_service_card structure
688b67b2c7220b01 Fugang Duan 2020-04-19 1058 *
688b67b2c7220b01 Fugang Duan 2020-04-19 1059 * @return MLAN_STATUS_SUCCESS or
MLAN_STATUS_FAILURE
688b67b2c7220b01 Fugang Duan 2020-04-19 1060 */
6b4a83a75fc1dccc Fugang Duan 2020-05-28 1061 mlan_status
woal_pcie_init(pcie_service_card *card)
688b67b2c7220b01 Fugang Duan 2020-04-19 1062 {
688b67b2c7220b01 Fugang Duan 2020-04-19 1063 struct pci_dev *pdev = NULL;
688b67b2c7220b01 Fugang Duan 2020-04-19 1064 int ret;
688b67b2c7220b01 Fugang Duan 2020-04-19 1065
688b67b2c7220b01 Fugang Duan 2020-04-19 1066 pdev = card->dev;
688b67b2c7220b01 Fugang Duan 2020-04-19 1067 pci_set_drvdata(pdev, card);
688b67b2c7220b01 Fugang Duan 2020-04-19 1068 #if 0
688b67b2c7220b01 Fugang Duan 2020-04-19 1069 ret = pci_enable_device(pdev);
688b67b2c7220b01 Fugang Duan 2020-04-19 1070 if (ret)
688b67b2c7220b01 Fugang Duan 2020-04-19 1071 goto err_enable_dev;
688b67b2c7220b01 Fugang Duan 2020-04-19 1072
688b67b2c7220b01 Fugang Duan 2020-04-19 1073 pci_set_master(pdev);
688b67b2c7220b01 Fugang Duan 2020-04-19 1074
688b67b2c7220b01 Fugang Duan 2020-04-19 1075 PRINTM(MINFO, "Try
set_consistent_dma_mask(32)\n");
688b67b2c7220b01 Fugang Duan 2020-04-19 1076 ret = pci_set_dma_mask(pdev,
DMA_BIT_MASK(32));
688b67b2c7220b01 Fugang Duan 2020-04-19 1077 if (ret) {
688b67b2c7220b01 Fugang Duan 2020-04-19 1078 PRINTM(MERROR, "set_dma_mask(32)
failed\n");
688b67b2c7220b01 Fugang Duan 2020-04-19 1079 goto err_set_dma_mask;
688b67b2c7220b01 Fugang Duan 2020-04-19 1080 }
688b67b2c7220b01 Fugang Duan 2020-04-19 1081
688b67b2c7220b01 Fugang Duan 2020-04-19 1082 ret = pci_set_consistent_dma_mask(pdev,
DMA_BIT_MASK(32));
688b67b2c7220b01 Fugang Duan 2020-04-19 1083 if (ret) {
688b67b2c7220b01 Fugang Duan 2020-04-19 1084 PRINTM(MERROR,
"set_consistent_dma_mask(64) failed\n");
688b67b2c7220b01 Fugang Duan 2020-04-19 1085 goto err_set_dma_mask;
688b67b2c7220b01 Fugang Duan 2020-04-19 1086 }
688b67b2c7220b01 Fugang Duan 2020-04-19 1087 #endif
688b67b2c7220b01 Fugang Duan 2020-04-19 1088
688b67b2c7220b01 Fugang Duan 2020-04-19 1089 ret = pci_request_region(pdev, 0,
DRV_NAME);
688b67b2c7220b01 Fugang Duan 2020-04-19 1090 if (ret) {
688b67b2c7220b01 Fugang Duan 2020-04-19 1091 PRINTM(MERROR, "req_reg(0)
error\n");
688b67b2c7220b01 Fugang Duan 2020-04-19 1092 goto err_req_region0;
688b67b2c7220b01 Fugang Duan 2020-04-19 1093 }
688b67b2c7220b01 Fugang Duan 2020-04-19 @1094 card->pci_mmap = pci_iomap(pdev, 0,
0);
688b67b2c7220b01 Fugang Duan 2020-04-19 1095 if (!card->pci_mmap) {
688b67b2c7220b01 Fugang Duan 2020-04-19 1096 PRINTM(MERROR, "iomap(0)
error\n");
688b67b2c7220b01 Fugang Duan 2020-04-19 1097 goto err_iomap0;
688b67b2c7220b01 Fugang Duan 2020-04-19 1098 }
688b67b2c7220b01 Fugang Duan 2020-04-19 1099 ret = pci_request_region(pdev, 2,
DRV_NAME);
688b67b2c7220b01 Fugang Duan 2020-04-19 1100 if (ret) {
688b67b2c7220b01 Fugang Duan 2020-04-19 1101 PRINTM(MERROR, "req_reg(2)
error\n");
688b67b2c7220b01 Fugang Duan 2020-04-19 1102 goto err_req_region2;
688b67b2c7220b01 Fugang Duan 2020-04-19 1103 }
688b67b2c7220b01 Fugang Duan 2020-04-19 @1104 card->pci_mmap1 = pci_iomap(pdev, 2,
0);
688b67b2c7220b01 Fugang Duan 2020-04-19 1105 if (!card->pci_mmap1) {
688b67b2c7220b01 Fugang Duan 2020-04-19 1106 PRINTM(MERROR, "iomap(2)
error\n");
688b67b2c7220b01 Fugang Duan 2020-04-19 1107 goto err_iomap2;
688b67b2c7220b01 Fugang Duan 2020-04-19 1108 }
688b67b2c7220b01 Fugang Duan 2020-04-19 1109
6b4a83a75fc1dccc Fugang Duan 2020-05-28 1110 PRINTM(MINFO,
6b4a83a75fc1dccc Fugang Duan 2020-05-28 1111 "PCI memory map Virt0: %p PCI
memory map Virt2: "
6b4a83a75fc1dccc Fugang Duan 2020-05-28 1112 "%p\n",
6b4a83a75fc1dccc Fugang Duan 2020-05-28 1113 card->pci_mmap,
card->pci_mmap1);
688b67b2c7220b01 Fugang Duan 2020-04-19 1114
688b67b2c7220b01 Fugang Duan 2020-04-19 1115 return MLAN_STATUS_SUCCESS;
688b67b2c7220b01 Fugang Duan 2020-04-19 1116
688b67b2c7220b01 Fugang Duan 2020-04-19 1117 err_iomap2:
688b67b2c7220b01 Fugang Duan 2020-04-19 1118 pci_release_region(pdev, 2);
688b67b2c7220b01 Fugang Duan 2020-04-19 1119 err_req_region2:
688b67b2c7220b01 Fugang Duan 2020-04-19 @1120 pci_iounmap(pdev, card->pci_mmap);
688b67b2c7220b01 Fugang Duan 2020-04-19 1121 err_iomap0:
688b67b2c7220b01 Fugang Duan 2020-04-19 1122 pci_release_region(pdev, 0);
688b67b2c7220b01 Fugang Duan 2020-04-19 1123 err_req_region0:
688b67b2c7220b01 Fugang Duan 2020-04-19 1124 #if 0
688b67b2c7220b01 Fugang Duan 2020-04-19 1125 err_set_dma_mask:
688b67b2c7220b01 Fugang Duan 2020-04-19 1126 #endif
688b67b2c7220b01 Fugang Duan 2020-04-19 1127
:::::: The code at line 1094 was first introduced by commit
:::::: 688b67b2c7220b01521ffe560da7eee33042c7bd MLK-23806-01 net: wireless: nxp:
mxm_wifiex: add initial MxM wifi driver
:::::: TO: Fugang Duan <fugang.duan(a)nxp.com>
:::::: CC: Fugang Duan <fugang.duan(a)nxp.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org