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

Commit 368907dd authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge tag 'fixes-for-v4.8-rc3' of...

Merge tag 'fixes-for-v4.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus

Felipe writes:

usb: fixes for v4.8-rc3

Few fixes on dwc3 again, the most important being a
fix for pm_runtime to make it work with current
intel platforms.

Other than that, there's a signedness bug fix in fsl
udc and some other minor fixes.
parents 53e5f36f 6f8245b4
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -868,6 +868,7 @@ struct dwc2_hsotg {
	void *priv;
	int     irq;
	struct clk *clk;
	struct reset_control *reset;

	unsigned int queuing_high_bandwidth:1;
	unsigned int srp_success:1;
+22 −0
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@
#include <linux/platform_device.h>
#include <linux/phy/phy.h>
#include <linux/platform_data/s3c-hsotg.h>
#include <linux/reset.h>

#include <linux/usb/of.h>

@@ -337,6 +338,24 @@ static int dwc2_lowlevel_hw_init(struct dwc2_hsotg *hsotg)
{
	int i, ret;

	hsotg->reset = devm_reset_control_get_optional(hsotg->dev, "dwc2");
	if (IS_ERR(hsotg->reset)) {
		ret = PTR_ERR(hsotg->reset);
		switch (ret) {
		case -ENOENT:
		case -ENOTSUPP:
			hsotg->reset = NULL;
			break;
		default:
			dev_err(hsotg->dev, "error getting reset control %d\n",
				ret);
			return ret;
		}
	}

	if (hsotg->reset)
		reset_control_deassert(hsotg->reset);

	/* Set default UTMI width */
	hsotg->phyif = GUSBCFG_PHYIF16;

@@ -434,6 +453,9 @@ static int dwc2_driver_remove(struct platform_device *dev)
	if (hsotg->ll_hw_enabled)
		dwc2_lowlevel_hw_disable(hsotg);

	if (hsotg->reset)
		reset_control_assert(hsotg->reset);

	return 0;
}

+1 −0
Original line number Diff line number Diff line
@@ -1192,6 +1192,7 @@ static int dwc3_runtime_resume(struct device *dev)
	}

	pm_runtime_mark_last_busy(dev);
	pm_runtime_put(dev);

	return 0;
}
+1 −1
Original line number Diff line number Diff line
@@ -192,7 +192,7 @@ dwc3_ep_event_string(const struct dwc3_event_depevt *event)
	int ret;

	ret = sprintf(str, "ep%d%s: ", epnum >> 1,
			(epnum & 1) ? "in" : "in");
			(epnum & 1) ? "in" : "out");
	if (ret < 0)
		return "UNKNOWN";

+8 −1
Original line number Diff line number Diff line
@@ -243,6 +243,13 @@ static int dwc3_pci_runtime_suspend(struct device *dev)
	return -EBUSY;
}

static int dwc3_pci_runtime_resume(struct device *dev)
{
	struct platform_device *dwc3 = dev_get_drvdata(dev);

	return pm_runtime_get(&dwc3->dev);
}

static int dwc3_pci_pm_dummy(struct device *dev)
{
	/*
@@ -259,7 +266,7 @@ static int dwc3_pci_pm_dummy(struct device *dev)

static struct dev_pm_ops dwc3_pci_dev_pm_ops = {
	SET_SYSTEM_SLEEP_PM_OPS(dwc3_pci_pm_dummy, dwc3_pci_pm_dummy)
	SET_RUNTIME_PM_OPS(dwc3_pci_runtime_suspend, dwc3_pci_pm_dummy,
	SET_RUNTIME_PM_OPS(dwc3_pci_runtime_suspend, dwc3_pci_runtime_resume,
		NULL)
};

Loading