aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/ata_piix.c
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2006-02-15 01:01:42 -0500
committerJeff Garzik <jgarzik@pobox.com>2006-02-20 06:19:53 -0500
commitccbe6d5ee0eb3182675ef1c84322810fd884586d (patch)
tree0375faedb033b70b401933b956c1b8bf8fc2b3ae /drivers/scsi/ata_piix.c
parent573db6b8f93b5e359abd9a05e620fd9a589b0209 (diff)
[PATCH] ata_piix: convert sata to new reset mechanism
Convert ata_piix sata ->phy_reset to new reset mechanism. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to 'drivers/scsi/ata_piix.c')
-rw-r--r--drivers/scsi/ata_piix.c35
1 files changed, 15 insertions, 20 deletions
diff --git a/drivers/scsi/ata_piix.c b/drivers/scsi/ata_piix.c
index d79c252a3f60..c662bf531514 100644
--- a/drivers/scsi/ata_piix.c
+++ b/drivers/scsi/ata_piix.c
@@ -132,7 +132,7 @@ static int piix_init_one (struct pci_dev *pdev,
132 const struct pci_device_id *ent); 132 const struct pci_device_id *ent);
133 133
134static int piix_pata_probe_reset(struct ata_port *ap, unsigned int *classes); 134static int piix_pata_probe_reset(struct ata_port *ap, unsigned int *classes);
135static void piix_sata_phy_reset(struct ata_port *ap); 135static int piix_sata_probe_reset(struct ata_port *ap, unsigned int *classes);
136static void piix_set_piomode (struct ata_port *ap, struct ata_device *adev); 136static void piix_set_piomode (struct ata_port *ap, struct ata_device *adev);
137static void piix_set_dmamode (struct ata_port *ap, struct ata_device *adev); 137static void piix_set_dmamode (struct ata_port *ap, struct ata_device *adev);
138 138
@@ -235,7 +235,7 @@ static const struct ata_port_operations piix_sata_ops = {
235 .exec_command = ata_exec_command, 235 .exec_command = ata_exec_command,
236 .dev_select = ata_std_dev_select, 236 .dev_select = ata_std_dev_select,
237 237
238 .phy_reset = piix_sata_phy_reset, 238 .probe_reset = piix_sata_probe_reset,
239 239
240 .bmdma_setup = ata_bmdma_setup, 240 .bmdma_setup = ata_bmdma_setup,
241 .bmdma_start = ata_bmdma_start, 241 .bmdma_start = ata_bmdma_start,
@@ -272,8 +272,8 @@ static struct ata_port_info piix_port_info[] = {
272 /* ich5_sata */ 272 /* ich5_sata */
273 { 273 {
274 .sht = &piix_sht, 274 .sht = &piix_sht,
275 .host_flags = ATA_FLAG_SATA | ATA_FLAG_SRST | 275 .host_flags = ATA_FLAG_SATA | PIIX_FLAG_COMBINED |
276 PIIX_FLAG_COMBINED | PIIX_FLAG_CHECKINTR, 276 PIIX_FLAG_CHECKINTR,
277 .pio_mask = 0x1f, /* pio0-4 */ 277 .pio_mask = 0x1f, /* pio0-4 */
278 .mwdma_mask = 0x07, /* mwdma0-2 */ 278 .mwdma_mask = 0x07, /* mwdma0-2 */
279 .udma_mask = 0x7f, /* udma0-6 */ 279 .udma_mask = 0x7f, /* udma0-6 */
@@ -297,8 +297,7 @@ static struct ata_port_info piix_port_info[] = {
297 /* ich6_sata */ 297 /* ich6_sata */
298 { 298 {
299 .sht = &piix_sht, 299 .sht = &piix_sht,
300 .host_flags = ATA_FLAG_SATA | ATA_FLAG_SRST | 300 .host_flags = ATA_FLAG_SATA | PIIX_FLAG_COMBINED_ICH6 |
301 PIIX_FLAG_COMBINED_ICH6 |
302 PIIX_FLAG_CHECKINTR | ATA_FLAG_SLAVE_POSS, 301 PIIX_FLAG_CHECKINTR | ATA_FLAG_SLAVE_POSS,
303 .pio_mask = 0x1f, /* pio0-4 */ 302 .pio_mask = 0x1f, /* pio0-4 */
304 .mwdma_mask = 0x07, /* mwdma0-2 */ 303 .mwdma_mask = 0x07, /* mwdma0-2 */
@@ -309,8 +308,7 @@ static struct ata_port_info piix_port_info[] = {
309 /* ich6_sata_ahci */ 308 /* ich6_sata_ahci */
310 { 309 {
311 .sht = &piix_sht, 310 .sht = &piix_sht,
312 .host_flags = ATA_FLAG_SATA | ATA_FLAG_SRST | 311 .host_flags = ATA_FLAG_SATA | PIIX_FLAG_COMBINED_ICH6 |
313 PIIX_FLAG_COMBINED_ICH6 |
314 PIIX_FLAG_CHECKINTR | ATA_FLAG_SLAVE_POSS | 312 PIIX_FLAG_CHECKINTR | ATA_FLAG_SLAVE_POSS |
315 PIIX_FLAG_AHCI, 313 PIIX_FLAG_AHCI,
316 .pio_mask = 0x1f, /* pio0-4 */ 314 .pio_mask = 0x1f, /* pio0-4 */
@@ -448,28 +446,25 @@ static int piix_sata_probe (struct ata_port *ap)
448} 446}
449 447
450/** 448/**
451 * piix_sata_phy_reset - Probe specified port on SATA host controller 449 * piix_sata_probe_reset - Perform reset on SATA port and classify
452 * @ap: Port to probe 450 * @ap: Port to reset
451 * @classes: Resulting classes of attached devices
453 * 452 *
454 * Probe SATA phy. 453 * Reset SATA phy and classify attached devices.
455 * 454 *
456 * LOCKING: 455 * LOCKING:
457 * None (inherited from caller). 456 * None (inherited from caller).
458 */ 457 */
459 458static int piix_sata_probe_reset(struct ata_port *ap, unsigned int *classes)
460static void piix_sata_phy_reset(struct ata_port *ap)
461{ 459{
462 if (!piix_sata_probe(ap)) { 460 if (!piix_sata_probe(ap)) {
463 ata_port_disable(ap);
464 printk(KERN_INFO "ata%u: SATA port has no device.\n", ap->id); 461 printk(KERN_INFO "ata%u: SATA port has no device.\n", ap->id);
465 return; 462 return 0;
466 } 463 }
467 464
468 ap->cbl = ATA_CBL_SATA; 465 return ata_drive_probe_reset(ap, ata_std_probeinit,
469 466 ata_std_softreset, NULL,
470 ata_port_probe(ap); 467 ata_std_postreset, classes);
471
472 ata_bus_reset(ap);
473} 468}
474 469
475/** 470/**