* convert binary srom data into linked list of srom variable items.
*/
static void
-_initvars_srom_pci(u8 sromrev, u16 *srom, uint off, struct list_head *var_list)
+_initvars_srom_pci(u8 sromrev, u16 *srom, struct list_head *var_list)
{
struct brcms_srom_list_head *entry;
enum brcms_srom_id id;
if ((srv->revmask & sr) == 0)
continue;
- if (srv->off < off)
- continue;
-
flags = srv->flags;
id = srv->varid;
/*
* stored in string format XX:XX:XX:XX:XX:XX (17 chars)
*/
- ea[0] = (srom[srv->off - off] >> 8) & 0xff;
- ea[1] = srom[srv->off - off] & 0xff;
- ea[2] = (srom[srv->off + 1 - off] >> 8) & 0xff;
- ea[3] = srom[srv->off + 1 - off] & 0xff;
- ea[4] = (srom[srv->off + 2 - off] >> 8) & 0xff;
- ea[5] = srom[srv->off + 2 - off] & 0xff;
+ ea[0] = (srom[srv->off] >> 8) & 0xff;
+ ea[1] = srom[srv->off] & 0xff;
+ ea[2] = (srom[srv->off + 1] >> 8) & 0xff;
+ ea[3] = srom[srv->off + 1] & 0xff;
+ ea[4] = (srom[srv->off + 2] >> 8) & 0xff;
+ ea[5] = srom[srv->off + 2] & 0xff;
/* 17 characters + string terminator - union size */
extra_space = 18 - sizeof(s32);
type = BRCMS_SROM_STRING;
} else {
- w = srom[srv->off - off];
+ w = srom[srv->off];
val = (w & srv->mask) >> mask_shift(srv->mask);
width = mask_width(srv->mask);
while (srv->flags & SRFL_MORE) {
srv++;
- if (srv->off == 0 || srv->off < off)
+ if (srv->off == 0)
continue;
- w = srom[srv->off - off];
+ w = srom[srv->off];
val +=
((w & srv->mask) >> mask_shift(srv->
mask)) <<
if ((srv->revmask & sr) == 0)
continue;
- if (pb + srv->off < off)
- continue;
-
if (srv->flags & SRFL_NOVAR)
continue;
- w = srom[pb + srv->off - off];
+ w = srom[pb + srv->off];
val = (w & srv->mask) >> mask_shift(srv->mask);
width = mask_width(srv->mask);
INIT_LIST_HEAD(&sii->var_list);
/* parse SROM into name=value pairs. */
- _initvars_srom_pci(sromrev, srom, 0, &sii->var_list);
+ _initvars_srom_pci(sromrev, srom, &sii->var_list);
}
errout: