Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1207380 > unrolled thread

[PATCH] mmc: block: disable the reliable write If the card does not support CMD23

Started bysdliyong@gmail.com
First post2015-08-14 09:40 +0200
Last post2015-08-17 08:50 +0200
Articles 4 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] mmc: block: disable the reliable write If the card does not support CMD23 sdliyong@gmail.com - 2015-08-14 09:40 +0200
    Re: [PATCH] mmc: block: disable the reliable write If the card does  not support CMD23 Shawn Lin <shawn.lin@rock-chips.com> - 2015-08-14 10:20 +0200
      RE: [PATCH] mmc: block: disable the reliable write If the card does  not support CMD23 LIYONG <sdliyong@gmail.com> - 2015-08-15 14:20 +0200
        Re: [PATCH] mmc: block: disable the reliable write If the card does  not support CMD23 Shawn Lin <shawn.lin@rock-chips.com> - 2015-08-17 08:50 +0200

#1207380 — [PATCH] mmc: block: disable the reliable write If the card does not support CMD23

Fromsdliyong@gmail.com
Date2015-08-14 09:40 +0200
Subject[PATCH] mmc: block: disable the reliable write If the card does not support CMD23
Message-ID<pXhKN-3Sy-13@gated-at.bofh.it>
From: Yong Li <sdliyong@gmail.com>

Signed-off-by: Yong Li <sdliyong@gmail.com>
---
 drivers/mmc/card/block.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
index 452782b..d9e3c45 100644
--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
@@ -1366,7 +1366,8 @@ static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq,
 	bool do_rel_wr = ((req->cmd_flags & REQ_FUA) ||
 			  (req->cmd_flags & REQ_META)) &&
 		(rq_data_dir(req) == WRITE) &&
-		(md->flags & MMC_BLK_REL_WR);
+		(md->flags & MMC_BLK_REL_WR) &&
+		!(card->quirks & MMC_QUIRK_BLK_NO_CMD23);
 
 	memset(brq, 0, sizeof(struct mmc_blk_request));
 	brq->mrq.cmd = &brq->cmd;
-- 
2.1.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1207397 — Re: [PATCH] mmc: block: disable the reliable write If the card does not support CMD23

FromShawn Lin <shawn.lin@rock-chips.com>
Date2015-08-14 10:20 +0200
SubjectRe: [PATCH] mmc: block: disable the reliable write If the card does not support CMD23
Message-ID<pXinw-4Rh-13@gated-at.bofh.it>
In reply to#1207380
在 2015/8/14 15:30, sdliyong@gmail.com 写道:
> From: Yong Li <sdliyong@gmail.com>
>
> Signed-off-by: Yong Li <sdliyong@gmail.com>
> ---
>   drivers/mmc/card/block.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
> index 452782b..d9e3c45 100644
> --- a/drivers/mmc/card/block.c
> +++ b/drivers/mmc/card/block.c
> @@ -1366,7 +1366,8 @@ static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq,
>   	bool do_rel_wr = ((req->cmd_flags & REQ_FUA) ||
>   			  (req->cmd_flags & REQ_META)) &&
>   		(rq_data_dir(req) == WRITE) &&
> -		(md->flags & MMC_BLK_REL_WR);
> +		(md->flags & MMC_BLK_REL_WR) &&
> +		!(card->quirks & MMC_QUIRK_BLK_NO_CMD23);

Hi Yong,

pls check that code below.

MMC_BLK_REL_WR will not be enabled if we know this card CANNOT support 
CMD23 form SCR. AND, "card->quirks & MMC_QUIRK_BLK_NO_CMD23" would be 
checked here as well. So I think your code is unnecessary.

