Gustavo Zacarias <gustavo@xxxxxxxxxxxxxxx> writes: > On 11/08/2013 04:44 AM, Bjørn Mork wrote: > >> I believe it's nice to document the layout of complex composite devices >> if known, but if not then I don't see any need to delay a patch like >> this. > > From looking at the .inf files from the windows drivers i can't get much > info other than: > > %QcomDevice00% = QportInstall00, USB\VID_12d1&PID_1C0B > (which is the PID before usb_modeswitch/modem mode kicks in). > > If there's another to lookup way feel free to prod me :) One way, if you have access to a Windows system, is observing what happens there. You can look up vid/pid/intfnumber in the Windows device manager. Looking around at various driver files I had here, I found this: bjorn@nemi:/tmp/foo/Huawei$ egrep '1C(05|07|08|10)' *.inf|sort |uniq ew_jubusenum.inf:%EnumDeviceDesc% = DevInstallNet, USB\VID_12D1&PID_1C07&MI_01 ew_jubusenum.inf:%EnumDeviceDesc% = DevInstall, USB\VID_12D1&PID_1C05&MI_00 ew_jubusenum.inf:%EnumDeviceDesc% = DevInstall, USB\VID_12D1&PID_1C05&MI_01 ew_jubusenum.inf:%EnumDeviceDesc% = DevInstall, USB\VID_12D1&PID_1C05&MI_02 ew_jubusenum.inf:%EnumDeviceDesc% = DevInstall, USB\VID_12D1&PID_1C07&MI_00 ew_jubusenum.inf:%EnumDeviceDesc% = DevInstall, USB\VID_12D1&PID_1C07&MI_02 ew_jubusenum.inf:%EnumDeviceDesc% = DevInstall, USB\VID_12D1&PID_1C07&MI_03 ew_jubusenum.inf:%EnumDeviceDesc% = DevInstall, USB\VID_12D1&PID_1C07&MI_06 ew_jubusenum.inf:%EnumDeviceDesc% = DevInstall, USB\VID_12D1&PID_1C08&MI_00 ew_jubusenum.inf:%EnumDeviceDesc% = DevInstall, USB\VID_12D1&PID_1C08&MI_01 ew_jubusenum.inf:%EnumDeviceDesc% = DevInstall, USB\VID_12D1&PID_1C10&MI_00 ew_jubusenum.inf:%EnumDeviceDesc% = DevInstall, USB\VID_12D1&PID_1C10&MI_01 ew_jubusenum.inf:%EnumDeviceDesc% = DevInstall, USB\VID_12D1&PID_1C10&MI_02 ew_jucdcacm.inf:%BTDeviceDesc% = DevInstall, USBCDCACM\VID_12D1&PID_1C07&MI_06 ew_jucdcacm.inf:%DIAGDeviceDesc% = DevInstall, USBCDCACM\VID_12D1&PID_1C05&MI_01 ew_jucdcacm.inf:%DIAGDeviceDesc% = DevInstall, USBCDCACM\VID_12D1&PID_1C07&MI_02 ew_jucdcacm.inf:%DIAGDeviceDesc% = DevInstall, USBCDCACM\VID_12D1&PID_1C10&MI_01 ew_jucdcacm.inf:%PCUIDeviceDesc% = DevInstall, USBCDCACM\VID_12D1&PID_1C05&MI_02 ew_jucdcacm.inf:%PCUIDeviceDesc% = DevInstall, USBCDCACM\VID_12D1&PID_1C07&MI_03 ew_jucdcacm.inf:%PCUIDeviceDesc% = DevInstall, USBCDCACM\VID_12D1&PID_1C08&MI_01 ew_jucdcacm.inf:%PCUIDeviceDesc% = DevInstall, USBCDCACM\VID_12D1&PID_1C10&MI_02 ew_jucdcecm.inf:%ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C07&MI_01 ew_jucdcecm.inf:%NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&PID_1C07&MI_01 ew_jucdcmdm.inf:%MDMDeviceDesc% = DevInstall, USBCDCACM\VID_12D1&PID_1C05&MI_00 ew_jucdcmdm.inf:%MDMDeviceDesc% = DevInstall, USBCDCACM\VID_12D1&PID_1C07&MI_00 ew_jucdcmdm.inf:%MDMDeviceDesc% = DevInstall, USBCDCACM\VID_12D1&PID_1C08&MI_00 ew_jucdcmdm.inf:%MDMDeviceDesc% = DevInstall, USBCDCACM\VID_12D1&PID_1C10&MI_00 ew_juextctrl.inf:%dc_ecm_dev.DevDesc% = DevInstall, USBCDCECM\VID_12D1&PID_1C07&MI_01&ext_ctrl So according to thos, interface #1 on 12d1:1c07 should be either an ECM or(?) NCM function, so blacklisting it in option is definitely correct if the generic Huawei vendor rule picks it up. Now I do not understand how the same function can be both ECM and NCM, but we should try to find out which one it is... The Huawei Windows driver use a single flag to select one of these, which may explain how they can mix configs like this. It just seems completely pointless. You have already tried qmi_wwan, right? But only with libqmi? This is most likely not a QMI device in any case. There is a fair chance that it supports Huawei's AT^NDISDUP and related vendor specific AT commands though. You should try that, using either qmi_wwan (if ECM) or the new huawei_cdc_ncm driver (if NCM) for the network function. This device use ff/ff/ff for class/subclass/protocol on all interfaces, is that right? Bjørn -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html