Bug 7353

Summary: ide-generic no longer finds marvell controller
Product: IO/Storage Reporter: Kenny Graunke (kenny)
Component: IDEAssignee: Bartlomiej Zolnierkiewicz (bzolnier)
Status: CLOSED PATCH_ALREADY_AVAILABLE    
Severity: normal CC: alan, henj
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.19-rc1 Subsystem:
Regression: --- Bisected commit-id:

Description Kenny Graunke 2006-10-11 22:50:10 UTC
I have the following controllers:
02:00.0 IDE interface: Marvell Technology Group Ltd. Unknown device 6101 (rev b1)
00:1f.2 SATA controller: Intel Corporation 82801HR/HO/HH (ICH8R/DO/DH) SATA AHCI
Controller (rev 02)

In 2.6.18-rc7, I was able to use the Marvell controller by building in generic
IDE support and passing the boot flag "all-generic-ide".

However, 2.6.19-rc1 no longer finds the Marvell controller, even with
"all-generic-ide". (My SATA is in AHCI mode and works fine.)

I used git-bisect to find the first change which broke it:
------------------------------------
a4bea10eca68152e84ffc4eaeb9d20ec2ac34664 is first bad commit
commit a4bea10eca68152e84ffc4eaeb9d20ec2ac34664
Author: Patrick Jefferson <henj@hp.com>
Date:   Tue Oct 3 01:14:34 2006 -0700

    [PATCH] Allow ide_generic_all to be used modular and built in
    
    Allow ide/pci/generic to claim chipsets as a a module or when built-in.  It
    requires using "all_generic_ide" as a boot option.
    
    Signed-off-by: Patrick Jefferson <henj@hp.com>
    Acked-by: Alan Cox <alan@redhat.com>
    Closes-Bug: 7017
    Signed-off-by: Andrew Morton <akpm@osdl.org>
    Signed-off-by: Linus Torvalds <torvalds@osdl.org>

:040000 040000 1abfa172e87b561e37b0e75e35f92f904e56f295 7981a26fab46d3359c147771
40eaa6086bad48c7 M      drivers
------------------------------------

I have built in all my IDE and SATA support---I'm not using modules.

After the change, I simply get this at bootup and in dmesg:
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
Probing IDE interface ide0...
Probing IDE interface ide1...

But it finds no devices. Before that change, it successfully finds my CDROM
drive as hdb.

(My apologies if I've missed something, this is my first kernel bug report.)
Comment 1 Alan 2006-10-12 02:50:30 UTC
Does "all_generic_ide=1" work ?
Comment 2 Patrick Jefferson 2006-10-12 10:42:18 UTC
Also, the driver output looks like it is coming from ide/ide-generic, not
ide/pci/generic. I would guess ide/ide-generic is not finding anything because
the Marvell does not use legacy addressing.

Does a kernel with ide/ide-generic excluded work?

Comment 3 Kenny Graunke 2006-10-12 17:05:06 UTC
Alan - using "all-generic-ide" works on my good git-bisect tree and fails on
2.6.19-rc1. Using "all_generic_ide=1" fails on both.

Patrick - I unset CONFIG_IDE_GENERIC in both trees and have the same results.  I
still have CONFIG_BLK_DEV_GENERIC=y - without it, my good tree doesn't find
anything.

These are my IDE configuration settings now (anything not mentioned is not set):

CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_BLK_DEV_IDECD=y
# CONFIG_IDE_GENERIC is not set
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_BLK_DEV_GENERIC=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
CONFIG_IDEDMA_PCI_AUTO=y
CONFIG_BLK_DEV_PIIX=y
CONFIG_BLK_DEV_IDEDMA=y
CONFIG_IDEDMA_AUTO=y
Comment 4 Alan 2006-10-14 04:17:45 UTC
Sorry I meant "all-generic-ide=1" for the test
Comment 5 Kenny Graunke 2006-10-14 11:08:56 UTC
Booting with "generic.all_generic_ide=1" or "generic.all-generic-ide" works in
2.6.19-rc1 and rc2.  Apparently I just needed to include the module name as part
of the boot parameter.  It doesn't work if I leave it off.

It's probably because I compiled in the generic ATA driver too (which I probably
don't need), which also has an "all-generic-ide" module option.