Re: [PATCH] ARM: hw_breakpoint: Enable debug powerdown only if system supports 'has_ossr'

2013-03-17 Thread Santosh Shilimkar
On Friday 15 March 2013 10:30 AM, Will Deacon wrote:
> On Thu, Mar 14, 2013 at 01:08:00PM +0530, Santosh Shilimkar wrote:
>> Will,
> 
> Hi guys,
> 
> I'm out of the office at the moment and have really terrible connectivity,
> so I can't do too much until next week. However, I don't think adding the
> has_ossr check is the right fix for this problem.
> 
>> On Wednesday 13 March 2013 05:59 PM, Lokesh Vutla wrote:
>>> Hi Dietmar,
>>> On Wednesday 13 March 2013 05:35 PM, Dietmar Eggemann wrote:
 On 13/03/13 06:52, Lokesh Vutla wrote:
> Commit {9a6eb31 ARM: hw_breakpoint: Debug powerdown support for
> self-hosted
> debug} introduces debug powerdown support for self-hosted debug.
> While merging the patch 'has_ossr' check was removed which
> was needed for hardwares which doesn't support self-hosted debug.
> Pandaboard (A9) is one such hardware and Dietmar's orginial
> patch did mention this issue.
> Without that check on Panda with CPUIDLE enabled, a flood of
> below messages thrown.
>
> [ 3.597930] hw-breakpoint: CPU 0 failed to disable vector catch
> [ 3.597991] hw-breakpoint: CPU 1 failed to disable vector catch
> 
> Ok, so this means that we've taken an undefined instruction exception while
> trying to reset the debug registers on the PM_EXIT path. Now, the code there
> deals with CPUs that don't have the save/restore registers just fine, so
> that shouldn't have anything to do with this problem, particularly if the
> bit that is tripping us up is related to clearing vector catch.
>
Agree.
 
> Furthermore, I was under the impression that hw_breakpoint did actually
> work on panda, which implies that a cold boot *does* manage to reset the
> registers (can you please confirm this by looking in your dmesg during
> boot?). In that case, it seems as though a PM cycle is powering down a
> bunch of debug logic that was powered up during boot, and then we trip over
> because we can't access the register bank.
> 
Actually it seems to be without PM. Thanks to analysis from Lokesh, the issue
can be seen even with just suspend or cpu hotplug. So cold boot as such is
fine.

> The proper solution to this problem requires us to establish exactly what is
> turning off the debug registers, and then having an OMAP PM notifier to
> enable it again. Assuming this has always been the case, I expect hardware
> debug across PM fails silently with older kernels.
> 
This has been always the case it seems with CPU power cycle.
After the CPU is power cycled, 'DBGAUTHSTATUS' reads '0xaa' rather
than '0xaf' which means 'DBGEN = 0' and hence code fails to enable
monitor mode. This happens on both secure and GP devices and it can not
be patched since the secure code is ROM'ed. We didn't notice so far
because hw_breakpoint support was not default enabled on OMAP till the
multi-platform build.

>> I was also wondering whether we should just warn once rather
>> than continuous warnings in the notifier. Patch is end of the
>> email.
> 
> Could do, but I'd like to see a fix for the real issue before we simply hide
> the warnings :)
> 
Agree here too. As evident above, the feature won't work on OMAP4
devices with PM and hence some solution is needed.

What you think of below ?


>From d74b4264f6a5967b0f7ada96aad77ab0ac30dbed Mon Sep 17 00:00:00 2001
From: Santosh Shilimkar 
Date: Mon, 18 Mar 2013 11:59:04 +0530
Subject: [PATCH] ARM: hw_breakpoints: Check for CPU debug availability before
 enabling it

CPU debug features like hardware break, watchpoints can be used only when
the debug mode is enabled and available for non-secure mode.

Hence check 'DBGAUTHSTATUS.DBGEN' before proceeding to enable the
features.

