[PATCH] MTD: NAND: pxa3xx_nand: allow building as module

Mike Rapoport mike at compulab.co.il
Tue Jan 20 02:21:11 EST 2009



Eric Miao wrote:
> On Mon, Jan 19, 2009 at 7:40 PM, Ben Dooks <ben-linux at fluff.org> wrote:
>> On Mon, Jan 19, 2009 at 01:27:11PM +0200, Mike Rapoport wrote:
>>> Signed-off-by: Mike Rapoport <mike at compulab.co.il>
>>> ---
>>>  drivers/mtd/nand/Kconfig       |    2 +-
>>>  drivers/mtd/nand/pxa3xx_nand.c |   10 ++++++++++
>>>  2 files changed, 11 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig
>>> index 8b12e6e..d3966d0 100644
>>> --- a/drivers/mtd/nand/Kconfig
>>> +++ b/drivers/mtd/nand/Kconfig
>>> @@ -334,7 +334,7 @@ config MTD_NAND_ATMEL_ECC_NONE
>>>  endchoice
>>>
>>>  config MTD_NAND_PXA3xx
>>> -     bool "Support for NAND flash devices on PXA3xx"
>>> +     tristate "Support for NAND flash devices on PXA3xx"
>>>       depends on MTD_NAND && PXA3xx
>>>       help
>>>         This enables the driver for the NAND flash device found on
>>> diff --git a/drivers/mtd/nand/pxa3xx_nand.c b/drivers/mtd/nand/pxa3xx_nand.c
>>> index cc55cbc..628ba08 100644
>>> --- a/drivers/mtd/nand/pxa3xx_nand.c
>>> +++ b/drivers/mtd/nand/pxa3xx_nand.c
>>> @@ -123,6 +123,7 @@ struct pxa3xx_nand_info {
>>>
>>>       struct clk              *clk;
>>>       void __iomem            *mmio_base;
>>> +     struct resource         *res;
>>>
>>>       unsigned int            buf_start;
>>>       unsigned int            buf_count;
>>> @@ -1079,6 +1080,7 @@ static int pxa3xx_nand_probe(struct platform_device *pdev)
>>>
>>>       this = &info->nand_chip;
>>>       mtd->priv = info;
>>> +     mtd->owner = THIS_MODULE;
>>>
>>>       info->clk = clk_get(&pdev->dev, NULL);
>>>       if (IS_ERR(info->clk)) {
>>> @@ -1125,6 +1127,7 @@ static int pxa3xx_nand_probe(struct platform_device *pdev)
>>>               goto fail_put_clk;
>>>       }
>>>
>>> +     info->res = r;
>>>       info->mmio_base = ioremap(r->start, r->end - r->start + 1);
>>>       if (info->mmio_base == NULL) {
>>>               dev_err(&pdev->dev, "ioremap() failed\n");
>>> @@ -1199,6 +1202,13 @@ static int pxa3xx_nand_remove(struct platform_device *pdev)
>>>                               info->data_buff, info->data_buff_phys);
>>>       } else
>>>               kfree(info->data_buff);
>>> +
>>> +     iounmap(info->mmio_base);
>>> +     release_mem_region(info->res->start, info->res->end - info->res->start + 1);
>> resource_size() is probably better for the second argument.
>>
> 
> And maybe we don't even need to introduce the 'info->res', which is
> always valid by platform_get_resource() again in _remove().

Ok.

> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
> 

-- 
Sincerely yours,
Mike.




More information about the linux-mtd mailing list