diff options
| author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-01-07 13:09:49 -0500 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-01-07 13:09:49 -0500 |
| commit | e4602391e2360a88c110d8ba895991bd1d4dbabc (patch) | |
| tree | 6b8dea8645ce3e81e9a19265b6ba960512d486e7 | |
| parent | d1c3ed669a2d452cacfb48c2d171a1f364dae2ed (diff) | |
| parent | 2ac788f705e5118dd45204e7a5bc8d5bb6873835 (diff) | |
Merge tag 'fixes-for-v3.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus
Felipe says:
usb: fixes for v3.8-rc2
Here is the first set of fixes for v3.8-rc cycle.
There is a build fix for musb's dsps glue layer caused
by some header cleanup on the OMAP tree.
Marvel's USB drivers got a fix up for clk API usage
switching over to clk_prepare() calls.
u_serial has a bug fix for a missing wake_up() which
would make gs_cleanup() wait forever for gs_close()
to finish.
A minor bug fix on dwc3's debugfs interface which
would make us read wrong addresses when dumping
all registers.
dummy_hcd learned how to enumerate g_multi.
s3c-hsotg now understands that we shouldn't kfree()
memory allocated with devm_*.
Other than that, there are a bunch of other minor fixes
on renesas_usbhs, tcm_usb_gadget and amd5536udc.
All patches have been pending on mailing for many weeks
and shouldn't cause any problems.
| -rw-r--r-- | drivers/usb/dwc3/debugfs.c | 2 | ||||
| -rw-r--r-- | drivers/usb/gadget/amd5536udc.c | 4 | ||||
| -rw-r--r-- | drivers/usb/gadget/dummy_hcd.c | 9 | ||||
| -rw-r--r-- | drivers/usb/gadget/mv_udc_core.c | 4 | ||||
| -rw-r--r-- | drivers/usb/gadget/s3c-hsotg.c | 5 | ||||
| -rw-r--r-- | drivers/usb/gadget/tcm_usb_gadget.c | 3 | ||||
| -rw-r--r-- | drivers/usb/gadget/u_serial.c | 2 | ||||
| -rw-r--r-- | drivers/usb/host/ehci-mv.c | 4 | ||||
| -rw-r--r-- | drivers/usb/musb/musb_core.c | 5 | ||||
| -rw-r--r-- | drivers/usb/musb/musb_dsps.c | 5 | ||||
| -rw-r--r-- | drivers/usb/otg/Kconfig | 2 | ||||
| -rw-r--r-- | drivers/usb/otg/mv_otg.c | 4 | ||||
| -rw-r--r-- | drivers/usb/renesas_usbhs/mod_gadget.c | 22 | ||||
| -rw-r--r-- | drivers/usb/renesas_usbhs/mod_host.c | 3 |
14 files changed, 37 insertions, 37 deletions
diff --git a/drivers/usb/dwc3/debugfs.c b/drivers/usb/dwc3/debugfs.c index 92604b4f9712..5945aadaa1c9 100644 --- a/drivers/usb/dwc3/debugfs.c +++ b/drivers/usb/dwc3/debugfs.c | |||
| @@ -56,7 +56,7 @@ | |||
| 56 | #define dump_register(nm) \ | 56 | #define dump_register(nm) \ |
| 57 | { \ | 57 | { \ |
| 58 | .name = __stringify(nm), \ | 58 | .name = __stringify(nm), \ |
| 59 | .offset = DWC3_ ##nm, \ | 59 | .offset = DWC3_ ##nm - DWC3_GLOBALS_REGS_START, \ |
| 60 | } | 60 | } |
| 61 | 61 | ||
| 62 | static const struct debugfs_reg32 dwc3_regs[] = { | 62 | static const struct debugfs_reg32 dwc3_regs[] = { |
diff --git a/drivers/usb/gadget/amd5536udc.c b/drivers/usb/gadget/amd5536udc.c index fc0ec5e0d58e..d9f6b9372491 100644 --- a/drivers/usb/gadget/amd5536udc.c +++ b/drivers/usb/gadget/amd5536udc.c | |||
| @@ -3231,7 +3231,7 @@ static int udc_pci_probe( | |||
| 3231 | } | 3231 | } |
| 3232 | 3232 | ||
| 3233 | if (!pdev->irq) { | 3233 | if (!pdev->irq) { |
| 3234 | dev_err(&dev->pdev->dev, "irq not set\n"); | 3234 | dev_err(&pdev->dev, "irq not set\n"); |
| 3235 | kfree(dev); | 3235 | kfree(dev); |
| 3236 | dev = NULL; | 3236 | dev = NULL; |
| 3237 | retval = -ENODEV; | 3237 | retval = -ENODEV; |
| @@ -3250,7 +3250,7 @@ static int udc_pci_probe( | |||
| 3250 | dev->txfifo = (u32 __iomem *)(dev->virt_addr + UDC_TXFIFO_ADDR); | 3250 | dev->txfifo = (u32 __iomem *)(dev->virt_addr + UDC_TXFIFO_ADDR); |
| 3251 | 3251 | ||
| 3252 | if (request_irq(pdev->irq, udc_irq, IRQF_SHARED, name, dev) != 0) { | 3252 | if (request_irq(pdev->irq, udc_irq, IRQF_SHARED, name, dev) != 0) { |
| 3253 | dev_dbg(&dev->pdev->dev, "request_irq(%d) fail\n", pdev->irq); | 3253 | dev_dbg(&pdev->dev, "request_irq(%d) fail\n", pdev->irq); |
| 3254 | kfree(dev); | 3254 | kfree(dev); |
| 3255 | dev = NULL; | 3255 | dev = NULL; |
| 3256 | retval = -EBUSY; | 3256 | retval = -EBUSY; |
diff --git a/drivers/usb/gadget/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c index 95d584dbed13..8cf0c0f6fa1f 100644 --- a/drivers/usb/gadget/dummy_hcd.c +++ b/drivers/usb/gadget/dummy_hcd.c | |||
| @@ -130,10 +130,7 @@ static const char ep0name[] = "ep0"; | |||
| 130 | static const char *const ep_name[] = { | 130 | static const char *const ep_name[] = { |
| 131 | ep0name, /* everyone has ep0 */ | 131 | ep0name, /* everyone has ep0 */ |
| 132 | 132 | ||
| 133 | /* act like a net2280: high speed, six configurable endpoints */ | 133 | /* act like a pxa250: fifteen fixed function endpoints */ |
| 134 | "ep-a", "ep-b", "ep-c", "ep-d", "ep-e", "ep-f", | ||
| 135 | |||
| 136 | /* or like pxa250: fifteen fixed function endpoints */ | ||
| 137 | "ep1in-bulk", "ep2out-bulk", "ep3in-iso", "ep4out-iso", "ep5in-int", | 134 | "ep1in-bulk", "ep2out-bulk", "ep3in-iso", "ep4out-iso", "ep5in-int", |
| 138 | "ep6in-bulk", "ep7out-bulk", "ep8in-iso", "ep9out-iso", "ep10in-int", | 135 | "ep6in-bulk", "ep7out-bulk", "ep8in-iso", "ep9out-iso", "ep10in-int", |
| 139 | "ep11in-bulk", "ep12out-bulk", "ep13in-iso", "ep14out-iso", | 136 | "ep11in-bulk", "ep12out-bulk", "ep13in-iso", "ep14out-iso", |
| @@ -141,6 +138,10 @@ static const char *const ep_name[] = { | |||
| 141 | 138 | ||
| 142 | /* or like sa1100: two fixed function endpoints */ | 139 | /* or like sa1100: two fixed function endpoints */ |
| 143 | "ep1out-bulk", "ep2in-bulk", | 140 | "ep1out-bulk", "ep2in-bulk", |
| 141 | |||
| 142 | /* and now some generic EPs so we have enough in multi config */ | ||
| 143 | "ep3out", "ep4in", "ep5out", "ep6out", "ep7in", "ep8out", "ep9in", | ||
| 144 | "ep10out", "ep11out", "ep12in", "ep13out", "ep14in", "ep15out", | ||
| 144 | }; | 145 | }; |
| 145 | #define DUMMY_ENDPOINTS ARRAY_SIZE(ep_name) | 146 | #define DUMMY_ENDPOINTS ARRAY_SIZE(ep_name) |
| 146 | 147 | ||
diff --git a/drivers/usb/gadget/mv_udc_core.c b/drivers/usb/gadget/mv_udc_core.c index 379aac7b82fc..6e8b1272ebce 100644 --- a/drivers/usb/gadget/mv_udc_core.c +++ b/drivers/usb/gadget/mv_udc_core.c | |||
| @@ -1012,7 +1012,7 @@ static void udc_clock_enable(struct mv_udc *udc) | |||
| 1012 | unsigned int i; | 1012 | unsigned int i; |
| 1013 | 1013 | ||
| 1014 | for (i = 0; i < udc->clknum; i++) | 1014 | for (i = 0; i < udc->clknum; i++) |
| 1015 | clk_enable(udc->clk[i]); | 1015 | clk_prepare_enable(udc->clk[i]); |
| 1016 | } | 1016 | } |
| 1017 | 1017 | ||
| 1018 | static void udc_clock_disable(struct mv_udc *udc) | 1018 | static void udc_clock_disable(struct mv_udc *udc) |
| @@ -1020,7 +1020,7 @@ static void udc_clock_disable(struct mv_udc *udc) | |||
| 1020 | unsigned int i; | 1020 | unsigned int i; |
| 1021 | 1021 | ||
| 1022 | for (i = 0; i < udc->clknum; i++) | 1022 | for (i = 0; i < udc->clknum; i++) |
| 1023 | clk_disable(udc->clk[i]); | 1023 | clk_disable_unprepare(udc->clk[i]); |
| 1024 | } | 1024 | } |
| 1025 | 1025 | ||
| 1026 | static void udc_stop(struct mv_udc *udc) | 1026 | static void udc_stop(struct mv_udc *udc) |
diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c index 141971d9051e..439c3f972f8c 100644 --- a/drivers/usb/gadget/s3c-hsotg.c +++ b/drivers/usb/gadget/s3c-hsotg.c | |||
| @@ -3477,12 +3477,11 @@ static void s3c_hsotg_delete_debug(struct s3c_hsotg *hsotg) | |||
| 3477 | /** | 3477 | /** |
| 3478 | * s3c_hsotg_release - release callback for hsotg device | 3478 | * s3c_hsotg_release - release callback for hsotg device |
| 3479 | * @dev: Device to for which release is called | 3479 | * @dev: Device to for which release is called |
| 3480 | * | ||
| 3481 | * Nothing to do as the resource is allocated using devm_ API. | ||
| 3480 | */ | 3482 | */ |
| 3481 | static void s3c_hsotg_release(struct device *dev) | 3483 | static void s3c_hsotg_release(struct device *dev) |
| 3482 | { | 3484 | { |
| 3483 | struct s3c_hsotg *hsotg = dev_get_drvdata(dev); | ||
| 3484 | |||
| 3485 | kfree(hsotg); | ||
| 3486 | } | 3485 | } |
| 3487 | 3486 | ||
| 3488 | /** | 3487 | /** |
diff --git a/drivers/usb/gadget/tcm_usb_gadget.c b/drivers/usb/gadget/tcm_usb_gadget.c index 4f7f76f00c74..7cacd6ae818e 100644 --- a/drivers/usb/gadget/tcm_usb_gadget.c +++ b/drivers/usb/gadget/tcm_usb_gadget.c | |||
| @@ -1794,9 +1794,10 @@ static int tcm_usbg_drop_nexus(struct usbg_tpg *tpg) | |||
| 1794 | tpg->tpg_nexus = NULL; | 1794 | tpg->tpg_nexus = NULL; |
| 1795 | 1795 | ||
| 1796 | kfree(tv_nexus); | 1796 | kfree(tv_nexus); |
| 1797 | ret = 0; | ||
| 1797 | out: | 1798 | out: |
| 1798 | mutex_unlock(&tpg->tpg_mutex); | 1799 | mutex_unlock(&tpg->tpg_mutex); |
| 1799 | return 0; | 1800 | return ret; |
| 1800 | } | 1801 | } |
| 1801 | 1802 | ||
| 1802 | static ssize_t tcm_usbg_tpg_store_nexus( | 1803 | static ssize_t tcm_usbg_tpg_store_nexus( |
diff --git a/drivers/usb/gadget/u_serial.c b/drivers/usb/gadget/u_serial.c index d0f95482f40e..598dcc1212f0 100644 --- a/drivers/usb/gadget/u_serial.c +++ b/drivers/usb/gadget/u_serial.c | |||
| @@ -887,7 +887,7 @@ static void gs_close(struct tty_struct *tty, struct file *file) | |||
| 887 | pr_debug("gs_close: ttyGS%d (%p,%p) done!\n", | 887 | pr_debug("gs_close: ttyGS%d (%p,%p) done!\n", |
| 888 | port->port_num, tty, file); | 888 | port->port_num, tty, file); |
| 889 | 889 | ||
| 890 | wake_up_interruptible(&port->port.close_wait); | 890 | wake_up(&port->port.close_wait); |
| 891 | exit: | 891 | exit: |
| 892 | spin_unlock_irq(&port->port_lock); | 892 | spin_unlock_irq(&port->port_lock); |
| 893 | } | 893 | } |
diff --git a/drivers/usb/host/ehci-mv.c b/drivers/usb/host/ehci-mv.c index f7bfc0b898b9..6c56297ea16b 100644 --- a/drivers/usb/host/ehci-mv.c +++ b/drivers/usb/host/ehci-mv.c | |||
| @@ -43,7 +43,7 @@ static void ehci_clock_enable(struct ehci_hcd_mv *ehci_mv) | |||
| 43 | unsigned int i; | 43 | unsigned int i; |
| 44 | 44 | ||
| 45 | for (i = 0; i < ehci_mv->clknum; i++) | 45 | for (i = 0; i < ehci_mv->clknum; i++) |
| 46 | clk_enable(ehci_mv->clk[i]); | 46 | clk_prepare_enable(ehci_mv->clk[i]); |
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | static void ehci_clock_disable(struct ehci_hcd_mv *ehci_mv) | 49 | static void ehci_clock_disable(struct ehci_hcd_mv *ehci_mv) |
| @@ -51,7 +51,7 @@ static void ehci_clock_disable(struct ehci_hcd_mv *ehci_mv) | |||
| 51 | unsigned int i; | 51 | unsigned int i; |
| 52 | 52 | ||
| 53 | for (i = 0; i < ehci_mv->clknum; i++) | 53 | for (i = 0; i < ehci_mv->clknum; i++) |
| 54 | clk_disable(ehci_mv->clk[i]); | 54 | clk_disable_unprepare(ehci_mv->clk[i]); |
| 55 | } | 55 | } |
| 56 | < | ||