Thanks to Will for pointers and Lokesh for the analysis of the issue on
OMAP4 where after a CPU power cycle, debug mode gets disabled.

Cc: Will Deacon 

Tested-by: Lokesh Vutla 
Signed-off-by: Santosh Shilimkar 
---
 arch/arm/kernel/hw_breakpoint.c |8 
 1 file changed, 8 insertions(+)

diff --git a/arch/arm/kernel/hw_breakpoint.c b/arch/arm/kernel/hw_breakpoint.c
index 96093b7..683a7cf 100644
--- a/arch/arm/kernel/hw_breakpoint.c
+++ b/arch/arm/kernel/hw_breakpoint.c
@@ -930,6 +930,14 @@ static void reset_ctrl_regs(void *unused)
int i, raw_num_brps, err = 0, cpu = smp_processor_id();
u32 val;
 
+   /* Check if we have access to CPU debug features */
+   ARM_DBG_READ(c7, c14, 6, val);
+   if ((val & 0x1) == 0) {
+   pr_warn_once("CPU %d debug is unavailable\n", cpu);
+   cpumask_or(&debug_err_mask, &debug_err_mask, cpumask_of(cpu));
+   return;
+   }
+
/*
 * v7 debug contains save and restore registers so that debug state
 * can be maintained across low-power modes without leaving the debug
-- 
1.7.9.5
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-

Re: commit 6797b4f causes boot hangs with nfsroot

2013-03-17 Thread Paul Walmsley
Hi Jon,

On Sat, 16 Mar 2013, Paul Walmsley wrote:

> Looks like commit 6797b4fe0e554ce71f47038fd929c9ca929a9f3c ("ARM: OMAP2+: 
> Prevent potential crash if GPMC probe fails") causes hangs on boot.  I 
> suspect it may only occur when the root filesystem is on NFS over 
> GPMC-based Ethernet.

Looks like you sent a patch for this a month ago and it just now got 
merged with v3.9-rc3 as commit 31d9adca82ce65e5c99d045b5fd917c702b6fce3 
("ARM: OMAP2+: Fix broken gpmc support").  Thanks for fixing this promptly 
and sorry about the extra noise,


- Paul
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCHv2 5/7] usb: phy: twl4030-usb: check if vbus is driven by twl itself

2013-03-17 Thread Grazvydas Ignotas
At least on pandora, STS_VBUS gets set even when VBUS is driven by twl
itself. Reporting VBUS in this case confuses OMAP musb glue and charger
driver, so check if OTG VBUS charge pump is on before reporting VBUS
event to avoid this problem.

Signed-off-by: Grazvydas Ignotas 
---
 drivers/usb/phy/phy-twl4030-usb.c |   36 +++-
 1 file changed, 31 insertions(+), 5 deletions(-)

diff --git a/drivers/usb/phy/phy-twl4030-usb.c 
b/drivers/usb/phy/phy-twl4030-usb.c
index 425c18a..87bf11d 100644
--- a/drivers/usb/phy/phy-twl4030-usb.c
+++ b/drivers/usb/phy/phy-twl4030-usb.c
@@ -248,11 +248,31 @@ twl4030_usb_clear_bits(struct twl4030_usb *twl, u8 reg, 
u8 bits)
 
 /*-*/
 
+static bool twl4030_is_driving_vbus(struct twl4030_usb *twl)
+{
+   int ret;
+
+   ret = twl4030_usb_read(twl, PHY_CLK_CTRL_STS);
+   if (ret < 0 || !(ret & PHY_DPLL_CLK))
+   /*
+* if clocks are off, registers are not updated,
+* but we can assume we don't drive VBUS in this case
+*/
+   return false;
+
+   ret = twl4030_usb_read(twl, ULPI_OTG_CTRL);
+   if (ret < 0)
+   return false;
+
+   return (ret & (ULPI_OTG_DRVVBUS | ULPI_OTG_CHRGVBUS)) ? true : false;
+}
+
 static enum omap_musb_vbus_id_status
