Re: [PATCH 5/5] can: flexcan: add mcf5441x support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Joakim, Angelo,

On Wed, Jun 9, 2021 at 4:05 AM Joakim Zhang <qiangqing.zhang@xxxxxxx> wrote:
> > From: Angelo Dureghello <angelo@xxxxxxxxxxxxxxxx>
> > Sent: 2021年6月9日 4:46
> > To: gerg@xxxxxxxxxxxxxx; wg@xxxxxxxxxxxxxx; mkl@xxxxxxxxxxxxxx
> > Cc: geert@xxxxxxxxxxxxxx; linux-m68k@xxxxxxxxxxxxxxx;
> > linux-can@xxxxxxxxxxxxxxx; Joakim Zhang <qiangqing.zhang@xxxxxxx>;
> > Angelo Dureghello <angelo@xxxxxxxxxxxxxxxx>
> > Subject: [PATCH 5/5] can: flexcan: add mcf5441x support
> >
> > Add flexcan support for NXP ColdFire mcf5441x family.
> >
> > This flexcan module is quite similar to imx6 flexcan module, but with some
> > exceptions:
> >
> > - 3 separate interrupt sources, MB, BOFF and ERR,
> > - implements 16 mb only,
> > - m68k architecture is not supporting devicetrees, so a
> >   platform data check/case has been added,
> > - ColdFire is m68k, so big-endian cpu, with a little-endian flexcan
> >   module.
> >
> > Signed-off-by: Angelo Dureghello <angelo@xxxxxxxxxxxxxxxx>

> > --- a/drivers/net/can/flexcan.c
> > +++ b/drivers/net/can/flexcan.c

> > @@ -637,13 +650,17 @@ static int flexcan_clks_enable(const struct
> > flexcan_priv *priv)  {
> >       int err;
> >
> > -     err = clk_prepare_enable(priv->clk_ipg);
> > -     if (err)
> > -             return err;
> > +     if (priv->clk_ipg) {
> > +             err = clk_prepare_enable(priv->clk_ipg);
> > +             if (err)
> > +                     return err;
> > +     }
> >
> > -     err = clk_prepare_enable(priv->clk_per);
> > -     if (err)
> > -             clk_disable_unprepare(priv->clk_ipg);
> > +     if (priv->clk_per) {
> > +             err = clk_prepare_enable(priv->clk_per);
> > +             if (err)
> > +                     clk_disable_unprepare(priv->clk_ipg);
> > +     }
>
> No need do this check, it will be handled in clk_prepare_enable() / clk_disable_unprepare(). So this change is unnecessary.

Except that the non-CCF implementation of clk_enable() in
arch/m68k/coldfire/clk.c still returns -EINVAL instead of NULL.
Any plans to move to CCF? Or at least fix legacy clk_enable().

> > @@ -2091,6 +2133,11 @@ static int flexcan_probe(struct platform_device
> > *pdev)
> >
> >       devtype_data = of_device_get_match_data(&pdev->dev);
> >
> > +     if (pdata && !devtype_data) {
> > +             devtype_data =
> > +                     (struct flexcan_devtype_data *)&fsl_mcf_devtype_data;

Cast not needed?

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds



[Index of Archives]     [Automotive Discussions]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [CAN Bus]

  Powered by Linux