if ((md->flags & MMC_BLK_CMD23) && mmc_op_multi(brq->cmd.opcode) &&
	    (do_rel_wr || !(card->quirks & MMC_QUIRK_BLK_NO_CMD23) ||
	     do_data_tag)) {
		brq->sbc.opcode = MMC_SET_BLOCK_COUNT;
		brq->sbc.arg = brq->data.blocks |
			(do_rel_wr ? (1 << 31) : 0) |
			(do_data_tag ? (1 << 29) : 0);
		brq->sbc.flags = MMC_RSP_R1 | MMC_CMD_AC;
		brq->mrq.sbc = &brq->sbc;
	}

Thanks.
Shawn

>
>   	memset(brq, 0, sizeof(struct mmc_blk_request));
>   	brq->mrq.cmd = &brq->cmd;
>


-- 
Shawn Lin

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1208074 — RE: [PATCH] mmc: block: disable the reliable write If the card does not support CMD23

FromLIYONG <sdliyong@gmail.com>
Date2015-08-15 14:20 +0200
SubjectRE: [PATCH] mmc: block: disable the reliable write If the card does not support CMD23
Message-ID<pXIBk-12r-25@gated-at.bofh.it>
In reply to#1207397
VGhhbmtzIFNoYXduLiBQbGVhc2UgaGVscCB0byBjaGVjayB0aGUgYmVsb3cgaW4gdGhlwqBtbWNf
YmxrX3J3X3JxX3ByZXA6CglpZiAoZG9fcmVsX3dyKQoJCW1tY19hcHBseV9yZWxfcncoYnJxLCBj
YXJkLCByZXEpOwoKSSB0aGluayB3ZSBuZWVkIHRvIHNldCB0aGUgZG9fcmVsX3dyIHRvIGZhbHNl
KCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgZnVuY3Rpb24pIGlmIHRoZSBjYXJkIGRvZXMgbm90
IHN1cHBvcnQgdGhlIENNRDIzLiBUaGUgYWJvdmUgY29kZSBpcyBleGVjdXRlZCBiZWZvcmUgdGhl
ICJpZiAoKG1kLT5mbGFncyAmIE1NQ19CTEtfQ01EMjMpIiBjb2RlLgoKVGhhbmtzLApZb25nIExp
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBTdWJqZWN0OiBSZTog
W1BBVENIXSBtbWM6IGJsb2NrOiBkaXNhYmxlIHRoZSByZWxpYWJsZSB3cml0ZSBJZiB0aGUgY2Fy
ZCBkb2VzIG5vdCBzdXBwb3J0IENNRDIzCj4gVG86IHNkbGl5b25nQGdtYWlsLmNvbTsgY2hyaXNA
cHJpbnRmLm5ldDsgdWxmLmhhbnNzb25AbGluYXJvLm9yZzsgbGludXgtbW1jQHZnZXIua2VybmVs
Lm9yZzsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwo+IENDOiBzaGF3bi5saW5Acm9jay1j
aGlwcy5jb20KPiBGcm9tOiBzaGF3bi5saW5Acm9jay1jaGlwcy5jb20KPiBEYXRlOiBGcmksIDE0
IEF1ZyAyMDE1IDE2OjEzOjAyICswODAwCj4KPiDlnKggMjAxNS84LzE0IDE1OjMwLCBzZGxpeW9u
Z0BnbWFpbC5jb20g5YaZ6YGTOgo+PiBGcm9tOiBZb25nIExpIDxzZGxpeW9uZ0BnbWFpbC5jb20+
Cj4+Cj4+IFNpZ25lZC1vZmYtYnk6IFlvbmcgTGkgPHNkbGl5b25nQGdtYWlsLmNvbT4KPj4gLS0t
Cj4+IGRyaXZlcnMvbW1jL2NhcmQvYmxvY2suYyB8IDMgKystCj4+IDEgZmlsZSBjaGFuZ2VkLCAy
IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv
bW1jL2NhcmQvYmxvY2suYyBiL2RyaXZlcnMvbW1jL2NhcmQvYmxvY2suYwo+PiBpbmRleCA0NTI3
ODJiLi5kOWUzYzQ1IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL21tYy9jYXJkL2Jsb2NrLmMKPj4g
KysrIGIvZHJpdmVycy9tbWMvY2FyZC9ibG9jay5jCj4+IEBAIC0xMzY2LDcgKzEzNjYsOCBAQCBz
dGF0aWMgdm9pZCBtbWNfYmxrX3J3X3JxX3ByZXAoc3RydWN0IG1tY19xdWV1ZV9yZXEgKm1xcnEs
Cj4+IGJvb2wgZG9fcmVsX3dyID0gKChyZXEtPmNtZF9mbGFncyAmIFJFUV9GVUEpIHx8Cj4+IChy
ZXEtPmNtZF9mbGFncyAmIFJFUV9NRVRBKSkgJiYKPj4gKHJxX2RhdGFfZGlyKHJlcSkgPT0gV1JJ
VEUpICYmCj4+IC0gKG1kLT5mbGFncyAmIE1NQ19CTEtfUkVMX1dSKTsKPj4gKyAobWQtPmZsYWdz
ICYgTU1DX0JMS19SRUxfV1IpICYmCj4+ICsgIShjYXJkLT5xdWlya3MgJiBNTUNfUVVJUktfQkxL
X05PX0NNRDIzKTsKPgo+IEhpIFlvbmcsCj4KPiBwbHMgY2hlY2sgdGhhdCBjb2RlIGJlbG93Lgo+
Cj4gTU1DX0JMS19SRUxfV1Igd2lsbCBub3QgYmUgZW5hYmxlZCBpZiB3ZSBrbm93IHRoaXMgY2Fy
ZCBDQU5OT1Qgc3VwcG9ydAo+IENNRDIzIGZvcm0gU0NSLiBBTkTvvIwgImNhcmQtPnF1aXJrcyAm
IE1NQ19RVUlSS19CTEtfTk9fQ01EMjMiIHdvdWxkIGJlCj4gY2hlY2tlZCBoZXJlIGFzIHdlbGwu
IFNvIEkgdGhpbmsgeW91ciBjb2RlIGlzIHVubmVjZXNzYXJ5Lgo+Cj4gaWYgKChtZC0+ZmxhZ3Mg
JiBNTUNfQkxLX0NNRDIzKSAmJiBtbWNfb3BfbXVsdGkoYnJxLT5jbWQub3Bjb2RlKSAmJgo+IChk
b19yZWxfd3IgfHwgIShjYXJkLT5xdWlya3MgJiBNTUNfUVVJUktfQkxLX05PX0NNRDIzKSB8fAo+
IGRvX2RhdGFfdGFnKSkgewo+IGJycS0+c2JjLm9wY29kZSA9IE1NQ19TRVRfQkxPQ0tfQ09VTlQ7
Cj4gYnJxLT5zYmMuYXJnID0gYnJxLT5kYXRhLmJsb2NrcyB8Cj4gKGRvX3JlbF93ciA/ICgxIDw8
IDMxKSA6IDApIHwKPiAoZG9fZGF0YV90YWcgPyAoMSA8PCAyOSkgOiAwKTsKPiBicnEtPnNiYy5m
bGFncyA9IE1NQ19SU1BfUjEgfCBNTUNfQ01EX0FDOwo+IGJycS0+bXJxLnNiYyA9ICZicnEtPnNi
YzsKPiB9Cj4KPiBUaGFua3MuCj4gU2hhd24KPgo+Pgo+PiBtZW1zZXQoYnJxLCAwLCBzaXplb2Yo
c3RydWN0IG1tY19ibGtfcmVxdWVzdCkpOwo+PiBicnEtPm1ycS5jbWQgPSAmYnJxLT5jbWQ7Cj4+
Cj4KPgo+IC0tCj4gU2hhd24gTGluCj4KIAkJIAkgICAJCSAg
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1208402 — Re: [PATCH] mmc: block: disable the reliable write If the card does not support CMD23

