Am un sistem RHEL 6 cu kernel 2.6.32 care prezintă în prezent probleme cu driverul sdhci.
Când încarc pentru prima dată modulul kernel sdhci_pci (după încărcarea modulului sdhci) când este introdus un card SD, observ un număr mare de erori I/O și dispozitivul nu este enumerat.
13 octombrie 02:52:57 kernel localhost: sdhci: driver de interfață Secure Digital Host Controller
Oct 13 02:52:57 localhost kernel: sdhci: Copyright(c) Pierre Ossman
13 octombrie 02:52:57 kernel localhost: sdhci-pci 0000:00:1b.0: S-a găsit controler SDHCI [8086:5aca] (rev b)
13 octombrie 02:52:57 kernel localhost: sdhci-pci 0000:00:1b.0: starea de alimentare a fost schimbată de ACPI în D0
13 octombrie 02:52:57 kernel localhost: sdhci-pci 0000:00:1b.0: starea de alimentare a fost schimbată de ACPI în D0
13 octombrie 02:52:57 kernel localhost: sdhci-pci 0000:00:1b.0: PCI INT A -> GSI 3 (nivel, scăzut) -> IRQ 3
Oct 13 02:52:57 localhost kernel: sdhci-pci 0000:00:1b.0: Dimensiune iomem nevalidă. Este posibil să aveți probleme.
Oct 13 02:52:57 localhost kernel: Dispozitiv LED înregistrat: mmc0::
13 octombrie 02:52:57 kernel localhost: mmc0: controler SDHCI pe PCI [0000:00:1b.0] folosind ADMA
13 octombrie 02:52:57 kernel localhost: sdhci-pci 0000:00:1c.0: S-a găsit controler SDHCI [8086:5acc] (rev b)
13 octombrie 02:52:57 kernel localhost: sdhci-pci 0000:00:1c.0: starea de alimentare a fost schimbată de ACPI în D0
13 octombrie 02:52:57 kernel localhost: sdhci-pci 0000:00:1c.0: starea de alimentare a fost schimbată de ACPI în D0
13 octombrie 02:52:57 kernel localhost: sdhci-pci 0000:00:1c.0: PCI INT A -> GSI 39 (nivel, scăzut) -> IRQ 39
Oct 13 02:52:57 localhost kernel: sdhci-pci 0000:00:1c.0: Dimensiune iomem nevalidă. Este posibil să aveți probleme.
13 octombrie 02:52:57 kernel localhost: Dispozitiv LED înregistrat: mmc1::
13 octombrie 02:52:57 kernel localhost: mmc1: controler SDHCI pe PCI [0000:00:1c.0] folosind ADMA
13 octombrie 02:52:57 kernel localhost: mmc0: nou card SDHC de mare viteză la adresa 59b4
13 octombrie 02:52:57 kernel localhost: mmcblk0: mmc0:59b4 SD 14,7 GiB
13 octombrie 02:52:57 kernel localhost: mmcblk0:
13 octombrie 02:52:57 kernel localhost: mmcblk0: reîncercare folosind citirea unui singur bloc
13 octombrie 02:52:57 kernel localhost: mmcblk0: eroare -84 la trimiterea comenzii de stare
13 octombrie 02:52:57 kernel localhost: mmcblk0: eroare -84 la trimiterea comenzii de citire/scriere, răspuns 0x0, starea cardului 0x0
Oct 13 02:52:57 localhost kernel: mmcblk0: eroare -84 transfer date, sector 0, nr 8, stare card 0x0
13 octombrie 02:52:57 kernel localhost: __ratelimit: 577 apeluri inverse suprimate
13 octombrie 02:52:57 localhost kernel: end_request: eroare I/O, dev mmcblk0, sector 0
13 octombrie 02:52:57 kernel localhost: mmcblk0: eroare -84 la trimiterea comenzii de stare
13 octombrie 02:52:57 kernel localhost: mmcblk0: eroare -110 la trimiterea comenzii de citire/scriere, răspuns 0x0, starea cardului 0x0
Oct 13 02:52:57 localhost kernel: mmcblk0: eroare -84 transfer date, sector 1, nr 7, stare card 0x0
13 octombrie 02:52:57 localhost kernel: end_request: eroare I/O, dev mmcblk0, sector 1
13 octombrie 02:52:57 kernel localhost: mmcblk0: eroare -84 la trimiterea comenzii de stare
13 octombrie 02:52:57 kernel localhost: mmcblk0: eroare -84 la trimiterea comenzii de citire/scriere, răspuns 0x0, starea cardului 0x0
Oct 13 02:52:57 localhost kernel: mmcblk0: eroare -84 transfer date, sector 2, nr 6, stare card 0x0
13 octombrie 02:52:57 localhost kernel: end_request: eroare I/O, dev mmcblk0, sector 2
13 octombrie 02:52:57 kernel localhost: mmcblk0: eroare -84 la trimiterea comenzii de stare
13 octombrie 02:52:57 kernel localhost: mmcblk0: eroare -110 la trimiterea comenzii de citire/scriere, răspuns 0x0, starea cardului 0x0
Oct 13 02:52:57 localhost kernel: mmcblk0: eroare -84 transfer de date, sector 3, nr 5, starea cardului 0x0
13 octombrie 02:52:57 localhost kernel: end_request: eroare I/O, dev mmcblk0, sector 3
13 octombrie 02:52:57 kernel localhost: mmcblk0: eroare -84 la trimiterea comenzii de stare
13 octombrie 02:52:57 kernel localhost: mmcblk0: eroare -84 la trimiterea comenzii de citire/scriere, răspuns 0x0, starea cardului 0x0
Oct 13 02:52:57 localhost kernel: mmcblk0: eroare -84 transfer date, sector 4, nr 4, stare card 0x0
13 octombrie 02:52:57 localhost kernel: end_request: eroare I/O, dev mmcblk0, sector 4
...
Dacă ulterior descarc și reîncarc acele module de kernel - cu cardul SD încă introdus - erorile nu sunt raportate și dispozitivul este enumerat corespunzător. Apoi pot monta dispozitivul și pot citi/scrie pe el așa cum era de așteptat.
13 octombrie 02:53:31 kernel localhost: sdhci: driver de interfață Secure Digital Host Controller
Oct 13 02:53:31 localhost kernel: sdhci: Copyright(c) Pierre Ossman
13 octombrie 02:53:50 kernel localhost: sdhci-pci 0000:00:1b.0: S-a găsit controler SDHCI [8086:5aca] (rev b)
13 octombrie 02:53:50 kernel localhost: sdhci-pci 0000:00:1b.0: starea de alimentare a fost schimbată de ACPI în D0
13 octombrie 02:53:50 kernel localhost: sdhci-pci 0000:00:1b.0: starea de alimentare a fost schimbată de ACPI în D0
13 octombrie 02:53:50 kernel localhost: sdhci-pci 0000:00:1b.0: PCI INT A -> GSI 3 (nivel, scăzut) -> IRQ 3
Oct 13 02:53:50 localhost kernel: sdhci-pci 0000:00:1b.0: Dimensiune iomem nevalidă. Este posibil să aveți probleme.
13 octombrie 02:53:50 kernel localhost: Dispozitiv LED înregistrat: mmc0::
13 octombrie 02:53:50 kernel localhost: mmc0: controler SDHCI pe PCI [0000:00:1b.0] folosind ADMA
13 octombrie 02:53:50 kernel localhost: sdhci-pci 0000:00:1c.0: S-a găsit controler SDHCI [8086:5acc] (rev. b)
13 octombrie 02:53:50 kernel localhost: sdhci-pci 0000:00:1c.0: starea de alimentare a fost schimbată de ACPI în D0
13 octombrie 02:53:50 kernel localhost: sdhci-pci 0000:00:1c.0: starea de alimentare a fost schimbată de ACPI în D0
13 octombrie 02:53:50 kernel localhost: sdhci-pci 0000:00:1c.0: PCI INT A -> GSI 39 (nivel, scăzut) -> IRQ 39
Oct 13 02:53:50 localhost kernel: sdhci-pci 0000:00:1c.0: Dimensiune iomem nevalidă. Este posibil să aveți probleme.
13 octombrie 02:53:50 kernel localhost: Dispozitiv LED înregistrat: mmc1::
13 octombrie 02:53:50 kernel localhost: mmc1: controler SDHCI pe PCI [0000:00:1c.0] folosind ADMA
13 octombrie 02:53:50 kernel localhost: mmc0: nou card SDHC de mare viteză la adresa 59b4
13 octombrie 02:53:50 kernel localhost: mmcblk0: mmc0:59b4 SD 14,7 GiB
Oct 13 02:53:50 localhost kernel: mmcblk0: p1
Atâta timp cât las cardul SD introdus, pot descărca/reîncărca modulele nucleului și pot folosi dispozitivul fără probleme.
Totuși, de îndată ce scot cardul, voi avea din nou erori la prima reîncărcare ulterior sdhci și sdhci_pc și voi vedea din nou aceste erori dispărând chiar la următoarea reîncărcare.
Aveți vreo idee despre de ce s-ar putea întâmpla asta?
ACTUALIZAȚI:
După ce erorile I/O sunt raportate, trebuie doar să descarc și să reîncarc sdhci_pci.Cu alte cuvinte, nu trebuie să descarc și să reîncarc și sdhci.