|
Line 83
Link Here
|
|
|
83 |
static void pdc_pata_phy_reset(struct ata_port *ap); |
| 84 |
static void pdc_pata_cbl_reset(struct ata_port *ap); |
|
Line 135
Link Here
|
| 135 |
.host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | |
137 |
.host_flags = /* ATA_FLAG_SATA | */ ATA_FLAG_NO_LEGACY | |
| 136 |
-- |
|
|
|
Line 278
Link Here
|
| 278 |
sata_phy_reset(ap); |
280 |
if (ap->flags & ATA_FLAG_SATA) |
| 279 |
-- |
281 |
sata_phy_reset(ap); |
|
|
282 |
else |
| 283 |
pdc_pata_phy_reset(ap); |
| 284 |
} |
| 285 |
|
| 286 |
static void pdc_pata_cbl_detect(struct ata_port *ap) |
| 287 |
{ |
| 288 |
u8 tmp; |
| 289 |
void *mmio = (void *) ap->ioaddr.cmd_addr + PDC_CTLSTAT + 0x03; |
| 290 |
|
| 291 |
tmp = readb(mmio); |
| 292 |
|
| 293 |
if (tmp & 0x01) |
| 294 |
{ |
| 295 |
ap->cbl = ATA_CBL_PATA40; |
| 296 |
ap->udma_mask &= ATA_UDMA_MASK_40C; |
| 297 |
} |
| 298 |
else |
| 299 |
ap->cbl = ATA_CBL_PATA80; |
| 300 |
} |
| 301 |
|
| 302 |
static void pdc_pata_phy_reset(struct ata_port *ap) |
| 303 |
{ |
| 304 |
pdc_pata_cbl_detect(ap); |
| 305 |
|
| 306 |
ata_port_probe(ap); |
| 307 |
|
| 308 |
ata_bus_reset(ap); |
|
Line 590
Link Here
|
|
|
620 |
u8 tmp; |
|
Line 650
Link Here
|
|
|
681 |
probe_ent->port_flags[0] = ATA_FLAG_SATA; |
| 682 |
probe_ent->port_flags[1] = ATA_FLAG_SATA; |
| 683 |
|
|
Line 660
Link Here
|
|
|
694 |
|
| 695 |
probe_ent->port_flags[2] = ATA_FLAG_SATA; |
| 696 |
probe_ent->port_flags[3] = ATA_FLAG_SATA; |
|
Line 662
Link Here
|
| 662 |
probe_ent->n_ports = 2; |
699 |
/* Some boards have also PATA port */ |
| 663 |
-- |
700 |
tmp = readb(mmio_base + PDC_FLASH_CTL+1); |
|
|
701 |
if (!(tmp & 0x80)) |
| 702 |
{ |
| 703 |
probe_ent->n_ports = 3; |
| 704 |
|
| 705 |
pdc_ata_setup_port(&probe_ent->port[2], base + 0x300); |
| 706 |
|
| 707 |
probe_ent->port_flags[2] = ATA_FLAG_SLAVE_POSS; |
| 708 |
|
| 709 |
printk(KERN_INFO DRV_NAME " PATA port found\n"); |
| 710 |
} |
| 711 |
else |
| 712 |
probe_ent->n_ports = 2; |