|
Lines 74-79
Link Here
|
| 74 |
static void ata_acard_86X_setmode(device_t dev, int mode); |
74 |
static void ata_acard_86X_setmode(device_t dev, int mode); |
| 75 |
static int ata_ali_chipinit(device_t dev); |
75 |
static int ata_ali_chipinit(device_t dev); |
| 76 |
static int ata_ali_allocate(device_t dev); |
76 |
static int ata_ali_allocate(device_t dev); |
|
|
77 |
static void ata_ali_reset(device_t dev); |
| 77 |
static void ata_ali_setmode(device_t dev, int mode); |
78 |
static void ata_ali_setmode(device_t dev, int mode); |
| 78 |
static int ata_amd_chipinit(device_t dev); |
79 |
static int ata_amd_chipinit(device_t dev); |
| 79 |
static int ata_cyrix_chipinit(device_t dev); |
80 |
static int ata_cyrix_chipinit(device_t dev); |
|
Lines 853-858
Link Here
|
| 853 |
device_set_desc_copy(dev, buffer); |
854 |
device_set_desc_copy(dev, buffer); |
| 854 |
ctlr->chip = idx; |
855 |
ctlr->chip = idx; |
| 855 |
ctlr->chipinit = ata_ali_chipinit; |
856 |
ctlr->chipinit = ata_ali_chipinit; |
|
|
857 |
ctlr->reset = ata_ali_reset; |
| 856 |
return 0; |
858 |
return 0; |
| 857 |
} |
859 |
} |
| 858 |
|
860 |
|
|
Lines 937-942
Link Here
|
| 937 |
} |
939 |
} |
| 938 |
|
940 |
|
| 939 |
static void |
941 |
static void |
|
|
942 |
ata_ali_reset(device_t dev) |
| 943 |
{ |
| 944 |
device_t parent = device_get_parent(dev); |
| 945 |
struct ata_pci_controller *ctlr = device_get_softc(parent); |
| 946 |
struct ata_channel *ch = device_get_softc(dev); |
| 947 |
device_t *children; |
| 948 |
int nchildren, i; |
| 949 |
u_int8_t ideic; |
| 950 |
|
| 951 |
ata_generic_reset(dev); |
| 952 |
if (ctlr->chip->cfg2 & ALINEW && ctlr->chip->chiprev < 0xc4) { |
| 953 |
if (!device_get_children(device_get_parent(parent), &children, |
| 954 |
&nchildren)) { |
| 955 |
for (i = 0; i < nchildren; i++) { |
| 956 |
if (pci_get_devid(children[i]) == 0x153310b9) { |
| 957 |
ideic = pci_read_config(children[i], 0x58, 1); |
| 958 |
pci_write_config(children[i], 0x58, |
| 959 |
ideic & ~(0x04 << ch->unit), 1); |
| 960 |
ata_udelay(1000); |
| 961 |
pci_write_config(children[i], 0x58, ideic, 1); |
| 962 |
break; |
| 963 |
} |
| 964 |
} |
| 965 |
free(children, M_TEMP); |
| 966 |
} |
| 967 |
} |
| 968 |
} |
| 969 |
|
| 970 |
static void |
| 940 |
ata_ali_setmode(device_t dev, int mode) |
971 |
ata_ali_setmode(device_t dev, int mode) |
| 941 |
{ |
972 |
{ |
| 942 |
device_t gparent = GRANDPARENT(dev); |
973 |
device_t gparent = GRANDPARENT(dev); |