twl4030_usb_linkstat(struct twl4030_usb *twl)
 {
int status;
enum omap_musb_vbus_id_status linkstat = OMAP_MUSB_UNKNOWN;
+   booldriving_vbus = false;
 
twl->vbus_supplied = false;
 
@@ -270,20 +290,26 @@ static enum omap_musb_vbus_id_status
if (status < 0)
dev_err(twl->dev, "USB link status err %d\n", status);
else if (status & (BIT(7) | BIT(2))) {
-   if (status & (BIT(7)))
-twl->vbus_supplied = true;
+   if (status & BIT(7)) {
+   driving_vbus = twl4030_is_driving_vbus(twl);
+   if (driving_vbus)
+   status &= ~BIT(7);
+   }
 
if (status & BIT(2))
linkstat = OMAP_MUSB_ID_GROUND;
-   else
+   else if (status & BIT(7)) {
linkstat = OMAP_MUSB_VBUS_VALID;
+   twl->vbus_supplied = true;
+   } else
+   linkstat = OMAP_MUSB_VBUS_OFF;
} else {
if (twl->linkstat != OMAP_MUSB_UNKNOWN)
linkstat = OMAP_MUSB_VBUS_OFF;
}
 
-   dev_dbg(twl->dev, "HW_CONDITIONS 0x%02x/%d; link %d\n",
-   status, status, linkstat);
+   dev_dbg(twl->dev, "HW_CONDITIONS 0x%02x; link %d, driving_vbus %d\n",
+   status, linkstat, driving_vbus);
 
/* REVISIT this assumes host and peripheral controllers
 * are registered, and that both are active...
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCHv2 7/7] usb: musb: gadget: use platform callback to enable vbus

2013-03-17 Thread Grazvydas Ignotas
On some platform configurations (like OMAP3+twl4030) it's the platform
code that enables VBUS, not OTG transceiver, so call vbus platform
callback instead, it will then call the transceiver if needed.

This fixes a use case where USB cable is plugged first and gadget
driver is loaded later after that.

Signed-off-by: Grazvydas Ignotas 
---
 drivers/usb/musb/musb_gadget.c |5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
index ae59ee6..60eef20 100644
--- a/drivers/usb/musb/musb_gadget.c
+++ b/drivers/usb/musb/musb_gadget.c
@@ -1799,9 +1799,8 @@ static int musb_gadget_start(struct usb_gadget *g,
goto err;
}
 
-   if ((musb->xceiv->last_event == USB_EVENT_ID)
-   && otg->set_vbus)
-   otg_set_vbus(otg, 1);
+   if (musb->xceiv->last_event == USB_EVENT_ID)
+   musb_platform_set_vbus(musb, 1);
 
hcd->self.uses_pio_for_control = 1;
 
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCHv2 6/7] usb: musb: omap2430: turn off vbus on cable disconnect

2013-03-17 Thread Grazvydas Ignotas
On USB_EVENT_ID event the musb glue enables VBUS by calling
omap2430_musb_set_vbus(musb, 1) that sets the session bit, but on
USB_EVENT_NONE reverse action is never made, and that breaks PM.

Disable VBUS on USB_EVENT_NONE to be sure musb session is ended
on cable unplug so that PM works.

Signed-off-by: Grazvydas Ignotas 
---
 drivers/usb/musb/omap2430.c |1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
index ec460ea..780a750 100644
--- a/drivers/usb/musb/omap2430.c
+++ b/drivers/usb/musb/omap2430.c
@@ -291,6 +291,7 @@ static void omap_musb_set_mailbox(struct omap2430_glue 
*glue)
 
musb->xceiv->last_event = USB_EVENT_NONE;
if (musb->gadget_driver) {
+   omap2430_musb_set_vbus(musb, 0);
pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
}
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCHv2 4/7] usb: phy: twl4030-usb: poll for ID disconnect

2013-03-17 Thread Grazvydas Ignotas
On pandora, STS_USB interrupt doesn't arrive on USB host cable disconnect
for some reason while VBUS is driven by twl itself, but STS_HW_CONDITIONS
is updated correctly. It does work fine when PHY is powered down though.
To work around that we have to poll.

This patch also moves twl->linkstat update code to callers so that
changes can be handled in thread safe way (as polling work can trigger
at the same time as real irq now).

TI PSP kernels have similar workarounds, so (many?) more boards are likely
affected.

Signed-off-by: Grazvydas Ignotas 
---
 drivers/usb/phy/phy-twl4030-usb.c |   64 +
 1 file changed, 57 insertions(+), 7 deletions(-)

diff --git a/drivers/usb/phy/phy-twl4030-usb.c 
b/drivers/usb/phy/phy-twl4030-usb.c
index b53a2a2..425c18a 100644
--- a/drivers/usb/phy/phy-twl4030-usb.c
+++ b/drivers/usb/phy/phy-twl4030-usb.c
@@ -163,6 +163,8 @@ struct twl4030_usb {
boolvbus_supplied;
u8  asleep;
boolirq_enabled;
+
+   struct delayed_work id_workaround_work;
 };
 
 /* internal define on top of container_of */
@@ -287,10 +289,6 @@ static enum omap_musb_vbus_id_status
 * are registered, and that both are active...
 */
 
-   spin_lock_irq(&twl->lock);
-   twl->linkstat = linkstat;
-   spin_unlock_irq(&twl->lock);
-
return linkstat;
 }
 
