[PATCH] MTD: NAND: pxa3xx_nand: allow building as module
Eric Miao
eric.y.miao at gmail.com
Mon Jan 19 22:16:50 EST 2009
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().
More information about the linux-mtd
mailing list