diff options
Diffstat (limited to 'drivers/ata/pata_hpt37x.c')
-rw-r--r-- | drivers/ata/pata_hpt37x.c | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/drivers/ata/pata_hpt37x.c b/drivers/ata/pata_hpt37x.c index 1614e8c822a4..5a0a410654e2 100644 --- a/drivers/ata/pata_hpt37x.c +++ b/drivers/ata/pata_hpt37x.c | |||
@@ -887,7 +887,7 @@ static int hpt37x_calibrate_dpll(struct pci_dev *dev) | |||
887 | static int hpt37x_init_one(struct pci_dev *dev, const struct pci_device_id *id) | 887 | static int hpt37x_init_one(struct pci_dev *dev, const struct pci_device_id *id) |
888 | { | 888 | { |
889 | /* HPT370 - UDMA100 */ | 889 | /* HPT370 - UDMA100 */ |
890 | static struct ata_port_info info_hpt370 = { | 890 | static const struct ata_port_info info_hpt370 = { |
891 | .sht = &hpt37x_sht, | 891 | .sht = &hpt37x_sht, |
892 | .flags = ATA_FLAG_SLAVE_POSS|ATA_FLAG_SRST, | 892 | .flags = ATA_FLAG_SLAVE_POSS|ATA_FLAG_SRST, |
893 | .pio_mask = 0x1f, | 893 | .pio_mask = 0x1f, |
@@ -896,7 +896,7 @@ static int hpt37x_init_one(struct pci_dev *dev, const struct pci_device_id *id) | |||
896 | .port_ops = &hpt370_port_ops | 896 | .port_ops = &hpt370_port_ops |
897 | }; | 897 | }; |
898 | /* HPT370A - UDMA100 */ | 898 | /* HPT370A - UDMA100 */ |
899 | static struct ata_port_info info_hpt370a = { | 899 | static const struct ata_port_info info_hpt370a = { |
900 | .sht = &hpt37x_sht, | 900 | .sht = &hpt37x_sht, |
901 | .flags = ATA_FLAG_SLAVE_POSS|ATA_FLAG_SRST, | 901 | .flags = ATA_FLAG_SLAVE_POSS|ATA_FLAG_SRST, |
902 | .pio_mask = 0x1f, | 902 | .pio_mask = 0x1f, |
@@ -905,7 +905,7 @@ static int hpt37x_init_one(struct pci_dev *dev, const struct pci_device_id *id) | |||
905 | .port_ops = &hpt370a_port_ops | 905 | .port_ops = &hpt370a_port_ops |
906 | }; | 906 | }; |
907 | /* HPT370 - UDMA100 */ | 907 | /* HPT370 - UDMA100 */ |
908 | static struct ata_port_info info_hpt370_33 = { | 908 | static const struct ata_port_info info_hpt370_33 = { |
909 | .sht = &hpt37x_sht, | 909 | .sht = &hpt37x_sht, |
910 | .flags = ATA_FLAG_SLAVE_POSS|ATA_FLAG_SRST, | 910 | .flags = ATA_FLAG_SLAVE_POSS|ATA_FLAG_SRST, |
911 | .pio_mask = 0x1f, | 911 | .pio_mask = 0x1f, |
@@ -914,7 +914,7 @@ static int hpt37x_init_one(struct pci_dev *dev, const struct pci_device_id *id) | |||
914 | .port_ops = &hpt370_port_ops | 914 | .port_ops = &hpt370_port_ops |
915 | }; | 915 | }; |
916 | /* HPT370A - UDMA100 */ | 916 | /* HPT370A - UDMA100 */ |
917 | static struct ata_port_info info_hpt370a_33 = { | 917 | static const struct ata_port_info info_hpt370a_33 = { |
918 | .sht = &hpt37x_sht, | 918 | .sht = &hpt37x_sht, |
919 | .flags = ATA_FLAG_SLAVE_POSS|ATA_FLAG_SRST, | 919 | .flags = ATA_FLAG_SLAVE_POSS|ATA_FLAG_SRST, |
920 | .pio_mask = 0x1f, | 920 | .pio_mask = 0x1f, |
@@ -923,7 +923,7 @@ static int hpt37x_init_one(struct pci_dev *dev, const struct pci_device_id *id) | |||
923 | .port_ops = &hpt370a_port_ops | 923 | .port_ops = &hpt370a_port_ops |
924 | }; | 924 | }; |
925 | /* HPT371, 372 and friends - UDMA133 */ | 925 | /* HPT371, 372 and friends - UDMA133 */ |
926 | static struct ata_port_info info_hpt372 = { | 926 | static const struct ata_port_info info_hpt372 = { |
927 | .sht = &hpt37x_sht, | 927 | .sht = &hpt37x_sht, |
928 | .flags = ATA_FLAG_SLAVE_POSS|ATA_FLAG_SRST, | 928 | .flags = ATA_FLAG_SLAVE_POSS|ATA_FLAG_SRST, |
929 | .pio_mask = 0x1f, | 929 | .pio_mask = 0x1f, |
@@ -932,7 +932,7 @@ static int hpt37x_init_one(struct pci_dev *dev, const struct pci_device_id *id) | |||
932 | .port_ops = &hpt372_port_ops | 932 | .port_ops = &hpt372_port_ops |
933 | }; | 933 | }; |
934 | /* HPT371, 372 and friends - UDMA100 at 50MHz clock */ | 934 | /* HPT371, 372 and friends - UDMA100 at 50MHz clock */ |
935 | static struct ata_port_info info_hpt372_50 = { | 935 | static const struct ata_port_info info_hpt372_50 = { |
936 | .sht = &hpt37x_sht, | 936 | .sht = &hpt37x_sht, |
937 | .flags = ATA_FLAG_SLAVE_POSS|ATA_FLAG_SRST, | 937 | .flags = ATA_FLAG_SLAVE_POSS|ATA_FLAG_SRST, |
938 | .pio_mask = 0x1f, | 938 | .pio_mask = 0x1f, |
@@ -941,7 +941,7 @@ static int hpt37x_init_one(struct pci_dev *dev, const struct pci_device_id *id) | |||
941 | .port_ops = &hpt372_port_ops | 941 | .port_ops = &hpt372_port_ops |
942 | }; | 942 | }; |
943 | /* HPT374 - UDMA133 */ | 943 | /* HPT374 - UDMA133 */ |
944 | static struct ata_port_info info_hpt374 = { | 944 | static const struct ata_port_info info_hpt374 = { |
945 | .sht = &hpt37x_sht, | 945 | .sht = &hpt37x_sht, |
946 | .flags = ATA_FLAG_SLAVE_POSS|ATA_FLAG_SRST, | 946 | .flags = ATA_FLAG_SLAVE_POSS|ATA_FLAG_SRST, |
947 | .pio_mask = 0x1f, | 947 | .pio_mask = 0x1f, |
@@ -951,9 +951,10 @@ static int hpt37x_init_one(struct pci_dev *dev, const struct pci_device_id *id) | |||
951 | }; | 951 | }; |
952 | 952 | ||
953 | static const int MHz[4] = { 33, 40, 50, 66 }; | 953 | static const int MHz[4] = { 33, 40, 50, 66 }; |
954 | 954 | const struct ata_port_info *port; | |
955 | struct ata_port_info *port_info[2]; | 955 | void *private_data = NULL; |
956 | struct ata_port_info *port; | 956 | struct ata_port_info port_info; |
957 | const struct ata_port_info *ppi[] = { &port_info, NULL }; | ||
957 | 958 | ||
958 | u8 irqmask; | 959 | u8 irqmask; |
959 | u32 class_rev; | 960 | u32 class_rev; |
@@ -1124,13 +1125,13 @@ static int hpt37x_init_one(struct pci_dev *dev, const struct pci_device_id *id) | |||
1124 | return -ENODEV; | 1125 | return -ENODEV; |
1125 | } | 1126 | } |
1126 | if (clock_slot == 3) | 1127 | if (clock_slot == 3) |
1127 | port->private_data = (void *)hpt37x_timings_66; | 1128 | private_data = (void *)hpt37x_timings_66; |
1128 | else | 1129 | else |
1129 | port->private_data = (void *)hpt37x_timings_50; | 1130 | private_data = (void *)hpt37x_timings_50; |
1130 | 1131 | ||
1131 | printk(KERN_INFO "hpt37x: Bus clock %dMHz, using DPLL.\n", MHz[clock_slot]); | 1132 | printk(KERN_INFO "hpt37x: Bus clock %dMHz, using DPLL.\n", MHz[clock_slot]); |
1132 | } else { | 1133 | } else { |
1133 | port->private_data = (void *)chip_table->clocks[clock_slot]; | 1134 | private_data = (void *)chip_table->clocks[clock_slot]; |
1134 | /* | 1135 | /* |
1135 | * Perform a final fixup. Note that we will have used the | 1136 | * Perform a final fixup. Note that we will have used the |
1136 | * DPLL on the HPT372 which means we don't have to worry | 1137 | * DPLL on the HPT372 which means we don't have to worry |
@@ -1144,9 +1145,11 @@ static int hpt37x_init_one(struct pci_dev *dev, const struct pci_device_id *id) | |||
1144 | printk(KERN_INFO "hpt37x: %s: Bus clock %dMHz.\n", chip_table->name, MHz[clock_slot]); | 1145 | printk(KERN_INFO "hpt37x: %s: Bus clock %dMHz.\n", chip_table->name, MHz[clock_slot]); |
1145 | } | 1146 | } |
1146 | 1147 | ||
1147 | port_info[0] = port_info[1] = port; | ||
1148 | /* Now kick off ATA set up */ | 1148 | /* Now kick off ATA set up */ |
1149 | return ata_pci_init_one(dev, port_info, 2); | 1149 | port_info = *port; |
1150 | port_info.private_data = private_data; | ||
1151 | |||
1152 | return ata_pci_init_one(dev, ppi); | ||
1150 | } | 1153 | } |
1151 | 1154 | ||
1152 | static const struct pci_device_id hpt37x[] = { | 1155 | static const struct pci_device_id hpt37x[] = { |