@@ -412,6 +410,16 @@ static void twl4030_phy_resume(struct twl4030_usb *twl)
__twl4030_phy_resume(twl);
twl->asleep = 0;
dev_dbg(twl->dev, "%s\n", __func__);
+
+   /*
+* XXX When VBUS gets driven after musb goes to A mode,
+* ID_PRES related interrupts no longer arrive, why?
+* Register itself is updated fine though, so we must poll.
+*/
+   if (twl->linkstat == OMAP_MUSB_ID_GROUND) {
+   cancel_delayed_work(&twl->id_workaround_work);
+   schedule_delayed_work(&twl->id_workaround_work, HZ);
+   }
 }
 
 static int twl4030_usb_ldo_init(struct twl4030_usb *twl)
@@ -491,10 +499,18 @@ static irqreturn_t twl4030_usb_irq(int irq, void *_twl)
 {
struct twl4030_usb *twl = _twl;
enum omap_musb_vbus_id_status status;
-   enum omap_musb_vbus_id_status status_prev = twl->linkstat;
+   bool status_changed = false;
 
status = twl4030_usb_linkstat(twl);
-   if (status > 0 && status != status_prev) {
+
+   spin_lock_irq(&twl->lock);
+   if (status >= 0 && status != twl->linkstat) {
+   twl->linkstat = status;
+   status_changed = true;
+   }
+   spin_unlock_irq(&twl->lock);
+
+   if (status_changed) {
/* FIXME add a set_power() method so that B-devices can
 * configure the charger appropriately.  It's not always
 * correct to consume VBUS power, and how much current to
@@ -506,13 +522,42 @@ static irqreturn_t twl4030_usb_irq(int irq, void *_twl)
 * USB_LINK_VBUS state.  musb_hdrc won't care until it
 * starts to handle softconnect right.
 */
-   omap_musb_mailbox(twl->linkstat);
+   omap_musb_mailbox(status);
}
sysfs_notify(&twl->dev->kobj, NULL, "vbus");
 
return IRQ_HANDLED;
 }
 
+static void twl4030_id_workaround_work(struct work_struct *work)
+{
+   struct twl4030_usb *twl = container_of(work, struct twl4030_usb,
+   id_workaround_work.work);
+   enum omap_musb_vbus_id_status status;
+   bool status_changed = false;
+
+   status = twl4030_usb_linkstat(twl);
+
+   spin_lock_irq(&twl->lock);
+   if (status >= 0 && status != twl->linkstat) {
+   twl->linkstat = status;
+   status_changed = true;
+   }
+   spin_unlock_irq(&twl->lock);
+
+   if (status_changed) {
+   dev_dbg(twl->dev, "handle missing status change to %d\n",
+   status);
+   omap_musb_mailbox(status);
+   }
+
+   /* don't schedule during sleep - irq works right then */
+   if (status == OMAP_MUSB_ID_GROUND && !twl->asleep) {
+   cancel_delayed_work(&twl->id_workaround_work);
+   schedule_delayed_work(&twl->id_workaround_work, HZ);
+   }
+}
+
 static void twl4030_usb_phy_init(struct twl4030_usb *twl)
 {
enum omap_musb_vbus_id_status status;
@@ -525,6 +570,8 @@ static void twl4030_usb_phy_init(struct twl4030_usb *twl)
twl->asleep = 1;
 
status = twl4030_usb_linkstat(twl);
+   twl->linkstat = status;
+
if (status == OMAP_MUSB_ID_GROUND || status == OMAP_MUSB_VBUS_VALID)
omap_musb_mailbox(twl->linkstat);
 
@@ -613,6 +660,8 @@ static int twl4030_usb_probe(struct platform_device *pdev)
/* init spinlock for workqueue */
spin_lock_init(&twl->lock);
 
+   INIT_DELAYED_WORK(&twl->id_workaround_work, twl4030_id_workaround_work);
+
  

[PATCHv2 3/7] usb: phy: twl4030-usb: don't switch the phy on/off needlessly

2013-03-17 Thread Grazvydas Ignotas
With runtime_pm in place there is no longer need to turn the phy
on/off in OTG layer on cable connect/disconnect, OMAP glue does
this through otg.set_suspend() callback after it's called through
omap_musb_mailbox() on VBUS/ID interrupt. Not doing this will save
power when cable is connected but no gadget driver is loaded.

This will also have side effect of automatic USB charging no longer
working without twl4030_charger driver, because a regulator needed
for charging will no longer be enabled, so be sure to enable charger
driver if charging is needed.

Signed-off-by: Grazvydas Ignotas 
---
 drivers/usb/phy/phy-twl4030-usb.c |6 --
 1 file changed, 6 deletions(-)

diff --git a/drivers/usb/phy/phy-twl4030-usb.c 
b/drivers/usb/phy/phy-twl4030-usb.c
index 305463b..b53a2a2 100644
--- a/drivers/usb/phy/phy-twl4030-usb.c
+++ b/drivers/usb/phy/phy-twl4030-usb.c
@@ -506,12 +506,6 @@ static irqreturn_t twl4030_usb_irq(int irq, void *_twl)
 * USB_LINK_VBUS state.  musb_hdrc won't care until it
 * starts to handle softconnect right.
 */
-   if (status == OMAP_MUSB_VBUS_OFF ||
-   status == OMAP_MUSB_ID_FLOAT)
-   twl4030_phy_suspend(twl, 0);
-   else
-   twl4030_phy_resume(twl);
-
omap_musb_mailbox(twl->linkstat);
}
sysfs_notify(&twl->dev->kobj, NULL, "vbus");
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCHv2 2/7] usb: phy: twl4030-usb: ignore duplicate events

