fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / drivers / mtd / chips / amd_flash.c
index fdb91b6..e7999f1 100644 (file)
@@ -97,7 +97,6 @@ struct amd_flash_private {
        int interleave;
        int numchips;
        unsigned long chipshift;
-//     const char *im_name;
        struct flchip chips[0];
 };
 
@@ -131,12 +130,6 @@ static struct mtd_chip_driver amd_flash_chipdrv = {
        .module = THIS_MODULE
 };
 
-
-
-static const char im_name[] = "amd_flash";
-
-
-
 static inline __u32 wide_read(struct map_info *map, __u32 addr)
 {
        if (map->buswidth == 1) {
@@ -650,13 +643,12 @@ static struct mtd_info *amd_flash_probe(struct map_info *map)
        int reg_idx;
        int offset;
 
-       mtd = (struct mtd_info*)kmalloc(sizeof(*mtd), GFP_KERNEL);
+       mtd = kzalloc(sizeof(*mtd), GFP_KERNEL);
        if (!mtd) {
                printk(KERN_WARNING
                       "%s: kmalloc failed for info structure\n", map->name);
                return NULL;
        }
-       memset(mtd, 0, sizeof(*mtd));
        mtd->priv = map;
 
        memset(&temp, 0, sizeof(temp));
@@ -664,7 +656,7 @@ static struct mtd_info *amd_flash_probe(struct map_info *map)
        printk("%s: Probing for AMD compatible flash...\n", map->name);
 
        if ((table_pos[0] = probe_new_chip(mtd, 0, NULL, &temp, table,
-                                          sizeof(table)/sizeof(table[0])))
+                                          ARRAY_SIZE(table)))
            == -1) {
                printk(KERN_WARNING
                       "%s: Found no AMD compatible device at location zero\n",
@@ -696,7 +688,7 @@ static struct mtd_info *amd_flash_probe(struct map_info *map)
             base += (1 << temp.chipshift)) {
                int numchips = temp.numchips;
                table_pos[numchips] = probe_new_chip(mtd, base, chips,
-                       &temp, table, sizeof(table)/sizeof(table[0]));
+                       &temp, table, ARRAY_SIZE(table));
        }
 
        mtd->eraseregions = kmalloc(sizeof(struct mtd_erase_region_info) *
@@ -737,6 +729,7 @@ static struct mtd_info *amd_flash_probe(struct map_info *map)
                offset += dev_size;
        }
        mtd->type = MTD_NORFLASH;
+       mtd->writesize = 1;
        mtd->flags = MTD_CAP_NORFLASH;
        mtd->name = map->name;
        mtd->erase = amd_flash_erase;