Re:Re: [PATCH] [V2,1/1]USB: serial: option: add Foxconn T77W175 composition 0x901d

From: Slark Xiao
Date: Mon Aug 16 2021 - 05:17:44 EST


















At 2021-08-16 17:04:00, "Reinhard Speyerer" <rspmn@xxxxxxxx> wrote:
>On Mon, Aug 16, 2021 at 11:54:04AM +0800, Slark Xiao wrote:
>> Foxconn SDX55 T77W175 device is working in PCIe mode normally.
>> You can find the PCIe support in drivers/bus/mhi/pci_generic.c file.
>> But in some scenario, we need to capture the memory dump once it crashed.
>> So a diag port under USB driver is needed.
>>
>> Only interface 0 is used:
>> jbd@jbd-ThinkPad-P1-Gen-4:~$ lsusb | grep 05c6
>> Bus 003 Device 010: ID 05c6:901d Qualcomm, Inc. Generic Mobile Broadband Adapter
>> jbd@jbd-ThinkPad-P1-Gen-4:~$ lsusb -t | grep "Dev 10"
>> |__ Port 7: Dev 10, If 0, Class=Vendor Specific Class, Driver=option, 480M
>>
>> Signed-off-by: Slark Xiao <slark_xiao@xxxxxxx>
>> ---
>> drivers/usb/serial/option.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
>> index 039450069ca4..c275f489c1cc 100644
>> --- a/drivers/usb/serial/option.c
>> +++ b/drivers/usb/serial/option.c
>> @@ -2068,6 +2068,7 @@ static const struct usb_device_id option_ids[] = {
>> .driver_info = RSVD(0) | RSVD(1) | RSVD(6) },
>> { USB_DEVICE(0x0489, 0xe0b5), /* Foxconn T77W968 ESIM */
>> .driver_info = RSVD(0) | RSVD(1) | RSVD(6) },
>> + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x901d) }, /* Foxconn T77W175 PCIE+USB mode*/
>> { USB_DEVICE(0x1508, 0x1001), /* Fibocom NL668 (IOT version) */
>> .driver_info = RSVD(4) | RSVD(5) | RSVD(6) },
>> { USB_DEVICE(0x2cb7, 0x0104), /* Fibocom NL678 series */
>> --
>> 2.25.1
>>
>>
>
>Hi Slark,
>
>since this entry uses the Qualcomm USB VID it would be a good idea to make
>the option driver only bind to the DIAG interface in case other UE vendors
>have the ADB interface provided by this composition enabled:
>
>$ sed 30q 901D
>#!/bin/sh
>#
># Copyright (c) 2014,2017-2018, The Linux Foundation. All rights reserved.
>#
># Redistribution and use in source and binary forms, with or without
># modification, are permitted provided that the following conditions are met:
># * Redistributions of source code must retain the above copyright
># notice, this list of conditions and the following disclaimer.
># * Redistributions in binary form must reproduce the above copyright
># notice, this list of conditions and the following disclaimer in the
># documentation and/or other materials provided with the distribution.
># * Neither the name of The Linux Foundation nor the names of its
># contributors may be used to endorse or promote products derived from
># this software without specific prior written permission.
>#
># THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
># INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
># FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE DISCLAIMED. IN NO
># EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
># INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
># (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
># LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
># ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
># (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
># SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>
># DESCRIPTION: DIAG + ADB
>
>echo "Switching to composition number 0x901D" > /dev/kmsg
>
>
>[Ideally these compositions would also be available via kernel.org and/or
> codeaura.org but so far I have been unable to find them there.]
>
>Regards,
>Reinhard

Hi Reinhard,
So should I use USB_DEVICE_INTERFACE_NUMBER(QUALCOMM_VENDOR_ID, 0x901d, 0x00) to bind Diag port only?

Thanks