From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.7 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,URIBL_BLOCKED,USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C0AACC43387 for ; Mon, 17 Dec 2018 22:29:43 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 809F121783 for ; Mon, 17 Dec 2018 22:29:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1545085783; bh=lSD+pMv5BCxuqBRwD4xuvcm5bLs+cvixxRwPTqh+RVs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:List-ID:From; b=WeL5Jf8rNxaT67FNzPlf7UKUbo2yyiB7ptnc39WXg0Yc99/kokHepmC5e6GbUrHMg sYkj15l1vJsdJkg5MuplzqIUJ+nYNlrgENbvGoy6+IIWqN7sS3VIX2cAMHDkwEViGU wEfg6G2ilGYIXlYsR2+N/sYRex6MQHcLuCjBdq08= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731435AbeLQW3m (ORCPT ); Mon, 17 Dec 2018 17:29:42 -0500 Received: from mail.kernel.org ([198.145.29.99]:32898 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731254AbeLQW3m (ORCPT ); Mon, 17 Dec 2018 17:29:42 -0500 Received: from localhost (unknown [64.22.249.253]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 97142214C6; Mon, 17 Dec 2018 22:29:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1545085781; bh=lSD+pMv5BCxuqBRwD4xuvcm5bLs+cvixxRwPTqh+RVs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=UoWezalb/xIqAfcDDTYGv3PaQ5NgH6VTQ/UXd0LjHfbJyUk1q1vUQBR1B4e4ncJjr lKulHr2ho2kVlJZ32GgvDZSGcxfqA4eRTLkZrwyVn+I3EZURiFj3s/lAAyFmgL5KW/ evbdmUzHcSFlfQI1CuEBPmuRGHCPD3E7HmIhYQCA= Date: Mon, 17 Dec 2018 16:29:40 -0600 From: Bjorn Helgaas To: Thinh Nguyen Cc: linux-pci@vger.kernel.org, linux-usb@vger.kernel.org, John Youn Subject: Re: [PATCH v2 2/2] PCI: Override Synopsys USB 3.x HAPS device class Message-ID: <20181217222940.GE28981@google.com> References: <3aa06c4e54bf98a59e510d7a833934fce4b0083b.1544478969.git.thinhn@synopsys.com> <8994fd7d7ee2bf5c1b32ce5bca25be4beb4405b5.1544478969.git.thinhn@synopsys.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <8994fd7d7ee2bf5c1b32ce5bca25be4beb4405b5.1544478969.git.thinhn@synopsys.com> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org On Mon, Dec 10, 2018 at 02:08:01PM -0800, Thinh Nguyen wrote: > Synopsys USB 3.x host HAPS platform has a class code of > PCI_CLASS_SERIAL_USB_XHCI, and xhci driver can claim it. However, these > devices should use dwc3-haps driver. Change these devices' class code to > PCI_CLASS_SERIAL_USB_DEVICE to prevent the xhci-pci driver from claiming > them. > > Signed-off-by: Thinh Nguyen I applied both of these to pci/misc for v4.21, thanks! > --- > Change in v2: > - Revise title to fit PCI patches' convention > - Override pci class instead of driver > > drivers/pci/quirks.c | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > index 4700d24e5d55..c84f81c42a1f 100644 > --- a/drivers/pci/quirks.c > +++ b/drivers/pci/quirks.c > @@ -618,6 +618,32 @@ static void quirk_amd_nl_class(struct pci_dev *pdev) > DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_NL_USB, > quirk_amd_nl_class); > > +/* > + * Synopsys USB 3.x host HAPS platform has a class code of > + * PCI_CLASS_SERIAL_USB_XHCI, and xhci driver can claim it. However, these > + * devices should use dwc3-haps driver. Change these devices' class code to > + * PCI_CLASS_SERIAL_USB_DEVICE to prevent the xhci-pci driver from claiming > + * them. > + */ > +static void quirk_synopsys_haps(struct pci_dev *pdev) > +{ > + u32 class = pdev->class; > + > + switch (pdev->device) { > + case PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3: > + case PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3_AXI: > + case PCI_DEVICE_ID_SYNOPSYS_HAPSUSB31: > + pdev->class = PCI_CLASS_SERIAL_USB_DEVICE; > + pci_info(pdev, "PCI class overridden (%#08x -> %#08x) so dwc3 driver can claim this instead of xhci\n", > + class, pdev->class); > + break; > + default: > + return; I dropped this "default: return;" because it's superfluous. > + } > +} > +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SYNOPSYS, PCI_ANY_ID, > + quirk_synopsys_haps); > + > /* > * Let's make the southbridge information explicit instead of having to > * worry about people probing the ACPI areas, for example.. (Yes, it > -- > 2.11.0 > From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v2,2/2] PCI: Override Synopsys USB 3.x HAPS device class From: Bjorn Helgaas Message-Id: <20181217222940.GE28981@google.com> Date: Mon, 17 Dec 2018 16:29:40 -0600 To: Thinh Nguyen Cc: linux-pci@vger.kernel.org, linux-usb@vger.kernel.org, John Youn List-ID: T24gTW9uLCBEZWMgMTAsIDIwMTggYXQgMDI6MDg6MDFQTSAtMDgwMCwgVGhpbmggTmd1eWVuIHdy b3RlOgo+IFN5bm9wc3lzIFVTQiAzLnggaG9zdCBIQVBTIHBsYXRmb3JtIGhhcyBhIGNsYXNzIGNv ZGUgb2YKPiBQQ0lfQ0xBU1NfU0VSSUFMX1VTQl9YSENJLCBhbmQgeGhjaSBkcml2ZXIgY2FuIGNs YWltIGl0LiBIb3dldmVyLCB0aGVzZQo+IGRldmljZXMgc2hvdWxkIHVzZSBkd2MzLWhhcHMgZHJp dmVyLiBDaGFuZ2UgdGhlc2UgZGV2aWNlcycgY2xhc3MgY29kZSB0bwo+IFBDSV9DTEFTU19TRVJJ QUxfVVNCX0RFVklDRSB0byBwcmV2ZW50IHRoZSB4aGNpLXBjaSBkcml2ZXIgZnJvbSBjbGFpbWlu Zwo+IHRoZW0uCj4gCj4gU2lnbmVkLW9mZi1ieTogVGhpbmggTmd1eWVuIDx0aGluaG5Ac3lub3Bz eXMuY29tPgoKSSBhcHBsaWVkIGJvdGggb2YgdGhlc2UgdG8gcGNpL21pc2MgZm9yIHY0LjIxLCB0 aGFua3MhCgo+IC0tLQo+IENoYW5nZSBpbiB2MjoKPiAtIFJldmlzZSB0aXRsZSB0byBmaXQgUENJ IHBhdGNoZXMnIGNvbnZlbnRpb24KPiAtIE92ZXJyaWRlIHBjaSBjbGFzcyBpbnN0ZWFkIG9mIGRy aXZlcgo+IAo+ICBkcml2ZXJzL3BjaS9xdWlya3MuYyB8IDI2ICsrKysrKysrKysrKysrKysrKysr KysrKysrCj4gIDEgZmlsZSBjaGFuZ2VkLCAyNiBpbnNlcnRpb25zKCspCj4gCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvcGNpL3F1aXJrcy5jIGIvZHJpdmVycy9wY2kvcXVpcmtzLmMKPiBpbmRleCA0 NzAwZDI0ZTVkNTUuLmM4NGY4MWM0MmExZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3BjaS9xdWly a3MuYwo+ICsrKyBiL2RyaXZlcnMvcGNpL3F1aXJrcy5jCj4gQEAgLTYxOCw2ICs2MTgsMzIgQEAg c3RhdGljIHZvaWQgcXVpcmtfYW1kX25sX2NsYXNzKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQo+ICBE RUNMQVJFX1BDSV9GSVhVUF9IRUFERVIoUENJX1ZFTkRPUl9JRF9BTUQsIFBDSV9ERVZJQ0VfSURf QU1EX05MX1VTQiwKPiAgCQlxdWlya19hbWRfbmxfY2xhc3MpOwo+ICAKPiArLyoKPiArICogU3lu b3BzeXMgVVNCIDMueCBob3N0IEhBUFMgcGxhdGZvcm0gaGFzIGEgY2xhc3MgY29kZSBvZgo+ICsg KiBQQ0lfQ0xBU1NfU0VSSUFMX1VTQl9YSENJLCBhbmQgeGhjaSBkcml2ZXIgY2FuIGNsYWltIGl0 LiBIb3dldmVyLCB0aGVzZQo+ICsgKiBkZXZpY2VzIHNob3VsZCB1c2UgZHdjMy1oYXBzIGRyaXZl ci4gQ2hhbmdlIHRoZXNlIGRldmljZXMnIGNsYXNzIGNvZGUgdG8KPiArICogUENJX0NMQVNTX1NF UklBTF9VU0JfREVWSUNFIHRvIHByZXZlbnQgdGhlIHhoY2ktcGNpIGRyaXZlciBmcm9tIGNsYWlt aW5nCj4gKyAqIHRoZW0uCj4gKyAqLwo+ICtzdGF0aWMgdm9pZCBxdWlya19zeW5vcHN5c19oYXBz KHN0cnVjdCBwY2lfZGV2ICpwZGV2KQo+ICt7Cj4gKwl1MzIgY2xhc3MgPSBwZGV2LT5jbGFzczsK PiArCj4gKwlzd2l0Y2ggKHBkZXYtPmRldmljZSkgewo+ICsJY2FzZSBQQ0lfREVWSUNFX0lEX1NZ Tk9QU1lTX0hBUFNVU0IzOgo+ICsJY2FzZSBQQ0lfREVWSUNFX0lEX1NZTk9QU1lTX0hBUFNVU0Iz X0FYSToKPiArCWNhc2UgUENJX0RFVklDRV9JRF9TWU5PUFNZU19IQVBTVVNCMzE6Cj4gKwkJcGRl di0+Y2xhc3MgPSBQQ0lfQ0xBU1NfU0VSSUFMX1VTQl9ERVZJQ0U7Cj4gKwkJcGNpX2luZm8ocGRl diwgIlBDSSBjbGFzcyBvdmVycmlkZGVuICglIzA4eCAtPiAlIzA4eCkgc28gZHdjMyBkcml2ZXIg Y2FuIGNsYWltIHRoaXMgaW5zdGVhZCBvZiB4aGNpXG4iLAo+ICsJCQkgY2xhc3MsIHBkZXYtPmNs YXNzKTsKPiArCQlicmVhazsKPiArCWRlZmF1bHQ6Cj4gKwkJcmV0dXJuOwoKSSBkcm9wcGVkIHRo aXMgImRlZmF1bHQ6IHJldHVybjsiIGJlY2F1c2UgaXQncyBzdXBlcmZsdW91cy4KCj4gKwl9Cj4g K30KPiArREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfU1lOT1BTWVMsIFBD SV9BTllfSUQsCj4gKwkJCSBxdWlya19zeW5vcHN5c19oYXBzKTsKPiArCj4gIC8qCj4gICAqIExl dCdzIG1ha2UgdGhlIHNvdXRoYnJpZGdlIGluZm9ybWF0aW9uIGV4cGxpY2l0IGluc3RlYWQgb2Yg aGF2aW5nIHRvCj4gICAqIHdvcnJ5IGFib3V0IHBlb3BsZSBwcm9iaW5nIHRoZSBBQ1BJIGFyZWFz LCBmb3IgZXhhbXBsZS4uIChZZXMsIGl0Cj4gLS0gCj4gMi4xMS4wCj4K