> On Jul 17, 2022, at 23:48, Reinhard Speyerer <rspmn@xxxxxxxx> wrote: > > Hi Yan, > > On Sat, Jul 16, 2022 at 09:36:27PM +0800, sdlyyxy wrote: >> Hi Reinhard, >> >>> On Jul 16, 2022, at 20:13, Reinhard Speyerer <rspmn@xxxxxxxx> wrote: >>> >>> On Fri, Jul 15, 2022 at 10:59:13PM +0800, sdlyyxy wrote: >>>> >>>>> On Jul 15, 2022, at 22:24, Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> wrote: >>>>> >>>>> The Oppo R11 diagnostic USB connection needs to be bound to the >>>>> usb-serial-simple driver as it just wants to use a dumb pipe to >>>>> communicate to the host. >>>>> >>>>> usb-devices output: >>>>> T: Bus=03 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 10 Spd=480 MxCh= 0 >>>>> D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 >>>>> P: Vendor=22d9 ProdID=276c Rev=04.04 >>>>> S: Manufacturer=OPPO >>>>> S: Product=SDM660-MTP _SN:09C6BCA7 >>>>> S: SerialNumber=beb2c403 >>>>> C: #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=500mA >>>>> I: If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 >>>>> >>>>> Reported-by: Yan Xinyu <sdlyyxy@xxxxxxxxxxx> >>>>> Cc: Johan Hovold <johan@xxxxxxxxxx> >>>>> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> >>>>> --- >>>>> drivers/usb/serial/usb-serial-simple.c | 4 +++- >>>>> 1 file changed, 3 insertions(+), 1 deletion(-) >>>>> >>>>> diff --git a/drivers/usb/serial/usb-serial-simple.c b/drivers/usb/serial/usb-serial-simple.c >>>>> index 4c6747889a19..eb832b94aa3a 100644 >>>>> --- a/drivers/usb/serial/usb-serial-simple.c >>>>> +++ b/drivers/usb/serial/usb-serial-simple.c >>>>> @@ -60,7 +60,9 @@ DEVICE(flashloader, FLASHLOADER_IDS); >>>>> { USB_VENDOR_AND_INTERFACE_INFO(0x18d1, \ >>>>> USB_CLASS_VENDOR_SPEC, \ >>>>> 0x50, \ >>>>> - 0x01) } >>>>> + 0x01) }, \ >>>>> + { USB_DEVICE_AND_INTERFACE_INFO(0x22d9, 0x276c, \ >>>>> + 0xff, 0xff, 0x30) } >>>>> DEVICE(google, GOOGLE_IDS); >>>>> >>>>> /* Libtransistor USB console */ >>>>> -- >>>>> 2.37.1 >>>> Tested-by: Yan Xinyu <sdlyyxy@xxxxxxxxxxx> >>> >>> While this may work sufficiently well for real low-volume diag traffic I'd >>> expect a significant percentage of diag messages to be lost in practice >>> with the usb-serial-simple driver. >>> >>> According to the usb-devices output this looks like the Qualcomm USB gadget >>> in the DIAG + ADB composition to me. >>> >>> Since the option driver uses the usb-wwan framework my suggestion would be >>> for the original patch to be applied instead similar to what has been done >>> e.g. for the Quectel RM500Q diag port. >>> >>> Regards, >>> Reinhard >>> >> I tested the diag port using two userspace programs: QCSuper[1] >> and scat[2]. Both option and usb-serial-simple drivers generate >> similar output, so I cannot comfirm diag message loss. Do you >> have any test method suggestions to generate high-volume diag >> traffic and detect message loss? >> > > in my experience activating all message logs on the device with a > mask value like 0xf or 0x1f is a good way to generate more diag traffic. > Please refer to https://source.codeaurora.org/quic/imm/imm/sources/diag > (DIAG_CMD_OP_SET_ALL_MSG_MASK) for details. > > Regards, > Reinhard > Thank you very much for your advice! I'll try to understand the diag protocol and experiment with different USB drivers to figure out their difference :) Regards, sdlyyxy