|
@@ -1271,17 +1271,6 @@ static void __devinit init_hwif_hpt366(ide_hwif_t *hwif)
|
|
|
/* Cache the channel's MISC. control registers' offset */
|
|
|
hwif->select_data = hwif->channel ? 0x54 : 0x50;
|
|
|
|
|
|
- hwif->set_pio_mode = &hpt3xx_set_pio_mode;
|
|
|
- hwif->set_dma_mode = &hpt3xx_set_mode;
|
|
|
-
|
|
|
- hwif->quirkproc = &hpt3xx_quirkproc;
|
|
|
- hwif->maskproc = &hpt3xx_maskproc;
|
|
|
-
|
|
|
- hwif->udma_filter = &hpt3xx_udma_filter;
|
|
|
- hwif->mdma_filter = &hpt3xx_mdma_filter;
|
|
|
-
|
|
|
- hwif->cable_detect = hpt3xx_cable_detect;
|
|
|
-
|
|
|
/*
|
|
|
* HPT3xxN chips have some complications:
|
|
|
*
|
|
@@ -1416,6 +1405,16 @@ static int __devinit hpt36x_init(struct pci_dev *dev, struct pci_dev *dev2)
|
|
|
IDE_HFLAG_ABUSE_SET_DMA_MODE | \
|
|
|
IDE_HFLAG_OFF_BOARD)
|
|
|
|
|
|
+static const struct ide_port_ops hpt3xx_port_ops = {
|
|
|
+ .set_pio_mode = hpt3xx_set_pio_mode,
|
|
|
+ .set_dma_mode = hpt3xx_set_mode,
|
|
|
+ .quirkproc = hpt3xx_quirkproc,
|
|
|
+ .maskproc = hpt3xx_maskproc,
|
|
|
+ .mdma_filter = hpt3xx_mdma_filter,
|
|
|
+ .udma_filter = hpt3xx_udma_filter,
|
|
|
+ .cable_detect = hpt3xx_cable_detect,
|
|
|
+};
|
|
|
+
|
|
|
static const struct ide_port_info hpt366_chipsets[] __devinitdata = {
|
|
|
{ /* 0 */
|
|
|
.name = "HPT36x",
|
|
@@ -1430,6 +1429,7 @@ static const struct ide_port_info hpt366_chipsets[] __devinitdata = {
|
|
|
*/
|
|
|
.enablebits = {{0x50,0x10,0x10}, {0x54,0x04,0x04}},
|
|
|
.extra = 240,
|
|
|
+ .port_ops = &hpt3xx_port_ops,
|
|
|
.host_flags = IDE_HFLAGS_HPT3XX | IDE_HFLAG_SINGLE,
|
|
|
.pio_mask = ATA_PIO4,
|
|
|
.mwdma_mask = ATA_MWDMA2,
|
|
@@ -1440,6 +1440,7 @@ static const struct ide_port_info hpt366_chipsets[] __devinitdata = {
|
|
|
.init_dma = init_dma_hpt366,
|
|
|
.enablebits = {{0x50,0x04,0x04}, {0x54,0x04,0x04}},
|
|
|
.extra = 240,
|
|
|
+ .port_ops = &hpt3xx_port_ops,
|
|
|
.host_flags = IDE_HFLAGS_HPT3XX,
|
|
|
.pio_mask = ATA_PIO4,
|
|
|
.mwdma_mask = ATA_MWDMA2,
|
|
@@ -1450,6 +1451,7 @@ static const struct ide_port_info hpt366_chipsets[] __devinitdata = {
|
|
|
.init_dma = init_dma_hpt366,
|
|
|
.enablebits = {{0x50,0x04,0x04}, {0x54,0x04,0x04}},
|
|
|
.extra = 240,
|
|
|
+ .port_ops = &hpt3xx_port_ops,
|
|
|
.host_flags = IDE_HFLAGS_HPT3XX,
|
|
|
.pio_mask = ATA_PIO4,
|
|
|
.mwdma_mask = ATA_MWDMA2,
|
|
@@ -1460,6 +1462,7 @@ static const struct ide_port_info hpt366_chipsets[] __devinitdata = {
|
|
|
.init_dma = init_dma_hpt366,
|
|
|
.enablebits = {{0x50,0x04,0x04}, {0x54,0x04,0x04}},
|
|
|
.extra = 240,
|
|
|
+ .port_ops = &hpt3xx_port_ops,
|
|
|
.host_flags = IDE_HFLAGS_HPT3XX,
|
|
|
.pio_mask = ATA_PIO4,
|
|
|
.mwdma_mask = ATA_MWDMA2,
|
|
@@ -1471,6 +1474,7 @@ static const struct ide_port_info hpt366_chipsets[] __devinitdata = {
|
|
|
.enablebits = {{0x50,0x04,0x04}, {0x54,0x04,0x04}},
|
|
|
.udma_mask = ATA_UDMA5,
|
|
|
.extra = 240,
|
|
|
+ .port_ops = &hpt3xx_port_ops,
|
|
|
.host_flags = IDE_HFLAGS_HPT3XX,
|
|
|
.pio_mask = ATA_PIO4,
|
|
|
.mwdma_mask = ATA_MWDMA2,
|
|
@@ -1481,6 +1485,7 @@ static const struct ide_port_info hpt366_chipsets[] __devinitdata = {
|
|
|
.init_dma = init_dma_hpt366,
|
|
|
.enablebits = {{0x50,0x04,0x04}, {0x54,0x04,0x04}},
|
|
|
.extra = 240,
|
|
|
+ .port_ops = &hpt3xx_port_ops,
|
|
|
.host_flags = IDE_HFLAGS_HPT3XX,
|
|
|
.pio_mask = ATA_PIO4,
|
|
|
.mwdma_mask = ATA_MWDMA2,
|