From 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Mon, 13 May 2024 10:30:14 +0000 Subject: [PATCH] modify sin led gpio --- kernel/drivers/usb/host/xhci-ext-caps.c | 19 +++++++++++++++++++ 1 files changed, 19 insertions(+), 0 deletions(-) diff --git a/kernel/drivers/usb/host/xhci-ext-caps.c b/kernel/drivers/usb/host/xhci-ext-caps.c index 399113f..3351d07 100644 --- a/kernel/drivers/usb/host/xhci-ext-caps.c +++ b/kernel/drivers/usb/host/xhci-ext-caps.c @@ -6,10 +6,19 @@ */ #include <linux/platform_device.h> +#include <linux/property.h> +#include <linux/pci.h> #include "xhci.h" #define USB_SW_DRV_NAME "intel_xhci_usb_sw" #define USB_SW_RESOURCE_SIZE 0x400 + +#define PCI_DEVICE_ID_INTEL_CHERRYVIEW_XHCI 0x22b5 + +static const struct property_entry role_switch_props[] = { + PROPERTY_ENTRY_BOOL("sw_switch_disable"), + {}, +}; static void xhci_intel_unregister_pdev(void *arg) { @@ -21,6 +30,7 @@ struct usb_hcd *hcd = xhci_to_hcd(xhci); struct device *dev = hcd->self.controller; struct platform_device *pdev; + struct pci_dev *pci = to_pci_dev(dev); struct resource res = { 0, }; int ret; @@ -43,6 +53,15 @@ return ret; } + if (pci->device == PCI_DEVICE_ID_INTEL_CHERRYVIEW_XHCI) { + ret = platform_device_add_properties(pdev, role_switch_props); + if (ret) { + dev_err(dev, "failed to register device properties\n"); + platform_device_put(pdev); + return ret; + } + } + pdev->dev.parent = dev; ret = platform_device_add(pdev); -- Gitblit v1.6.2