2013-03-17 Thread Grazvydas Ignotas
In some rare cases we may get multiple interrupts that will generate
duplicate omap_musb_mailbox() calls. This is a problem because each
VBUS/ID event generates runtime_pm call in OMAP glue code, causing
unbalanced gets or puts and breaking PM.

The same goes for initial state, glue already defaults to "no cable"
state, so only bother it if we have VBUS or ID.

Signed-off-by: Grazvydas Ignotas 
Reviewed-by: Kishon Vijay Abraham I 
---
 drivers/usb/phy/phy-twl4030-usb.c |5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/phy/phy-twl4030-usb.c 
b/drivers/usb/phy/phy-twl4030-usb.c
index 9e47118..305463b 100644
--- a/drivers/usb/phy/phy-twl4030-usb.c
+++ b/drivers/usb/phy/phy-twl4030-usb.c
@@ -491,9 +491,10 @@ static irqreturn_t twl4030_usb_irq(int irq, void *_twl)
 {
struct twl4030_usb *twl = _twl;
enum omap_musb_vbus_id_status status;
+   enum omap_musb_vbus_id_status status_prev = twl->linkstat;
 
status = twl4030_usb_linkstat(twl);
-   if (status > 0) {
+   if (status > 0 && status != status_prev) {
/* FIXME add a set_power() method so that B-devices can
 * configure the charger appropriately.  It's not always
 * correct to consume VBUS power, and how much current to
@@ -530,7 +531,7 @@ static void twl4030_usb_phy_init(struct twl4030_usb *twl)
twl->asleep = 1;
 
status = twl4030_usb_linkstat(twl);
-   if (status > 0)
+   if (status == OMAP_MUSB_ID_GROUND || status == OMAP_MUSB_VBUS_VALID)
omap_musb_mailbox(twl->linkstat);
 
sysfs_notify(&twl->dev->kobj, NULL, "vbus");
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCHv2 1/7] usb: phy: twl4030-usb: don't enable PHY during init

2013-03-17 Thread Grazvydas Ignotas
There is no need to do it, otg.set_suspend(false) (which itself
comes from runtime_pm OMAP glue calls) will enable it later anyway.
This used to be the place where things were enabled if booted with
cable connected before runtime_pm conversion, but now can be dropped.

Signed-off-by: Grazvydas Ignotas 
---
 drivers/usb/phy/phy-twl4030-usb.c |   20 +---
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/drivers/usb/phy/phy-twl4030-usb.c 
b/drivers/usb/phy/phy-twl4030-usb.c
index a994715..9e47118 100644
--- a/drivers/usb/phy/phy-twl4030-usb.c
+++ b/drivers/usb/phy/phy-twl4030-usb.c
@@ -522,19 +522,17 @@ static void twl4030_usb_phy_init(struct twl4030_usb *twl)
 {
enum omap_musb_vbus_id_status status;
 
-   status = twl4030_usb_linkstat(twl);
-   if (status > 0) {
-   if (status == OMAP_MUSB_VBUS_OFF ||
-   status == OMAP_MUSB_ID_FLOAT) {
-   __twl4030_phy_power(twl, 0);
-   twl->asleep = 1;
-   } else {
-   __twl4030_phy_resume(twl);
-   twl->asleep = 0;
-   }
+   /*
+* Start in sleep state, we'll get called through set_suspend()
+* callback when musb is runtime resumed and it's time to start.
+*/
+   __twl4030_phy_power(twl, 0);
+   twl->asleep = 1;
 
+   status = twl4030_usb_linkstat(twl);
+   if (status > 0)
omap_musb_mailbox(twl->linkstat);
-   }
+
sysfs_notify(&twl->dev->kobj, NULL, "vbus");
 }
 
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCHv2 0/7] usb: phy: twl4030-usb fixes

