# [SOLVED] Card Reader: laptop C855D-S5209 only works LiveDVD

## Decibels

EDIT: Solved. If you don't want to read the whole thing. It uses the rts5139 driver and is on the usb bus.

The card reader works with Gentoo LiveDVD. I am positive had it working after installing gentoo on the laptop. Until recent upgrades & kde4.9.3.

Now when insert a SD card nothing happens. At least I can insert the card in the camera and use usb.

The first thing noticed was a name change. That shouldn't affect it I believe cause the vendor and product ids are the same:

```

lspci output:

1) Was and on LiveDVD: 00:14.7 SD Host controller: Advanced Micro Devices [AMD] Hudson SD Flash Controller (prog-if 01)

2) Now is called: 00:14.7 SD Host controller: Advanced Micro Devices [AMD] FCH SD Flash Controller (prog-if 01)

```

In fact all the 'Hudson' have been changed to 'FCH'. This website: http://pci-ids.ucw.cz/read/PC/1022/7806 shows the name change. Which I don't

believe is the problem. But not sure and seems to have happened around the same time.

lshw which still shows them as 'Hudson':

prob cause using different pci.ids list:

/usr/share/lshw/pci.ids

/usr/share/misc/pci.ids

```

        *-generic

             description: SD Host controller

             product: Hudson SD Flash Controller

             vendor: Hynix Semiconductor (Hyundai Electronics)

             physical id: 14.7

             bus info: pci@0000:00:14.7

             version: 00

             width: 64 bits

             clock: 66MHz

             capabilities: bus_master

             configuration: driver=sdhci-pci latency=39

             resources: irq:16 memory:f024a000-f024a0ff

```

'udevadm monitor' shows it fine on LiveDVD. Nothing comes up on normal system.  I have an idea it might be the screwy stuff that has been going on with udev.

This is all dmesg is showing on it:

```

sdhci: Secure Digital Host Controller Interface driver

sdhci: Copyright(c) Pierre Ossman

sdhci-pci 0000:00:14.7: SDHCI controller found [1022:7806] (rev 0)

Registered led device: mmc0::

mmc0: SDHCI controller on PCI [0000:00:14.7] using ADMA

```

Here are some of my versions of installed programs:

sys-fs/udev-171-r9

sys-apps/pciutils-3.1.10 (don't ask if to update-pciids, cause this doesn't have that anymore)

