[PATCH 2/2] mmc: sdhci-pltfm: enable interrupt mode to detect card
Subsystems:
multimedia card (mmc), secure digital (sd) and sdio subsystem , secure digital host controller interface (sdhci) driver , the rest
STALE4112d
5 messages,
2 authors,
2015-05-15 · open the first message on its own page
Enable interrupt mode to detect card instead of polling mode
for P1020/P4080/P5020/P5040/T1040 by removing the quirk
SDHCI_QUIRK_BROKEN_CARD_DETECTION. This could improve data
transferring performance and avoid the call trace caused by
polling card status sometime.
Signed-off-by: Yangbo Lu <redacted>
---
drivers/mmc/host/sdhci-pltfm.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/mmc/host/sdhci-pltfm.c b/drivers/mmc/host/sdhci-pltfm.c
index c5b01d6..62f4049 100644
--- a/drivers/mmc/host/sdhci-pltfm.c
+++ b/drivers/mmc/host/sdhci-pltfm.c @@ -102,6 +102,13 @@ void sdhci_get_of_property(struct platform_device *pdev)
of_device_is_compatible ( np , "fsl,mpc8536-esdhc" ))
host -> quirks |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL ;
+ if ( of_device_is_compatible ( np , "fsl,p5040-esdhc" ) ||
+ of_device_is_compatible ( np , "fsl,p5020-esdhc" ) ||
+ of_device_is_compatible ( np , "fsl,p4080-esdhc" ) ||
+ of_device_is_compatible ( np , "fsl,p1020-esdhc" ) ||
+ of_device_is_compatible ( np , "fsl,t1040-esdhc" ))
+ host -> quirks &= ~ SDHCI_QUIRK_BROKEN_CARD_DETECTION ;
+
clk = of_get_property ( np , "clock-frequency" , & size );
if ( clk && size == sizeof ( * clk ) && * clk )
pltfm_host -> clock = be32_to_cpup ( clk ); --
2.1.0.27.g96db324
On Wed, 2015-05-13 at 16:20 +0800, Yangbo Lu wrote: quoted hunk Enable interrupt mode to detect card instead of polling mode
for P1020/P4080/P5020/P5040/T1040 by removing the quirk
SDHCI_QUIRK_BROKEN_CARD_DETECTION. This could improve data
transferring performance and avoid the call trace caused by
polling card status sometime.
Signed-off-by: Yangbo Lu <redacted>
---
drivers/mmc/host/sdhci-pltfm.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/mmc/host/sdhci-pltfm.c b/drivers/mmc/host/sdhci-pltfm.c
index c5b01d6..62f4049 100644
--- a/drivers/mmc/host/sdhci-pltfm.c
+++ b/drivers/mmc/host/sdhci-pltfm.c @@ -102,6 +102,13 @@ void sdhci_get_of_property(struct platform_device *pdev)
of_device_is_compatible ( np , "fsl,mpc8536-esdhc" ))
host -> quirks |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL ;
+ if ( of_device_is_compatible ( np , "fsl,p5040-esdhc" ) ||
+ of_device_is_compatible ( np , "fsl,p5020-esdhc" ) ||
+ of_device_is_compatible ( np , "fsl,p4080-esdhc" ) ||
+ of_device_is_compatible ( np , "fsl,p1020-esdhc" ) ||
+ of_device_is_compatible ( np , "fsl,t1040-esdhc" ))
+ host -> quirks &= ~ SDHCI_QUIRK_BROKEN_CARD_DETECTION ;
Please don't line up continuation lines with the if-body. All of the
"of_device_is_compatibles" should start in the same column.
Given that you need to modify the device tree for this, why not just use
SVR?
-Scott
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogV29vZCBTY290dC1CMDc0
MjENCj4gU2VudDogVGh1cnNkYXksIE1heSAxNCwgMjAxNSAxMjozNyBBTQ0KPiBUbzogTHUgWWFu
Z2JvLUI0NzA5Mw0KPiBDYzogbGludXhwcGMtZGV2QGxpc3RzLm96bGFicy5vcmc7IGxpbnV4LWtl
cm5lbEB2Z2VyLmtlcm5lbC5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCAyLzJdIG1tYzogc2Ro
Y2ktcGx0Zm06IGVuYWJsZSBpbnRlcnJ1cHQgbW9kZSB0bw0KPiBkZXRlY3QgY2FyZA0KPiANCj4g
T24gV2VkLCAyMDE1LTA1LTEzIGF0IDE2OjIwICswODAwLCBZYW5nYm8gTHUgd3JvdGU6DQo+ID4g
RW5hYmxlIGludGVycnVwdCBtb2RlIHRvIGRldGVjdCBjYXJkIGluc3RlYWQgb2YgcG9sbGluZyBt
b2RlIGZvcg0KPiA+IFAxMDIwL1A0MDgwL1A1MDIwL1A1MDQwL1QxMDQwIGJ5IHJlbW92aW5nIHRo
ZSBxdWlyaw0KPiA+IFNESENJX1FVSVJLX0JST0tFTl9DQVJEX0RFVEVDVElPTi4gVGhpcyBjb3Vs
ZCBpbXByb3ZlIGRhdGENCj4gPiB0cmFuc2ZlcnJpbmcgcGVyZm9ybWFuY2UgYW5kIGF2b2lkIHRo
ZSBjYWxsIHRyYWNlIGNhdXNlZCBieSBwb2xsaW5nDQo+ID4gY2FyZCBzdGF0dXMgc29tZXRpbWUu
DQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBZYW5nYm8gTHUgPHlhbmdiby5sdUBmcmVlc2NhbGUu
Y29tPg0KPiA+IC0tLQ0KPiA+ICBkcml2ZXJzL21tYy9ob3N0L3NkaGNpLXBsdGZtLmMgfCA3ICsr
KysrKysNCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKQ0KPiA+DQo+ID4gZGlm
ZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcGx0Zm0uYw0KPiA+IGIvZHJpdmVycy9t
bWMvaG9zdC9zZGhjaS1wbHRmbS5jIGluZGV4IGM1YjAxZDYuLjYyZjQwNDkgMTAwNjQ0DQo+ID4g
LS0tIGEvZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1wbHRmbS5jDQo+ID4gKysrIGIvZHJpdmVycy9t
bWMvaG9zdC9zZGhjaS1wbHRmbS5jDQo+ID4gQEAgLTEwMiw2ICsxMDIsMTMgQEAgdm9pZCBzZGhj
aV9nZXRfb2ZfcHJvcGVydHkoc3RydWN0IHBsYXRmb3JtX2RldmljZQ0KPiAqcGRldikNCj4gPiAg
CQkgICAgb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsICJmc2wsbXBjODUzNi1lc2RoYyIpKQ0K
PiA+ICAJCQlob3N0LT5xdWlya3MgfD0gU0RIQ0lfUVVJUktfQlJPS0VOX1RJTUVPVVRfVkFMOw0K
PiA+DQo+ID4gKwkJaWYgKG9mX2RldmljZV9pc19jb21wYXRpYmxlKG5wLCAiZnNsLHA1MDQwLWVz
ZGhjIikgfHwNCj4gPiArCQkJb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsICJmc2wscDUwMjAt
ZXNkaGMiKSB8fA0KPiA+ICsJCQlvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShucCwgImZzbCxwNDA4
MC1lc2RoYyIpIHx8DQo+ID4gKwkJCW9mX2RldmljZV9pc19jb21wYXRpYmxlKG5wLCAiZnNsLHAx
MDIwLWVzZGhjIikgfHwNCj4gPiArCQkJb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsICJmc2ws
dDEwNDAtZXNkaGMiKSkNCj4gPiArCQkJaG9zdC0+cXVpcmtzICY9IH5TREhDSV9RVUlSS19CUk9L
RU5fQ0FSRF9ERVRFQ1RJT047DQo+IA0KPiBQbGVhc2UgZG9uJ3QgbGluZSB1cCBjb250aW51YXRp
b24gbGluZXMgd2l0aCB0aGUgaWYtYm9keS4gIEFsbCBvZiB0aGUNCj4gIm9mX2RldmljZV9pc19j
b21wYXRpYmxlcyIgc2hvdWxkIHN0YXJ0IGluIHRoZSBzYW1lIGNvbHVtbi4NCk9rLCB0aGFua3Mu
DQo+IA0KPiBHaXZlbiB0aGF0IHlvdSBuZWVkIHRvIG1vZGlmeSB0aGUgZGV2aWNlIHRyZWUgZm9y
IHRoaXMsIHdoeSBub3QganVzdCB1c2UNCj4gU1ZSPw0KVGhlIGRyaXZlcnMvbW1jL2hvc3Qvc2Ro
Y2ktcGx0Zm0uYyBpcyBub3Qgb25seSB1c2VkIGJ5IGZyZWVzY2FsZSBwbGF0Zm9ybS4gU28gd2Ug
Y291bGRu4oCZdCB0byB1c2UgU1ZSIGhlcmUuDQpUaGFua3MuIA0K
On Thu, 2015-05-14 at 01:29 -0500, Lu Yangbo-B47093 wrote:
quoted -----Original Message-----
From: Wood Scott-B07421
Sent: Thursday, May 14, 2015 12:37 AM
To: Lu Yangbo-B47093
Cc: linuxppc-dev@lists.ozlabs.org; linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] mmc: sdhci-pltfm: enable interrupt mode to
detect card
On Wed, 2015-05-13 at 16:20 +0800, Yangbo Lu wrote: quoted Enable interrupt mode to detect card instead of polling mode for
P1020/P4080/P5020/P5040/T1040 by removing the quirk
SDHCI_QUIRK_BROKEN_CARD_DETECTION. This could improve data
transferring performance and avoid the call trace caused by polling
card status sometime.
Signed-off-by: Yangbo Lu <redacted>
---
drivers/mmc/host/sdhci-pltfm.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/mmc/host/sdhci-pltfm.c b/drivers/mmc/host/sdhci-pltfm.c index c5b01d6..62f4049 100644 --- a/drivers/mmc/host/sdhci-pltfm.c
+++ b/drivers/mmc/host/sdhci-pltfm.c @@ -102,6 +102,13 @@ void sdhci_get_of_property(struct platform_device *pdev) quoted of_device_is_compatible(np, "fsl,mpc8536-esdhc"))
host->quirks |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL;
+ if (of_device_is_compatible(np, "fsl,p5040-esdhc") ||
+ of_device_is_compatible(np, "fsl,p5020-esdhc") ||
+ of_device_is_compatible(np, "fsl,p4080-esdhc") ||
+ of_device_is_compatible(np, "fsl,p1020-esdhc") ||
+ of_device_is_compatible(np, "fsl,t1040-esdhc"))
+ host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION;
Please don't line up continuation lines with the if-body. All of the
"of_device_is_compatibles" should start in the same column. Ok, thanks. quoted
Given that you need to modify the device tree for this, why not just use
SVR? The drivers/mmc/host/sdhci-pltfm.c is not only used by freescale platform. So we couldn’t to use SVR here.
Thanks.
I'm sure there'd be ways of rearranging it to make it work, but OK.
Please send these patches to the MMC list and maintainer (and CC me). I
can ACK the first one or apply it separately.
-Scott
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogV29vZCBTY290dC1CMDc0
MjENCj4gU2VudDogRnJpZGF5LCBNYXkgMTUsIDIwMTUgNDoyMiBBTQ0KPiBUbzogTHUgWWFuZ2Jv
LUI0NzA5Mw0KPiBDYzogbGludXhwcGMtZGV2QGxpc3RzLm96bGFicy5vcmc7IGxpbnV4LWtlcm5l
bEB2Z2VyLmtlcm5lbC5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCAyLzJdIG1tYzogc2RoY2kt
cGx0Zm06IGVuYWJsZSBpbnRlcnJ1cHQgbW9kZSB0bw0KPiBkZXRlY3QgY2FyZA0KPiANCj4gT24g
VGh1LCAyMDE1LTA1LTE0IGF0IDAxOjI5IC0wNTAwLCBMdSBZYW5nYm8tQjQ3MDkzIHdyb3RlOg0K
PiA+DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBX
b29kIFNjb3R0LUIwNzQyMQ0KPiA+ID4gU2VudDogVGh1cnNkYXksIE1heSAxNCwgMjAxNSAxMjoz
NyBBTQ0KPiA+ID4gVG86IEx1IFlhbmdiby1CNDcwOTMNCj4gPiA+IENjOiBsaW51eHBwYy1kZXZA
bGlzdHMub3psYWJzLm9yZzsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZw0KPiA+ID4gU3Vi
amVjdDogUmU6IFtQQVRDSCAyLzJdIG1tYzogc2RoY2ktcGx0Zm06IGVuYWJsZSBpbnRlcnJ1cHQg
bW9kZSB0bw0KPiA+ID4gZGV0ZWN0IGNhcmQNCj4gPiA+DQo+ID4gPiBPbiBXZWQsIDIwMTUtMDUt
MTMgYXQgMTY6MjAgKzA4MDAsIFlhbmdibyBMdSB3cm90ZToNCj4gPiA+ID4gRW5hYmxlIGludGVy
cnVwdCBtb2RlIHRvIGRldGVjdCBjYXJkIGluc3RlYWQgb2YgcG9sbGluZyBtb2RlIGZvcg0KPiA+
ID4gPiBQMTAyMC9QNDA4MC9QNTAyMC9QNTA0MC9UMTA0MCBieSByZW1vdmluZyB0aGUgcXVpcmsN
Cj4gPiA+ID4gU0RIQ0lfUVVJUktfQlJPS0VOX0NBUkRfREVURUNUSU9OLiBUaGlzIGNvdWxkIGlt
cHJvdmUgZGF0YQ0KPiA+ID4gPiB0cmFuc2ZlcnJpbmcgcGVyZm9ybWFuY2UgYW5kIGF2b2lkIHRo
ZSBjYWxsIHRyYWNlIGNhdXNlZCBieQ0KPiA+ID4gPiBwb2xsaW5nIGNhcmQgc3RhdHVzIHNvbWV0
aW1lLg0KPiA+ID4gPg0KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBZYW5nYm8gTHUgPHlhbmdiby5s
dUBmcmVlc2NhbGUuY29tPg0KPiA+ID4gPiAtLS0NCj4gPiA+ID4gIGRyaXZlcnMvbW1jL2hvc3Qv
c2RoY2ktcGx0Zm0uYyB8IDcgKysrKysrKw0KPiA+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDcgaW5z
ZXJ0aW9ucygrKQ0KPiA+ID4gPg0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvaG9z
dC9zZGhjaS1wbHRmbS5jDQo+ID4gPiA+IGIvZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1wbHRmbS5j
IGluZGV4IGM1YjAxZDYuLjYyZjQwNDkgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvbW1j
L2hvc3Qvc2RoY2ktcGx0Zm0uYw0KPiA+ID4gPiArKysgYi9kcml2ZXJzL21tYy9ob3N0L3NkaGNp
LXBsdGZtLmMNCj4gPiA+ID4gQEAgLTEwMiw2ICsxMDIsMTMgQEAgdm9pZCBzZGhjaV9nZXRfb2Zf
cHJvcGVydHkoc3RydWN0DQo+ID4gPiA+IHBsYXRmb3JtX2RldmljZQ0KPiA+ID4gKnBkZXYpDQo+
ID4gPiA+ICAJCSAgICBvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShucCwgImZzbCxtcGM4NTM2LWVz
ZGhjIikpDQo+ID4gPiA+ICAJCQlob3N0LT5xdWlya3MgfD0gU0RIQ0lfUVVJUktfQlJPS0VOX1RJ
TUVPVVRfVkFMOw0KPiA+ID4gPg0KPiA+ID4gPiArCQlpZiAob2ZfZGV2aWNlX2lzX2NvbXBhdGli
bGUobnAsICJmc2wscDUwNDAtZXNkaGMiKSB8fA0KPiA+ID4gPiArCQkJb2ZfZGV2aWNlX2lzX2Nv
bXBhdGlibGUobnAsICJmc2wscDUwMjAtZXNkaGMiKSB8fA0KPiA+ID4gPiArCQkJb2ZfZGV2aWNl
X2lzX2NvbXBhdGlibGUobnAsICJmc2wscDQwODAtZXNkaGMiKSB8fA0KPiA+ID4gPiArCQkJb2Zf
ZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsICJmc2wscDEwMjAtZXNkaGMiKSB8fA0KPiA+ID4gPiAr
CQkJb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsICJmc2wsdDEwNDAtZXNkaGMiKSkNCj4gPiA+
ID4gKwkJCWhvc3QtPnF1aXJrcyAmPQ0KPiB+U0RIQ0lfUVVJUktfQlJPS0VOX0NBUkRfREVURUNU
SU9OOw0KPiA+ID4NCj4gPiA+IFBsZWFzZSBkb24ndCBsaW5lIHVwIGNvbnRpbnVhdGlvbiBsaW5l
cyB3aXRoIHRoZSBpZi1ib2R5LiAgQWxsIG9mDQo+ID4gPiB0aGUgIm9mX2RldmljZV9pc19jb21w
YXRpYmxlcyIgc2hvdWxkIHN0YXJ0IGluIHRoZSBzYW1lIGNvbHVtbi4NCj4gPiBPaywgdGhhbmtz
Lg0KPiA+ID4NCj4gPiA+IEdpdmVuIHRoYXQgeW91IG5lZWQgdG8gbW9kaWZ5IHRoZSBkZXZpY2Ug
dHJlZSBmb3IgdGhpcywgd2h5IG5vdCBqdXN0DQo+ID4gPiB1c2UgU1ZSPw0KPiA+IFRoZSBkcml2
ZXJzL21tYy9ob3N0L3NkaGNpLXBsdGZtLmMgaXMgbm90IG9ubHkgdXNlZCBieSBmcmVlc2NhbGUN
Cj4gcGxhdGZvcm0uIFNvIHdlIGNvdWxkbuKAmXQgdG8gdXNlIFNWUiBoZXJlLg0KPiA+IFRoYW5r
cy4NCj4gDQo+IEknbSBzdXJlIHRoZXJlJ2QgYmUgd2F5cyBvZiByZWFycmFuZ2luZyBpdCB0byBt
YWtlIGl0IHdvcmssIGJ1dCBPSy4NCj4gDQo+IFBsZWFzZSBzZW5kIHRoZXNlIHBhdGNoZXMgdG8g
dGhlIE1NQyBsaXN0IGFuZCBtYWludGFpbmVyIChhbmQgQ0MgbWUpLiAgSQ0KPiBjYW4gQUNLIHRo
ZSBmaXJzdCBvbmUgb3IgYXBwbHkgaXQgc2VwYXJhdGVseS4NCj4gDQpUaGFuayB5b3UgdmVyeSBt
dWNoLg0KDQpCZXN0IHJlZ2FyZHMsDQpZYW5nYm8gTHUNCg0K