From mboxrd@z Thu Jan 1 00:00:00 1970 From: Magnus Damm Date: Mon, 17 May 2010 03:35:08 +0000 Subject: Re: Status of tmio_mmc DMA support for SDIO Message-Id: MIME-Version: 1 Content-Type: multipart/mixed; boundary="0016361643c55509270486c1e931" List-Id: References: <1B215080664E44FE81F6BA1DCFA65A38@RSI45> In-Reply-To: <1B215080664E44FE81F6BA1DCFA65A38@RSI45> To: "Charles D. Krebs" Cc: Guennadi Liakhovetski , Ian Molton , linux-sh@vger.kernel.org, sailaja.sdn@redpinesignals.com, linux-mmc@vger.kernel.org --0016361643c55509270486c1e931 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi Charles, On Sat, May 15, 2010 at 4:43 AM, Charles D. Krebs wrote: >>> Just saw this - am I right in thinking someone has written SDIO >>> support for TMIO ? Im afraid I dont appear to have the preceeding >>> emails. >> >> This is the first email regarding TMIO SDIO that I'm aware of - from >> Charles, he's sent it tothe sh ML and to me and I've added you and the m= mc >> list to CC. > > To clarify - I didn't write that code. =A0It was developed by some of the > Kernel guys over at Renesas Japan specifically for my request to support > SDIO under their BSP for 2.6.33. =A0The code in tmio and sh_mobile_sdhi > replaces a previously closed source module for SD support on the hardware > due to licensing restrictions of the SD consortium. =A0Apparently those i= ssues > were resolved and now the complete SD stack is integrated into the Kernel > directly. =A0However, the transition didn't include support for SDIO, so = the > patch to tmio was provided in the interim. > > Magnus - Do you know the author for the SDIO patch? I believe that the patch was written by one of the BSP guys at Renesas. I guess I'm to blame for not posting anything better upstream, but I decided to hold until I could test this feature properly myself. There are a bunch of SDHI/tmio_mmc related patches posted for 2.6.35 already, and I guess SDIO would be targeted for 2.6.36. The SDIO patch I've seen is not exactly upstream quality, but I've been working a bit on trying to come up with a more long term solution. At this point it's a bit stalled since my Wifi SDIO cards that i've ordered are still on hold for some unknown reason. I have however tested some other SDIO cards with the SDHI/tmio_mmc drivers and they seem ok. At least the one that actually has a linux driver. The quality of the driver for that card is far from perfect, so I'd like to test with hardware that has upstream SDIO drivers (broadcomm and perhaps also atheros chipsets) before claiming that SDIO works. FYI, you don't really need any patch for SDIO support. You can do SDIO on a non-SDIO host by the automatic polling mode that the kernel provides for you. So the SDHI/tmio_mmc code should work out of the box as-is. You may want to enable the IRQ pin feature, but for that you need to patch the SDHI/tmio_MMC driver(s). I've attached my prototype SDIO patch. It's a scaled down version of the BSP patch, but still in a hackish state. / magnus --0016361643c55509270486c1e931 Content-Type: application/octet-stream; name="linux-2.6.35-pre-sdhi-sdio-rewrite-20100427b.patch" Content-Disposition: attachment; filename="linux-2.6.35-pre-sdhi-sdio-rewrite-20100427b.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g9aqnd0z0 RnJvbTogTWFnbnVzIERhbW0gPGRhbW1Ab3BlbnNvdXJjZS5zZT4KClNpZ25lZC1vZmYtYnk6IE1h Z251cyBEYW1tIDxkYW1tQG9wZW5zb3VyY2Uuc2U+Ci0tLQoKIGFyY2gvc2gva2VybmVsL2NwdS9z aDRhL3NldHVwLXNoNzcyNC5jIHwgICAgNCArLS0KIGRyaXZlcnMvbWZkL3NoX21vYmlsZV9zZGhp LmMgICAgICAgICAgIHwgICAgMiAtCiBkcml2ZXJzL21tYy9ob3N0L3RtaW9fbW1jLmMgICAgICAg ICAgICB8ICAgNDEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIGRyaXZlcnMvbW1j L2hvc3QvdG1pb19tbWMuaCAgICAgICAgICAgIHwgICAgMiArCiA0IGZpbGVzIGNoYW5nZWQsIDQ1 IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgotLS0gMDAwMS9hcmNoL3NoL2tlcm5lbC9j cHUvc2g0YS9zZXR1cC1zaDc3MjQuYworKysgd29yay9hcmNoL3NoL2tlcm5lbC9jcHUvc2g0YS9z ZXR1cC1zaDc3MjQuYwkyMDEwLTA0LTI3IDE5OjQ1OjIwLjAwMDAwMDAwMCArMDkwMApAQCAtMTA1 OSw3ICsxMDU5LDcgQEAgc3RhdGljIHN0cnVjdCBpbnRjX2dyb3VwIGdyb3Vwc1tdIF9faW5pdAog c3RhdGljIHN0cnVjdCBpbnRjX21hc2tfcmVnIG1hc2tfcmVnaXN0ZXJzW10gX19pbml0ZGF0YSA9 IHsKIAl7IDB4YTQwODAwODAsIDB4YTQwODAwYzAsIDgsIC8qIElNUjAgLyBJTUNSMCAqLwogCSAg eyAwLCBUTVUxX1RVTkkyLCBUTVUxX1RVTkkxLCBUTVUxX1RVTkkwLAotCSAgICAwLCBESVNBQkxF RCwgRU5BQkxFRCwgRU5BQkxFRCB9IH0sCisJICAgIDAsIEVOQUJMRUQsIEVOQUJMRUQsIEVOQUJM RUQgfSB9LAogCXsgMHhhNDA4MDA4NCwgMHhhNDA4MDBjNCwgOCwgLyogSU1SMSAvIElNQ1IxICov CiAJICB7IFZJT19WT1UsIFZJT19WRVUxLCBWSU9fQkVVMCwgVklPX0NFVTAsCiAJICAgIERNQUMw QV9ERUkzLCBETUFDMEFfREVJMiwgRE1BQzBBX0RFSTEsIERNQUMwQV9ERUkwIH0gfSwKQEAgLTEw ODEsNyArMTA4MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgaW50Y19tYXNrX3JlZyBtYXNrX3JlZ2lzdGUK IAkgIHsgSTJDMF9EVEVJLCBJMkMwX1dBSVRJLCBJMkMwX1RBQ0tJLCBJMkMwX0FMSSwKIAkgICAg STJDMV9EVEVJLCBJMkMxX1dBSVRJLCBJMkMxX1RBQ0tJLCBJMkMxX0FMSSB9IH0sCiAJeyAweGE0 MDgwMGEwLCAweGE0MDgwMGUwLCA4LCAvKiBJTVI4IC8gSU1DUjggKi8KLQkgIHsgRElTQUJMRUQs IERJU0FCTEVELCBFTkFCTEVELCBFTkFCTEVELAorCSAgeyBESVNBQkxFRCwgRU5BQkxFRCwgRU5B QkxFRCwgRU5BQkxFRCwKIAkgICAgMCwgMCwgU0NJRkE1LCBGU0kgfSB9LAogCXsgMHhhNDA4MDBh NCwgMHhhNDA4MDBlNCwgOCwgLyogSU1SOSAvIElNQ1I5ICovCiAJICB7IDAsIDAsIDAsIENNVCwg MCwgVVNCMSwgVVNCMCwgMCB9IH0sCi0tLSAwMDAxL2RyaXZlcnMvbWZkL3NoX21vYmlsZV9zZGhp LmMKKysrIHdvcmsvZHJpdmVycy9tZmQvc2hfbW9iaWxlX3NkaGkuYwkyMDEwLTA0LTI3IDE5OjQ1 OjIwLjAwMDAwMDAwMCArMDkwMApAQCAtOTgsNyArOTgsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBz aF9tb2JpbGVfc2RoaV9wcm9iZShzCiAKIAlwcml2LT5tbWNfZGF0YS5oY2xrID0gY2xrX2dldF9y YXRlKHByaXYtPmNsayk7CiAJcHJpdi0+bW1jX2RhdGEuc2V0X3B3ciA9IHNoX21vYmlsZV9zZGhp X3NldF9wd3I7Ci0JcHJpdi0+bW1jX2RhdGEuY2FwYWJpbGl0aWVzID0gTU1DX0NBUF9NTUNfSElH SFNQRUVEOworCXByaXYtPm1tY19kYXRhLmNhcGFiaWxpdGllcyA9IE1NQ19DQVBfTU1DX0hJR0hT UEVFRCB8IE1NQ19DQVBfU0RJT19JUlE7CiAKIAltZW1jcHkoJnByaXYtPmNlbGxfbW1jLCAmc2hf bW9iaWxlX3NkaGlfY2VsbCwgc2l6ZW9mKHByaXYtPmNlbGxfbW1jKSk7CiAJcHJpdi0+Y2VsbF9t bWMuZHJpdmVyX2RhdGEgPSAmcHJpdi0+bW1jX2RhdGE7Ci0tLSAwMDAxL2RyaXZlcnMvbW1jL2hv c3QvdG1pb19tbWMuYworKysgd29yay9kcml2ZXJzL21tYy9ob3N0L3RtaW9fbW1jLmMJMjAxMC0w NC0yNyAxOTo0NTo0OS4wMDAwMDAwMDAgKzA5MDAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl IDxsaW51eC9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxp bnV4L21tYy9ob3N0Lmg+CisjaW5jbHVkZSA8bGludXgvbW1jL3NkaW8uaD4KICNpbmNsdWRlIDxs aW51eC9tZmQvY29yZS5oPgogI2luY2x1ZGUgPGxpbnV4L21mZC90bWlvLmg+CiAKQEAgLTU0LDgg KzU1LDEwIEBAIHN0YXRpYyB2b2lkIHRtaW9fbW1jX3NldF9jbG9jayhzdHJ1Y3QgdG0KIAogc3Rh dGljIHZvaWQgdG1pb19tbWNfY2xrX3N0b3Aoc3RydWN0IHRtaW9fbW1jX2hvc3QgKmhvc3QpCiB7 CisjaWYgMAogCXNkX2N0cmxfd3JpdGUxNihob3N0LCBDVExfQ0xLX0FORF9XQUlUX0NUTCwgMHgw MDAwKTsKIAltc2xlZXAoMTApOworI2VuZGlmCiAJc2RfY3RybF93cml0ZTE2KGhvc3QsIENUTF9T RF9DQVJEX0NMS19DVEwsIH4weDAxMDAgJgogCQlzZF9jdHJsX3JlYWQxNihob3N0LCBDVExfU0Rf Q0FSRF9DTEtfQ1RMKSk7CiAJbXNsZWVwKDEwKTsKQEAgLTY2LDggKzY5LDEwIEBAIHN0YXRpYyB2 b2lkIHRtaW9fbW1jX2Nsa19zdGFydChzdHJ1Y3QgdG0KIAlzZF9jdHJsX3dyaXRlMTYoaG9zdCwg Q1RMX1NEX0NBUkRfQ0xLX0NUTCwgMHgwMTAwIHwKIAkJc2RfY3RybF9yZWFkMTYoaG9zdCwgQ1RM X1NEX0NBUkRfQ0xLX0NUTCkpOwogCW1zbGVlcCgxMCk7CisjaWYgMAogCXNkX2N0cmxfd3JpdGUx Nihob3N0LCBDVExfQ0xLX0FORF9XQUlUX0NUTCwgMHgwMTAwKTsKIAltc2xlZXAoMTApOworI2Vu ZGlmCiB9CiAKIHN0YXRpYyB2b2lkIHJlc2V0KHN0cnVjdCB0bWlvX21tY19ob3N0ICpob3N0KQpA QCAtMjk4LDkgKzMwMywyNiBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgdG1pb19tbWNfaXJxKGludCBp cnEsCiB7CiAJc3RydWN0IHRtaW9fbW1jX2hvc3QgKmhvc3QgPSBkZXZpZDsKIAl1bnNpZ25lZCBp bnQgaXJlZywgaXJxX21hc2ssIHN0YXR1czsKKwl1bnNpZ25lZCBpbnQgc2Rpb19pcmVnLCBzZGlv X2lycV9tYXNrLCBzZGlvX3N0YXR1czsKIAogCXByX2RlYnVnKCJNTUMgSVJRIGJlZ2luXG4iKTsK IAorCXNkaW9faXJlZyA9IDA7CisJaWYgKGhvc3QtPm1tYy0+Y2FwcyAmIE1NQ19DQVBfU0RJT19J UlEpIHsKKwkJc2Rpb19zdGF0dXMgPSBzZF9jdHJsX3JlYWQxNihob3N0LCBDVExfU0RJT19TVEFU VVMpOworCQlzZGlvX2lycV9tYXNrID0gc2RfY3RybF9yZWFkMTYoaG9zdCwgQ1RMX1NESU9fSVJR X01BU0spOworCQlzZGlvX2lyZWcgPSBzZGlvX3N0YXR1cyAmIDB4YzAwNyAmIH5zZGlvX2lycV9t YXNrOworCisJCWlmIChzZGlvX2lyZWcpCisJCQlwcmludGsoInh4eHh4eHh4eHh4eHh4IHNkaW8g MHglMDh4XG4iLCBzZGlvX2lyZWcpOworCisJCXNkX2N0cmxfd3JpdGUxNihob3N0LCBDVExfU0RJ T19TVEFUVVMsIHNkaW9fc3RhdHVzICYgfjB4YzAwNyk7CisKKwkJaWYgKHNkaW9faXJlZyAmIDEp IHsKKwkJCW1tY19zaWduYWxfc2Rpb19pcnEoaG9zdC0+bW1jKTsKKwkJfQorCX0KKwogCXN0YXR1 cyA9IHNkX2N0cmxfcmVhZDMyKGhvc3QsIENUTF9TVEFUVVMpOwogCWlycV9tYXNrID0gc2RfY3Ry bF9yZWFkMzIoaG9zdCwgQ1RMX0lSUV9NQVNLKTsKIAlpcmVnID0gc3RhdHVzICYgVE1JT19NQVNL X0lSUSAmIH5pcnFfbWFzazsKQEAgLTMwOCw3ICszMzAsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3Qg dG1pb19tbWNfaXJxKGludCBpcnEsCiAJcHJfZGVidWdfc3RhdHVzKHN0YXR1cyk7CiAJcHJfZGVi dWdfc3RhdHVzKGlyZWcpOwogCi0JaWYgKCFpcmVnKSB7CisJaWYgKCFpcmVnICYmICFzZGlvX2ly ZWcpIHsKIAkJZGlzYWJsZV9tbWNfaXJxcyhob3N0LCBzdGF0dXMgJiB+aXJxX21hc2spOwogCiAJ CXByX2RlYnVnKCJ0bWlvX21tYzogU3B1cmlvdXMgaXJxLCBkaXNhYmxpbmchICIKQEAgLTQ2Miwx MCArNDg0LDI3IEBAIHN0YXRpYyBpbnQgdG1pb19tbWNfZ2V0X3JvKHN0cnVjdCBtbWNfaG8KIAly ZXR1cm4gKHNkX2N0cmxfcmVhZDE2KGhvc3QsIENUTF9TVEFUVVMpICYgVE1JT19TVEFUX1dSUFJP VEVDVCkgPyAwIDogMTsKIH0KIAorc3RhdGljIHZvaWQgdG1pb19tbWNfZW5hYmxlX3NkaW9faXJx KHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBpbnQgZW5hYmxlKQoreworCXN0cnVjdCB0bWlvX21tY19o b3N0ICpob3N0ID0gbW1jX3ByaXYobW1jKTsKKworCXByaW50aygiZW5hYmxlX3NkaW9faXJxICVk XG4iLCBlbmFibGUpOworCisJaWYgKGVuYWJsZSkgeworCQlzZF9jdHJsX3dyaXRlMTYoaG9zdCwg Q1RMX1RSQU5TQUNUSU9OX0NUTCwgMHgwMDAxKTsKKwkJc2RfY3RybF93cml0ZTE2KGhvc3QsIENU TF9TRElPX0lSUV9NQVNLLCAweDAwMDYpOworCX0gZWxzZSB7CisJCXNkX2N0cmxfd3JpdGUxNiho b3N0LCBDVExfU0RJT19JUlFfTUFTSywgMHhjMDA3KTsKKwkJc2RfY3RybF93cml0ZTE2KGhvc3Qs IENUTF9UUkFOU0FDVElPTl9DVEwsIDB4MDAwMCk7CisJfQorCit9CisKIHN0YXRpYyBzdHJ1Y3Qg bW1jX2hvc3Rfb3BzIHRtaW9fbW1jX29wcyA9IHsKIAkucmVxdWVzdAk9IHRtaW9fbW1jX3JlcXVl c3QsCiAJLnNldF9pb3MJPSB0bWlvX21tY19zZXRfaW9zLAogCS5nZXRfcm8gICAgICAgICA9IHRt aW9fbW1jX2dldF9ybywKKwkuZW5hYmxlX3NkaW9faXJxID0gdG1pb19tbWNfZW5hYmxlX3NkaW9f aXJxLAogfTsKIAogI2lmZGVmIENPTkZJR19QTQotLS0gMDAwMS9kcml2ZXJzL21tYy9ob3N0L3Rt aW9fbW1jLmgKKysrIHdvcmsvZHJpdmVycy9tbWMvaG9zdC90bWlvX21tYy5oCTIwMTAtMDQtMjcg MTk6NDU6MjAuMDAwMDAwMDAwICswOTAwCkBAIC0yNCw2ICsyNCw4IEBACiAjZGVmaW5lIENUTF9T RF9FUlJPUl9ERVRBSUxfU1RBVFVTIDB4MmMKICNkZWZpbmUgQ1RMX1NEX0RBVEFfUE9SVCAweDMw CiAjZGVmaW5lIENUTF9UUkFOU0FDVElPTl9DVEwgMHgzNAorI2RlZmluZSBDVExfU0RJT19TVEFU VVMgMHgzNgorI2RlZmluZSBDVExfU0RJT19JUlFfTUFTSyAweDM4CiAjZGVmaW5lIENUTF9SRVNF VF9TRCAweGUwCiAjZGVmaW5lIENUTF9TRElPX1JFR1MgMHgxMDAKICNkZWZpbmUgQ1RMX0NMS19B TkRfV0FJVF9DVEwgMHgxMzgK --0016361643c55509270486c1e931--