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.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/drivers/ata/pata_via.c b/drivers/ata/pata_via.c
index 3740644e7f43..e4c71f76bd55 100644
--- a/drivers/ata/pata_via.c
+++ b/drivers/ata/pata_via.c
@@ -421,7 +421,7 @@ static void via_config_fifo(struct pci_dev *pdev, unsigned int flags)
421static int via_init_one(struct pci_dev *pdev, const struct pci_device_id *id) 421static int via_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
422{ 422{
423 /* Early VIA without UDMA support */ 423 /* Early VIA without UDMA support */
424 static struct ata_port_info via_mwdma_info = { 424 static const struct ata_port_info via_mwdma_info = {
425 .sht = &via_sht, 425 .sht = &via_sht,
426 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SETXFER_POLLING, 426 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SETXFER_POLLING,
427 .pio_mask = 0x1f, 427 .pio_mask = 0x1f,
@@ -429,7 +429,7 @@ static int via_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
429 .port_ops = &via_port_ops 429 .port_ops = &via_port_ops
430 }; 430 };
431 /* Ditto with IRQ masking required */ 431 /* Ditto with IRQ masking required */
432 static struct ata_port_info via_mwdma_info_borked = { 432 static const struct ata_port_info via_mwdma_info_borked = {
433 .sht = &via_sht, 433 .sht = &via_sht,
434 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SETXFER_POLLING, 434 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SETXFER_POLLING,
435 .pio_mask = 0x1f, 435 .pio_mask = 0x1f,
@@ -437,7 +437,7 @@ static int via_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
437 .port_ops = &via_port_ops_noirq, 437 .port_ops = &via_port_ops_noirq,
438 }; 438 };
439 /* VIA UDMA 33 devices (and borked 66) */ 439 /* VIA UDMA 33 devices (and borked 66) */
440 static struct ata_port_info via_udma33_info = { 440 static const struct ata_port_info via_udma33_info = {
441 .sht = &via_sht, 441 .sht = &via_sht,
442 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SETXFER_POLLING, 442 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SETXFER_POLLING,
443 .pio_mask = 0x1f, 443 .pio_mask = 0x1f,
@@ -446,7 +446,7 @@ static int via_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
446 .port_ops = &via_port_ops 446 .port_ops = &via_port_ops
447 }; 447 };
448 /* VIA UDMA 66 devices */ 448 /* VIA UDMA 66 devices */
449 static struct ata_port_info via_udma66_info = { 449 static const struct ata_port_info via_udma66_info = {
450 .sht = &via_sht, 450 .sht = &via_sht,
451 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SETXFER_POLLING, 451 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SETXFER_POLLING,
452 .pio_mask = 0x1f, 452 .pio_mask = 0x1f,
@@ -455,7 +455,7 @@ static int via_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
455 .port_ops = &via_port_ops 455 .port_ops = &via_port_ops
456 }; 456 };
457 /* VIA UDMA 100 devices */ 457 /* VIA UDMA 100 devices */
458 static struct ata_port_info via_udma100_info = { 458 static const struct ata_port_info via_udma100_info = {
459 .sht = &via_sht, 459 .sht = &via_sht,
460 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SETXFER_POLLING, 460 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SETXFER_POLLING,
461 .pio_mask = 0x1f, 461 .pio_mask = 0x1f,
@@ -464,7 +464,7 @@ static int via_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
464 .port_ops = &via_port_ops 464 .port_ops = &via_port_ops
465 }; 465 };
466 /* UDMA133 with bad AST (All current 133) */ 466 /* UDMA133 with bad AST (All current 133) */
467 static struct ata_port_info via_udma133_info = { 467 static const struct ata_port_info via_udma133_info = {
468 .sht = &via_sht, 468 .sht = &via_sht,
469 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SETXFER_POLLING, 469 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SETXFER_POLLING,
470 .pio_mask = 0x1f, 470 .pio_mask = 0x1f,
@@ -472,7 +472,8 @@ static int via_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
472 .udma_mask = 0x7f, /* FIXME: should check north bridge */ 472 .udma_mask = 0x7f, /* FIXME: should check north bridge */
473 .port_ops = &via_port_ops 473 .port_ops = &via_port_ops
474 }; 474 };
475 struct ata_port_info *port_info[2], *type; 475 struct ata_port_info type;
476 const struct ata_port_info *ppi[] = { &type, NULL };
476 struct pci_dev *isa = NULL; 477 struct pci_dev *isa = NULL;
477 const struct via_isa_bridge *config; 478 const struct via_isa_bridge *config;
478 static int printed_version; 479 static int printed_version;
@@ -517,25 +518,25 @@ static int via_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
517 switch(config->flags & VIA_UDMA) { 518 switch(config->flags & VIA_UDMA) {
518 case VIA_UDMA_NONE: 519 case VIA_UDMA_NONE:
519 if (config->flags & VIA_NO_UNMASK) 520 if (config->flags & VIA_NO_UNMASK)
520 type = &via_mwdma_info_borked; 521 type = via_mwdma_info_borked;
521 else 522 else
522 type = &via_mwdma_info; 523 type = via_mwdma_info;
523 break; 524 break;
524 case VIA_UDMA_33: 525 case VIA_UDMA_33:
525 type = &via_udma33_info; 526 type = via_udma33_info;
526 break; 527 break;
527 case VIA_UDMA_66: 528 case VIA_UDMA_66:
528 type = &via_udma66_info; 529 type = via_udma66_info;
529 /* The 66 MHz devices require we enable the clock */ 530 /* The 66 MHz devices require we enable the clock */
530 pci_read_config_dword(pdev, 0x50, &timing); 531 pci_read_config_dword(pdev, 0x50, &timing);
531 timing |= 0x80008; 532 timing |= 0x80008;
532 pci_write_config_dword(pdev, 0x50, timing); 533 pci_write_config_dword(pdev, 0x50, timing);
533 break; 534 break;
534 case VIA_UDMA_100: 535 case VIA_UDMA_100:
535 type = &via_udma100_info; 536 type = via_udma100_info;
536 break; 537 break;
537 case VIA_UDMA_133: 538 case VIA_UDMA_133:
538 type = &via_udma133_info; 539 type = via_udma133_info;
539 break; 540 break;
540 default: 541 default:
541 WARN_ON(1); 542 WARN_ON(1);
@@ -550,10 +551,9 @@ static int via_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
550 } 551 }
551 552
552 /* We have established the device type, now fire it up */ 553 /* We have established the device type, now fire it up */
553 type->private_data = (void *)config; 554 type.private_data = (void *)config;
554 555
555 port_info[0] = port_info[1] = type; 556 return ata_pci_init_one(pdev, ppi);
556 return ata_pci_init_one(pdev, port_info, 2);
557} 557}
558 558
559#ifdef CONFIG_PM 559#ifdef CONFIG_PM