* [U-Boot] [PATCH] exynos: usb: Fix data abort on boards w/o vbus-gpio node in the DT
@ 2014-04-22 17:23 andrey.konovalov at linaro.org
2014-04-23 13:17 ` Marek Vasut
0 siblings, 1 reply; 2+ messages in thread
From: andrey.konovalov at linaro.org @ 2014-04-22 17:23 UTC (permalink / raw)
To: u-boot
Commit 4a271cb1b4ff doesn't take into account that fdtdec_setup_gpio()
returns success when the gpio passed to it is FDT_GPIO_NONE (no
gpio node found in the fdtdec_decode_gpio() call). This results in
calling gpio_direction_output() on invalid gpio. For this reason
executing "usb start" command on Arndale causes data abort in the
ehci-exynos driver.
Add the fdt_gpio_isvalid() check to fix that problem.
Signed-off-by: Andrey Konovalov <andrey.konovalov@linaro.org>
Cc: Julius Werner <jwerner@chromium.org>
Cc: Simon Glass <sjg@chromium.org>
Cc: Minkyu Kang <mk7.kang@samsung.com>
Cc: Marek Vasut <marex@denx.de>
---
drivers/usb/host/ehci-exynos.c | 3 ++-
drivers/usb/host/xhci-exynos5.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/host/ehci-exynos.c b/drivers/usb/host/ehci-exynos.c
index 9356878..edd91a8 100644
--- a/drivers/usb/host/ehci-exynos.c
+++ b/drivers/usb/host/ehci-exynos.c
@@ -197,7 +197,8 @@ int ehci_hcd_init(int index, enum usb_init_type init,
#ifdef CONFIG_OF_CONTROL
/* setup the Vbus gpio here */
- if (!fdtdec_setup_gpio(&ctx->vbus_gpio))
+ if (fdt_gpio_isvalid(&ctx->vbus_gpio) &&
+ !fdtdec_setup_gpio(&ctx->vbus_gpio))
gpio_direction_output(ctx->vbus_gpio.gpio, 1);
#endif
diff --git a/drivers/usb/host/xhci-exynos5.c b/drivers/usb/host/xhci-exynos5.c
index 1146d10..b4946a3 100644
--- a/drivers/usb/host/xhci-exynos5.c
+++ b/drivers/usb/host/xhci-exynos5.c
@@ -298,7 +298,8 @@ int xhci_hcd_init(int index, struct xhci_hccr **hccr, struct xhci_hcor **hcor)
#ifdef CONFIG_OF_CONTROL
/* setup the Vbus gpio here */
- if (!fdtdec_setup_gpio(&ctx->vbus_gpio))
+ if (fdt_gpio_isvalid(&ctx->vbus_gpio) &&
+ !fdtdec_setup_gpio(&ctx->vbus_gpio))
gpio_direction_output(ctx->vbus_gpio.gpio, 1);
#endif
--
1.7.9.5
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [U-Boot] [PATCH] exynos: usb: Fix data abort on boards w/o vbus-gpio node in the DT
2014-04-22 17:23 [U-Boot] [PATCH] exynos: usb: Fix data abort on boards w/o vbus-gpio node in the DT andrey.konovalov at linaro.org
@ 2014-04-23 13:17 ` Marek Vasut
0 siblings, 0 replies; 2+ messages in thread
From: Marek Vasut @ 2014-04-23 13:17 UTC (permalink / raw)
To: u-boot
On Tuesday, April 22, 2014 at 07:23:49 PM, andrey.konovalov at linaro.org wrote:
> Commit 4a271cb1b4ff doesn't take into account that fdtdec_setup_gpio()
> returns success when the gpio passed to it is FDT_GPIO_NONE (no
> gpio node found in the fdtdec_decode_gpio() call). This results in
> calling gpio_direction_output() on invalid gpio. For this reason
> executing "usb start" command on Arndale causes data abort in the
> ehci-exynos driver.
>
> Add the fdt_gpio_isvalid() check to fix that problem.
>
> Signed-off-by: Andrey Konovalov <andrey.konovalov@linaro.org>
> Cc: Julius Werner <jwerner@chromium.org>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Minkyu Kang <mk7.kang@samsung.com>
> Cc: Marek Vasut <marex@denx.de>
Applied, thanks.
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-04-23 13:17 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-04-22 17:23 [U-Boot] [PATCH] exynos: usb: Fix data abort on boards w/o vbus-gpio node in the DT andrey.konovalov at linaro.org
2014-04-23 13:17 ` Marek Vasut
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.