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

Commit 4ed54764 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull USB fixes from Greg KH:
 "Here are none fixes for various USB driver problems.  The majority are
  gadget/musb fixes, but there are some new device ids in here as well"

* tag 'usb-3.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
  usb: chipidea: add Intel Clovertrail pci id
  usb: gadget: s3c-hsotg: fix can_write limit for non-periodic endpoints
  usb: gadget: f_fs: fix error handling
  usb: musb: dsps: do not bind to "musb-hdrc"
  USB: serial: option: Ignore card reader interface on Huawei E1750
  usb: musb: gadget: fix otg active status flag
  usb: phy: gpio-vbus: fix deferred probe from __init
  usb: gadget: pxa25x_udc: fix deferred probe from __init
  usb: musb: fix otg default state
parents e3757a1f a214339d
Loading
Loading
Loading
Loading
+6 −1
Original line number Original line Diff line number Diff line
@@ -129,7 +129,12 @@ static DEFINE_PCI_DEVICE_TABLE(ci_hdrc_pci_id_table) = {
		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x0829),
		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x0829),
		.driver_data = (kernel_ulong_t)&penwell_pci_platdata,
		.driver_data = (kernel_ulong_t)&penwell_pci_platdata,
	},
	},
	{ 0, 0, 0, 0, 0, 0, 0 /* end: all zeroes */ }
	{
		/* Intel Clovertrail */
		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xe006),
		.driver_data = (kernel_ulong_t)&penwell_pci_platdata,
	},
	{ 0 } /* end: all zeroes */
};
};
MODULE_DEVICE_TABLE(pci, ci_hdrc_pci_id_table);
MODULE_DEVICE_TABLE(pci, ci_hdrc_pci_id_table);


+2 −0
Original line number Original line Diff line number Diff line
@@ -2256,6 +2256,8 @@ static int ffs_func_bind(struct usb_configuration *c,
				   data->raw_descs + ret,
				   data->raw_descs + ret,
				   (sizeof data->raw_descs) - ret,
				   (sizeof data->raw_descs) - ret,
				   __ffs_func_bind_do_descs, func);
				   __ffs_func_bind_do_descs, func);
		if (unlikely(ret < 0))
			goto error;
	}
	}


	/*
	/*
+5 −4
Original line number Original line Diff line number Diff line
@@ -2054,7 +2054,7 @@ static struct pxa25x_udc memory = {
/*
/*
 *	probe - binds to the platform device
 *	probe - binds to the platform device
 */
 */
static int __init pxa25x_udc_probe(struct platform_device *pdev)
static int pxa25x_udc_probe(struct platform_device *pdev)
{
{
	struct pxa25x_udc *dev = &memory;
	struct pxa25x_udc *dev = &memory;
	int retval, irq;
	int retval, irq;
@@ -2203,7 +2203,7 @@ static void pxa25x_udc_shutdown(struct platform_device *_dev)
	pullup_off();
	pullup_off();
}
}


static int __exit pxa25x_udc_remove(struct platform_device *pdev)
static int pxa25x_udc_remove(struct platform_device *pdev)
{
{
	struct pxa25x_udc *dev = platform_get_drvdata(pdev);
	struct pxa25x_udc *dev = platform_get_drvdata(pdev);


@@ -2294,7 +2294,8 @@ static int pxa25x_udc_resume(struct platform_device *dev)


static struct platform_driver udc_driver = {
static struct platform_driver udc_driver = {
	.shutdown	= pxa25x_udc_shutdown,
	.shutdown	= pxa25x_udc_shutdown,
	.remove		= __exit_p(pxa25x_udc_remove),
	.probe		= pxa25x_udc_probe,
	.remove		= pxa25x_udc_remove,
	.suspend	= pxa25x_udc_suspend,
	.suspend	= pxa25x_udc_suspend,
	.resume		= pxa25x_udc_resume,
	.resume		= pxa25x_udc_resume,
	.driver		= {
	.driver		= {
@@ -2303,7 +2304,7 @@ static struct platform_driver udc_driver = {
	},
	},
};
};


module_platform_driver_probe(udc_driver, pxa25x_udc_probe);
module_platform_driver(udc_driver);


MODULE_DESCRIPTION(DRIVER_DESC);
MODULE_DESCRIPTION(DRIVER_DESC);
MODULE_AUTHOR("Frank Becker, Robert Schwebel, David Brownell");
MODULE_AUTHOR("Frank Becker, Robert Schwebel, David Brownell");
+1 −1
Original line number Original line Diff line number Diff line
@@ -543,7 +543,7 @@ static int s3c_hsotg_write_fifo(struct s3c_hsotg *hsotg,
	 * FIFO, requests of >512 cause the endpoint to get stuck with a
	 * FIFO, requests of >512 cause the endpoint to get stuck with a
	 * fragment of the end of the transfer in it.
	 * fragment of the end of the transfer in it.
	 */
	 */
	if (can_write > 512)
	if (can_write > 512 && !periodic)
		can_write = 512;
		can_write = 512;


	/*
	/*
+3 −0
Original line number Original line Diff line number Diff line
@@ -535,6 +535,9 @@ static int dsps_probe(struct platform_device *pdev)
	struct dsps_glue *glue;
	struct dsps_glue *glue;
	int ret;
	int ret;


	if (!strcmp(pdev->name, "musb-hdrc"))
		return -ENODEV;

	match = of_match_node(musb_dsps_of_match, pdev->dev.of_node);
	match = of_match_node(musb_dsps_of_match, pdev->dev.of_node);
	if (!match) {
	if (!match) {
		dev_err(&pdev->dev, "fail to get matching of_match struct\n");
		dev_err(&pdev->dev, "fail to get matching of_match struct\n");
Loading