FromShawn Lin <shawn.lin@rock-chips.com>
Date2015-08-17 08:50 +0200
SubjectRe: [PATCH] mmc: block: disable the reliable write If the card does not support CMD23
Message-ID<pYmp4-7Ww-11@gated-at.bofh.it>
In reply to#1208074
On 2015/8/15 20:14, LIYONG wrote:
> Thanks Shawn. Please help to check the below in the mmc_blk_rw_rq_prep:
> 	if (do_rel_wr)
> 		mmc_apply_rel_rw(brq, card, req);
>
> I think we need to set the do_rel_wr to false( at the beginning of this function) if the card does not support the CMD23. The above code is executed before the "if ((md->flags & MMC_BLK_CMD23)" code.
>

ok, it makes sense.:)

> Thanks,
> Yong Li
> ----------------------------------------
>> Subject: Re: [PATCH] mmc: block: disable the reliable write If the card does not support CMD23
>> To: sdliyong@gmail.com; chris@printf.net; ulf.hansson@linaro.org; linux-mmc@vger.kernel.org; linux-kernel@vger.kernel.org
>> CC: shawn.lin@rock-chips.com
>> From: shawn.lin@rock-chips.com
>> Date: Fri, 14 Aug 2015 16:13:02 +0800
>>
>> 在 2015/8/14 15:30, sdliyong@gmail.com 写道:
>>> From: Yong Li <sdliyong@gmail.com>
>>>
>>> Signed-off-by: Yong Li <sdliyong@gmail.com>
>>> ---
>>> drivers/mmc/card/block.c | 3 ++-
>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
>>> index 452782b..d9e3c45 100644
>>> --- a/drivers/mmc/card/block.c
>>> +++ b/drivers/mmc/card/block.c
>>> @@ -1366,7 +1366,8 @@ static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq,
>>> bool do_rel_wr = ((req->cmd_flags & REQ_FUA) ||
>>> (req->cmd_flags & REQ_META)) &&
>>> (rq_data_dir(req) == WRITE) &&
>>> - (md->flags & MMC_BLK_REL_WR);
>>> + (md->flags & MMC_BLK_REL_WR) &&
>>> + !(card->quirks & MMC_QUIRK_BLK_NO_CMD23);
>>
>> Hi Yong,
>>
>> pls check that code below.
>>
>> MMC_BLK_REL_WR will not be enabled if we know this card CANNOT support
>> CMD23 form SCR. AND, "card->quirks & MMC_QUIRK_BLK_NO_CMD23" would be
>> checked here as well. So I think your code is unnecessary.
>>
>> if ((md->flags & MMC_BLK_CMD23) && mmc_op_multi(brq->cmd.opcode) &&
>> (do_rel_wr || !(card->quirks & MMC_QUIRK_BLK_NO_CMD23) ||
>> do_data_tag)) {
>> brq->sbc.opcode = MMC_SET_BLOCK_COUNT;
>> brq->sbc.arg = brq->data.blocks |
>> (do_rel_wr ? (1 << 31) : 0) |
>> (do_data_tag ? (1 << 29) : 0);
>> brq->sbc.flags = MMC_RSP_R1 | MMC_CMD_AC;
>> brq->mrq.sbc = &brq->sbc;
>> }
>>
>> Thanks.
>> Shawn
>>
>>>
>>> memset(brq, 0, sizeof(struct mmc_blk_request));
>>> brq->mrq.cmd = &brq->cmd;
>>>
>>
>>
>> --
>> Shawn Lin
>>
>   		 	   		  N�����r��y���b�X��ǧv�^�)޺{.n�+����{��g"��^n�r���z���h����&���G���h�(�階�ݢj"���m�����z�ޖ���f���h���~�mml==
>


-- 
Shawn Lin

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web