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

Commit 79600d4b authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull USB fixes from Greg KH:
 "Here is a bunch of USB fixes for 3.19-rc5.

  Most of these are gadget driver fixes, along with the xhci driver fix
  that we both reported having problems with, as well as some new device
  ids and other tiny fixes.

  All have been in linux-next with no problems"

* tag 'usb-3.19-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (43 commits)
  usb: dwc3: gadget: Stop TRB preparation after limit is reached
  usb: dwc3: gadget: Fix TRB preparation during SG
  usb: phy: mv-usb: fix usb_phy build errors
  usb: serial: handle -ENODEV quietly in generic_submit_read_urb
  usb: serial: silence all non-critical read errors
  USB: console: fix potential use after free
  USB: console: fix uninitialised ldisc semaphore
  usb: gadget: udc: atmel: fix possible oops when unloading module
  usb: gadget: gadgetfs: fix an oops in ep_write()
  usb: phy: Fix deferred probing
  OHCI: add a quirk for ULi M5237 blocking on reset
  uas: Add US_FL_NO_ATA_1X for 2 more Seagate disk enclosures
  uas: Do not blacklist ASM1153 disk enclosures
  usb: gadget: udc: avoid dereference before NULL check in ep_queue
  usb: host: ehci-tegra: request deferred probe when failing to get phy
  uas: disable UAS on Apricorn SATA dongles
  uas: Add US_FL_NO_REPORT_OPCODES for JMicron JMS566 with usb-id 0bc2:a013
  uas: Add US_FL_NO_ATA_1X for Seagate devices with usb-id 0bc2:a013
  xhci: Add broken-streams quirk for Fresco Logic FL1000G xhci controllers
  USB: EHCI: adjust error return code
  ...
parents fa818dc4 f8359dae
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -1050,7 +1050,8 @@ static int miphy28lp_init(struct phy *phy)
		ret = miphy28lp_init_usb3(miphy_phy);
		break;
	default:
		return -EINVAL;
		ret = -EINVAL;
		break;
	}

	mutex_unlock(&miphy_dev->miphy_mutex);
+3 −4
Original line number Diff line number Diff line
@@ -29,10 +29,9 @@
/**
 * omap_control_pcie_pcs - set the PCS delay count
 * @dev: the control module device
 * @id: index of the pcie PHY (should be 1 or 2)
 * @delay: 8 bit delay value
 */
void omap_control_pcie_pcs(struct device *dev, u8 id, u8 delay)
void omap_control_pcie_pcs(struct device *dev, u8 delay)
{
	u32 val;
	struct omap_control_phy	*control_phy;
@@ -55,8 +54,8 @@ void omap_control_pcie_pcs(struct device *dev, u8 id, u8 delay)

	val = readl(control_phy->pcie_pcs);
	val &= ~(OMAP_CTRL_PCIE_PCS_MASK <<
		(id * OMAP_CTRL_PCIE_PCS_DELAY_COUNT_SHIFT));
	val |= delay << (id * OMAP_CTRL_PCIE_PCS_DELAY_COUNT_SHIFT);
		OMAP_CTRL_PCIE_PCS_DELAY_COUNT_SHIFT);
	val |= (delay << OMAP_CTRL_PCIE_PCS_DELAY_COUNT_SHIFT);
	writel(val, control_phy->pcie_pcs);
}
EXPORT_SYMBOL_GPL(omap_control_pcie_pcs);
+2 −1
Original line number Diff line number Diff line
@@ -244,7 +244,8 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev)
	else
		data->num_phys = 3;

	if (of_device_is_compatible(np, "allwinner,sun4i-a10-usb-phy"))
	if (of_device_is_compatible(np, "allwinner,sun4i-a10-usb-phy") ||
	    of_device_is_compatible(np, "allwinner,sun6i-a31-usb-phy"))
		data->disc_thresh = 3;
	else
		data->disc_thresh = 2;
+6 −4
Original line number Diff line number Diff line
@@ -82,7 +82,6 @@ struct ti_pipe3 {
	struct clk		*refclk;
	struct clk		*div_clk;
	struct pipe3_dpll_map	*dpll_map;
	u8			id;
};

static struct pipe3_dpll_map dpll_map_usb[] = {
@@ -217,8 +216,13 @@ static int ti_pipe3_init(struct phy *x)
	u32 val;
	int ret = 0;

	/*
	 * Set pcie_pcs register to 0x96 for proper functioning of phy
	 * as recommended in AM572x TRM SPRUHZ6, section 18.5.2.2, table
	 * 18-1804.
	 */
	if (of_device_is_compatible(phy->dev->of_node, "ti,phy-pipe3-pcie")) {
		omap_control_pcie_pcs(phy->control_dev, phy->id, 0xF1);
		omap_control_pcie_pcs(phy->control_dev, 0x96);
		return 0;
	}

@@ -347,8 +351,6 @@ static int ti_pipe3_probe(struct platform_device *pdev)
	}

	if (of_device_is_compatible(node, "ti,phy-pipe3-pcie")) {
		if (of_property_read_u8(node, "id", &phy->id) < 0)
			phy->id = 1;

		clk = devm_clk_get(phy->dev, "dpll_ref");
		if (IS_ERR(clk)) {
+1 −1
Original line number Diff line number Diff line
@@ -669,7 +669,6 @@ static int ci_hdrc_probe(struct platform_device *pdev)
	if (!ci)
		return -ENOMEM;

	platform_set_drvdata(pdev, ci);
	ci->dev = dev;
	ci->platdata = dev_get_platdata(dev);
	ci->imx28_write_fix = !!(ci->platdata->flags &
@@ -783,6 +782,7 @@ static int ci_hdrc_probe(struct platform_device *pdev)
		}
	}

	platform_set_drvdata(pdev, ci);
	ret = devm_request_irq(dev, ci->irq, ci_irq, IRQF_SHARED,
			ci->platdata->name, ci);
	if (ret)
Loading