* [PATCH] ATA: cleanup of channel->autodma flags usage
@ 2002-06-25 19:31 Bartlomiej Zolnierkiewicz
2002-06-27 14:23 ` Kees Bakker
0 siblings, 1 reply; 3+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2002-06-25 19:31 UTC (permalink / raw)
To: Martin Dalecki; +Cc: Kernel Mailing List
[-- Attachment #1: Type: TEXT/PLAIN, Size: 739 bytes --]
incremental to generic ATA PCI auto-dma patches...
- clean usage of ch->autodma flag in PCI host chips drivers
- remove ATA_F_NOAUTODMA flag from aec62xx.c, hpt34x.c,
sis5513.c and via82cxxx.c drivers, it's use was bogus
in these drivers
only two usages of ATA_F_NOAUTODMA are left (in ide-pci.c),
probably they can alse be removed due to fact that drivers
should disable autodma not ide-pci (i.e. hpt34x)
- teach alim15x3.c, cs5530.c, cy82c693.c, hpt34x.c, hpt366.c,
it8172.c, pdc202xx.c, sis5513.c, sl82c105.c, and trm290.c
drivers about CONFIG_IDEDMA_AUTO (indirectly through ide-pci)
- make it possible to auto-tune DMA for trm290.c
- always check PIO timings in cs5530.c
--
Bartlomiej Zolnierkiewicz
[-- Attachment #2: Type: TEXT/PLAIN, Size: 11825 bytes --]
diff -ur linux-ata-hosts-11/drivers/ide/aec62xx.c linux/drivers/ide/aec62xx.c
--- linux-ata-hosts-11/drivers/ide/aec62xx.c Mon Jun 24 22:35:10 2002
+++ linux/drivers/ide/aec62xx.c Mon Jun 24 23:55:15 2002
@@ -251,7 +251,6 @@
ch->tuneproc = aec62xx_tune_drive;
ch->speedproc = aec_set_drive;
- ch->autodma = 0;
ch->io_32bit = 1;
ch->unmask = 1;
@@ -266,10 +265,6 @@
ch->highmem = 1;
ch->modes_map = aec62xx_modes_map(ch);
ch->udma_setup = udma_generic_setup;
-#ifdef CONFIG_IDEDMA_AUTO
- if (!noautodma)
- ch->autodma = 1;
-#endif
}
#endif
}
@@ -306,7 +301,7 @@
init_channel: aec62xx_init_channel,
enablebits: { {0x4a,0x02,0x02}, {0x4a,0x04,0x04} },
bootable: NEVER_BOARD,
- flags: ATA_F_IRQ | ATA_F_NOADMA | ATA_F_DMA
+ flags: ATA_F_IRQ | ATA_F_DMA
},
{
vendor: PCI_VENDOR_ID_ARTOP,
diff -ur linux-ata-hosts-11/drivers/ide/alim15x3.c linux/drivers/ide/alim15x3.c
--- linux-ata-hosts-11/drivers/ide/alim15x3.c Mon Jun 24 22:43:20 2002
+++ linux/drivers/ide/alim15x3.c Tue Jun 25 00:09:09 2002
@@ -354,13 +354,7 @@
hwif->no_atapi_autodma = 1;
hwif->udma_setup = ali15x3_udma_setup;
hwif->udma_init = ali15x3_udma_init;
- hwif->autodma = 1;
}
-
- if (noautodma)
- hwif->autodma = 0;
-#else
- hwif->autodma = 0;
#endif
}
diff -ur linux-ata-hosts-11/drivers/ide/amd74xx.c linux/drivers/ide/amd74xx.c
--- linux-ata-hosts-11/drivers/ide/amd74xx.c Mon Jun 24 22:35:10 2002
+++ linux/drivers/ide/amd74xx.c Mon Jun 24 23:28:50 2002
@@ -270,7 +270,6 @@
hwif->tuneproc = &amd74xx_tune_drive;
hwif->speedproc = &amd_set_drive;
- hwif->autodma = 0;
hwif->io_32bit = 1;
hwif->unmask = 1;
@@ -285,10 +284,6 @@
hwif->highmem = 1;
hwif->modes_map = amd_modes_map(hwif);
hwif->udma_setup = udma_generic_setup;
-# ifdef CONFIG_IDEDMA_AUTO
- if (!noautodma)
- hwif->autodma = 1;
-# endif
}
#endif
}
diff -ur linux-ata-hosts-11/drivers/ide/cmd64x.c linux/drivers/ide/cmd64x.c
--- linux-ata-hosts-11/drivers/ide/cmd64x.c Mon Jun 24 22:36:13 2002
+++ linux/drivers/ide/cmd64x.c Mon Jun 24 23:29:08 2002
@@ -804,10 +804,6 @@
hwif->modes_map = cmd6xx_modes_map(hwif);
hwif->no_atapi_autodma = 1;
hwif->udma_setup = udma_generic_setup;
-# ifdef CONFIG_IDEDMA_AUTO
- if (!noautodma)
- hwif->autodma = 1;
-# endif
}
#endif
}
diff -ur linux-ata-hosts-11/drivers/ide/cs5530.c linux/drivers/ide/cs5530.c
--- linux-ata-hosts-11/drivers/ide/cs5530.c Mon Jun 24 22:40:40 2002
+++ linux/drivers/ide/cs5530.c Mon Jun 24 23:29:44 2002
@@ -285,17 +285,15 @@
*/
static void __init ide_init_cs5530(struct ata_channel *hwif)
{
+ u32 basereg, d0_timings;
+
hwif->serialized = 1;
- if (!hwif->dma_base) {
- hwif->autodma = 0;
- } else {
- unsigned int basereg, d0_timings;
#ifdef CONFIG_BLK_DEV_IDEDMA
- hwif->udma_setup = cs5530_udma_setup;
- hwif->highmem = 1;
-#else
- hwif->autodma = 0;
+ if (hwif->dma_base) {
+ hwif->highmem = 1;
+ hwif->udma_setup = cs5530_udma_setup;
+ }
#endif
hwif->tuneproc = &cs5530_tuneproc;
@@ -309,7 +309,6 @@
if (!hwif->drives[1].autotune)
hwif->drives[1].autotune = 1; /* needs autotuning later */
}
- }
}
diff -ur linux-ata-hosts-11/drivers/ide/cy82c693.c linux/drivers/ide/cy82c693.c
--- linux-ata-hosts-11/drivers/ide/cy82c693.c Mon Jun 24 22:40:40 2002
+++ linux/drivers/ide/cy82c693.c Mon Jun 24 23:29:57 2002
@@ -414,14 +414,11 @@
hwif->tuneproc = cy82c693_tune_drive;
hwif->drives[0].autotune = 1;
hwif->drives[1].autotune = 1;
- hwif->autodma = 0;
#ifdef CONFIG_BLK_DEV_IDEDMA
if (hwif->dma_base) {
hwif->highmem = 1;
hwif->udma_setup = cy82c693_udma_setup;
- if (!noautodma)
- hwif->autodma = 1;
}
#endif
}
diff -ur linux-ata-hosts-11/drivers/ide/hpt34x.c linux/drivers/ide/hpt34x.c
--- linux-ata-hosts-11/drivers/ide/hpt34x.c Mon Jun 24 22:43:20 2002
+++ linux/drivers/ide/hpt34x.c Mon Jun 24 23:55:02 2002
@@ -182,26 +182,21 @@
unsigned short pcicmd = 0;
pci_read_config_word(hwif->pci_dev, PCI_COMMAND, &pcicmd);
- if (!noautodma)
- hwif->autodma = (pcicmd & PCI_COMMAND_MEMORY) ? 1 : 0;
- else
- hwif->autodma = 0;
-
+#ifdef CONFIG_IDEDMA_AUTO
+ hwif->autodma = (pcicmd & PCI_COMMAND_MEMORY) ? 1 : 0;
+#endif
hwif->udma_stop = hpt34x_udma_stop;
hwif->udma_init = hpt34x_udma_init;
hwif->modes_map = XFER_EPIO | XFER_SWDMA | XFER_MWDMA | XFER_UDMA;
hwif->no_atapi_autodma = 1;
hwif->udma_setup = hpt34x_udma_setup;
hwif->highmem = 1;
- } else {
+ } else
+#endif
+ {
hwif->drives[0].autotune = 1;
hwif->drives[1].autotune = 1;
}
-#else
- hwif->drives[0].autotune = 1;
- hwif->drives[1].autotune = 1;
- hwif->autodma = 0;
-#endif
}
@@ -213,7 +208,7 @@
init_channel: ide_init_hpt34x,
bootable: NEVER_BOARD,
extra: 16,
- flags: ATA_F_NOADMA | ATA_F_DMA
+ flags: ATA_F_DMA
};
int __init init_hpt34x(void)
diff -ur linux-ata-hosts-11/drivers/ide/hpt366.c linux/drivers/ide/hpt366.c
--- linux-ata-hosts-11/drivers/ide/hpt366.c Mon Jun 24 22:43:20 2002
+++ linux/drivers/ide/hpt366.c Mon Jun 24 23:30:39 2002
@@ -1187,16 +1187,10 @@
}
ch->modes_map = hpt3xx_modes_map(ch);
ch->udma_setup = hpt3xx_udma_setup;
-
- if (!noautodma)
- ch->autodma = 1;
- else
- ch->autodma = 0;
ch->highmem = 1;
} else
#endif
{
- ch->autodma = 0;
ch->drives[0].autotune = 1;
ch->drives[1].autotune = 1;
}
diff -ur linux-ata-hosts-11/drivers/ide/ide-pci.c linux/drivers/ide/ide-pci.c
--- linux-ata-hosts-11/drivers/ide/ide-pci.c Mon Jun 10 23:17:37 2002
+++ linux/drivers/ide/ide-pci.c Tue Jun 25 00:03:46 2002
@@ -269,12 +269,6 @@
/*
* Setup DMA transfers on the channel.
*/
- if (d->flags & ATA_F_NOADMA)
- autodma = 0;
-
- if (autodma)
- ch->autodma = 1;
-
if (!((d->flags & ATA_F_DMA) || ((dev->class >> 8) == PCI_CLASS_STORAGE_IDE && (dev->class & 0x80))))
goto no_dma;
/*
@@ -328,6 +322,9 @@
d->init_dma(ch, dma_base);
else
ata_init_dma(ch, dma_base);
+
+ if (ch->dma_base && autodma)
+ ch->autodma = 1;
#endif
no_dma:
@@ -335,6 +332,11 @@
if (d->init_channel)
d->init_channel(ch);
+#ifdef CONFIG_BLK_DEV_IDEDMA
+ if ((d->flags & ATA_F_NOADMA) || noautodma)
+ ch->autodma = 0;
+#endif
+
return 0;
}
diff -ur linux-ata-hosts-11/drivers/ide/it8172.c linux/drivers/ide/it8172.c
--- linux-ata-hosts-11/drivers/ide/it8172.c Mon Jun 24 22:45:20 2002
+++ linux/drivers/ide/it8172.c Mon Jun 24 23:31:32 2002
@@ -208,17 +208,11 @@
if (!hwif->dma_base)
return;
-#ifndef CONFIG_BLK_DEV_IDEDMA
- hwif->autodma = 0;
-#else /* CONFIG_BLK_DEV_IDEDMA */
# ifdef CONFIG_IT8172_TUNING
- hwif->autodma = 1;
hwif->modes_map = XFER_EPIO | XFER_SWDMA | XFER_MWDMA | XFER_UDMA;
hwif->udma_setup = udma_generic_setup;
- hwif->dmaproc = &it8172_dmaproc;
hwif->speedproc = &it8172_tune_chipset;
# endif
-#endif
cmdBase = dev->resource[0].start;
ctrlBase = dev->resource[1].start;
diff -ur linux-ata-hosts-11/drivers/ide/pdc202xx.c linux/drivers/ide/pdc202xx.c
--- linux-ata-hosts-11/drivers/ide/pdc202xx.c Mon Jun 24 22:44:38 2002
+++ linux/drivers/ide/pdc202xx.c Mon Jun 24 23:31:59 2002
@@ -687,14 +687,11 @@
hwif->udma_irq_lost = pdc202xx_bug;
hwif->udma_timeout = pdc202xx_bug;
hwif->highmem = 1;
- if (!noautodma)
- hwif->autodma = 1;
} else
#endif
{
hwif->drives[0].autotune = 1;
hwif->drives[1].autotune = 1;
- hwif->autodma = 0;
}
}
diff -ur linux-ata-hosts-11/drivers/ide/piix.c linux/drivers/ide/piix.c
--- linux-ata-hosts-11/drivers/ide/piix.c Mon Jun 24 22:35:10 2002
+++ linux/drivers/ide/piix.c Mon Jun 24 23:33:39 2002
@@ -354,7 +354,6 @@
ch->tuneproc = &piix_tune_drive;
ch->speedproc = &piix_set_drive;
- ch->autodma = 0;
ch->io_32bit = 1;
ch->unmask = 1;
for (i = 0; i < 2; i++) {
@@ -367,10 +366,6 @@
ch->highmem = 1;
ch->modes_map = piix_modes_map(ch);
ch->udma_setup = udma_generic_setup;
-# ifdef CONFIG_IDEDMA_AUTO
- if (!noautodma)
- ch->autodma = 1;
-# endif
}
#endif
}
diff -ur linux-ata-hosts-11/drivers/ide/serverworks.c linux/drivers/ide/serverworks.c
--- linux-ata-hosts-11/drivers/ide/serverworks.c Mon Jun 24 22:36:38 2002
+++ linux/drivers/ide/serverworks.c Mon Jun 24 23:34:08 2002
@@ -375,19 +375,13 @@
#ifndef CONFIG_BLK_DEV_IDEDMA
hwif->drives[0].autotune = 1;
hwif->drives[1].autotune = 1;
- hwif->autodma = 0;
#else
if (hwif->dma_base) {
-#ifdef CONFIG_IDEDMA_AUTO
- if (!noautodma)
- hwif->autodma = 1;
-#endif
hwif->modes_map = svwks_modes_map(hwif);
hwif->udma_setup = udma_generic_setup;
hwif->udma_stop = svwks_udma_stop;
hwif->highmem = 1;
} else {
- hwif->autodma = 0;
hwif->drives[0].autotune = 1;
hwif->drives[1].autotune = 1;
}
diff -ur linux-ata-hosts-11/drivers/ide/sis5513.c linux/drivers/ide/sis5513.c
--- linux-ata-hosts-11/drivers/ide/sis5513.c Mon Jun 24 22:35:10 2002
+++ linux/drivers/ide/sis5513.c Mon Jun 24 23:56:11 2002
@@ -492,23 +492,14 @@
hwif->tuneproc = &sis5513_tune_drive;
hwif->speedproc = &sis5513_tune_chipset;
- if (!(hwif->dma_base))
- return;
-
- if (host_dev) {
-#ifdef CONFIG_BLK_DEV_IDEDMA
- if (chipset_family > ATA_16) {
- hwif->autodma = noautodma ? 0 : 1;
- hwif->highmem = 1;
- hwif->modes_map = sis5513_modes_map(hwif);
- hwif->udma_setup = udma_generic_setup;
- } else {
-#endif
- hwif->autodma = 0;
#ifdef CONFIG_BLK_DEV_IDEDMA
- }
-#endif
+ if (hwif->dma_base && host_dev && chipset_family > ATA_16) {
+ hwif->highmem = 1;
+ hwif->modes_map = sis5513_modes_map(hwif);
+ hwif->udma_setup = udma_generic_setup;
}
+#endif
+
return;
}
@@ -522,7 +513,6 @@
init_channel: ide_init_sis5513,
enablebits: {{0x4a,0x02,0x02}, {0x4a,0x04,0x04} },
bootable: ON_BOARD,
- flags: ATA_F_NOADMA
};
int __init init_sis5513(void)
diff -ur linux-ata-hosts-11/drivers/ide/sl82c105.c linux/drivers/ide/sl82c105.c
--- linux-ata-hosts-11/drivers/ide/sl82c105.c Mon Jun 24 22:40:40 2002
+++ linux/drivers/ide/sl82c105.c Mon Jun 24 23:44:04 2002
@@ -333,7 +333,6 @@
dma_state &= ~0x60;
} else {
dma_state |= 0x60;
- ch->autodma = 1;
}
outb(dma_state, dma_base + 2);
diff -ur linux-ata-hosts-11/drivers/ide/trm290.c linux/drivers/ide/trm290.c
--- linux-ata-hosts-11/drivers/ide/trm290.c Mon Jun 24 22:40:40 2002
+++ linux/drivers/ide/trm290.c Mon Jun 24 23:37:34 2002
@@ -303,7 +303,6 @@
#endif
hwif->selectproc = &trm290_selectproc;
- hwif->autodma = 0; /* play it safe for now */
#if 1
{
/*
diff -ur linux-ata-hosts-11/drivers/ide/via82cxxx.c linux/drivers/ide/via82cxxx.c
--- linux-ata-hosts-11/drivers/ide/via82cxxx.c Mon Jun 24 22:35:10 2002
+++ linux/drivers/ide/via82cxxx.c Mon Jun 24 23:56:17 2002
@@ -348,7 +348,6 @@
hwif->tuneproc = &via82cxxx_tune_drive;
hwif->speedproc = &via_set_drive;
- hwif->autodma = 0;
hwif->io_32bit = 1;
hwif->unmask = (via_config->flags & VIA_NO_UNMASK) ? 0 : 1;
@@ -362,10 +361,6 @@
hwif->highmem = 1;
hwif->modes_map = via_modes_map(hwif);
hwif->udma_setup = udma_generic_setup;
-# ifdef CONFIG_IDEDMA_AUTO
- if (!noautodma)
- hwif->autodma = 1;
-# endif
}
#endif
}
@@ -391,7 +386,6 @@
init_dma: via82cxxx_init_dma,
enablebits: {{0x40,0x02,0x02}, {0x40,0x01,0x01}},
bootable: ON_BOARD,
- flags: ATA_F_NOADMA
},
{
vendor: PCI_VENDOR_ID_VIA,
@@ -402,7 +396,6 @@
init_dma: via82cxxx_init_dma,
enablebits: {{0x40,0x02,0x02}, {0x40,0x01,0x01}},
bootable: ON_BOARD,
- flags: ATA_F_NOADMA
},
};
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] ATA: cleanup of channel->autodma flags usage
2002-06-25 19:31 [PATCH] ATA: cleanup of channel->autodma flags usage Bartlomiej Zolnierkiewicz
@ 2002-06-27 14:23 ` Kees Bakker
2002-06-27 14:59 ` Bartlomiej Zolnierkiewicz
0 siblings, 1 reply; 3+ messages in thread
From: Kees Bakker @ 2002-06-27 14:23 UTC (permalink / raw)
To: Bartlomiej Zolnierkiewicz; +Cc: Martin Dalecki, Kernel Mailing List
>>>>> "Bartlomiej" == Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> writes:
Bartlomiej> incremental to generic ATA PCI auto-dma patches...
[...]
Bartlomiej> - remove ATA_F_NOAUTODMA flag from aec62xx.c, hpt34x.c,
Bartlomiej> sis5513.c and via82cxxx.c drivers, it's use was bogus
Bartlomiej> in these drivers
Bartlomiej> only two usages of ATA_F_NOAUTODMA are left (in ide-pci.c),
Bartlomiej> probably they can alse be removed due to fact that drivers
Bartlomiej> should disable autodma not ide-pci (i.e. hpt34x)
[...]
That should say: ATA_F_NOADMA
I have removed ATA_F_NODMA in ide-pci.c for my VIA8233
(PCI_DEVICE_ID_VIA_82C586_1). So far it has not failed (using 2.5.20).
--- linux-2.5.20/drivers/ide/ide-pci.c~ Mon Jun 3 14:49:59 2002
+++ linux-2.5.20/drivers/ide/ide-pci.c Fri Jun 7 18:52:50 2002
@@ -742,8 +742,7 @@
{
vendor: PCI_VENDOR_ID_VIA,
device: PCI_DEVICE_ID_VIA_82C586_1,
- bootable: ON_BOARD,
- flags: ATA_F_NOADMA
+ bootable: ON_BOARD
},
{
vendor: PCI_VENDOR_ID_TTI,
- Kees
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] ATA: cleanup of channel->autodma flags usage
2002-06-27 14:23 ` Kees Bakker
@ 2002-06-27 14:59 ` Bartlomiej Zolnierkiewicz
0 siblings, 0 replies; 3+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2002-06-27 14:59 UTC (permalink / raw)
To: Kees Bakker; +Cc: Kernel Mailing List
On 27 Jun 2002, Kees Bakker wrote:
> >>>>> "Bartlomiej" == Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> writes:
>
> Bartlomiej> incremental to generic ATA PCI auto-dma patches...
> [...]
> Bartlomiej> - remove ATA_F_NOAUTODMA flag from aec62xx.c, hpt34x.c,
> Bartlomiej> sis5513.c and via82cxxx.c drivers, it's use was bogus
> Bartlomiej> in these drivers
>
> Bartlomiej> only two usages of ATA_F_NOAUTODMA are left (in ide-pci.c),
> Bartlomiej> probably they can alse be removed due to fact that drivers
> Bartlomiej> should disable autodma not ide-pci (i.e. hpt34x)
> [...]
>
> That should say: ATA_F_NOADMA
Yep, thanks.
> I have removed ATA_F_NODMA in ide-pci.c for my VIA8233
> (PCI_DEVICE_ID_VIA_82C586_1). So far it has not failed (using 2.5.20).
Because its usage is bogus and you probably use via82cxxx.c anyway :)
>
> --- linux-2.5.20/drivers/ide/ide-pci.c~ Mon Jun 3 14:49:59 2002
> +++ linux-2.5.20/drivers/ide/ide-pci.c Fri Jun 7 18:52:50 2002
> @@ -742,8 +742,7 @@
> {
> vendor: PCI_VENDOR_ID_VIA,
> device: PCI_DEVICE_ID_VIA_82C586_1,
> - bootable: ON_BOARD,
> - flags: ATA_F_NOADMA
> + bootable: ON_BOARD
> },
> {
> vendor: PCI_VENDOR_ID_TTI,
>
> - Kees
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2002-06-27 14:59 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-06-25 19:31 [PATCH] ATA: cleanup of channel->autodma flags usage Bartlomiej Zolnierkiewicz
2002-06-27 14:23 ` Kees Bakker
2002-06-27 14:59 ` Bartlomiej Zolnierkiewicz
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.