[PATCH] usb: gadget/fsl_mxc_udc: Detect the CPU type in run-time

Uwe Kleine-König u.kleine-koenig at pengutronix.de
Wed Jan 19 13:54:44 EST 2011


On Wed, Jan 19, 2011 at 03:09:15PM -0200, Fabio Estevam wrote:
> On 1/19/2011 1:36 PM, Eric Bénard wrote:
> > Hi Fabio,
> > 
> > On 19/01/2011 16:32, Fabio Estevam wrote:
> >> Instead of checking the CPU type in build-time, do it in run-time.
> >>
> >> Signed-off-by: Fabio Estevam<fabio.estevam at freescale.com>
> >> ---
> >>   drivers/usb/gadget/fsl_mxc_udc.c |   23 ++++++++++++-----------
> >>   1 files changed, 12 insertions(+), 11 deletions(-)
> >>
> >> diff --git a/drivers/usb/gadget/fsl_mxc_udc.c b/drivers/usb/gadget/fsl_mxc_udc.c
> >> index 77b1eb5..167abe0 100644
> >> --- a/drivers/usb/gadget/fsl_mxc_udc.c
> >> +++ b/drivers/usb/gadget/fsl_mxc_udc.c
> >> @@ -88,17 +88,18 @@ eenahb:
> >>   void fsl_udc_clk_finalize(struct platform_device *pdev)
> >>   {
> >>       struct fsl_usb2_platform_data *pdata = pdev->dev.platform_data;
> >> -#if defined(CONFIG_ARCH_MX35)
> >> -    unsigned int v;
> >> -
> >> -    /* workaround ENGcm09152 for i.MX35 */
> >> -    if (pdata->workaround&  FLS_USB2_WORKAROUND_ENGCM09152) {
> >> -        v = readl(MX35_IO_ADDRESS(MX35_USB_BASE_ADDR +
> >> -                USBPHYCTRL_OTGBASE_OFFSET));
> >> -        writel(v | USBPHYCTRL_EVDO, MX35_IO_ADDRESS(MX35_USB_BASE_ADDR +
> >> -                USBPHYCTRL_OTGBASE_OFFSET));
> >> -    }
> >> -#endif
> >> +    if (cpu_is_mx35()) {
> >> +        unsigned int v;
> >> +
> >> +        /* workaround ENGcm09152 for i.MX35 */
> >> +        if (pdata->workaround&  FLS_USB2_WORKAROUND_ENGCM09152) {
can you please fix up the position of the '&'?

> >> +            v = readl(MX35_IO_ADDRESS(MX35_USB_BASE_ADDR +
> >> +                    USBPHYCTRL_OTGBASE_OFFSET));
> >> +            writel(v | USBPHYCTRL_EVDO,
> >> +                MX35_IO_ADDRESS(MX35_USB_BASE_ADDR +
> >> +                    USBPHYCTRL_OTGBASE_OFFSET));
I wonder if the address isn't mapped via ioremap in the driver and the
cookie saved somewhere?  (And no, I don't ask you to change that in this
patch.)  (If so, it this already problematic aliasing?)

> >> +        }
> >> +    }
> >>
> > are you sure this compiles when MX35 is not selected ?
> 
> Including #include <mach/mx35.h> fixes the build for a non- mx35 kernel.
> 
> Would this be acceptable? If so, I can send v2.
If you keep the #if defined(CONFIG_ARCH_MX35) and only add the if
(cpu_is_mx35()) it should work without a new #include.
Doing that seems a tad cleaner to me.

Best regards
Uwe 

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |



More information about the linux-arm-kernel mailing list