Re: SD/MMC (ricoh) reader on Thinkpad T61

Lars Engels <[email protected]>
Newsgroups gmane.os.freebsd.devel.mobile
Message-ID <[email protected]>
On Sat, May 17, 2008 at 02:31:29AM +0900, Norikatsu Shigemura wrote:
> On Fri, 16 May 2008 16:58:22 +0200
> Torfinn Ingolfsen <[email protected]> wrote:
> > Does anyone know if the driver has been updated for 7.0-stable somehwere?
> 
> 	The newest one is here:
> 	http://www.agt.ne.jp/~a-gota/programs/driver/FBSD6.2R/memcard/sdmmc-20080208.tar.gz
> 
> 	And, takawata@ fixed its panic issue (lock issue):
> 	http://www.init-main.com/sdmmc.patch
> 	NOTE: This patch provides for old version.  So ignore .rej files.
> 	.rej files have many already fixed codes.
> 
> 	I'm using on 8-current, and sdmmc(4) quite good works.


With yesterday's sources and having applied takawata's patch (with one
.rej as you predicted) I still get this panic:

Sleeping on "sdshcbus_event_card_insertion" with the following
non-sleepable locks held:
exclusive sleep mutex sdshc0 r = 0 (0xc4214588) locked @
/usr/home/lars/local-patches/sdmmc/modules/sdmmc/../../dev/sdmmc/sdshc.c:450
KDB: stack backtrace:
db_trace_self_wrapper(c08c147c,c3e92c10,c061dcb7,c08c1914,c3e92c24,...)
at db_trace_self_wrapper+0x26
kdb_backtrace(c08c1914,c3e92c24,4,1,0,...) at kdb_backtrace+0x29
witness_warn(5,0,c08bf06c,c0c47740,c1472978,...) at witness_warn+0x1d7
_sleep(c4203100,0,68,c0c47740,3e8,...) at _sleep+0x5f
sdshcbus_intr(c4214480,c41891f4,c0c48b88,1c2,c4214588,...) at
sdshcbus_intr+0x2fe
sdshc_intr(c4214580,0,c08bac35,4d4,c40eb06c,...) at sdshc_intr+0xe6
ithread_loop(c41d5000,c3e92d38,c08ba9a4,30d,c40ab7c8,...) at
ithread_loop+0x1b5
fork_exit(c05c58c0,c41d5000,c3e92d38) at fork_exit+0xb8
fork_trampoline() at fork_trampoline+0x8


the .rej file reads:
***************
*** 42,47 ****
  #include <sys/systm.h>
  #include <sys/conf.h>
  #include <sys/malloc.h>

  #include <dev/pci/pcireg.h>
  #include <dev/pci/pcivar.h>
--- 42,50 ----
  #include <sys/systm.h>
  #include <sys/conf.h>
  #include <sys/malloc.h>
+ #include <machine/bus.h>
+ #include <sys/bus.h>
+

  #include <dev/pci/pcireg.h>
  #include <dev/pci/pcivar.h>
***************
*** 343,349 ****
       */
      LOG(0x10, (dev, "Setup Intr\n"));
      error = bus_setup_intr(dev, sc->irq, INTR_TYPE_NET|INTR_MPSAFE ,
-                          sdshc_intr, sc, &sc->ih);
      if (error != 0) {
        MSG((dev, "could not set up interrupt\n"));
        goto cleanup;
--- 346,352 ----
       */
      LOG(0x10, (dev, "Setup Intr\n"));
      error = bus_setup_intr(dev, sc->irq, INTR_TYPE_NET|INTR_MPSAFE ,
+                          NULL, sdshc_intr, sc, &sc->ih);
      if (error != 0) {
        MSG((dev, "could not set up interrupt\n"));
        goto cleanup;



pciconf:
sdshc0@pci0:5:9:2:      class=0x080500 card=0xc024144d chip=0x08221180
rev=0x18 hdr=0x00
    vendor     = 'Ricoh Company, Ltd.'
    device     = 'R5C832, R5C843 SDA Standard Compliant SD Host
Controller'
    class      = base peripheral
signature.asc (application/pgp-signature, 195 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (FreeBSD)

iEYEARECAAYFAkgusj4ACgkQKc512sD3afgcngCeMvOSHe/DSvxbHavk614CAIeU
xlEAn1jsV1Izhcp7OqGaH9nH/y1K9olD
=1OMW
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.