aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/pata_via.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ata/pata_via.c')
-rw-r--r--drivers/ata/pata_via.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/drivers/ata/pata_via.c b/drivers/ata/pata_via.c
index e66bb85ad3d1..f4092cbd566f 100644
--- a/drivers/ata/pata_via.c
+++ b/drivers/ata/pata_via.c
@@ -442,8 +442,7 @@ static int via_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
442 .udma_mask = ATA_UDMA6, /* FIXME: should check north bridge */ 442 .udma_mask = ATA_UDMA6, /* FIXME: should check north bridge */
443 .port_ops = &via_port_ops 443 .port_ops = &via_port_ops
444 }; 444 };
445 struct ata_port_info type; 445 const struct ata_port_info *ppi[] = { NULL, NULL };
446 const struct ata_port_info *ppi[] = { &type, NULL };
447 struct pci_dev *isa = NULL; 446 struct pci_dev *isa = NULL;
448 const struct via_isa_bridge *config; 447 const struct via_isa_bridge *config;
449 static int printed_version; 448 static int printed_version;
@@ -491,25 +490,25 @@ static int via_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
491 switch(config->flags & VIA_UDMA) { 490 switch(config->flags & VIA_UDMA) {
492 case VIA_UDMA_NONE: 491 case VIA_UDMA_NONE:
493 if (config->flags & VIA_NO_UNMASK) 492 if (config->flags & VIA_NO_UNMASK)
494 type = via_mwdma_info_borked; 493 ppi[0] = &via_mwdma_info_borked;
495 else 494 else
496 type = via_mwdma_info; 495 ppi[0] = &via_mwdma_info;
497 break; 496 break;
498 case VIA_UDMA_33: 497 case VIA_UDMA_33:
499 type = via_udma33_info; 498 ppi[0] = &via_udma33_info;
500 break; 499 break;
501 case VIA_UDMA_66: 500 case VIA_UDMA_66:
502 type = via_udma66_info; 501 ppi[0] = &via_udma66_info;
503 /* The 66 MHz devices require we enable the clock */ 502 /* The 66 MHz devices require we enable the clock */
504 pci_read_config_dword(pdev, 0x50, &timing); 503 pci_read_config_dword(pdev, 0x50, &timing);
505 timing |= 0x80008; 504 timing |= 0x80008;
506 pci_write_config_dword(pdev, 0x50, timing); 505 pci_write_config_dword(pdev, 0x50, timing);
507 break; 506 break;
508 case VIA_UDMA_100: 507 case VIA_UDMA_100:
509 type = via_udma100_info; 508 ppi[0] = &via_udma100_info;
510 break; 509 break;
511 case VIA_UDMA_133: 510 case VIA_UDMA_133:
512 type = via_udma133_info; 511 ppi[0] = &via_udma133_info;
513 break; 512 break;
514 default: 513 default:
515 WARN_ON(1); 514 WARN_ON(1);
@@ -524,9 +523,7 @@ static int via_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
524 } 523 }
525 524
526 /* We have established the device type, now fire it up */ 525 /* We have established the device type, now fire it up */
527 type.private_data = (void *)config; 526 return ata_pci_init_one(pdev, ppi, &via_sht, (void *)config);
528
529 return ata_pci_init_one(pdev, ppi, &via_sht);
530} 527}
531 528
532#ifdef CONFIG_PM 529#ifdef CONFIG_PM