2013-03-17 Thread Grazvydas Ignotas
I have a pandora board which has similar musb setup to beagleboard
(OMAP3530 + TWL4030) and musb never worked well on it for me in mainline.
Well it usually works if you plug the cable once, but as soon as you start
replugging cables and mixing host adapter into the game it totally breaks
and reboot is then needed. Host mode is especially broken, any replugs
after musb has been in host mode result in dead port that needs reboot
to recover.

With this series I can switch host/peripheral cables any way I like and
even suspend works with cable plugged with musb in peripheral mode!
("ARM: OMAP3: hwmod data: keep MIDLEMODE in force-standby for musb" is
needed that was sent separately). This also fixes power drain when cable
is plugged an no gadget driver is loaded.

Changed since v1:
- rebased on Felipe's testing branch
- added locking for patch 4 to take care of possible races
  between work item and IRQ
- changed patch 6 to only disable VBUS if not runtime suspended,
  otherwise we get data abort on OMAP3

Grazvydas Ignotas (7):
  usb: phy: twl4030-usb: don't enable PHY during init
  usb: phy: twl4030-usb: ignore duplicate events
  usb: phy: twl4030-usb: don't switch the phy on/off needlessly
  usb: phy: twl4030-usb: poll for ID disconnect
  usb: phy: twl4030-usb: check if vbus is driven by twl itself
  usb: musb: omap2430: turn off vbus on cable disconnect
  usb: musb: gadget: use platform callback to enable vbus

 drivers/usb/musb/musb_gadget.c|5 +-
 drivers/usb/musb/omap2430.c   |1 +
 drivers/usb/phy/phy-twl4030-usb.c |  123 +
 3 files changed, 99 insertions(+), 30 deletions(-)

