Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b2f463e1 authored by Pratyush Anand's avatar Pratyush Anand Committed by Greg Kroah-Hartman
Browse files

dwc3: host: Enable USB3 LPM capability



All dwc3 based xhci host controller supports USB3.0 LPM functionality.
Therefore enable it in platform data for all dwc3 based xhci device if
DWC3_HOST_USB3_LPM_ENABLE is selected in Kconfig.

Signed-off-by: default avatarPratyush Anand <pratyush.anand@st.com>
Signed-off-by: default avatarMathias Nyman <mathias.nyman@linux.intel.com>
Signed-of-by: default avatarFelipe Balbi <balbi@ti.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 20f6fdd0
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -93,4 +93,11 @@ config USB_DWC3_VERBOSE
	help
	  Say Y here to enable verbose debugging messages on DWC3 Driver.

config DWC3_HOST_USB3_LPM_ENABLE
	bool "Enable USB3 LPM Capability"
	depends on USB_DWC3_HOST=y || USB_DWC3_DUAL_ROLE=y
	default n
	help
	  Select this when you want to enable USB3 LPM with dwc3 xhci host.

endif
+14 −0
Original line number Diff line number Diff line
@@ -16,12 +16,14 @@
 */

#include <linux/platform_device.h>
#include <linux/usb/xhci_pdriver.h>

#include "core.h"

int dwc3_host_init(struct dwc3 *dwc)
{
	struct platform_device	*xhci;
	struct usb_xhci_pdata	pdata;
	int			ret;

	xhci = platform_device_alloc("xhci-hcd", PLATFORM_DEVID_AUTO);
@@ -46,6 +48,18 @@ int dwc3_host_init(struct dwc3 *dwc)
		goto err1;
	}

	memset(&pdata, 0, sizeof(pdata));

#ifdef CONFIG_DWC3_HOST_USB3_LPM_ENABLE
	pdata.usb3_lpm_capable = 1;
#endif

	ret = platform_device_add_data(xhci, &pdata, sizeof(pdata));
	if (ret) {
		dev_err(dwc->dev, "couldn't add platform data to xHCI device\n");
		goto err1;
	}

	ret = platform_device_add(xhci);
	if (ret) {
		dev_err(dwc->dev, "failed to register xHCI device\n");