|
@@ -559,8 +559,16 @@ static int mhz_setup(struct pcmcia_device *link)
|
|
|
|
|
|
/* Read the station address from the CIS. It is stored as the last
|
|
|
(fourth) string in the Version 1 Version/ID tuple. */
|
|
|
- if (link->prod_id[3]) {
|
|
|
- station_addr = link->prod_id[3];
|
|
|
+ tuple->DesiredTuple = CISTPL_VERS_1;
|
|
|
+ if (first_tuple(link, tuple, parse) != CS_SUCCESS) {
|
|
|
+ rc = -1;
|
|
|
+ goto free_cfg_mem;
|
|
|
+ }
|
|
|
+ /* Ugh -- the EM1144 card has two VERS_1 tuples!?! */
|
|
|
+ if (next_tuple(link, tuple, parse) != CS_SUCCESS)
|
|
|
+ first_tuple(link, tuple, parse);
|
|
|
+ if (parse->version_1.ns > 3) {
|
|
|
+ station_addr = parse->version_1.str + parse->version_1.ofs[3];
|
|
|
if (cvt_ascii_address(dev, station_addr) == 0) {
|
|
|
rc = 0;
|
|
|
goto free_cfg_mem;
|