Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 165459
b: refs/heads/master
c: 778dbcc
h: refs/heads/master
i:
  165457: ca04371
  165455: a3b6d1b
v: v3
  • Loading branch information
Magnus Damm authored and David Woodhouse committed Sep 19, 2009
1 parent 4976aaa commit e78037c
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 14 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f33dabbe79fdf7a8568c65faa1db7794c87ac4d3
refs/heads/master: 778dbcc1ebea6f9a560020110987449bf4607e5f
4 changes: 2 additions & 2 deletions trunk/arch/arm/mach-omap2/board-apollon.c
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ static struct mtd_partition apollon_partitions[] = {
},
};

static struct flash_platform_data apollon_flash_data = {
static struct onenand_platform_data apollon_flash_data = {
.parts = apollon_partitions,
.nr_parts = ARRAY_SIZE(apollon_partitions),
};
Expand All @@ -99,7 +99,7 @@ static struct resource apollon_flash_resource[] = {
};

static struct platform_device apollon_onenand_device = {
.name = "onenand",
.name = "onenand-flash",
.id = -1,
.dev = {
.platform_data = &apollon_flash_data,
Expand Down
1 change: 0 additions & 1 deletion trunk/drivers/mtd/onenand/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ config MTD_ONENAND_VERIFY_WRITE

config MTD_ONENAND_GENERIC
tristate "OneNAND Flash device via platform device driver"
depends on ARM
help
Support for OneNAND flash via platform device driver.

Expand Down
24 changes: 14 additions & 10 deletions trunk/drivers/mtd/onenand/generic.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,16 @@
#include <linux/mtd/mtd.h>
#include <linux/mtd/onenand.h>
#include <linux/mtd/partitions.h>

#include <asm/io.h>
#include <asm/mach/flash.h>

#define DRIVER_NAME "onenand"

/*
* Note: Driver name and platform data format have been updated!
*
* This version of the driver is named "onenand-flash" and takes struct
* onenand_platform_data as platform data. The old ARM-specific version
* with the name "onenand" used to take struct flash_platform_data.
*/
#define DRIVER_NAME "onenand-flash"

#ifdef CONFIG_MTD_PARTITIONS
static const char *part_probes[] = { "cmdlinepart", NULL, };
Expand All @@ -39,16 +43,16 @@ struct onenand_info {
static int __devinit generic_onenand_probe(struct platform_device *pdev)
{
struct onenand_info *info;
struct flash_platform_data *pdata = pdev->dev.platform_data;
struct onenand_platform_data *pdata = pdev->dev.platform_data;
struct resource *res = pdev->resource;
unsigned long size = res->end - res->start + 1;
unsigned long size = resource_size(res);
int err;

info = kzalloc(sizeof(struct onenand_info), GFP_KERNEL);
if (!info)
return -ENOMEM;

if (!request_mem_region(res->start, size, pdev->dev.driver->name)) {
if (!request_mem_region(res->start, size, dev_name(&pdev->dev))) {
err = -EBUSY;
goto out_free_info;
}
Expand All @@ -59,7 +63,7 @@ static int __devinit generic_onenand_probe(struct platform_device *pdev)
goto out_release_mem_region;
}

info->onenand.mmcontrol = pdata->mmcontrol;
info->onenand.mmcontrol = pdata ? pdata->mmcontrol : 0;
info->onenand.irq = platform_get_irq(pdev, 0);

info->mtd.name = dev_name(&pdev->dev);
Expand All @@ -75,7 +79,7 @@ static int __devinit generic_onenand_probe(struct platform_device *pdev)
err = parse_mtd_partitions(&info->mtd, part_probes, &info->parts, 0);
if (err > 0)
add_mtd_partitions(&info->mtd, info->parts, err);
else if (err <= 0 && pdata->parts)
else if (err <= 0 && pdata && pdata->parts)
add_mtd_partitions(&info->mtd, pdata->parts, pdata->nr_parts);
else
#endif
Expand All @@ -99,7 +103,7 @@ static int __devexit generic_onenand_remove(struct platform_device *pdev)
{
struct onenand_info *info = platform_get_drvdata(pdev);
struct resource *res = pdev->resource;
unsigned long size = res->end - res->start + 1;
unsigned long size = resource_size(res);

platform_set_drvdata(pdev, NULL);

Expand Down
8 changes: 8 additions & 0 deletions trunk/include/linux/mtd/onenand.h
Original file line number Diff line number Diff line change
Expand Up @@ -214,4 +214,12 @@ unsigned onenand_block(struct onenand_chip *this, loff_t addr);
loff_t onenand_addr(struct onenand_chip *this, int block);
int flexonenand_region(struct mtd_info *mtd, loff_t addr);

struct mtd_partition;

struct onenand_platform_data {
void (*mmcontrol)(struct mtd_info *mtd, int sync_read);
struct mtd_partition *parts;
unsigned int nr_parts;
};

#endif /* __LINUX_MTD_ONENAND_H */

0 comments on commit e78037c

Please sign in to comment.