-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [net PATCH 1/1] drivers: net: ethernet: ti: davinci_emac: fix usage of cpdma_check_free_tx_desc()

2013-03-17 Thread David Miller
From: Prabhakar Lad 
Date: Sat, 16 Mar 2013 12:43:14 +0530

> Hi Mugunthan
> 
> Thanks for the patch!
> 
> On Fri, Mar 15, 2013 at 7:40 PM, Mugunthan V N  wrote:
>> Fix which was done in the following commit in cpsw driver has
>> to be taken forward to davinci emac driver as well.
>>
>> commit d35162f89b8f00537d7b240b76d2d0e8b8d29aa0
>> Author: Daniel Mack 
>> Date:   Tue Mar 12 06:31:19 2013 +
>>
>> net: ethernet: cpsw: fix usage of cpdma_check_free_tx_desc()
>>
>> Commit fae50823d0 ("net: ethernet: davinci_cpdma: Add boundary for rx
>> and tx descriptors") introduced a function to check the current
>> allocation state of tx packets. The return value is taken into account
>> to stop the netqork queue on the adapter in case there are no free
>> slots.
>>
>> However, cpdma_check_free_tx_desc() returns 'true' if there is room in
>> the bitmap, not 'false', so the usage of the function is wrong.
>>
>> Reported-by: Prabhakar Lad 
>> Signed-off-by: Mugunthan V N 
> 
>  Tested-by: Lad, Prabhakar 

Applied, thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH V2 0/8] ARM: dts: Various OMAP2+ device-tree updates

2013-03-17 Thread Anil Kumar
Hi Benoit,

On Fri, Mar 15, 2013 at 8:00 PM, Benoit Cousson  wrote:
> Hi Jon,
>
> On 03/15/2013 02:57 PM, Jon Hunter wrote:
>> Various OMAP device-tree updates for PMU, DMA, GPIO, GPMC and boards.
>>
>> The DMA, PMU and OMAP3430 SDP board changes have been sent before
>> individually but re-sending here as a complete series for v3.10.
>>
>> This is based upon Benoit's for_3.10/dts branch [1]. Branch available
>> here [2].
>>
>> V2 changes:
>> - Rebased on Benoit's for_3.10/dts branch
>> - Squashed patches adding support for OMAP3430 SDP board and patch
>>   to add flash support for OMAP3430 SDP board.
>>
>> [1] 
>> http://git.kernel.org/cgit/linux/kernel/git/bcousson/linux-omap-dt.git/log/?h=for_3.10/dts
>> [2] git://github.com/jonhunter/linux.git omap-dt-for-v3.10
>
> Thanks for the repost. I've just applied your branch in my for_3.10/dts
> branch.

I think you missed below patch which is needed for gpmc nand to work fine.
Without this patch nand will not work on OMAP3430 SDP board.

Jon Hunter:-
  ARM: OMAP2+: Fix-up gpmc merge error

Thanks,
Anil
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html