问题:我加载8821cu后,usb设备不能注册,具体不知道什么原因,哪位大佬能告知一下。
日志如下:
<7>[ 2311.431215] RTW: module init start
<7>[ 2311.435205] RTW: rtl8821cu v5.12.0-16-g5229e7f95.20210118_COEX20200730-5151
<7>[ 2311.443045] RTW: build time: Nov 9 2022 22:51:23
<7>[ 2311.448342] RTW: rtl8821cu BT-Coex version = COEX20200730-5151
<6>[ 2311.454972] sunxi-wlan soc@03000000:wlan: bus_index: 1
<6>[ 2311.462364] sunxi-wlan soc@03000000:wlan: check wlan io_regulator voltage: 3300000
<7>[ 2311.580983] [ehci1-controller]: sunxi_usb_enable_ehci
<7>[ 2311.586710] [sunxi-ehci1]: probe, pdev->name: 5200000.ehci1-controller, sunxi_ehci: 0xffffff8009185160, 0x:ffffff8009a88000, irq_no:121
<6>[ 2311.600503] sunxi-ehci 5200000.ehci1-controller: SW USB2.0 'Enhanced' Host Controller (EHCI) Driver
<6>[ 2311.611326] sunxi-ehci 5200000.ehci1-controller: new USB bus registered, assigned bus number 1
<6>[ 2311.622220] sunxi-ehci 5200000.ehci1-controller: irq 289, io mem 0xffffffc03df31b00
<6>[ 2311.641869] sunxi-ehci 5200000.ehci1-controller: USB 0.0 started, EHCI 1.00
<6>[ 2311.649699] sunxi-ehci 5200000.ehci1-controller: ehci_irq: highspeed device connect
<6>[ 2311.660920] hub 1-0:1.0: USB hub found
<6>[ 2311.665259] hub 1-0:1.0: 1 port detected
<6>[ 2311.670522] snddaudio snddaudio3: codec: ac107.3-0036, codec_dai: ac107-pcm0.
<7>[ 2311.671591] [ohci1-controller]: sunxi_usb_enable_ohci
<7>[ 2311.671598] [sunxi-ohci1]: probe, pdev->name: 5200000.ohci1-controller, sunxi_ohci: 0xffffff8009184440
<6>[ 2311.671651] sunxi-ohci 5200000.ohci1-controller: SW USB2.0 'Open' Host Controller (OHCI) Driver
<6>[ 2311.671674] sunxi-ohci 5200000.ohci1-controller: new USB bus registered, assigned bus number 4
<6>[ 2311.671724] sunxi-ohci 5200000.ohci1-controller: irq 290, io mem 0xffffffc03df31b00
<3>[ 2311.722758] snddaudio snddaudio3: ASoC: CPU DAI (null) not registered
<3>[ 2311.730018] snddaudio snddaudio3: snd_soc_register_card failed
<6>[ 2311.737089] snddaudio snddaudio3: codec: ac107.3-0036, codec_dai: ac107-pcm0.
<6>[ 2311.743721] hub 4-0:1.0: USB hub found
<6>[ 2311.744152] hub 4-0:1.0: 1 port detected
<7>[ 2311.744853] RTW: rtw_inetaddr_notifier_register
<6>[ 2311.745268] usbcore: registered new interface driver rtl8821cu
<7>[ 2311.745273] RTW: module init ret=0
<3>[ 2311.769315] snddaudio snddaudio3: ASoC: CPU DAI (null) not registered
<3>[ 2311.776606] snddaudio snddaudio3: snd_soc_register_card failed
<6>[ 2311.783681] snddaudio snddaudio3: codec: ac107.3-0036, codec_dai: ac107-pcm0.
<3>[ 2311.791797] snddaudio snddaudio3: ASoC: CPU DAI (null) not registered
<3>[ 2311.799064] snddaudio snddaudio3: snd_soc_register_card failed
<6>[ 2312.022052] usb 1-1: new high-speed USB device number 2 using sunxi-ehci
<6>[ 2312.171071] usb-storage 1-1:1.0: USB Mass Storage device detected
<6>[ 2312.180042] scsi host0: usb-storage 1-1:1.0
<6>[ 2312.200811] snddaudio snddaudio3: codec: ac107.3-0036, codec_dai: ac107-pcm0.
<3>[ 2312.209328] snddaudio snddaudio3: ASoC: CPU DAI (null) not registered
<3>[ 2312.217509] snddaudio snddaudio3: snd_soc_register_card failed
<5>[ 2313.209031] scsi 0:0:0:0: CD-ROM Realtek Driver Storage 1.00 PQ: 0 ANSI: 0 CCS
补充说明:
我看了这个流程:
module_init(rtw_drv_entry)
--->usb_register(&usb_drv.usbdrv);
--->rtw_drv_init()
--->rtw_usb_primary_adapter_init()
--->rtw_set_hal_ops()
--->rtl8821cu_set_hal_ops()
--->rtl8821cu_set_hal_ops()
--->rtl8821cu_halmac_init_adapter()
---> rtw_halmac_init_adapter()
---> halmac_init_adapter()
---> mount_api_88xx()
---> mount_api_8821c()
--->mount_api_8821c(根据pcie、usb、sdio等接口区分,初始化wifi设备依赖的接口函数)
--->mac_pwr_switch_usb_8821c(读取寄存器的值:value8 = HALMAC_REG_R8(REG_CR);)
---> dump_efuse_map_88xx(halmac_ret_status: 获取halmac 的状态)
就是在usb_register没法注册。