diff options
author | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
---|---|---|
committer | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
commit | ada47b5fe13d89735805b566185f4885f5a3f750 (patch) | |
tree | 644b88f8a71896307d71438e9b3af49126ffb22b /drivers/usb/gadget/atmel_usba_udc.c | |
parent | 43e98717ad40a4ae64545b5ba047c7b86aa44f4f (diff) | |
parent | 3280f21d43ee541f97f8cda5792150d2dbec20d5 (diff) |
Merge branch 'wip-2.6.34' into old-private-masterarchived-private-master
Diffstat (limited to 'drivers/usb/gadget/atmel_usba_udc.c')
-rw-r--r-- | drivers/usb/gadget/atmel_usba_udc.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/usb/gadget/atmel_usba_udc.c b/drivers/usb/gadget/atmel_usba_udc.c index 4e970cf0e29a..75a256f3d45b 100644 --- a/drivers/usb/gadget/atmel_usba_udc.c +++ b/drivers/usb/gadget/atmel_usba_udc.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/interrupt.h> | 13 | #include <linux/interrupt.h> |
14 | #include <linux/io.h> | 14 | #include <linux/io.h> |
15 | #include <linux/slab.h> | ||
15 | #include <linux/device.h> | 16 | #include <linux/device.h> |
16 | #include <linux/dma-mapping.h> | 17 | #include <linux/dma-mapping.h> |
17 | #include <linux/list.h> | 18 | #include <linux/list.h> |
@@ -320,7 +321,7 @@ static inline void usba_cleanup_debugfs(struct usba_udc *udc) | |||
320 | static int vbus_is_present(struct usba_udc *udc) | 321 | static int vbus_is_present(struct usba_udc *udc) |
321 | { | 322 | { |
322 | if (gpio_is_valid(udc->vbus_pin)) | 323 | if (gpio_is_valid(udc->vbus_pin)) |
323 | return gpio_get_value(udc->vbus_pin); | 324 | return gpio_get_value(udc->vbus_pin) ^ udc->vbus_pin_inverted; |
324 | 325 | ||
325 | /* No Vbus detection: Assume always present */ | 326 | /* No Vbus detection: Assume always present */ |
326 | return 1; | 327 | return 1; |
@@ -1763,7 +1764,7 @@ static irqreturn_t usba_vbus_irq(int irq, void *devid) | |||
1763 | if (!udc->driver) | 1764 | if (!udc->driver) |
1764 | goto out; | 1765 | goto out; |
1765 | 1766 | ||
1766 | vbus = gpio_get_value(udc->vbus_pin); | 1767 | vbus = vbus_is_present(udc); |
1767 | if (vbus != udc->vbus_prev) { | 1768 | if (vbus != udc->vbus_prev) { |
1768 | if (vbus) { | 1769 | if (vbus) { |
1769 | toggle_bias(1); | 1770 | toggle_bias(1); |
@@ -1914,14 +1915,14 @@ static int __init usba_udc_probe(struct platform_device *pdev) | |||
1914 | udc->vbus_pin = -ENODEV; | 1915 | udc->vbus_pin = -ENODEV; |
1915 | 1916 | ||
1916 | ret = -ENOMEM; | 1917 | ret = -ENOMEM; |
1917 | udc->regs = ioremap(regs->start, regs->end - regs->start + 1); | 1918 | udc->regs = ioremap(regs->start, resource_size(regs)); |
1918 | if (!udc->regs) { | 1919 | if (!udc->regs) { |
1919 | dev_err(&pdev->dev, "Unable to map I/O memory, aborting.\n"); | 1920 | dev_err(&pdev->dev, "Unable to map I/O memory, aborting.\n"); |
1920 | goto err_map_regs; | 1921 | goto err_map_regs; |
1921 | } | 1922 | } |
1922 | dev_info(&pdev->dev, "MMIO registers at 0x%08lx mapped at %p\n", | 1923 | dev_info(&pdev->dev, "MMIO registers at 0x%08lx mapped at %p\n", |
1923 | (unsigned long)regs->start, udc->regs); | 1924 | (unsigned long)regs->start, udc->regs); |
1924 | udc->fifo = ioremap(fifo->start, fifo->end - fifo->start + 1); | 1925 | udc->fifo = ioremap(fifo->start, resource_size(fifo)); |
1925 | if (!udc->fifo) { | 1926 | if (!udc->fifo) { |
1926 | dev_err(&pdev->dev, "Unable to map FIFO, aborting.\n"); | 1927 | dev_err(&pdev->dev, "Unable to map FIFO, aborting.\n"); |
1927 | goto err_map_fifo; | 1928 | goto err_map_fifo; |
@@ -2000,6 +2001,7 @@ static int __init usba_udc_probe(struct platform_device *pdev) | |||
2000 | if (gpio_is_valid(pdata->vbus_pin)) { | 2001 | if (gpio_is_valid(pdata->vbus_pin)) { |
2001 | if (!gpio_request(pdata->vbus_pin, "atmel_usba_udc")) { | 2002 | if (!gpio_request(pdata->vbus_pin, "atmel_usba_udc")) { |
2002 | udc->vbus_pin = pdata->vbus_pin; | 2003 | udc->vbus_pin = pdata->vbus_pin; |
2004 | udc->vbus_pin_inverted = pdata->vbus_pin_inverted; | ||
2003 | 2005 | ||
2004 | ret = request_irq(gpio_to_irq(udc->vbus_pin), | 2006 | ret = request_irq(gpio_to_irq(udc->vbus_pin), |
2005 | usba_vbus_irq, 0, | 2007 | usba_vbus_irq, 0, |