kernel: 3.4.9-gentoo (don't think made any changes)

Kernel mmc entries:

```

grep -i mmc .config

CONFIG_PCI_MMCONFIG=y

CONFIG_MMC=y

# CONFIG_MMC_DEBUG is not set

# CONFIG_MMC_UNSAFE_RESUME is not set

# CONFIG_MMC_CLKGATE is not set

# MMC/SD/SDIO Card Drivers

CONFIG_MMC_BLOCK=m

CONFIG_MMC_BLOCK_MINORS=8

CONFIG_MMC_BLOCK_BOUNCE=y

CONFIG_MMC_TEST=m

# MMC/SD/SDIO Host Controller Drivers

CONFIG_MMC_SDHCI=m

CONFIG_MMC_SDHCI_PCI=m

CONFIG_MMC_RICOH_MMC=y

CONFIG_MMC_SDHCI_PLTFM=m

CONFIG_MMC_WBSD=m

CONFIG_MMC_TIFM_SD=m

CONFIG_MMC_SDRICOH_CS=m

CONFIG_MMC_CB710=m

CONFIG_MMC_VIA_SDMMC=m

CONFIG_MMC_VUB300=m

CONFIG_MMC_USHC=m

```

lsmod output:

```

lsmod

Module                  Size  Used by

snd_hda_codec_realtek    57628  1 

snd_hda_codec_hdmi     22417  1 

rtl8192ce             126226  0 

rtlwifi               103586  1 rtl8192ce

uvcvideo               66524  0 

snd_hda_intel          23129  4 

snd_hda_codec          87150  3 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_intel

snd_hwdep               5798  1 snd_hda_codec

mac80211              382598  2 rtl8192ce,rtlwifi

snd_pcm                65917  3 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec

sg                     24467  3 

videobuf2_core         18541  1 uvcvideo

cfg80211              167941  2 rtlwifi,mac80211

snd_timer              17960  1 snd_pcm

videodev               91934  1 uvcvideo

snd                    54656  15 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer

fglrx                2582657  119 

videobuf2_vmalloc       2284  1 uvcvideo

sdhci_pci               9784  0 

sdhci                  22363  1 sdhci_pci

k10temp                 2763  0 

soundcore               4977  1 snd

snd_page_alloc          6809  2 snd_hda_intel,snd_pcm

hid_logitech_dj         9969  0 

videobuf2_memops        1870  1 videobuf2_vmalloc

led_class               2542  1 sdhci

```

Any help would be appreciated. Thanks.

----------

## NeddySeagoon

Decibels,

Your kernel snippit shows all of the mmc drivers made as modules and your lsmod shows that none are loaded.

Using trial and error, find out which is the right one for you, then add it to /etc/conf.d/modules

----------

## Decibels

Thanks NeddySeagoon for the quick reply to my issue. Certainly was a trial and error.

Well, looks like I got further. Still have to put old system back. I recovered from a backup where thought it worked and guess got rid of that backup. 

I booted up with the LiveDVD. Started removing modules: sdhci, sdhci-pci, mmc-core, ssb, ohci-hcd and still works. lspci doesn't even show it having a driver now, which was sdhci-pci. Still works though when insert the SD card.

Inserted the SD card and watched with 'udevadm monitor'. It showed it as /dev/sdb/sdb1. Then ran lshw command, it shows (note: this isn't under the Flash Controller though, just looked for the /dev/sdb):

```

     *-scsi:2

          physical id: 3

          bus info: usb@1:5

          logical name: scsi2

          capabilities: emulated scsi-host

          configuration: driver=rts5139

        *-disk

             description: SCSI Disk

             product: xD/SD/M.S.

             vendor: Generic-

             physical id: 0.0.0

             bus info: scsi@2:0.0.0

             logical name: /dev/sdb

             version: 1.00

             serial: 3

             capabilities: removable

             configuration: sectorsize=512

           *-medium

                physical id: 0

                logical name: /dev/sdb

```

Hmmm, completely different driver: rts5139. Not the one lshw or lspci on the harddrive shows for the Flash Controller, which shows the sdhci-pci driver. 

Note: lshw on LiveDVD shows the sdhci-pci for the Flash Controller also. I also grep'd the output of lspci -v -v -v for realtek and it only shows the wireless ethernet chipset this laptop uses. Nothing about the SD card reader.

As a futher check I had already removed the other modules, so removed the rts5139 and then the card reader finally stopped working.

```

modinfo rts5139

filename:       /lib/modules/3.3.0-gentoo-r1/kernel/drivers/staging/rts5139/rts5139.ko

version:        v1.04

license:        GPL

description:    Realtek RTS5139/29 USB card reader driver

srcversion:     8CC1650D9BB5EFD366A31FA

alias:          usb:v0BDAp0129d*dc*dsc*dp*ic*isc*ip*

alias:          usb:v0BDAp0139d*dc*dsc*dp*ic*isc*ip*

depends:        

staging:        Y

intree:         Y

vermagic:       3.3.0-gentoo-r1 SMP mod_unload modversions 

parm:           auto_delink_en:enable auto delink (int)

parm:           ss_en:enable selective suspend (int)

parm:           ss_delay:seconds to delay before entering selective suspend (int)

parm:           needs_remote_wakeup:ss state needs remote wakeup supported (int)

```

So booted back up to the harddrive and compiled in the rts5139 driver as module and removed the 'MMC/SD/SDIO card support' as a further test. Rebooted after installing the modules and the module wasn't picked up. Had to manually insert it. Then card reader started working!!!! Not sure why system isn't seeing the card reader for what it is and that the LiveDVD at least loads the module rts5139, but still says the driver is sdhci-pci. 

I will test later if need to put any of the MMC/SD/SDIO stuff back in, when recover from backup my current system on the harddrive. After that will provide further notes if needed and mark this solved.

----------

## Decibels

Okay, finally SOLVED! I guess I don't know what that report from lspci is on the 

[00:14.7 SD Host controller: Advanced Micro Devices [AMD] FCH SD Flash Controller] but it isn't the Card Reader. 

This is continued from above, where figured it out. But had to recover my system from backup and see if still worked. It didn't, but module did load. I just had to remerge: udisks and dbus, then reboot. Was gone for awhile and thought was going to have to dig into it more. But forgot hadn't rebooted.

Toshiba Satellite C855D-S5209: Card Reader is usb and uses RTS5139 driver.

```
# lsusb -v -v

Bus 001 Device 003: ID 0bda:0129 Realtek Semiconductor Corp. 

Device Descriptor:

  bLength                18

  bDescriptorType         1

  bcdUSB               2.00

  bDeviceClass          255 Vendor Specific Class

  bDeviceSubClass       255 Vendor Specific Subclass

  bDeviceProtocol       255 Vendor Specific Protocol

  bMaxPacketSize0        64

  idVendor           0x0bda Realtek Semiconductor Corp.

  idProduct          0x0129 

  bcdDevice           39.60

  iManufacturer           1 Generic

  iProduct                2 USB2.0-CRW

  iSerial                 3 20100201396000000

  bNumConfigurations      1

  Configuration Descriptor:

    bLength                 9

    bDescriptorType         2

    wTotalLength           39

    bNumInterfaces          1

    bConfigurationValue     1

    iConfiguration          4 CARD READER

    bmAttributes         0xa0

      (Bus Powered)

      Remote Wakeup

    MaxPower              500mA

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        0

      bAlternateSetting       0

      bNumEndpoints           3

      bInterfaceClass       255 Vendor Specific Class

      bInterfaceSubClass      6 

      bInterfaceProtocol     80 

      iInterface              5 Bulk-In, Bulk-Out, Interface

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x01  EP 1 OUT

        bmAttributes            2

          Transfer Type            Bulk

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0200  1x 512 bytes

        bInterval               0

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x82  EP 2 IN

        bmAttributes            2

          Transfer Type            Bulk

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0200  1x 512 bytes

        bInterval               0

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x83  EP 3 IN

        bmAttributes            3

          Transfer Type            Interrupt

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0003  1x 3 bytes

        bInterval              10

Device Qualifier (for other device speed):

  bLength                10

  bDescriptorType         6

  bcdUSB               2.00

  bDeviceClass            0 (Defined at Interface level)

  bDeviceSubClass         0 

  bDeviceProtocol         0 

  bMaxPacketSize0        64

  bNumConfigurations      1

Device Status:     0x0000

  (Bus Powered)

```

----------

