aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/gadget/s3c-hsudc.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-02-21 15:20:00 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-02-21 15:20:00 -0500
commit74e1a2a39355b2d3ae8c60c78d8add162c6d7183 (patch)
tree1ce09f285c505a774838a95cff7327a750dc85fc /drivers/usb/gadget/s3c-hsudc.c
parentb5c78e04dd061b776978dad61dd85357081147b0 (diff)
parent6166805c3de539a41cfcae39026c5bc273d7c6aa (diff)
Merge tag 'usb-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Pull USB patches from Greg Kroah-Hartman: "Here's the big USB merge for 3.9-rc1 Nothing major, lots of gadget fixes, and of course, xhci stuff. All of this has been in linux-next for a while, with the exception of the last 3 patches, which were reverts of patches in the tree that caused problems, they went in yesterday." * tag 'usb-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (190 commits) Revert "USB: EHCI: make ehci-vt8500 a separate driver" Revert "USB: EHCI: make ehci-orion a separate driver" Revert "USB: update host controller Kconfig entries" USB: update host controller Kconfig entries USB: EHCI: make ehci-orion a separate driver USB: EHCI: make ehci-vt8500 a separate driver USB: usb-storage: unusual_devs update for Super TOP SATA bridge USB: ehci-omap: Fix autoloading of module USB: ehci-omap: Don't free gpios that we didn't request USB: option: add Huawei "ACM" devices using protocol = vendor USB: serial: fix null-pointer dereferences on disconnect USB: option: add Yota / Megafon M100-1 4g modem drivers/usb: add missing GENERIC_HARDIRQS dependencies USB: storage: properly handle the endian issues of idProduct testusb: remove all mentions of 'usbfs' usb: gadget: imx_udc: make it depend on BROKEN usb: omap_control_usb: fix compile warning ARM: OMAP: USB: Add phy binding information ARM: OMAP2: MUSB: Specify omap4 has mailbox ARM: OMAP: devices: create device for usb part of control module ...
Diffstat (limited to 'drivers/usb/gadget/s3c-hsudc.c')
-rw-r--r--drivers/usb/gadget/s3c-hsudc.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/usb/gadget/s3c-hsudc.c b/drivers/usb/gadget/s3c-hsudc.c
index 94ca33bb990b..458965a1b138 100644
--- a/drivers/usb/gadget/s3c-hsudc.c
+++ b/drivers/usb/gadget/s3c-hsudc.c
@@ -435,7 +435,7 @@ static void s3c_hsudc_epin_intr(struct s3c_hsudc *hsudc, u32 ep_idx)
435 struct s3c_hsudc_req *hsreq; 435 struct s3c_hsudc_req *hsreq;
436 u32 csr; 436 u32 csr;
437 437
438 csr = readl((u32)hsudc->regs + S3C_ESR); 438 csr = readl(hsudc->regs + S3C_ESR);
439 if (csr & S3C_ESR_STALL) { 439 if (csr & S3C_ESR_STALL) {
440 writel(S3C_ESR_STALL, hsudc->regs + S3C_ESR); 440 writel(S3C_ESR_STALL, hsudc->regs + S3C_ESR);
441 return; 441 return;
@@ -468,7 +468,7 @@ static void s3c_hsudc_epout_intr(struct s3c_hsudc *hsudc, u32 ep_idx)
468 struct s3c_hsudc_req *hsreq; 468 struct s3c_hsudc_req *hsreq;
469 u32 csr; 469 u32 csr;
470 470
471 csr = readl((u32)hsudc->regs + S3C_ESR); 471 csr = readl(hsudc->regs + S3C_ESR);
472 if (csr & S3C_ESR_STALL) { 472 if (csr & S3C_ESR_STALL) {
473 writel(S3C_ESR_STALL, hsudc->regs + S3C_ESR); 473 writel(S3C_ESR_STALL, hsudc->regs + S3C_ESR);
474 return; 474 return;
@@ -901,12 +901,12 @@ static int s3c_hsudc_queue(struct usb_ep *_ep, struct usb_request *_req,
901 if (list_empty(&hsep->queue) && !hsep->stopped) { 901 if (list_empty(&hsep->queue) && !hsep->stopped) {
902 offset = (ep_index(hsep)) ? S3C_ESR : S3C_EP0SR; 902 offset = (ep_index(hsep)) ? S3C_ESR : S3C_EP0SR;
903 if (ep_is_in(hsep)) { 903 if (ep_is_in(hsep)) {
904 csr = readl((u32)hsudc->regs + offset); 904 csr = readl(hsudc->regs + offset);
905 if (!(csr & S3C_ESR_TX_SUCCESS) && 905 if (!(csr & S3C_ESR_TX_SUCCESS) &&
906 (s3c_hsudc_write_fifo(hsep, hsreq) == 1)) 906 (s3c_hsudc_write_fifo(hsep, hsreq) == 1))
907 hsreq = NULL; 907 hsreq = NULL;
908 } else { 908 } else {
909 csr = readl((u32)hsudc->regs + offset); 909 csr = readl(hsudc->regs + offset);
910 if ((csr & S3C_ESR_RX_SUCCESS) 910 if ((csr & S3C_ESR_RX_SUCCESS)
911 && (s3c_hsudc_read_fifo(hsep, hsreq) == 1)) 911 && (s3c_hsudc_read_fifo(hsep, hsreq) == 1))
912 hsreq = NULL; 912 hsreq = NULL;
@@ -1254,7 +1254,7 @@ static int s3c_hsudc_vbus_draw(struct usb_gadget *gadget, unsigned mA)
1254 return -EOPNOTSUPP; 1254 return -EOPNOTSUPP;
1255} 1255}
1256 1256
1257static struct usb_gadget_ops s3c_hsudc_gadget_ops = { 1257static const struct usb_gadget_ops s3c_hsudc_gadget_ops = {
1258 .get_frame = s3c_hsudc_gadget_getframe, 1258 .get_frame = s3c_hsudc_gadget_getframe,
1259 .udc_start = s3c_hsudc_start, 1259 .udc_start = s3c_hsudc_start,
1260 .udc_stop = s3c_hsudc_stop, 1260 .udc_stop = s3c_hsudc_stop,
@@ -1286,7 +1286,7 @@ static int s3c_hsudc_probe(struct platform_device *pdev)
1286 for (i = 0; i < ARRAY_SIZE(hsudc->supplies); i++) 1286 for (i = 0; i < ARRAY_SIZE(hsudc->supplies); i++)
1287 hsudc->supplies[i].supply = s3c_hsudc_supply_names[i]; 1287 hsudc->supplies[i].supply = s3c_hsudc_supply_names[i];
1288 1288
1289 ret = regulator_bulk_get(dev, ARRAY_SIZE(hsudc->supplies), 1289 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(hsudc->supplies),
1290 hsudc->supplies); 1290 hsudc->supplies);
1291 if (ret != 0) { 1291 if (ret != 0) {
1292 dev_err(dev, "failed to request supplies: %d\n", ret); 1292 dev_err(dev, "failed to request supplies: %d\n", ret);
@@ -1366,7 +1366,6 @@ err_res:
1366 if (!IS_ERR_OR_NULL(hsudc->transceiver)) 1366 if (!IS_ERR_OR_NULL(hsudc->transceiver))
1367 usb_put_phy(hsudc->transceiver); 1367 usb_put_phy(hsudc->transceiver);
1368 1368
1369 regulator_bulk_free(ARRAY_SIZE(hsudc->supplies), hsudc->supplies);
1370err_supplies: 1369err_supplies:
1371 return ret; 1370 return ret;
1372} 1371}