Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp162085imw; Thu, 14 Jul 2022 23:51:55 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vBRh6xY0Z4vQc4GrMCqPMOcX8wFkF8sUTDR4f7yxQcTTSMjrBh5gW6oUuw+y5+KbOQtpsg X-Received: by 2002:a05:6a00:238c:b0:52a:dcad:7847 with SMTP id f12-20020a056a00238c00b0052adcad7847mr12550362pfc.8.1657867914831; Thu, 14 Jul 2022 23:51:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1657867914; cv=none; d=google.com; s=arc-20160816; b=lbS6iZZ3A5EaJXRtnhXAfSy0mYWVHwOkti+0YCVIdqgsDiJzfDErUqJJ88M0l5gtD9 wwSn/xsZEcKL3V4Lnm071hFPaFrzy14Cj3olH5qOIelhcfarlmplUlIjlIYUVSECXObc lqdy+QTFM6kGurhJeDdhe6vee8krrDZs+9SB2TYNFdnRrznRjLd9NyuyhmVdrIpugqSt nmb+sF+lLe7leOg3cIMeXbljsZGMmWboJWHvdSc3rHiwzbFHL1LpuRfaq4ssztZcng99 I2RlIyauA/AHtdVUP5jT1akvu3uaHy3eKhE++b9htPg2n5PZ0FFIA+v3o6ZxkQbvgxxD OUhw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=e5JF54CZMmJiIV8YrHQB7T554Pk7Rm20PTgbqKgYQZk=; b=bHxbRM11ahtrJ4LSzEkEl6PIPBSbgOwC5SbeNQqT61W9Cge8kQI+6o04TVsJV6i1q9 s1QYTkNXNI7vwixzDZDIlVEKvmoxrPUM9QfMe88YdzSs9x1OkA6KHxwDTpC3en+tcUWp UQSriJ5PA1VshQiEcz5cF9xkuciaDtNiseIBKW78q0xOMreBoMrrgA9yoa0y7f9LMe+5 VQ+1udcg3Wj2Aa5mpdg262RSOrxhkzdise+c+c+B7AHNUep+Iatk2/XT9JTSYdrLKnjQ QPTdXF2Vz4bHb9D8z9OtI+gfvfMeBHNDla4ewTy8hqJh0wpYov4bLpuZkk1Iv6ty8hbK 0xSQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=xkCEOwMr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 14-20020a63040e000000b0040c37758b54si4225816pge.114.2022.07.14.23.51.40; Thu, 14 Jul 2022 23:51:54 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=xkCEOwMr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230288AbiGOGpn (ORCPT + 99 others); Fri, 15 Jul 2022 02:45:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55266 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229889AbiGOGpl (ORCPT ); Fri, 15 Jul 2022 02:45:41 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AB52B5F115; Thu, 14 Jul 2022 23:45:40 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 4493BB82A64; Fri, 15 Jul 2022 06:45:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 241AAC341C0; Fri, 15 Jul 2022 06:45:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1657867537; bh=Z+D7MYfv+nXkn1aZaErxQCYolVBgviXAN4wXGFG6BWI=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=xkCEOwMrqQmRAmzl2/1SnvyPDcK1uR2k0hDJ4b3q9ovE79AypRG4mvvjPR/tvw9+k 4PGZ6IIJGCXPcBz9txK2vtSMXe/9s0g4WwVUFV5rtn6KCddtq/5GDkNpQzFNRJIruO LZ1rYPXoIfKGwtzJOM+WJadaheI31fTQhfTlp3s4= Date: Fri, 15 Jul 2022 08:45:34 +0200 From: Greg KH To: sdlyyxy Cc: johan@kernel.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] USB: serial: option: adding support for OPPO R11 diag port Message-ID: References: <20220714102037.4113889-1-sdlyyxy@bupt.edu.cn> <5F187A64-2C88-4F7E-98AD-2A52B17B0DA4@bupt.edu.cn> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5F187A64-2C88-4F7E-98AD-2A52B17B0DA4@bupt.edu.cn> X-Spam-Status: No, score=-7.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jul 15, 2022 at 02:39:06PM +0800, sdlyyxy wrote: > Hi Greg, > Thanks for your comments! > > > On Jul 14, 2022, at 18:56, Greg KH wrote: > > > > On Thu, Jul 14, 2022 at 06:20:37PM +0800, sdlyyxy wrote: > >> From: Yan Xinyu > >> > >> This patch adds support for OPPO R11 USB diag serial port to option > >> driver. This phone uses Qualcomm Snapdragon 660 SoC. > >> > >> 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 Driver=option > > > > I do not think this has an option usb-serial chip in the device, this is > > a phone with a debug port instead. > > > Yeah, this phone uses a Qualcomm chip, not an option usb-serial chip. > It has the functionality to enter into a special mode, which provides > a QCDM-capable diag port as the same behaviour of USB modems. For > Qualcomm devices, there are several drivers: qcserial, qcaux, and > option. According to qcserial.c, qcaux.c source code and mailing list > conversations [1], this device with diag+adb layout should be driven > by option. No, this is not an option chip, and does not follow the option device protocols at all. So this is not the driver to use here. We should probably switch those other devices as well, they aren't really option devices either. > >> I: If#=0x1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=usbfs > > > > What userspace program is bound to this endpoint? > > > I think it is used by adb via libusb. > >> > >> Signed-off-by: Yan Xinyu > >> --- > >> drivers/usb/serial/option.c | 5 +++++ > >> 1 file changed, 5 insertions(+) > >> > >> diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c > >> index de59fa919540..cf65cb84c3ca 100644 > >> --- a/drivers/usb/serial/option.c > >> +++ b/drivers/usb/serial/option.c > >> @@ -573,6 +573,10 @@ static void option_instat_callback(struct urb *urb); > >> #define WETELECOM_PRODUCT_6802 0x6802 > >> #define WETELECOM_PRODUCT_WMD300 0x6803 > >> > >> +/* OPPO products */ > >> +#define OPPO_VENDOR_ID 0x22d9 > >> +#define OPPO_PRODUCT_R11 0x276c > >> + > >> > >> /* Device flags */ > >> > >> @@ -2155,6 +2159,7 @@ static const struct usb_device_id option_ids[] = { > >> { USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1404, 0xff) }, /* GosunCn GM500 RNDIS */ > >> { USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1405, 0xff) }, /* GosunCn GM500 MBIM */ > >> { USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1406, 0xff) }, /* GosunCn GM500 ECM/NCM */ > >> + { USB_DEVICE_AND_INTERFACE_INFO(OPPO_VENDOR_ID, OPPO_PRODUCT_R11, 0xff, 0xff, 0x30) }, > > > > This does not look correct, sorry. Try using the usbserial generic > > driver instead to transmit and recieve? > > > Yes I have tried using usbserial generic driver. As for the interface > #0x0 diag port, it seems working. However, in the same time the > generic driver will also be attached to interface #0x1, which causes > nonfunction of adb. Using this patch, diag and adb can run > simultaneously. So it's better than the generic driver? Ah, we should just bind the simple usb-serial driver to this interface and not bind the generic usb-serial driver to this interface. Let me make up a simple patch for this for you to test... thanks, greg k-h