Re: [PATCH 21/20] ata_piix: add new PIIX_FLAG_* flags

From: Bartlomiej Zolnierkiewicz
Date: Wed Feb 09 2011 - 04:11:19 EST


Sergei Shtylyov wrote:

> Bartlomiej Zolnierkiewicz wrote:
>
> >>> Turn open-coded checks in piix_set_timings() into PIIX_FLAG_* flags
> >>> per suggestion from Alan Cox.
> >>> Suggested-by: Alan Cox <alan@xxxxxxxxxxxxxxxxxxx>
> >>> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx>
> >> [...]
>
> >>> Index: b/drivers/ata/ata_piix.c
> >>> ===================================================================
> >>> --- a/drivers/ata/ata_piix.c
> >>> +++ b/drivers/ata/ata_piix.c
> >>> @@ -133,6 +133,8 @@ enum {
> >>> PIIX_FLAG_CHECKINTR = (1 << 28), /* make sure PCI INTx enabled
> >>> */
> >>> PIIX_FLAG_SIDPR = (1 << 29), /* SATA idx/data pair regs */
> >>> + PIIX_FLAG_NO_SITRE = (1 << 30), /* no SITRE register */
>
> >> The register in question is called SIDETIM, SITRE is a bit that enables
> >> its use.
>
> > ICH4-M databook that I have at hand (Intel IDE PRM seems to be gone
> > from Intel's website, though I'm sure I have a backup _somewhere_) it
> > is called SLV_IDETIM so lets just stick with the current naming for
> > now..
>
> Why not just say that SITRE is a bit, not register? :-)

Good point.. :-)

From: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx>
Subject: [PATCH v2 21/20] ata_piix: add new PIIX_FLAG_* flags

Turn open-coded checks in piix_set_timings() into PIIX_FLAG_* flags
per suggestion from Alan Cox.

Suggested-by: Alan Cox <alan@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx>
---
On top of https://lkml.org/lkml/2011/2/8/97 patchset.

v2: s/SITRE register/SITRE bit/ per Sergei's comment

drivers/ata/ata_piix.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)

Index: b/drivers/ata/ata_piix.c
===================================================================
--- a/drivers/ata/ata_piix.c
+++ b/drivers/ata/ata_piix.c
@@ -133,6 +133,8 @@ enum {

PIIX_FLAG_CHECKINTR = (1 << 28), /* make sure PCI INTx enabled */
PIIX_FLAG_SIDPR = (1 << 29), /* SATA idx/data pair regs */
+ PIIX_FLAG_NO_SITRE = (1 << 30), /* no SITRE bit */
+ PIIX_FLAG_RADISYS = (1 << 31), /* host is Radisys R82600 */

PIIX_PATA_FLAGS = ATA_FLAG_SLAVE_POSS,
PIIX_SATA_FLAGS = ATA_FLAG_SATA | PIIX_FLAG_CHECKINTR,
@@ -698,7 +700,7 @@ static struct ata_port_info piix_port_in

[oldpiix_pata] =
{
- .flags = PIIX_PATA_FLAGS,
+ .flags = PIIX_PATA_FLAGS | PIIX_FLAG_NO_SITRE,
.pio_mask = ATA_PIO4,
.mwdma_mask = ATA_MWDMA12_ONLY,
.port_ops = &oldpiix_pata_ops,
@@ -706,7 +708,8 @@ static struct ata_port_info piix_port_in

[radisys_pata] =
{
- .flags = PIIX_PATA_FLAGS,
+ .flags = PIIX_PATA_FLAGS | PIIX_FLAG_NO_SITRE |
+ PIIX_FLAG_RADISYS,
.pio_mask = ATA_PIO4,
.mwdma_mask = ATA_MWDMA12_ONLY,
.udma_mask = ATA_UDMA24_ONLY,
@@ -859,10 +862,8 @@ static void piix_set_timings(struct ata_
struct pci_dev *dev = to_pci_dev(ap->host->dev);
unsigned long flags;
unsigned int is_slave = (adev->devno != 0);
- unsigned int is_radisys = (dev->vendor == PCI_VENDOR_ID_RADISYS &&
- dev->device == 0x8201);
- unsigned int has_sitre = (dev->vendor != PCI_VENDOR_ID_INTEL ||
- dev->device != 0x1230) && !is_radisys;
+ unsigned int is_radisys = (ap->flags & PIIX_FLAG_RADISYS) ? 1 : 0;
+ unsigned int has_sitre = (ap->flags & PIIX_FLAG_NO_SITRE) ? 0 : 1;
unsigned int master_port= ap->port_no ? 0x42 : 0x40;
unsigned int slave_port = 0x44;
u16 master_data;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/