aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2007-10-18 18:30:10 -0400
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2007-10-18 18:30:10 -0400
commit1c51361a9867021dd7444b56d87834003d4ca67d (patch)
tree2b14e5a4d85b9d46571c5839bbcce6f90be8b616
parented67b92385a5afddc98d5ff0894b2854c4a54dac (diff)
ide: add IDE_HFLAG_SERIALIZE host flag
Add IDE_HFLAG_SERIALIZE host flag to tell ide_pci_setup_ports() to set hwif/mate->serialized and convert aec62xx, cs5530 and sc1200 host drivers to use it. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
-rw-r--r--drivers/ide/pci/aec62xx.c10
-rw-r--r--drivers/ide/pci/cs5530.c7
-rw-r--r--drivers/ide/pci/sc1200.c7
-rw-r--r--drivers/ide/setup-pci.c3
-rw-r--r--include/linux/ide.h2
5 files changed, 16 insertions, 13 deletions
diff --git a/drivers/ide/pci/aec62xx.c b/drivers/ide/pci/aec62xx.c
index be0d077dbbdf..f3912aa8e576 100644
--- a/drivers/ide/pci/aec62xx.c
+++ b/drivers/ide/pci/aec62xx.c
@@ -187,11 +187,9 @@ static void __devinit init_hwif_aec62xx(ide_hwif_t *hwif)
187 187
188 hwif->set_pio_mode = &aec_set_pio_mode; 188 hwif->set_pio_mode = &aec_set_pio_mode;
189 189
190 if (dev->device == PCI_DEVICE_ID_ARTOP_ATP850UF) { 190 if (dev->device == PCI_DEVICE_ID_ARTOP_ATP850UF)
191 if(hwif->mate)
192 hwif->mate->serialized = hwif->serialized = 1;
193 hwif->set_dma_mode = &aec6210_set_mode; 191 hwif->set_dma_mode = &aec6210_set_mode;
194 } else 192 else
195 hwif->set_dma_mode = &aec6260_set_mode; 193 hwif->set_dma_mode = &aec6260_set_mode;
196 194
197 hwif->drives[0].autotune = hwif->drives[1].autotune = 1; 195 hwif->drives[0].autotune = hwif->drives[1].autotune = 1;
@@ -219,7 +217,9 @@ static ide_pci_device_t aec62xx_chipsets[] __devinitdata = {
219 .init_chipset = init_chipset_aec62xx, 217 .init_chipset = init_chipset_aec62xx,
220 .init_hwif = init_hwif_aec62xx, 218 .init_hwif = init_hwif_aec62xx,
221 .enablebits = {{0x4a,0x02,0x02}, {0x4a,0x04,0x04}}, 219 .enablebits = {{0x4a,0x02,0x02}, {0x4a,0x04,0x04}},
222 .host_flags = IDE_HFLAG_NO_ATAPI_DMA | IDE_HFLAG_OFF_BOARD, 220 .host_flags = IDE_HFLAG_SERIALIZE |
221 IDE_HFLAG_NO_ATAPI_DMA |
222 IDE_HFLAG_OFF_BOARD,
223 .pio_mask = ATA_PIO4, 223 .pio_mask = ATA_PIO4,
224 .mwdma_mask = ATA_MWDMA2, 224 .mwdma_mask = ATA_MWDMA2,
225 .udma_mask = ATA_UDMA2, 225 .udma_mask = ATA_UDMA2,
diff --git a/drivers/ide/pci/cs5530.c b/drivers/ide/pci/cs5530.c
index 5e77a3d8e6d0..0324a8a88ef4 100644
--- a/drivers/ide/pci/cs5530.c
+++ b/drivers/ide/pci/cs5530.c
@@ -245,9 +245,6 @@ static void __devinit init_hwif_cs5530 (ide_hwif_t *hwif)
245 unsigned long basereg; 245 unsigned long basereg;
246 u32 d0_timings; 246 u32 d0_timings;
247 247
248 if (hwif->mate)
249 hwif->serialized = hwif->mate->serialized = 1;
250
251 hwif->set_pio_mode = &cs5530_set_pio_mode; 248 hwif->set_pio_mode = &cs5530_set_pio_mode;
252 hwif->set_dma_mode = &cs5530_set_dma_mode; 249 hwif->set_dma_mode = &cs5530_set_dma_mode;
253 250
@@ -271,7 +268,9 @@ static ide_pci_device_t cs5530_chipset __devinitdata = {
271 .name = "CS5530", 268 .name = "CS5530",
272 .init_chipset = init_chipset_cs5530, 269 .init_chipset = init_chipset_cs5530,
273 .init_hwif = init_hwif_cs5530, 270 .init_hwif = init_hwif_cs5530,
274 .host_flags = IDE_HFLAG_POST_SET_MODE | IDE_HFLAG_BOOTABLE, 271 .host_flags = IDE_HFLAG_SERIALIZE |
272 IDE_HFLAG_POST_SET_MODE |
273 IDE_HFLAG_BOOTABLE,
275 .pio_mask = ATA_PIO4, 274 .pio_mask = ATA_PIO4,
276 .mwdma_mask = ATA_MWDMA2, 275 .mwdma_mask = ATA_MWDMA2,
277 .udma_mask = ATA_UDMA2, 276 .udma_mask = ATA_UDMA2,
diff --git a/drivers/ide/pci/sc1200.c b/drivers/ide/pci/sc1200.c
index 252b12f9c954..2471a6dcf6fa 100644
--- a/drivers/ide/pci/sc1200.c
+++ b/drivers/ide/pci/sc1200.c
@@ -362,9 +362,6 @@ static int sc1200_resume (struct pci_dev *dev)
362 */ 362 */
363static void __devinit init_hwif_sc1200 (ide_hwif_t *hwif) 363static void __devinit init_hwif_sc1200 (ide_hwif_t *hwif)
364{ 364{
365 if (hwif->mate)
366 hwif->serialized = hwif->mate->serialized = 1;
367
368 hwif->set_pio_mode = &sc1200_set_pio_mode; 365 hwif->set_pio_mode = &sc1200_set_pio_mode;
369 hwif->set_dma_mode = &sc1200_set_dma_mode; 366 hwif->set_dma_mode = &sc1200_set_dma_mode;
370 367
@@ -381,7 +378,9 @@ static void __devinit init_hwif_sc1200 (ide_hwif_t *hwif)
381static ide_pci_device_t sc1200_chipset __devinitdata = { 378static ide_pci_device_t sc1200_chipset __devinitdata = {
382 .name = "SC1200", 379 .name = "SC1200",
383 .init_hwif = init_hwif_sc1200, 380 .init_hwif = init_hwif_sc1200,
384 .host_flags = IDE_HFLAG_ABUSE_DMA_MODES | IDE_HFLAG_POST_SET_MODE | 381 .host_flags = IDE_HFLAG_SERIALIZE |
382 IDE_HFLAG_POST_SET_MODE |
383 IDE_HFLAG_ABUSE_DMA_MODES |
385 IDE_HFLAG_BOOTABLE, 384 IDE_HFLAG_BOOTABLE,
386 .pio_mask = ATA_PIO4, 385 .pio_mask = ATA_PIO4,
387 .mwdma_mask = ATA_MWDMA2, 386 .mwdma_mask = ATA_MWDMA2,
diff --git a/drivers/ide/setup-pci.c b/drivers/ide/setup-pci.c
index 1da9935ba948..aae4806f0603 100644
--- a/drivers/ide/setup-pci.c
+++ b/drivers/ide/setup-pci.c
@@ -565,6 +565,9 @@ void ide_pci_setup_ports(struct pci_dev *dev, ide_pci_device_t *d, int pciirq, a
565 hwif->host_flags = d->host_flags; 565 hwif->host_flags = d->host_flags;
566 hwif->pio_mask = d->pio_mask; 566 hwif->pio_mask = d->pio_mask;
567 567
568 if ((d->host_flags & IDE_HFLAG_SERIALIZE) && hwif->mate)
569 hwif->mate->serialized = hwif->serialized = 1;
570
568 if (hwif->dma_base) { 571 if (hwif->dma_base) {
569 hwif->swdma_mask = d->swdma_mask; 572 hwif->swdma_mask = d->swdma_mask;
570 hwif->mwdma_mask = d->mwdma_mask; 573 hwif->mwdma_mask = d->mwdma_mask;
diff --git a/include/linux/ide.h b/include/linux/ide.h
index b12510d21f25..659b60abc259 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -1257,6 +1257,8 @@ enum {
1257 IDE_HFLAG_NO_LBA48_DMA = (1 << 18), 1257 IDE_HFLAG_NO_LBA48_DMA = (1 << 18),
1258 /* data FIFO is cleared by an error */ 1258 /* data FIFO is cleared by an error */
1259 IDE_HFLAG_ERROR_STOPS_FIFO = (1 << 19), 1259 IDE_HFLAG_ERROR_STOPS_FIFO = (1 << 19),
1260 /* serialize ports */
1261 IDE_HFLAG_SERIALIZE = (1 << 20),
1260}; 1262};
1261 1263
1262#ifdef CONFIG_BLK_DEV_OFFBOARD 1264#ifdef CONFIG_BLK_DEV_OFFBOARD