2.6.8.1 compile failed.
Jim Nelson
james4765 at verizon.net
Fri Oct 1 00:09:13 EDT 2004
It looks like struct map_info (in include/linux/mtd/map.h) uses
'bankwidth' instead of 'buswidth'.
A question from a relative newbie (just getting started in kernel
hacking) - is there a focus on 2.6 development exclusively in this list
or is there some attempt to maintain 2.4 compatibility? Although I can
understand either way, I'd like to know if there needs to be an effort
to maintain backwards compatibility.
Patch to drivers/mtd/chips/amd_flash.c included.
------------------------------------------------------------------------
--- amd_flash.c 2004-08-09 09:19:43.000000000 -0400
+++ amd_flash_fix.c 2004-09-30 23:51:54.517951212 -0400
@@ -140,11 +140,11 @@
static inline __u32 wide_read(struct map_info *map, __u32 addr)
{
- if (map->buswidth == 1) {
+ if (map->bankwidth == 1) {
return map_read8(map, addr);
- } else if (map->buswidth == 2) {
+ } else if (map->bankwidth == 2) {
return map_read16(map, addr);
- } else if (map->buswidth == 4) {
+ } else if (map->bankwidth == 4) {
return map_read32(map, addr);
}
@@ -153,11 +153,11 @@
static inline void wide_write(struct map_info *map, __u32 val, __u32 addr)
{
- if (map->buswidth == 1) {
+ if (map->bankwidth == 1) {
map_write8(map, val, addr);
- } else if (map->buswidth == 2) {
+ } else if (map->bankwidth == 2) {
map_write16(map, val, addr);
- } else if (map->buswidth == 4) {
+ } else if (map->bankwidth == 4) {
map_write32(map, val, addr);
}
}
@@ -176,16 +176,16 @@
static inline void send_unlock(struct map_info *map, unsigned long base)
{
wide_write(map, (CMD_UNLOCK_DATA_1 << 16) | CMD_UNLOCK_DATA_1,
- base + (map->buswidth * ADDR_UNLOCK_1));
+ base + (map->bankwidth * ADDR_UNLOCK_1));
wide_write(map, (CMD_UNLOCK_DATA_2 << 16) | CMD_UNLOCK_DATA_2,
- base + (map->buswidth * ADDR_UNLOCK_2));
+ base + (map->bankwidth * ADDR_UNLOCK_2));
}
static inline void send_cmd(struct map_info *map, unsigned long base, __u32 cmd)
{
send_unlock(map, base);
wide_write(map, make_cmd(map, cmd),
- base + (map->buswidth * ADDR_UNLOCK_1));
+ base + (map->bankwidth * ADDR_UNLOCK_1));
}
static inline void send_cmd_to_addr(struct map_info *map, unsigned long base,
@@ -199,7 +199,7 @@
int interleave)
{
- if ((interleave == 2) && (map->buswidth == 4)) {
+ if ((interleave == 2) && (map->bankwidth == 4)) {
__u32 read1, read2;
read1 = wide_read(map, addr);
@@ -220,8 +220,8 @@
{
/* Sector lock address. A6 = 1 for unlock, A6 = 0 for lock */
int SLA = unlock ?
- (sect_addr | (0x40 * map->buswidth)) :
- (sect_addr & ~(0x40 * map->buswidth)) ;
+ (sect_addr | (0x40 * map->bankwidth)) :
+ (sect_addr & ~(0x40 * map->bankwidth)) ;
__u32 cmd = make_cmd(map, CMD_UNLOCK_SECTOR);
@@ -240,7 +240,7 @@
send_cmd(map, sect_addr, CMD_MANUFACTURER_UNLOCK_DATA);
/* status is 0x0000 for unlocked and 0x0001 for locked */
- status = wide_read(map, sect_addr + (map->buswidth * ADDR_SECTOR_LOCK));
+ status = wide_read(map, sect_addr + (map->bankwidth * ADDR_SECTOR_LOCK));
wide_write(map, CMD_RESET_DATA, 0);
return status;
}
@@ -326,10 +326,10 @@
send_cmd(map, base, CMD_RESET_DATA);
send_cmd(map, base, CMD_MANUFACTURER_UNLOCK_DATA);
- mfr_id = wide_read(map, base + (map->buswidth * ADDR_MANUFACTURER));
- dev_id = wide_read(map, base + (map->buswidth * ADDR_DEVICE_ID));
+ mfr_id = wide_read(map, base + (map->bankwidth * ADDR_MANUFACTURER));
+ dev_id = wide_read(map, base + (map->bankwidth * ADDR_DEVICE_ID));
- if ((map->buswidth == 4) && ((mfr_id >> 16) == (mfr_id & 0xffff)) &&
+ if ((map->bankwidth == 4) && ((mfr_id >> 16) == (mfr_id & 0xffff)) &&
((dev_id >> 16) == (dev_id & 0xffff))) {
mfr_id &= 0xffff;
dev_id &= 0xffff;
@@ -353,12 +353,12 @@
mfr_id_other =
wide_read(map, chips[j].start +
- (map->buswidth *
+ (map->bankwidth *
ADDR_MANUFACTURER
));
dev_id_other =
wide_read(map, chips[j].start +
- (map->buswidth *
+ (map->bankwidth *
ADDR_DEVICE_ID));
if (temp.interleave == 2) {
mfr_id_other &= 0xffff;
@@ -975,8 +975,8 @@
chipstart = private->chips[chipnum].start;
/* If it's not bus-aligned, do the first byte write. */
- if (ofs & (map->buswidth - 1)) {
- unsigned long bus_ofs = ofs & ~(map->buswidth - 1);
+ if (ofs & (map->bankwidth - 1)) {
+ unsigned long bus_ofs = ofs & ~(map->bankwidth - 1);
int i = ofs - bus_ofs;
int n = 0;
u_char tmp_buf[4];
@@ -984,13 +984,13 @@
map_copy_from(map, tmp_buf,
bus_ofs + private->chips[chipnum].start,
- map->buswidth);
- while (len && i < map->buswidth)
+ map->bankwidth);
+ while (len && i < map->bankwidth)
tmp_buf[i++] = buf[n++], len--;
- if (map->buswidth == 2) {
+ if (map->bankwidth == 2) {
datum = *(__u16*)tmp_buf;
- } else if (map->buswidth == 4) {
+ } else if (map->bankwidth == 4) {
datum = *(__u32*)tmp_buf;
} else {
return -EINVAL; /* should never happen, but be safe */
@@ -1016,14 +1016,14 @@
}
/* We are now aligned, write as much as possible. */
- while(len >= map->buswidth) {
+ while(len >= map->bankwidth) {
__u32 datum;
- if (map->buswidth == 1) {
+ if (map->bankwidth == 1) {
datum = *(__u8*)buf;
- } else if (map->buswidth == 2) {
+ } else if (map->bankwidth == 2) {
datum = *(__u16*)buf;
- } else if (map->buswidth == 4) {
+ } else if (map->bankwidth == 4) {
datum = *(__u32*)buf;
} else {
return -EINVAL;
@@ -1035,10 +1035,10 @@
return ret;
}
- ofs += map->buswidth;
- buf += map->buswidth;
- (*retlen) += map->buswidth;
- len -= map->buswidth;
+ ofs += map->bankwidth;
+ buf += map->bankwidth;
+ (*retlen) += map->bankwidth;
+ len -= map->bankwidth;
if (ofs >> private->chipshift) {
chipnum++;
@@ -1050,21 +1050,21 @@
}
}
- if (len & (map->buswidth - 1)) {
+ if (len & (map->bankwidth - 1)) {
int i = 0, n = 0;
u_char tmp_buf[2];
__u32 datum;
map_copy_from(map, tmp_buf,
ofs + private->chips[chipnum].start,
- map->buswidth);
+ map->bankwidth);
while (len--) {
tmp_buf[i++] = buf[n++];
}
- if (map->buswidth == 2) {
+ if (map->bankwidth == 2) {
datum = *(__u16*)tmp_buf;
- } else if (map->buswidth == 4) {
+ } else if (map->bankwidth == 4) {
datum = *(__u32*)tmp_buf;
} else {
return -EINVAL; /* should never happen, but be safe */
More information about the linux-mtd
mailing list