Skip to contentSkip to conversation

cmd64x: set IDE_HFLAG_SERIALIZE explictly for CMD646

PATCH In review Bartlomiej Zolnierkiewicz 3 participants 10 messages Oct 27, 2008 – Oct 31, 2008 libata

lore
Share & tools
lore
#0 lore raw

PATCH 2/2 cmd64x: set IDE_HFLAG_SERIALIZE explictly for CMD646

* Set IDE_HFLAG_SERIALIZE explictly for CMD646.

* Remove no longer needed ide_cmd646 chipset type (which has a nice side-effect of fixing handling of unexpected IRQs).

---
 drivers/ide/cmd64x.c    |    4 ++--
 drivers/ide/ide-probe.c |    2 +-
 drivers/ide/ide-proc.c  |    1 -
 include/linux/ide.h     |    2 +-
 4 files changed, 4 insertions(+), 5 deletions(-)
drivers/ide/cmd64x.c +2 -2
Index: b/drivers/ide/cmd64x.c
===================================================================
@@ -424,10 +424,10 @@ static const struct ide_port_info cmd64x
 		.name		= DRV_NAME,
 		.init_chipset	= init_chipset_cmd64x,
 		.enablebits	= {{0x51,0x04,0x04}, {0x51,0x08,0x08}},
-		.chipset	= ide_cmd646,
 		.port_ops	= &cmd64x_port_ops,
 		.dma_ops	= &cmd648_dma_ops,
-		.host_flags	= IDE_HFLAG_ABUSE_PREFETCH,
+		.host_flags	= IDE_HFLAG_SERIALIZE |
+				  IDE_HFLAG_ABUSE_PREFETCH,
 		.pio_mask	= ATA_PIO5,
 		.mwdma_mask	= ATA_MWDMA2,
 		.udma_mask	= ATA_UDMA2,
drivers/ide/ide-probe.c +1 -1
Index: b/drivers/ide/ide-probe.c
===================================================================
@@ -1123,7 +1123,7 @@ static int init_irq (ide_hwif_t *hwif)
 		sa = IRQF_SHARED;
 #endif /* __mc68000__ */
 
-		if (hwif->chipset == ide_pci || hwif->chipset == ide_cmd646)
+		if (hwif->chipset == ide_pci)
 			sa = IRQF_SHARED;
 
 		if (io_ports->ctl_addr)
drivers/ide/ide-proc.c +0 -1
Index: b/drivers/ide/ide-proc.c
===================================================================
@@ -48,7 +48,6 @@ static int proc_ide_read_imodel
 	case ide_ht6560b:	name = "ht6560b";	break;
 	case ide_rz1000:	name = "rz1000";	break;
 	case ide_trm290:	name = "trm290";	break;
-	case ide_cmd646:	name = "cmd646";	break;
 	case ide_cy82c693:	name = "cy82c693";	break;
 	case ide_4drives:	name = "4drives";	break;
 	case ide_pmac:		name = "mac-io";	break;
include/linux/ide.h +1 -1
Index: b/include/linux/ide.h
===================================================================
@@ -164,7 +164,7 @@ enum {		ide_unknown,	ide_generic,	ide_pc
 		ide_cmd640,	ide_dtc2278,	ide_ali14xx,
 		ide_qd65xx,	ide_umc8672,	ide_ht6560b,
 		ide_rz1000,	ide_trm290,
-		ide_cmd646,	ide_cy82c693,	ide_4drives,
+		ide_cy82c693,	ide_4drives,
 		ide_pmac,	ide_acorn,
 		ide_au1xxx,	ide_palm3710
 };
#1 lore raw

Hello.

Quoted 2 lines · Bartlomiej Zolnierkiewicz

* Set IDE_HFLAG_SERIALIZE explictly for CMD646.

Was that some kernel.org bug that this is fixing?

MBR, Sergei

#2 lore raw
Quoted 8 lines · Sergei Shtylyov

Hello.

Quoted 2 lines · Bartlomiej Zolnierkiewicz

* Set IDE_HFLAG_SERIALIZE explictly for CMD646.

Was that some kernel.org bug that this is fixing?

Nope (AFAIK).

#3 lore raw

Hello.

Quoted 9 lines · Bartlomiej Zolnierkiewicz
Quoted 7 lines

Hello.

Quoted 1 line · Bartlomiej Zolnierkiewicz

* Set IDE_HFLAG_SERIALIZE explictly for CMD646.

Was that some kernel.org bug that this is fixing?

Nope (AFAIK).

User report then?

MBR, Sergei

#4 lore raw
Quoted 8 lines · Sergei Shtylyov

Hello.

Quoted 3 lines · Bartlomiej Zolnierkiewicz
Quoted 3 lines

Hello.

Bartlomiej Zolnierkiewicz wrote:

Quoted 7 lines
Quoted 5 lines
Quoted 3 lines
Quoted 1 line

* Set IDE_HFLAG_SERIALIZE explictly for CMD646.

