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

Commit befdfffd authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull USB / PHY fixes from Greg KH:
 "Here are a number of small USB and PHY driver fixes for 4.9-rc5

  Nothing major, just small fixes for reported issues, all of these have
  been in linux-next for a while with no reported issues"

* tag 'usb-4.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
  USB: cdc-acm: fix TIOCMIWAIT
  cdc-acm: fix uninitialized variable
  drivers/usb: Skip auto handoff for TI and RENESAS usb controllers
  usb: musb: remove duplicated actions
  usb: musb: da8xx: Don't print phy error on -EPROBE_DEFER
  phy: sun4i: check PMU presence when poking unknown bit of pmu
  phy-rockchip-pcie: remove deassert of phy_rst from exit callback
  phy: da8xx-usb: rename the ohci device to ohci-da8xx
  phy: Add reset callback for not generic phy
  uwb: fix device reference leaks
  usb: gadget: u_ether: remove interrupt throttling
  usb: dwc3: st: add missing <linux/pinctrl/consumer.h> include
  usb: dwc3: Fix error handling for core init
parents 348ce85b 18266403
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -198,7 +198,8 @@ static int da8xx_usb_phy_probe(struct platform_device *pdev)
	} else {
		int ret;

		ret = phy_create_lookup(d_phy->usb11_phy, "usb-phy", "ohci.0");
		ret = phy_create_lookup(d_phy->usb11_phy, "usb-phy",
					"ohci-da8xx");
		if (ret)
			dev_warn(dev, "Failed to create usb11 phy lookup\n");
		ret = phy_create_lookup(d_phy->usb20_phy, "usb-phy",
@@ -216,7 +217,7 @@ static int da8xx_usb_phy_remove(struct platform_device *pdev)

	if (!pdev->dev.of_node) {
		phy_remove_lookup(d_phy->usb20_phy, "usb-phy", "musb-da8xx");
		phy_remove_lookup(d_phy->usb11_phy, "usb-phy", "ohci.0");
		phy_remove_lookup(d_phy->usb11_phy, "usb-phy", "ohci-da8xx");
	}

	return 0;
+1 −12
Original line number Diff line number Diff line
@@ -249,21 +249,10 @@ static int rockchip_pcie_phy_init(struct phy *phy)
static int rockchip_pcie_phy_exit(struct phy *phy)
{
	struct rockchip_pcie_phy *rk_phy = phy_get_drvdata(phy);
	int err = 0;

	clk_disable_unprepare(rk_phy->clk_pciephy_ref);

	err = reset_control_deassert(rk_phy->phy_rst);
	if (err) {
		dev_err(&phy->dev, "deassert phy_rst err %d\n", err);
		goto err_reset;
	}

	return err;

err_reset:
	clk_prepare_enable(rk_phy->clk_pciephy_ref);
	return err;
	return 0;
}

static const struct phy_ops ops = {
+1 −1
Original line number Diff line number Diff line
@@ -264,7 +264,7 @@ static int sun4i_usb_phy_init(struct phy *_phy)
		return ret;
	}

	if (data->cfg->enable_pmu_unk1) {
	if (phy->pmu && data->cfg->enable_pmu_unk1) {
		val = readl(phy->pmu + REG_PMU_UNK1);
		writel(val & ~2, phy->pmu + REG_PMU_UNK1);
	}
+2 −2
Original line number Diff line number Diff line
@@ -932,8 +932,6 @@ static int wait_serial_change(struct acm *acm, unsigned long arg)
	DECLARE_WAITQUEUE(wait, current);
	struct async_icount old, new;

	if (arg & (TIOCM_DSR | TIOCM_RI | TIOCM_CD))
		return -EINVAL;
	do {
		spin_lock_irq(&acm->read_lock);
		old = acm->oldcount;
@@ -1161,6 +1159,8 @@ static int acm_probe(struct usb_interface *intf,
	if (quirks == IGNORE_DEVICE)
		return -ENODEV;

	memset(&h, 0x00, sizeof(struct usb_cdc_parsed_header));

	num_rx_buf = (quirks == SINGLE_RX_URB) ? 1 : ACM_NR;

	/* handle quirks deadly to normal probing*/
+2 −3
Original line number Diff line number Diff line
@@ -769,15 +769,14 @@ static int dwc3_core_init(struct dwc3 *dwc)
	return 0;

err4:
	phy_power_off(dwc->usb2_generic_phy);
	phy_power_off(dwc->usb3_generic_phy);

err3:
	phy_power_off(dwc->usb3_generic_phy);
	phy_power_off(dwc->usb2_generic_phy);

err2:
	usb_phy_set_suspend(dwc->usb2_phy, 1);
	usb_phy_set_suspend(dwc->usb3_phy, 1);
	dwc3_core_exit(dwc);

err1:
	usb_phy_shutdown(dwc->usb2_phy);
Loading