* [PATCH 0/2] Series short description
@ 2009-05-13 14:01 Alan Cox
2009-05-13 14:02 ` [PATCH 1/2] libata: Use IGN_SIMPLEX for ALi Alan Cox
2009-05-13 14:02 ` [PATCH 2/2] ata_piix: Enable parallel scan Alan Cox
0 siblings, 2 replies; 7+ messages in thread
From: Alan Cox @ 2009-05-13 14:01 UTC (permalink / raw)
To: jeff, linux-ide
Couple more little ATA patches. The ALi one would be good to get upstream
ASAP, the other is a performance item.
---
Alan Cox (1):
libata: Use IGN_SIMPLEX for ALi
Arjan van de Ven (1):
ata_piix: Enable parallel scan
drivers/ata/ata_piix.c | 29 ++++++++++++++++++++---------
drivers/ata/pata_ali.c | 17 +++++++++++------
2 files changed, 31 insertions(+), 15 deletions(-)
--
"And the nice thing is you don't need to be able to type, because every
possible keystroke does {something} for/to you. Anything from point out
off-by-one errors to perform a sex change on your gerbil."
-- Bill Davidsen describing emacs
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/2] libata: Use IGN_SIMPLEX for ALi
2009-05-13 14:01 [PATCH 0/2] Series short description Alan Cox
@ 2009-05-13 14:02 ` Alan Cox
2009-05-13 15:56 ` Sergei Shtylyov
2009-05-20 20:11 ` Jeff Garzik
2009-05-13 14:02 ` [PATCH 2/2] ata_piix: Enable parallel scan Alan Cox
1 sibling, 2 replies; 7+ messages in thread
From: Alan Cox @ 2009-05-13 14:02 UTC (permalink / raw)
To: jeff, linux-ide
From: Alan Cox <alan@linux.intel.com>
Some ALi devices report simplex if they have been disabled and re-enabled, and
restoring the byte does not work. Ignore it - the needed supporting logic is
already present for the SATA ULi ports.
Signed-off-by: Alan Cox <alan@linux.intel.com>
---
drivers/ata/pata_ali.c | 17 +++++++++++------
1 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/drivers/ata/pata_ali.c b/drivers/ata/pata_ali.c
index 751b7ea..fc9c5d6 100644
--- a/drivers/ata/pata_ali.c
+++ b/drivers/ata/pata_ali.c
@@ -497,14 +497,16 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
};
/* Revision 0x20 added DMA */
static const struct ata_port_info info_20 = {
- .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
+ .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
+ ATA_FLAG_IGN_SIMPLEX,
.pio_mask = ATA_PIO4,
.mwdma_mask = ATA_MWDMA2,
.port_ops = &ali_20_port_ops
};
/* Revision 0x20 with support logic added UDMA */
static const struct ata_port_info info_20_udma = {
- .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
+ .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
+ ATA_FLAG_IGN_SIMPLEX,
.pio_mask = ATA_PIO4,
.mwdma_mask = ATA_MWDMA2,
.udma_mask = ATA_UDMA2,
@@ -512,7 +514,8 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
};
/* Revision 0xC2 adds UDMA66 */
static const struct ata_port_info info_c2 = {
- .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
+ .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
+ ATA_FLAG_IGN_SIMPLEX,
.pio_mask = ATA_PIO4,
.mwdma_mask = ATA_MWDMA2,
.udma_mask = ATA_UDMA4,
@@ -520,7 +523,8 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
};
/* Revision 0xC3 is UDMA66 for now */
static const struct ata_port_info info_c3 = {
- .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
+ .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
+ ATA_FLAG_IGN_SIMPLEX,
.pio_mask = ATA_PIO4,
.mwdma_mask = ATA_MWDMA2,
.udma_mask = ATA_UDMA4,
@@ -528,7 +532,8 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
};
/* Revision 0xC4 is UDMA100 */
static const struct ata_port_info info_c4 = {
- .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
+ .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
+ ATA_FLAG_IGN_SIMPLEX,
.pio_mask = ATA_PIO4,
.mwdma_mask = ATA_MWDMA2,
.udma_mask = ATA_UDMA5,
@@ -536,7 +541,7 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
};
/* Revision 0xC5 is UDMA133 with LBA48 DMA */
static const struct ata_port_info info_c5 = {
- .flags = ATA_FLAG_SLAVE_POSS,
+ .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_IGN_SIMPLEX,
.pio_mask = ATA_PIO4,
.mwdma_mask = ATA_MWDMA2,
.udma_mask = ATA_UDMA6,
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/2] ata_piix: Enable parallel scan
2009-05-13 14:01 [PATCH 0/2] Series short description Alan Cox
2009-05-13 14:02 ` [PATCH 1/2] libata: Use IGN_SIMPLEX for ALi Alan Cox
@ 2009-05-13 14:02 ` Alan Cox
2009-06-10 15:06 ` Jeff Garzik
1 sibling, 1 reply; 7+ messages in thread
From: Alan Cox @ 2009-05-13 14:02 UTC (permalink / raw)
To: jeff, linux-ide
From: Arjan van de Ven <arjan@infradead.org>
This patch turns on parallel scanning for the ata_piix driver.
This driver is used on most netbooks (no AHCI for cheap storage it seems).
The scan is the dominating time factor in the kernel boot for these
devices; with this flag it gets cut in half for the device I used
for testing (eeepc).
Alan took a look at the driver source and concluded that it ought to be safe
to do for this driver. Alan has also checked with the hardware team.
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
---
drivers/ata/ata_piix.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c
index 0fba112..4ea02a7 100644
--- a/drivers/ata/ata_piix.c
+++ b/drivers/ata/ata_piix.c
@@ -1580,6 +1580,7 @@ static int __devinit piix_init_one(struct pci_dev *pdev,
host->ports[1]->mwdma_mask = 0;
host->ports[1]->udma_mask = 0;
}
+ host->flags |= ATA_HOST_PARALLEL_SCAN;
pci_set_master(pdev);
return ata_pci_sff_activate_host(host, ata_sff_interrupt, &piix_sht);
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] libata: Use IGN_SIMPLEX for ALi
2009-05-13 14:02 ` [PATCH 1/2] libata: Use IGN_SIMPLEX for ALi Alan Cox
@ 2009-05-13 15:56 ` Sergei Shtylyov
2009-05-13 16:11 ` Alan Cox
2009-05-20 20:11 ` Jeff Garzik
1 sibling, 1 reply; 7+ messages in thread
From: Sergei Shtylyov @ 2009-05-13 15:56 UTC (permalink / raw)
To: Alan Cox; +Cc: jeff, linux-ide
Hello.
Alan Cox wrote:
> Some ALi devices report simplex if they have been disabled and re-enabled, and
> restoring the byte does not work. Ignore it - the needed supporting logic is
> already present for the SATA ULi ports.
> Signed-off-by: Alan Cox <alan@linux.intel.com>
Whitespace police on guard. :-)
> diff --git a/drivers/ata/pata_ali.c b/drivers/ata/pata_ali.c
> index 751b7ea..fc9c5d6 100644
> --- a/drivers/ata/pata_ali.c
> +++ b/drivers/ata/pata_ali.c
> @@ -497,14 +497,16 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
> };
> /* Revision 0x20 added DMA */
> static const struct ata_port_info info_20 = {
> - .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
> + .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
> + ATA_FLAG_IGN_SIMPLEX,
> .pio_mask = ATA_PIO4,
> .mwdma_mask = ATA_MWDMA2,
> .port_ops = &ali_20_port_ops
> };
> /* Revision 0x20 with support logic added UDMA */
> static const struct ata_port_info info_20_udma = {
> - .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
> + .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
> + ATA_FLAG_IGN_SIMPLEX,
> .pio_mask = ATA_PIO4,
> .mwdma_mask = ATA_MWDMA2,
> .udma_mask = ATA_UDMA2,
> @@ -512,7 +514,8 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
> };
> /* Revision 0xC2 adds UDMA66 */
> static const struct ata_port_info info_c2 = {
> - .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
> + .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
> + ATA_FLAG_IGN_SIMPLEX,
> .pio_mask = ATA_PIO4,
> .mwdma_mask = ATA_MWDMA2,
> .udma_mask = ATA_UDMA4,
> @@ -520,7 +523,8 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
> };
> /* Revision 0xC3 is UDMA66 for now */
> static const struct ata_port_info info_c3 = {
> - .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
> + .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
> + ATA_FLAG_IGN_SIMPLEX,
> .pio_mask = ATA_PIO4,
> .mwdma_mask = ATA_MWDMA2,
> .udma_mask = ATA_UDMA4,
> @@ -528,7 +532,8 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
> };
> /* Revision 0xC4 is UDMA100 */
> static const struct ata_port_info info_c4 = {
> - .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
> + .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
> + ATA_FLAG_IGN_SIMPLEX,
Why it's always so far to the right?
> .pio_mask = ATA_PIO4,
> .mwdma_mask = ATA_MWDMA2,
> .udma_mask = ATA_UDMA5,
> @@ -536,7 +541,7 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
> };
> /* Revision 0xC5 is UDMA133 with LBA48 DMA */
> static const struct ata_port_info info_c5 = {
> - .flags = ATA_FLAG_SLAVE_POSS,
> + .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_IGN_SIMPLEX,
Extra space here.
> .pio_mask = ATA_PIO4,
> .mwdma_mask = ATA_MWDMA2,
> .udma_mask = ATA_UDMA6,
MBR, Sergei
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] libata: Use IGN_SIMPLEX for ALi
2009-05-13 15:56 ` Sergei Shtylyov
@ 2009-05-13 16:11 ` Alan Cox
0 siblings, 0 replies; 7+ messages in thread
From: Alan Cox @ 2009-05-13 16:11 UTC (permalink / raw)
To: Sergei Shtylyov; +Cc: jeff, linux-ide
> > /* Revision 0xC4 is UDMA100 */
> > static const struct ata_port_info info_c4 = {
> > - .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
> > + .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
> > + ATA_FLAG_IGN_SIMPLEX,
>
> Why it's always so far to the right?
Because your eyes are looking at the right hand side so by placing it
below and to the right when it doesn't quite fit you minimise the effort
needed to read it.
Anyone for a typesetting war 8)
Alan
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] libata: Use IGN_SIMPLEX for ALi
2009-05-13 14:02 ` [PATCH 1/2] libata: Use IGN_SIMPLEX for ALi Alan Cox
2009-05-13 15:56 ` Sergei Shtylyov
@ 2009-05-20 20:11 ` Jeff Garzik
1 sibling, 0 replies; 7+ messages in thread
From: Jeff Garzik @ 2009-05-20 20:11 UTC (permalink / raw)
To: Alan Cox; +Cc: linux-ide
Alan Cox wrote:
> From: Alan Cox <alan@linux.intel.com>
>
> Some ALi devices report simplex if they have been disabled and re-enabled, and
> restoring the byte does not work. Ignore it - the needed supporting logic is
> already present for the SATA ULi ports.
>
> Signed-off-by: Alan Cox <alan@linux.intel.com>
> ---
>
> drivers/ata/pata_ali.c | 17 +++++++++++------
> 1 files changed, 11 insertions(+), 6 deletions(-)
>
>
> diff --git a/drivers/ata/pata_ali.c b/drivers/ata/pata_ali.c
> index 751b7ea..fc9c5d6 100644
> --- a/drivers/ata/pata_ali.c
> +++ b/drivers/ata/pata_ali.c
> @@ -497,14 +497,16 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
> };
> /* Revision 0x20 added DMA */
> static const struct ata_port_info info_20 = {
> - .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
> + .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
> + ATA_FLAG_IGN_SIMPLEX,
> .pio_mask = ATA_PIO4,
> .mwdma_mask = ATA_MWDMA2,
> .port_ops = &ali_20_port_ops
> };
> /* Revision 0x20 with support logic added UDMA */
> static const struct ata_port_info info_20_udma = {
> - .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
> + .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
> + ATA_FLAG_IGN_SIMPLEX,
> .pio_mask = ATA_PIO4,
> .mwdma_mask = ATA_MWDMA2,
> .udma_mask = ATA_UDMA2,
> @@ -512,7 +514,8 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
> };
> /* Revision 0xC2 adds UDMA66 */
> static const struct ata_port_info info_c2 = {
> - .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
> + .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
> + ATA_FLAG_IGN_SIMPLEX,
> .pio_mask = ATA_PIO4,
> .mwdma_mask = ATA_MWDMA2,
> .udma_mask = ATA_UDMA4,
> @@ -520,7 +523,8 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
> };
> /* Revision 0xC3 is UDMA66 for now */
> static const struct ata_port_info info_c3 = {
> - .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
> + .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
> + ATA_FLAG_IGN_SIMPLEX,
> .pio_mask = ATA_PIO4,
> .mwdma_mask = ATA_MWDMA2,
> .udma_mask = ATA_UDMA4,
> @@ -528,7 +532,8 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
> };
> /* Revision 0xC4 is UDMA100 */
> static const struct ata_port_info info_c4 = {
> - .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
> + .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
> + ATA_FLAG_IGN_SIMPLEX,
> .pio_mask = ATA_PIO4,
> .mwdma_mask = ATA_MWDMA2,
> .udma_mask = ATA_UDMA5,
> @@ -536,7 +541,7 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
> };
> /* Revision 0xC5 is UDMA133 with LBA48 DMA */
> static const struct ata_port_info info_c5 = {
> - .flags = ATA_FLAG_SLAVE_POSS,
> + .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_IGN_SIMPLEX,
> .pio_mask = ATA_PIO4,
> .mwdma_mask = ATA_MWDMA2,
> .udma_mask = ATA_UDMA6,
applied
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] ata_piix: Enable parallel scan
2009-05-13 14:02 ` [PATCH 2/2] ata_piix: Enable parallel scan Alan Cox
@ 2009-06-10 15:06 ` Jeff Garzik
0 siblings, 0 replies; 7+ messages in thread
From: Jeff Garzik @ 2009-06-10 15:06 UTC (permalink / raw)
To: Alan Cox; +Cc: linux-ide
Alan Cox wrote:
> From: Arjan van de Ven <arjan@infradead.org>
>
> This patch turns on parallel scanning for the ata_piix driver.
> This driver is used on most netbooks (no AHCI for cheap storage it seems).
> The scan is the dominating time factor in the kernel boot for these
> devices; with this flag it gets cut in half for the device I used
> for testing (eeepc).
> Alan took a look at the driver source and concluded that it ought to be safe
> to do for this driver. Alan has also checked with the hardware team.
>
> Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
> Signed-off-by: Alan Cox <alan@linux.intel.com>
> ---
>
> drivers/ata/ata_piix.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
>
> diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c
> index 0fba112..4ea02a7 100644
> --- a/drivers/ata/ata_piix.c
> +++ b/drivers/ata/ata_piix.c
> @@ -1580,6 +1580,7 @@ static int __devinit piix_init_one(struct pci_dev *pdev,
> host->ports[1]->mwdma_mask = 0;
> host->ports[1]->udma_mask = 0;
> }
> + host->flags |= ATA_HOST_PARALLEL_SCAN;
>
> pci_set_master(pdev);
> return ata_pci_sff_activate_host(host, ata_sff_interrupt, &piix_sht);
applied... let's see what explodes
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2009-06-10 15:06 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-05-13 14:01 [PATCH 0/2] Series short description Alan Cox
2009-05-13 14:02 ` [PATCH 1/2] libata: Use IGN_SIMPLEX for ALi Alan Cox
2009-05-13 15:56 ` Sergei Shtylyov
2009-05-13 16:11 ` Alan Cox
2009-05-20 20:11 ` Jeff Garzik
2009-05-13 14:02 ` [PATCH 2/2] ata_piix: Enable parallel scan Alan Cox
2009-06-10 15:06 ` Jeff Garzik
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).