Hello all, I came across the in-development rtl8192su source tree on github while looking for a driver for a small Trendnet 802.11bgn device I have. The chipset in use is an rtl8188su with usbid 0bda:8171. I was able to compile and load the driver against a standard 3.16.1 kernel with what looks to be a reasonably accurate capability listing for the wireless phy along with a standard dev instance. Whenever I attempt to enable the dev interface with an 'ifconfig wlan0 up' I get an error back indicating no such device (it does pause for a second or two however before the error returns). I enabled the RT_TRACE messages in the module compile as well as setting the debug module parameter to 5 to enable all the tracing and it looks like there are some problems happening when the driver attempts to load the firmware into the device. The firmware is found correctly (I created a link from the rtl8712u.bin to rtl8192sufw.bin). This firmware is identical to the rtl8712u-oldest-but-good.bin firmware located in the git tree. Here's a snippet of what looks to be start of the troubles during the module initialization. Aug 24 19:43:02 [kernel] rtl8192s_common: Chip version 0x3 Aug 24 19:43:02 [kernel] rtl_usb: rx_max_size 9100, rx_urb_num 8, in_ep 3 Aug 24 19:43:02 [kernel] rtl8192su: Power Save off (module option) Aug 24 19:43:02 [kernel] rtl8192su: FW Power Save off (module option) Aug 24 19:43:02 [kernel] rtl8192su: Driver for Realtek RTL8192SU/RTL8191SU Aug 24 19:43:02 [kernel] Loading firmware rtlwifi/rtl8192sufw.bin Aug 24 19:43:02 [kernel] usbcore: registered new interface driver rtl8192su Aug 24 19:43:02 [kernel] rtl8192su:rtl92su_fw_cb():<0-0> Firmware callback routine entered! Aug 24 19:43:02 [kernel] rtlwifi:rtl_reg_notifier():<0-0> Aug 24 19:43:02 [kernel] ieee80211 phy0: Selected rate control algorithm 'rtl_rc' Aug 24 19:43:33 [kernel] rtl8192su:_rtl92su_macconfig_before_fwdownload():<0-0> Polling TXDMA_INIT_VALUE timeout!! Current TCR(0x0) Aug 24 19:43:33 [kernel] rtl8192s_common:rtl92s_download_fw():<0-0> signature:8712, version:11ec, size:30, imemsize:e808, sram size:f550 Aug 24 19:43:33 [kernel] rtl8192s_common:_rtl92s_firmware_checkready():<0-0> LoadStaus(1) Aug 24 19:43:33 [kernel] rtl8192s_common:_rtl92s_firmware_checkready():<0-0> FW_STATUS_LOAD_IMEM FAIL CPU, Status=0 Aug 24 19:43:33 [kernel] rtl8192s_common:_rtl92s_firmware_checkready():<0-0> loadfw_status(1), rtstatus(1) Aug 24 19:43:33 [kernel] rtl8192s_common:_rtl92s_firmware_checkready():<0-0> LoadStaus(2) Aug 24 19:43:34 [kernel] rtl8192s_common:_rtl92s_firmware_checkready():<0-0> FW_STATUS_LOAD_EMEM FAIL CPU, Status=0 Aug 24 19:43:34 [kernel] rtl8192s_common:_rtl92s_firmware_checkready():<0-0> loadfw_status(2), rtstatus(1) Aug 24 19:43:34 [kernel] rtl8192s_common:_rtl92s_firmware_checkready():<0-0> LoadStaus(3) Aug 24 19:43:34 [kernel] rtl8192s_common:_rtl92s_firmware_checkready():<0-0> Polling DMEM code done fail ! cpustatus(0x0) Aug 24 19:43:34 [kernel] rtl8192s_common:_rtl92s_firmware_checkready():<0-0> loadfw_status(3), rtstatus(1) Aug 24 19:43:34 [kernel] rtl8192su:_rtl92su_macconfig_after_fwdownload():<0-0> OK ... The trace then goes on to do a bunch of register writes to continue initializing the device and then ends as follows: ... Aug 24 19:43:34 [kernel] rtl8192s_common:rtl92s_phy_set_bb_reg():<0-0> regaddr(0xc78), bitmask(0xffffffff), data(0x721f001e) Aug 24 19:43:34 [kernel] rtl8192s_common:rtl92s_phy_query_bb_reg():<0-0> BBR MASK=0x200 Addr[0x824]=0x0 Aug 24 19:43:34 [kernel] rtl8192s_common:rtl92s_phy_query_bb_reg():<0-0> BBR MASK=0xf Addr[0x804]=0x0 Aug 24 19:43:34 [kernel] rtl8192s_common:rtl92s_phy_query_bb_reg():<0-0> BBR MASK=0xf Addr[0xc04]=0x0 Aug 24 19:43:34 [kernel] rtl8192s_common:rtl92s_phy_bb_config():<0-0> RF_Type(0) does not match RF_Num(0)!! Aug 24 19:43:34 [kernel] rtl8192s_common:rtl92s_phy_bb_config():<0-0> path1 0x0, path2 0x0, pathmap 0x0 Aug 24 19:43:34 [kernel] rtl8192su:rtl92su_hw_init():<0-0> BB Config failed It appears that the firmware writes into the device are timing out or failing in some fashion which leaves the device uninitialized, and eventually returns the error. Is the rtl8188su expected to work with the driver currently or is support there still a work in progress? I was able to use the existing rtl8712 driver from the staging tree to get the device working, but it uses the old wireless extensions and doesn't appear to support a monitor mode, which was the initial goal of getting this device working. In summary I've got a few questions. Is this chipset expected to be functional with the driver at this time? If so, is there anything I can do/provide to debug further? If not I would be interested in helping out with porting/testing/debugging to aid in getting the chipset functional. Lastly, is monitor mode expected to work with the driver/chipset or are there lower layer filters in place that would keep the driver and upper layers from seeing all the frames from the phy? -- David Madsen -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html