* Felipe Balbi <[EMAIL PROTECTED]> [080912 11:23]:
> On Fri, Sep 12, 2008 at 08:50:33PM +0300, Felipe Balbi wrote:
> > On Fri, Sep 12, 2008 at 09:32:56AM -0700, David Brownell wrote:
> > > On Friday 12 September 2008, Felipe Balbi wrote:
> > > > - hcd->regs = (void __iomem *) (int) IO_ADDRESS(hcd->rsrc_start);
> > > > + hcd->regs = ioremap(hcd->rsrc_start, hcd->rsrc_len);
> > >
> > > This is missing its sibling iounmap() ...
> >
> > God... thanks Dave. Good catch. Patch coming soonish.
>
> Here's the updated version. While at it, I'll send another patch getting
> rid of some other mistakes during probe.
>
> ===== cut here ====
>
> From 818dc8ebd261cdc59670fe1580248ad47f18a1de Mon Sep 17 00:00:00 2001
> From: Felipe Balbi <[EMAIL PROTECTED]>
> Date: Fri, 12 Sep 2008 21:07:09 +0300
> Subject: [PATCH] omap: usb: ehci: fix usb of hcd->regs
>
> hcd->regs should be initialized by ioremaping hcd->rsrc_start and
> hcd->rsrc_len. Fix it for ehci-omap.c.
Pushing this today.
Tony
>
> Signed-off-by: Felipe Balbi <[EMAIL PROTECTED]>
> ---
> drivers/usb/host/ehci-omap.c | 10 ++++++++--
> 1 files changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/host/ehci-omap.c b/drivers/usb/host/ehci-omap.c
> index 8f122e5..fff4195 100644
> --- a/drivers/usb/host/ehci-omap.c
> +++ b/drivers/usb/host/ehci-omap.c
> @@ -438,7 +438,11 @@ static int ehci_hcd_omap_drv_probe(struct
> platform_device *dev)
> hcd->rsrc_start = dev->resource[0].start;
> hcd->rsrc_len = dev->resource[0].end - dev->resource[0].start + 1;
>
> - hcd->regs = (void __iomem *) (int) IO_ADDRESS(hcd->rsrc_start);
> + hcd->regs = ioremap(hcd->rsrc_start, hcd->rsrc_len);
> + if (!hcd->regs) {
> + dev_err(&dev->dev, "ioremap failed\n");
> + return -ENOMEM;
> + }
>
> ehci = hcd_to_ehci(hcd);
> ehci->caps = hcd->regs;
> @@ -457,8 +461,9 @@ static int ehci_hcd_omap_drv_probe(struct platform_device
> *dev)
>
> dev_dbg(hcd->self.controller, "ERR: add_hcd");
> omap_stop_ehc(dev, hcd);
> -
> + iounmap(hcd->regs);
> usb_put_hcd(hcd);
> +
> return retval;
> }
>
> @@ -483,6 +488,7 @@ static int ehci_hcd_omap_drv_remove(struct
> platform_device *dev)
>
> dev_dbg(&dev->dev, "ehci_hcd_omap_drv_remove()");
>
> + iounmap(hcd->regs);
> usb_remove_hcd(hcd);
> usb_put_hcd(hcd);
> omap_stop_ehc(dev, hcd);
> --
> 1.6.0.1.196.g01914
>
> --
> balbi
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to [EMAIL PROTECTED]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html