[PATCH v2] i2c: imx: convert to use managed functions

Richard Zhao richard.zhao at freescale.com
Mon Jun 4 06:46:25 EDT 2012


Hi Shubhrajyoti,

On Mon, Jun 04, 2012 at 10:29:11AM +0530, Shubhrajyoti Datta wrote:
> Hi  Richard,
> 
> On Mon, Jun 4, 2012 at 7:51 AM, Richard Zhao <richard.zhao at freescale.com> wrote:
> > From: Richard Zhao <richard.zhao at linaro.org>
> nit: A small description would have helped.
The title has told what it did, but I'd like to add more description.
> Otherwise Looks good to me.
> Reviewed-by: Shubhrajyoti D <Shubhrajyoti at ti.com>
Thanks.
> >
> > Signed-off-by: Richard Zhao <richard.zhao at freescale.com>
> > ---
> >
> > Changes since v1:
> >  - rebase to 3.5rc1
> >  - remove unused imx_i2c_struct.irq.
> >
> >  drivers/i2c/busses/i2c-imx.c |   67 ++++++++++-------------------------------
> >  1 files changed, 17 insertions(+), 50 deletions(-)
> >
> > diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c
> > index 8d6b504..7f4da2d 100644
> > --- a/drivers/i2c/busses/i2c-imx.c
> > +++ b/drivers/i2c/busses/i2c-imx.c
> > @@ -118,10 +118,8 @@ static u16 __initdata i2c_clk_div[50][2] = {
> >
> >  struct imx_i2c_struct {
> >        struct i2c_adapter      adapter;
> > -       struct resource         *res;
> >        struct clk              *clk;
> >        void __iomem            *base;
> > -       int                     irq;
> >        wait_queue_head_t       queue;
> >        unsigned long           i2csr;
> >        unsigned int            disable_delay;
> > @@ -473,7 +471,6 @@ static int __init i2c_imx_probe(struct platform_device *pdev)
> >        struct imxi2c_platform_data *pdata = pdev->dev.platform_data;
> >        struct pinctrl *pinctrl;
> >        void __iomem *base;
> > -       resource_size_t res_size;
> >        int irq, bitrate;
> >        int ret;
> >
> > @@ -490,25 +487,16 @@ static int __init i2c_imx_probe(struct platform_device *pdev)
> >                return -ENOENT;
> >        }
> >
> > -       res_size = resource_size(res);
> > -
> > -       if (!request_mem_region(res->start, res_size, DRIVER_NAME)) {
> > -               dev_err(&pdev->dev, "request_mem_region failed\n");
> > +       base = devm_request_and_ioremap(&pdev->dev, res);
> > +       if (!base)
> >                return -EBUSY;
> > -       }
> > -
> > -       base = ioremap(res->start, res_size);
> > -       if (!base) {
> > -               dev_err(&pdev->dev, "ioremap failed\n");
> > -               ret = -EIO;
> > -               goto fail1;
> > -       }
> >
> > -       i2c_imx = kzalloc(sizeof(struct imx_i2c_struct), GFP_KERNEL);
> > +       i2c_imx = devm_kzalloc(&pdev->dev, sizeof(struct imx_i2c_struct),
> > +                               GFP_KERNEL);
> >        if (!i2c_imx) {
> >                dev_err(&pdev->dev, "can't allocate interface\n");
> >                ret = -ENOMEM;
> > -               goto fail2;
> > +               return ret;
> nit : why not return ENOMEM directly, the copy to ret is redundant.
> feel free to ignore if you  feel so.
Nice catch. :)

Thanks
Richard




More information about the linux-arm-kernel mailing list