cmd64x: set IDE_HFLAG_SERIALIZE explictly for CMD646
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
@@ -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
@@ -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
@@ -48,7 +48,6 @@ static int proc_ide_read_imodelcase 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
@@ -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 };
Hello.
Quoted 2 lines · Bartlomiej Zolnierkiewicz
* Set
IDE_HFLAG_SERIALIZEexplictly for CMD646.
Was that some kernel.org bug that this is fixing?
MBR, Sergei
Quoted 8 lines · Sergei Shtylyov
Hello.
Quoted 2 lines · Bartlomiej Zolnierkiewicz
* Set
IDE_HFLAG_SERIALIZEexplictly for CMD646.Was that some kernel.org bug that this is fixing?
Nope (AFAIK).
Hello.
Quoted 9 lines · Bartlomiej Zolnierkiewicz
Quoted 7 lines
Hello.
Quoted 1 line · Bartlomiej Zolnierkiewicz
* Set
IDE_HFLAG_SERIALIZEexplictly for CMD646.Was that some kernel.org bug that this is fixing?
Nope (AFAIK).
User report then?
MBR, Sergei
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_SERIALIZEexplictly 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.
Hello.
Quoted 11 lines · Bartlomiej Zolnierkiewicz
Quoted 8 lines
Quoted 6 lines
Quoted 4 lines
Quoted 2 lines
* Set
IDE_HFLAG_SERIALIZEexplictly 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
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_SERIALIZEexplictly 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.
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_SERIALIZEexplictly 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_SERIALIZEexplictly for CMD646.* Remove no longer needed
ide_cmd646chipset 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
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_SERIALIZEexplictly 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_SERIALIZEexplictly for CMD646.
Quoted 8 lines
Quoted 6 lines
* Remove no longer needed
ide_cmd646chipset 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.
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