aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/pata_cmd64x.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ata/pata_cmd64x.c')
-rw-r--r--drivers/ata/pata_cmd64x.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/ata/pata_cmd64x.c b/drivers/ata/pata_cmd64x.c
index 3e02c6a3ba9c..2a79b335cfcc 100644
--- a/drivers/ata/pata_cmd64x.c
+++ b/drivers/ata/pata_cmd64x.c
@@ -377,7 +377,7 @@ static int cmd64x_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
377{ 377{
378 u32 class_rev; 378 u32 class_rev;
379 379
380 static struct ata_port_info cmd_info[6] = { 380 static const struct ata_port_info cmd_info[6] = {
381 { /* CMD 643 - no UDMA */ 381 { /* CMD 643 - no UDMA */
382 .sht = &cmd64x_sht, 382 .sht = &cmd64x_sht,
383 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SRST, 383 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SRST,
@@ -424,11 +424,9 @@ static int cmd64x_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
424 .port_ops = &cmd648_port_ops 424 .port_ops = &cmd648_port_ops
425 } 425 }
426 }; 426 };
427 static struct ata_port_info *port_info[2], *info; 427 const struct ata_port_info *ppi[] = { &cmd_info[id->driver_data], NULL };
428 u8 mrdmode; 428 u8 mrdmode;
429 429
430 info = &cmd_info[id->driver_data];
431
432 pci_read_config_dword(pdev, PCI_CLASS_REVISION, &class_rev); 430 pci_read_config_dword(pdev, PCI_CLASS_REVISION, &class_rev);
433 class_rev &= 0xFF; 431 class_rev &= 0xFF;
434 432
@@ -438,10 +436,10 @@ static int cmd64x_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
438 if (pdev->device == PCI_DEVICE_ID_CMD_646) { 436 if (pdev->device == PCI_DEVICE_ID_CMD_646) {
439 /* Does UDMA work ? */ 437 /* Does UDMA work ? */
440 if (class_rev > 4) 438 if (class_rev > 4)
441 info = &cmd_info[2]; 439 ppi[0] = &cmd_info[2];
442 /* Early rev with other problems ? */ 440 /* Early rev with other problems ? */
443 else if (class_rev == 1) 441 else if (class_rev == 1)
444 info = &cmd_info[3]; 442 ppi[0] = &cmd_info[3];
445 } 443 }
446 444
447 pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 64); 445 pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 64);
@@ -457,8 +455,7 @@ static int cmd64x_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
457 pci_write_config_byte(pdev, UDIDETCR0, 0xF0); 455 pci_write_config_byte(pdev, UDIDETCR0, 0xF0);
458#endif 456#endif
459 457
460 port_info[0] = port_info[1] = info; 458 return ata_pci_init_one(pdev, ppi);
461 return ata_pci_init_one(pdev, port_info, 2);
462} 459}
463 460
464#ifdef CONFIG_PM 461#ifdef CONFIG_PM