Was that some kernel.org bug that this is fixing?

Nope (AFAIK).

User report then?

Nope as far as my inbox tells me.

However http://bugzilla.kernel.org/ may know more.

#5 lore raw

Hello.

Quoted 11 lines · Bartlomiej Zolnierkiewicz
Quoted 8 lines
Quoted 6 lines
Quoted 4 lines
Quoted 2 lines

* Set IDE_HFLAG_SERIALIZE explictly for CMD646.

Was that some kernel.org bug that this is fixing?

Nope (AFAIK).

User report then?

Nope as far as my inbox tells me.

Then whar's the reason? :-)

Quoted 2 lines

However http://bugzilla.kernel.org/ may know more.

Tried already -- to no avail.

WBR, Sergei

#6 lore raw
Quoted 10 lines · Sergei Shtylyov

Hello.

Quoted 6 lines · Bartlomiej Zolnierkiewicz
Quoted 6 lines
Quoted 6 lines
Quoted 4 lines
Quoted 2 lines

* Set IDE_HFLAG_SERIALIZE explictly for CMD646.

Was that some kernel.org bug that this is fixing?

Nope (AFAIK).

Quoted 7 lines
Quoted 5 lines
Quoted 2 lines

User report then?

Nope as far as my inbox tells me.

Then whar's the reason? :-)

From the patch description:

* Set IDE_HFLAG_SERIALIZE explictly for CMD646.

* Remove no longer needed ide_cmd646 chipset type (which has a nice side-effect of fixing handling of unexpected IRQs).

The latter is possible because of the former
(see ide-probe.c::init_irq() for details).

Also more reasons coming in the near future...

Quoted 4 lines
Quoted 2 lines

However http://bugzilla.kernel.org/ may know more.

Tried already -- to no avail.

#7 lore raw

Hello.

Quoted 20 lines · Bartlomiej Zolnierkiewicz
Quoted 9 lines
Quoted 9 lines
Quoted 9 lines
Quoted 9 lines
Quoted 6 lines
Quoted 3 lines

* Set IDE_HFLAG_SERIALIZE explictly for CMD646.

Was that some kernel.org bug that this is fixing?

Nope (AFAIK).

Quoted 8 lines
Quoted 6 lines
Quoted 3 lines

User report then?

Nope as far as my inbox tells me.

Then whar's the reason? :-)

From the patch description:

Quoted 8 lines

* Set IDE_HFLAG_SERIALIZE explictly for CMD646.

* Remove no longer needed ide_cmd646 chipset type (which has a nice side-effect of fixing handling of unexpected IRQs).

The latter is possible because of the former
(see ide-probe.c::init_irq() for details).

Ah, got it at last. But I doubt that 646 *really* needs serialization...

MBR, Sergei

#8 lore raw
Quoted 26 lines · Sergei Shtylyov

Hello.

Quoted 22 lines · Bartlomiej Zolnierkiewicz
Quoted 9 lines
Quoted 9 lines
Quoted 9 lines
Quoted 9 lines
Quoted 6 lines
Quoted 3 lines

* Set IDE_HFLAG_SERIALIZE explictly for CMD646.

Was that some kernel.org bug that this is fixing?

Nope (AFAIK).

Quoted 8 lines
Quoted 6 lines
Quoted 3 lines

User report then?

Nope as far as my inbox tells me.

Then whar's the reason? :-)

From the patch description:

* Set IDE_HFLAG_SERIALIZE explictly for CMD646.

Quoted 8 lines
Quoted 6 lines

* Remove no longer needed ide_cmd646 chipset type (which has a nice side-effect of fixing handling of unexpected IRQs).

The latter is possible because of the former
(see ide-probe.c::init_irq() for details).

Ah, got it at last. But I doubt that 646 *really* needs serialization...

I remember getting bugreport which supposedly was fixed by commit deffca117b90dadec395c0cf3ee816de27dfe2fd (but it could also be that it was something else in reality or that it just hide some other bug that we fixed in the meantime).

We would need somebody with the hardware to verify it.

#9 lore raw
Quoted 4 lines · Bartlomiej Zolnierkiewicz
Quoted 3 lines · Sergei Shtylyov

Hello.

Bartlomiej Zolnierkiewicz wrote:

..

Quoted 8 lines
Quoted 1 line

Ah, got it at last. But I doubt that 646 *really* needs serialization...

I remember getting bugreport which supposedly was fixed by commit deffca117b90dadec395c0cf3ee816de27dfe2fd (but it could also be that it was something else in reality or that it just hide some other bug that we fixed in the meantime).

We would need somebody with the hardware to verify it.

..

Apple B&W PowerMac G3 boxes originally shipped with CMD646 chips inside, so if anyone has one of those, then it could be used for testing this.

The early CMD646 chips have issues with UDMA modes, but later ones work fine. I really don't remember if the old CMD640 serialization issues persist with the "newer" CMD646 chips, though.

Cheers