--- tdfx_pci.c.old Sun Aug 6 20:43:39 2000 +++ tdfx_pci.c Sun Aug 6 20:52:58 2000 @@ -238,9 +238,8 @@ tdfx_info->memrid2 = rid; } /* Now to map the PIO stuff */ - rid = PCIR_IOBASE0_2; - tdfx_info->pio0 = pci_read_config(dev, 0x2c, 2); - tdfx_info->pio0max = pci_read_config(dev, 0x30, 2) + tdfx_info->pio0; + rid = 0x18; + tdfx_info->pio0 = pci_read_config(dev, 0x18, 2); tdfx_info->piorange = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid, 0, ~0, 1, RF_ACTIVE | RF_SHAREABLE); if(tdfx_info->piorange == NULL) { @@ -257,7 +256,6 @@ tdfx_info->memrange2 = NULL; tdfx_info->piorange = NULL; tdfx_info->pio0 = 0; - tdfx_info->pio0max = 0; } /* @@ -552,15 +550,12 @@ if(piod->size != 4) return -EINVAL; copyout(&tdfx_info->addr1, piod->value, piod->size); return 0; - case PCI_PRIBUS_FREEBSD: - if(piod->size != 1) return -EINVAL; - break; case PCI_IOBASE_0_FREEBSD: - if(piod->size != 2) return -EINVAL; - break; - case PCI_IOLIMIT_0_FREEBSD: - if(piod->size != 2) return -EINVAL; + if(piod->size != 4) return -EINVAL; break; + case PCI_ROM_BASE_FREEBSD: + if(piod->size != 4) return -EINVAL; + break; case SST1_PCI_SPECIAL1_FREEBSD: if(piod->size != 4) return -EINVAL; break; @@ -696,7 +691,8 @@ if(tdfx_info->pio0 != 0) { if(((piod->port != VGA_INPUT_STATUS_1C) || (piod->port != SC_INDEX) || (piod->port != SC_DATA) || (piod->port != VGA_MISC_OUTPUT_READ)) && - (piod->port < tdfx_info->pio0) && (piod->port > tdfx_info->pio0max)) + (piod->port < tdfx_info->pio0) && + (piod->port > (tdfx_info->pio0 + 0x00ff))) return -EPERM; } else { if((piod->port != VGA_INPUT_STATUS_1C) || (piod->port != SC_INDEX) || @@ -728,7 +724,8 @@ if(tdfx_info->pio0 != 0) { if(((piod->port != VGA_INPUT_STATUS_1C) || (piod->port != SC_INDEX) || (piod->port != SC_DATA) || (piod->port != VGA_MISC_OUTPUT_READ)) && - (piod->port < tdfx_info->pio0) && (piod->port > tdfx_info->pio0max)) + (piod->port < tdfx_info->pio0) && + (piod->port > (tdfx_info->pio0 + 0x00ff))) return -EPERM; } else { if((piod->port != VGA_INPUT_STATUS_1C) || (piod->port != SC_INDEX) ||