Only in pccard/pccardc: beep.o Only in pccard/pccardc: dumpcis.o Only in pccard/pccardc: enabler.o Only in pccard/pccardc: pccardc Only in pccard/pccardc: pccardc.o Only in pccard/pccardc: pccardmem.o Only in pccard/pccardc: power.o Only in pccard/pccardc: printcis.o Only in pccard/pccardc: rdattr.o Only in pccard/pccardc: rdmap.o Only in pccard/pccardc: rdreg.o Only in pccard/pccardc: readcis.o Only in pccard/pccardc: wrattr.o Only in pccard/pccardc: wrreg.o diff -cr pccard-/pccardd/cardd.c pccard/pccardd/cardd.c *** pccard-/pccardd/cardd.c Wed Jun 4 11:08:54 1997 --- pccard/pccardd/cardd.c Fri Jul 18 03:33:00 1997 *************** *** 755,765 **** */ int i; ! sio->size = 1 << cp->io_addr; ! i = bit_fns(io_avail, IOPORTS, sio->size); ! if (i < 0) ! return (-3); ! sio->addr = i; } bit_nclear(io_avail, sio->addr, sio->addr + sio->size - 1); /* Set up the size to take into account the decode lines. */ --- 755,772 ---- */ int i; ! if ((strncmp(sp->config->driver->name, "hss", 3) == 0) && cp->io_addr == 8) { ! cp->io_addr = 4; ! sio->size = 1 << cp->io_addr; ! /* 320 30 310 330 340 200 3d0 */ ! sio->addr = 0x320; ! } else { ! sio->size = 1 << cp->io_addr; ! i = bit_fns(io_avail, IOPORTS, sio->size); ! if (i < 0) ! return (-3); ! sio->addr = i; ! } } bit_nclear(io_avail, sio->addr, sio->addr + sio->size - 1); /* Set up the size to take into account the decode lines. */ Only in pccard/pccardd: cardd.o Only in pccard/pccardd: file.o Only in pccard/pccardd: pccard.conf.5.gz Only in pccard/pccardd: pccardd Only in pccard/pccardd: pccardd.8.gz Only in pccard/pccardd: pccardd.o Only in pccard/pccardd: printcis.o diff -cr pccard-/pccardd/readcis.c pccard/pccardd/readcis.c *** pccard-/pccardd/readcis.c Wed Jun 4 11:11:15 1997 --- pccard/pccardd/readcis.c Fri Jul 18 02:19:28 1997 *************** *** 229,234 **** --- 229,255 ---- } /* + * Broken CIS for "HITACHI MICROCOMPUTER SYSTEM LTD." "MSSHVPC02" + */ + static int + hss_check(unsigned char *p) + { + char manuf[BUFSIZ], vers[BUFSIZ]; + + p++; /* major version */ + p++; /* minor version */ + strncpy(manuf, p, sizeof(manuf) - 1); + while (*p++); + strncpy(vers, p, sizeof(manuf) - 1); + while (*p++); + if (!strcmp(manuf, "HITACHI MICROCOMPUTER SYSTEMS LTD.") + && !strcmp(vers, "MSSHVPC02")) + return 1; + else + return 0; + } + + /* * device_desc - decode device descriptor. */ static void *************** *** 520,525 **** --- 541,547 ---- int total = 0; unsigned char code, length; int fmvj182 = 0; + int hss = 0; /* Check to see if this memory has already been scanned. */ for (tl = tlist; tl; tl = tl->next) *************** *** 569,577 **** * or the length is illegal. */ tinfo = get_tuple_info(code); ! if (code == 0x15) /* Hack for broken CIS of FMV-J182 Ethernet card */ fmvj182 = fmvj182_check(tp->data); if (tinfo == 0 || (tinfo->length != 255 && tinfo->length != length)) { printf("code %s ignored\n", tuple_name(code)); tp->code = CIS_NULL; --- 591,602 ---- * or the length is illegal. */ tinfo = get_tuple_info(code); ! if (code == 0x15) { /* Hack for broken CIS of FMV-J182 Ethernet card */ fmvj182 = fmvj182_check(tp->data); + /* Hack for Hitachi Speech Synthesis card */ + hss = hss_check(tp->data); + } if (tinfo == 0 || (tinfo->length != 255 && tinfo->length != length)) { printf("code %s ignored\n", tuple_name(code)); tp->code = CIS_NULL; Only in pccard/pccardd: readcis.o Only in pccard/pccardd: server.o Only in pccard/pccardd: util.o