View Single Post
  (#1) Old
pirinto pirinto is offline
Junior Member
 
pirinto's Avatar
 
Posts: 19
Join Date: Mar 2009
Lightbulb sd card controller disappears after suspend on Dell Mini9 LMDE - 12-16-2012, 04:31 PM

Hi all,

On Linux Mint Debian Edition, my sd card reader controller does not appear to be functioning nor present after i wake up my laptop from suspend mode. This is quite irritating. I've searched and tried several methods to make it work to no avail.

Here is the output of lspci before doing a suspend:
Code:
lspci 
00:00.0 Host bridge: Intel Corporation Mobile 945GSE Express Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GSE Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 2 (rev 02)
00:1c.2 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 3 (rev 02)
00:1d.0 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #1 (rev 02)
00:1d.1 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 02)
00:1d.2 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 (rev 02)
00:1d.3 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 02)
00:1d.7 USB controller: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02)
00:1f.3 SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev 02)
02:00.0 System peripheral: JMicron Technology Corp. SD/MMC Host Controller
02:00.2 SD Host controller: JMicron Technology Corp. Standard SD Host Controller
02:00.3 System peripheral: JMicron Technology Corp. MS Host Controller
03:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g LP-PHY (rev 01)
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 02)
And here it is after I woken up the computer from suspend mode:
Code:
 lspci
00:00.0 Host bridge: Intel Corporation Mobile 945GSE Express Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GSE Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 2 (rev 02)
00:1c.2 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 3 (rev 02)
00:1d.0 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #1 (rev 02)
00:1d.1 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 02)
00:1d.2 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 (rev 02)
00:1d.3 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 02)
00:1d.7 USB controller: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02)
00:1f.3 SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev 02)
03:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g LP-PHY (rev 01)
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 02)
It is these three lines that are missing:
02:00.0 System peripheral: JMicron Technology Corp. SD/MMC Host Controller
02:00.2 SD Host controller: JMicron Technology Corp. Standard SD Host Controller
02:00.3 System peripheral: JMicron Technology Corp. MS Host Controller


The SDcard in the SD card slot is no longer mounted of course, and the device on /dev/mmcblk0p1 is no longer there.

These are the steps that I have tried (I tried every step independently):
  • STEP 1: I edited the file pm-suspend
    /usr/sbin/pm-suspend
    Edited the fist line which is not bashed (#), which is:
    export STASHNAME=pm-suspend
    before that line, I added
    umount /dev/mmcblk*
    This just managed to unmount the sd card before suspending but the problem of the controller disappearing prevailed.

    I tried also:
    In: etc/pm/sleep.d
    I created 010_unmount_SD.sh with the following content:


    Code:
    # Drop to: /etc/pm/sleep.d
    # Use this script to prevent data loss on mounted MMC/SD
    # cards. It syncs data and umounts all mmcblk devices prior to
    # suspend, and cancels suspend if umounting was not possible
    # (i.e: something locks a file)
    touch /home/me/Desktop/suspended.txt;
    case "${1}" in
        hibernate|suspend)
            /bin/sync
            for drive in $( /bin/ls /dev/mmcblk?p* ); do
                /bin/umount ${drive} > /dev/null
                # If umount failed: abort suspend
                if [ $? -gt 0 ]; then
                # Test if device keeps mounted. Previous command could fail
                # (i.e device was not mounted) with a non-stopper
                # problem for the suspend process.
                /bin/mount | /bin/grep ${drive}
                if [ $? -eq 0 ]; then
                    exit 1
                fi
                fi
            done
            ;;
    #    resume|thaw)
    This also just managed to unmount the sd card before suspending but the problem of the controller disappearing prevailed.

  • STEP 2: I added the following line to the file /etc/pm/config.d/00sleep_module to unload the module before standby:
    SUSPEND_MODULES="$SUSPEND_MODULES sdhci"

    I don't have an idea or the knowledge to see if this actually executes. All I can see is that the problem persists. That is, of the controller disappearing on wake up prevailed.

    I also tried another syntax:
    SUSPEND_MODULES="sdhci sdhci_pci"
    Same result here.

  • STEP 3: I tried removing the modules by hand before suspend
    sudo rmmod -v sdhci
    sudo rmmod -v sdhci_pci
    sudo rmmod -v mmc_block


    Suspended the system. On wake-up the controller didn't show up on lspci.

    Tryed to readd them by doing:
    sudo modprobe -v sdhci
    sudo modprobe -v sdhci_pci
    sudo modprobe -v mmc_block


    The system didn't complain when re-adding the modules but the sd card controller still did not show

So here I am now. Kind of out of options. I'd be happy to provide some logs if needed. I'd appreciate any help I can get.
The problem for me lies in the fact that this tiny Dell has only a 16Gb SSD which basically requires some kind extra storage. That's where the SDcard comes in for me. I'm thankful for any kind of assistance.

PS: This is what happens when the controller is actually working and when an sd card is inserted:
Code:
Dec 15 22:26:02 tinymahfah kernel: [  180.801223] mmc0: new SDHC card at address b9b0
Dec 15 22:26:02 tinymahfah kernel: [  180.826673] mmcblk0: mmc0:b9b0 SD08G 7.42 GiB 
Dec 15 22:26:02 tinymahfah kernel: [  180.829199]  mmcblk0: p1
Dec 15 22:26:02 tinymahfah kernel: [  181.156668] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: (null)


Mini 9 | LMDE | 16Gb Stock SSD | 2Gb RAM | BT | 1.3 Mp Webcam | BIOS A04
Reply With Quote