2011-05-16 08:59:08

by Munegowda, Keshava

[permalink] [raw]
Subject: [PATCH v1] omap: usbhs: Fixed the crash during rmmod of ehci and ohci

From: Keshava Munegowda <[email protected]>

The disabling of clocks and freeing GPIO are changed
to fix the occurrence of the crash of rmmod of ehci and ohci
drivers. The GPIOs should be freed after the spin locks are
unlocked.

Signed-off-by: Keshava Munegowda <[email protected]>
---
drivers/mfd/omap-usb-host.c | 27 +++++++++++++++++++--------
1 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/drivers/mfd/omap-usb-host.c b/drivers/mfd/omap-usb-host.c
index 3ab9ffa..55c5d47 100644
--- a/drivers/mfd/omap-usb-host.c
+++ b/drivers/mfd/omap-usb-host.c
@@ -994,22 +994,33 @@ static void usbhs_disable(struct device *dev)
dev_dbg(dev, "operation timed out\n");
}

- if (pdata->ehci_data->phy_reset) {
- if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[0]))
- gpio_free(pdata->ehci_data->reset_gpio_port[0]);
-
- if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[1]))
- gpio_free(pdata->ehci_data->reset_gpio_port[1]);
+ if (is_omap_usbhs_rev2(omap)) {
+ if (is_ehci_tll_mode(pdata->port_mode[0]))
+ clk_enable(omap->usbtll_p1_fck);
+ if (is_ehci_tll_mode(pdata->port_mode[1]))
+ clk_enable(omap->usbtll_p2_fck);
+ clk_disable(omap->utmi_p2_fck);
+ clk_disable(omap->utmi_p1_fck);
}

- clk_disable(omap->utmi_p2_fck);
- clk_disable(omap->utmi_p1_fck);
clk_disable(omap->usbtll_ick);
clk_disable(omap->usbtll_fck);
clk_disable(omap->usbhost_fs_fck);
clk_disable(omap->usbhost_hs_fck);
clk_disable(omap->usbhost_ick);

+ /* The gpio_free migh sleep; so unlock the spinlock */
+ spin_unlock_irqrestore(&omap->lock, flags);
+
+ if (pdata->ehci_data->phy_reset) {
+ if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[0]))
+ gpio_free(pdata->ehci_data->reset_gpio_port[0]);
+
+ if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[1]))
+ gpio_free(pdata->ehci_data->reset_gpio_port[1]);
+ }
+ return;
+
end_disble:
spin_unlock_irqrestore(&omap->lock, flags);
}
--
1.6.0.4


2011-05-18 10:53:25

by Felipe Balbi

[permalink] [raw]
Subject: Re: [PATCH v1] omap: usbhs: Fixed the crash during rmmod of ehci and ohci

On Mon, May 16, 2011 at 02:24:58PM +0530, Keshava Munegowda wrote:
> From: Keshava Munegowda <[email protected]>
>
> The disabling of clocks and freeing GPIO are changed
> to fix the occurrence of the crash of rmmod of ehci and ohci
> drivers. The GPIOs should be freed after the spin locks are
> unlocked.
>
> Signed-off-by: Keshava Munegowda <[email protected]>

Acked-by: Felipe Balbi <[email protected]>

should this have:

Cc: [email protected] ??

--
balbi


Attachments:
(No filename) (469.00 B)
signature.asc (490.00 B)
Digital signature
Download all attachments

2011-05-22 19:07:44

by Samuel Ortiz

[permalink] [raw]
Subject: Re: [PATCH v1] omap: usbhs: Fixed the crash during rmmod of ehci and ohci

Hi Felipe,

On Wed, May 18, 2011 at 01:53:15PM +0300, Felipe Balbi wrote:
> On Mon, May 16, 2011 at 02:24:58PM +0530, Keshava Munegowda wrote:
> > From: Keshava Munegowda <[email protected]>
> >
> > The disabling of clocks and freeing GPIO are changed
> > to fix the occurrence of the crash of rmmod of ehci and ohci
> > drivers. The GPIOs should be freed after the spin locks are
> > unlocked.
> >
> > Signed-off-by: Keshava Munegowda <[email protected]>
>
> Acked-by: Felipe Balbi <[email protected]>
>
> should this have:
>
> Cc: [email protected] ??
Patch applied, with stable cc'ed.

Cheers,
Samuel.

--
Intel Open Source Technology Centre
http://oss.intel.com/