MC7304 connection?

Bjørn Mork bjorn at mork.no
Wed May 21 03:00:28 PDT 2014


Aleksander Morgado <aleksander at aleksander.es> writes:
> On Wed, May 21, 2014 at 10:27 AM, Bjørn Mork <bjorn at mork.no> wrote:
>> Aleksander Morgado <aleksander at aleksander.es> writes:
>>
>>> So, what to do with these two interfaces now? Should we just ignore
>>> them in the kernel driver? Is there anything else I could try with? I
>>> may try to implement "WDA Set Data Format" and play with it...
>>
>>
>> The 3rd port is probably dead until we get any further clues.  But I
>> think we should try harder to make the 2nd port work before giving up.
>> Using the WDA "set format" command is certainly worth an attempt.  I
>> don't know the exact relationship to the CTL "set format", but do note
>> that the WDA command allows assymetric settings.  Which will screw up
>> stuff for the qmi_wwan driver.
>>
>
> WDA docs say that if one client uses CTL Set Data Format and another
> one uses WDA Set Data Format, an "Invalid Operation" error will be
> returned for the second one. I'll try to play with WDA Set Data Format
> anyway.

Did you try CTL Set Data Format first to raw-ip and then back to 802.3?
That ought to reset any existing setting.

>> And did you try using e.g. '--device-set-instance-id=1' prior to the
>> --device-open-net etc command?
>>
>
> Tried now, and didn't help.

No, that makes sense now I tried it myself.  Setting the same instance
ID on both QMI functions work fine for me.  I do note that the return
TLV has two bytes.  One of these is the input ID, while the other is
fixed per function.  So I get:

bjorn at nemi:~$ qmicli -v -d /dev/cdc-wdm0 --device-set-instance-id=0
..
[21 May 2014, 11:54:35] [Debug] [/dev/cdc-wdm0] Received message (translated)...
>>>>>> QMUX:
>>>>>>   length  = 23
>>>>>>   flags   = 0x80
>>>>>>   service = "ctl"
>>>>>>   client  = 0
>>>>>> QMI:
>>>>>>   flags       = "response"
>>>>>>   transaction = 1
>>>>>>   tlv_length  = 12
>>>>>>   message     = "Set Instance ID" (0x0020)
>>>>>> TLV:
>>>>>>   type       = "Result" (0x02)
>>>>>>   length     = 4
>>>>>>   value      = 00:00:00:00
>>>>>>   translated = SUCCESS
>>>>>> TLV:
>>>>>>   type       = "Link ID" (0x01)
>>>>>>   length     = 2
>>>>>>   value      = 00:00
>>>>>>   translated = 0

[/dev/cdc-wdm0] Instance ID set:
        Link ID: '0'


And

bjorn at nemi:~$ qmicli -v -d /dev/cdc-wdm1 --device-set-instance-id=0
..
[21 May 2014, 11:55:11] [Debug] [/dev/cdc-wdm1] Received message (translated)...
>>>>>> QMUX:
>>>>>>   length  = 23
>>>>>>   flags   = 0x80
>>>>>>   service = "ctl"
>>>>>>   client  = 0
>>>>>> QMI:
>>>>>>   flags       = "response"
>>>>>>   transaction = 1
>>>>>>   tlv_length  = 12
>>>>>>   message     = "Set Instance ID" (0x0020)
>>>>>> TLV:
>>>>>>   type       = "Result" (0x02)
>>>>>>   length     = 4
>>>>>>   value      = 00:00:00:00
>>>>>>   translated = SUCCESS
>>>>>> TLV:
>>>>>>   type       = "Link ID" (0x01)
>>>>>>   length     = 2
>>>>>>   value      = 00:01
>>>>>>   translated = 256

[/dev/cdc-wdm1] Instance ID set:
        Link ID: '256'


This seems to be hardcoded in the firmware.  So I guess the configurable
ID is pointless for us.

>> usbmon snooping might also tell us something if the problem really is
>> related to framing mismatch.
>>
>
> Will try to see if usbmon helps.

Let's hope it gives us some pointers at least.  I'm completely lost now.


Bjørn


More information about the libqmi-devel mailing list