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

From: Reinhard Speyerer
Date: Mon Aug 16 2021 - 05:06:32 EST


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