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


Groups > linux.kernel > #1233899 > unrolled thread

[PATCH 1/9] drivers:nand:mtd: add support for UBI bakvol in mtd layer

Started byBean Huo 霍斌斌 (beanhuo) <beanhuo@micron.com>
First post2015-09-28 09:10 +0200
Last post2015-09-30 09:20 +0200
Articles 4 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 1/9] drivers:nand:mtd: add support for UBI bakvol in mtd  layer Bean Huo 霍斌斌 (beanhuo)   <beanhuo@micron.com> - 2015-09-28 09:10 +0200
    Re: [PATCH 1/9] drivers:nand:mtd: add support for UBI bakvol in mtd  layer Boris Brezillon <boris.brezillon@free-electrons.com> - 2015-09-28 11:50 +0200
      RE: [PATCH 1/9] drivers:nand:mtd: add support for UBI bakvol in mtd  layer Bean Huo 霍斌斌 (beanhuo)   <beanhuo@micron.com> - 2015-09-30 08:10 +0200
        Re: [PATCH 1/9] drivers:nand:mtd: add support for UBI bakvol in mtd  layer Boris Brezillon <boris.brezillon@free-electrons.com> - 2015-09-30 09:20 +0200

#1233899 — [PATCH 1/9] drivers:nand:mtd: add support for UBI bakvol in mtd layer

FromBean Huo 霍斌斌 (beanhuo) <beanhuo@micron.com>
Date2015-09-28 09:10 +0200
Subject[PATCH 1/9] drivers:nand:mtd: add support for UBI bakvol in mtd layer
Message-ID<qdAJs-6Z2-19@gated-at.bofh.it>
QWRkIHN1cHBvcnQgZm9yIFVCSSBiYWt2b2wgaW4gbXRkIGxheWVyLg0KDQpUaGlzIHNvbHV0aW9u
IGJhc2VkIG9uIE1MQyBOQU5EIGR1YWwgcGxhbmUgcHJvZ3JhbS4NCnNvIGFkZCBob29rIGluIG10
ZCBsYXllci4NCg0KU2lnbmVkLW9mZi1ieTogQmVhbiBIdW8gPGJlYW5odW9AbWljcm9uLmNvbT4N
Ci0tLQ0KIGluY2x1ZGUvbGludXgvbXRkL210ZC5oICB8IDE5ICsrKysrKysrKysrKysrKysrKysN
CiBpbmNsdWRlL2xpbnV4L210ZC9uYW5kLmggfCAgNCArKysrDQogaW5jbHVkZS9saW51eC9tdGQv
dWJpLmggIHwgIDkgKysrKysrKysrDQogMyBmaWxlcyBjaGFuZ2VkLCAzMiBpbnNlcnRpb25zKCsp
DQoNCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L210ZC9tdGQuaCBiL2luY2x1ZGUvbGludXgv
bXRkL210ZC5oDQppbmRleCBmMTdmYTc1Li5jZmNiM2E2OCAxMDA2NDQNCi0tLSBhL2luY2x1ZGUv
bGludXgvbXRkL210ZC5oDQorKysgYi9pbmNsdWRlL2xpbnV4L210ZC9tdGQuaA0KQEAgLTIwNCw2
ICsyMDQsOSBAQCBzdHJ1Y3QgbXRkX2luZm8gew0KIAkJCSAgc3RydWN0IG10ZF9vb2Jfb3BzICpv
cHMpOw0KIAlpbnQgKCpfd3JpdGVfb29iKSAoc3RydWN0IG10ZF9pbmZvICptdGQsIGxvZmZfdCB0
bywNCiAJCQkgICBzdHJ1Y3QgbXRkX29vYl9vcHMgKm9wcyk7DQorCWludCAoKl9kdWFsX3BsYW5l
X3dyaXRlX29vYikgKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBsb2ZmX3QgdG9fcGxhbmUwLA0KKwkJ
CXN0cnVjdCBtdGRfb29iX29wcyAqb3BzX3BsYW5lMCwgbG9mZl90IHRvX3BsYW5lMSwNCisJCQkJ
CXN0cnVjdCBtdGRfb29iX29wcyAqb3BzX3BsYW5lMSk7DQogCWludCAoKl9nZXRfZmFjdF9wcm90
X2luZm8pIChzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgc2l6ZV90IGxlbiwNCiAJCQkJICAgIHNpemVf
dCAqcmV0bGVuLCBzdHJ1Y3Qgb3RwX2luZm8gKmJ1Zik7DQogCWludCAoKl9yZWFkX2ZhY3RfcHJv
dF9yZWcpIChzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IGZyb20sDQpAQCAtMjgwLDYgKzI4
MywyMiBAQCBzdGF0aWMgaW5saW5lIGludCBtdGRfd3JpdGVfb29iKHN0cnVjdCBtdGRfaW5mbyAq
bXRkLCBsb2ZmX3QgdG8sDQogCXJldHVybiBtdGQtPl93cml0ZV9vb2IobXRkLCB0bywgb3BzKTsN
CiB9DQogDQorc3RhdGljIGlubGluZSBpbnQgbXRkX3dyaXRlX2R1YWxfcGxhbmVfb29iKHN0cnVj
dCBtdGRfaW5mbyAqbXRkLA0KKwkJbG9mZl90IHRvX3BsYW5lMCwgc3RydWN0IG10ZF9vb2Jfb3Bz
ICpvcHMwLCBsb2ZmX3QgdG9fcGxhbmUxLA0KKwkJCQkJCXN0cnVjdCBtdGRfb29iX29wcyAqb3Bz
MSkNCit7DQorCW9wczAtPnJldGxlbiA9IG9wczAtPm9vYnJldGxlbiA9IDA7DQorCW9wczEtPnJl
dGxlbiA9IG9wczEtPm9vYnJldGxlbiA9IDA7DQorDQorCWlmICghbXRkLT5fZHVhbF9wbGFuZV93
cml0ZV9vb2IpDQorCQlyZXR1cm4gLUVPUE5PVFNVUFA7DQorCWlmICghKG10ZC0+ZmxhZ3MgJiBN
VERfV1JJVEVBQkxFKSkNCisJCXJldHVybiAtRVJPRlM7DQorDQorCXJldHVybiBtdGQtPl9kdWFs
X3BsYW5lX3dyaXRlX29vYihtdGQsIHRvX3BsYW5lMCwgb3BzMCwNCisJCQkJCQl0b19wbGFuZTEs
IG9wczEpOw0KK30NCisNCiBpbnQgbXRkX2dldF9mYWN0X3Byb3RfaW5mbyhzdHJ1Y3QgbXRkX2lu
Zm8gKm10ZCwgc2l6ZV90IGxlbiwgc2l6ZV90ICpyZXRsZW4sDQogCQkJICAgc3RydWN0IG90cF9p
bmZvICpidWYpOw0KIGludCBtdGRfcmVhZF9mYWN0X3Byb3RfcmVnKHN0cnVjdCBtdGRfaW5mbyAq
bXRkLCBsb2ZmX3QgZnJvbSwgc2l6ZV90IGxlbiwNCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4
L210ZC9uYW5kLmggYi9pbmNsdWRlL2xpbnV4L210ZC9uYW5kLmgNCmluZGV4IDI3MmY0MjkuLjRj
NWJlMDEgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L210ZC9uYW5kLmgNCisrKyBiL2luY2x1
ZGUvbGludXgvbXRkL25hbmQuaA0KQEAgLTc3LDYgKzc3LDcgQEAgZXh0ZXJuIGludCBuYW5kX3Vu
bG9jayhzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IG9mcywgdWludDY0X3QgbGVuKTsNCiAj
ZGVmaW5lIE5BTkRfQ01EX1JFQUQxCQkxDQogI2RlZmluZSBOQU5EX0NNRF9STkRPVVQJCTUNCiAj
ZGVmaW5lIE5BTkRfQ01EX1BBR0VQUk9HCTB4MTANCisjZGVmaW5lIE5BTkRfQ01EX01VTFRJX1BB
R0VQUk9HCTB4MTENCiAjZGVmaW5lIE5BTkRfQ01EX1JFQURPT0IJMHg1MA0KICNkZWZpbmUgTkFO
RF9DTURfRVJBU0UxCQkweDYwDQogI2RlZmluZSBOQU5EX0NNRF9TVEFUVVMJCTB4NzANCkBAIC02
NzEsNiArNjcyLDkgQEAgc3RydWN0IG5hbmRfY2hpcCB7DQogCWludCAoKndyaXRlX3BhZ2UpKHN0
cnVjdCBtdGRfaW5mbyAqbXRkLCBzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLA0KIAkJCXVpbnQzMl90
IG9mZnNldCwgaW50IGRhdGFfbGVuLCBjb25zdCB1aW50OF90ICpidWYsDQogCQkJaW50IG9vYl9y
ZXF1aXJlZCwgaW50IHBhZ2UsIGludCBjYWNoZWQsIGludCByYXcpOw0KKwlpbnQgKCp3cml0ZV9w
bGFuZV9wYWdlKShzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwN
CisJCQl1aW50MzJfdCBvZmZzZXQsIGludCBkYXRhX2xlbiwgY29uc3QgdWludDhfdCAqYnVmLA0K
KwkJCWludCBvb2JfcmVxdWlyZWQsIGludCBwYWdlLCBpbnQgcGxhbmUsIGludCByYXcpOw0KIAlp
bnQgKCpvbmZpX3NldF9mZWF0dXJlcykoc3RydWN0IG10ZF9pbmZvICptdGQsIHN0cnVjdCBuYW5k
X2NoaXAgKmNoaXAsDQogCQkJaW50IGZlYXR1cmVfYWRkciwgdWludDhfdCAqc3ViZmVhdHVyZV9w
YXJhKTsNCiAJaW50ICgqb25maV9nZXRfZmVhdHVyZXMpKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBz
dHJ1Y3QgbmFuZF9jaGlwICpjaGlwLA0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbXRkL3Vi
aS5oIGIvaW5jbHVkZS9saW51eC9tdGQvdWJpLmgNCmluZGV4IDFlMjcxY2IuLjFkYTM0MTggMTAw
NjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L210ZC91YmkuaA0KKysrIGIvaW5jbHVkZS9saW51eC9t
dGQvdWJpLmgNCkBAIC0zNSw2ICszNSwxNSBAQA0KICAqLw0KICNkZWZpbmUgVUJJX01BWF9TR19D
T1VOVCA2NA0KIA0KK2VudW0gew0KKwlVQklfQkFLVk9MX1VOT05FLA0KKwlVQklfQkFLVk9MX0lO
SVRfSU5GTywNCisJVUJJX0JBS1ZPTF9JTklUX0lORk9fRE9ORSwNCisJVUJJX0JBS1ZPTF9JTklU
X1ZPTFVNRSwNCisJVUJJX0JBS1ZPTF9JTklUX1ZPTFVNRV9ET05FLA0KKwlVQklfQkFLVk9MX1JV
Tg0KK307DQorDQogLyoNCiAgKiBlbnVtIHViaV9vcGVuX21vZGUgLSBVQkkgdm9sdW1lIG9wZW4g
bW9kZSBjb25zdGFudHMuDQogICoNCi0tIA0KMS45LjENCg==
--
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]


#1233982

FromBoris Brezillon <boris.brezillon@free-electrons.com>
Date2015-09-28 11:50 +0200
Message-ID<qdDei-1XB-13@gated-at.bofh.it>
In reply to#1233899
Hi Bean,

On Mon, 28 Sep 2015 07:02:37 +0000
Bean Huo 霍斌斌 (beanhuo) <beanhuo@micron.com> wrote:

> Add support for UBI bakvol in mtd layer.
> 
> This solution based on MLC NAND dual plane program.
> so add hook in mtd layer.

I know you don't have any other choices to expose "two-plane page
program" to the UBI layer, but I keep thinking that exposing that to
the MTD users is not a good idea (I might be wrong ;-)).

> 
> Signed-off-by: Bean Huo <beanhuo@micron.com>
> ---
>  include/linux/mtd/mtd.h  | 19 +++++++++++++++++++
>  include/linux/mtd/nand.h |  4 ++++
>  include/linux/mtd/ubi.h  |  9 +++++++++
>  3 files changed, 32 insertions(+)
> 
> diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
> index f17fa75..cfcb3a68 100644
> --- a/include/linux/mtd/mtd.h
> +++ b/include/linux/mtd/mtd.h
> @@ -204,6 +204,9 @@ struct mtd_info {
>  			  struct mtd_oob_ops *ops);
>  	int (*_write_oob) (struct mtd_info *mtd, loff_t to,
>  			   struct mtd_oob_ops *ops);
> +	int (*_dual_plane_write_oob) (struct mtd_info *mtd, loff_t to_plane0,
> +			struct mtd_oob_ops *ops_plane0, loff_t to_plane1,
> +					struct mtd_oob_ops *ops_plane1);


IMHO, if we were about to allow parallel write operations this should
be exposed as a more generic API, something like:

struct mtd_write_op {
	loff_t to;
	struct mtd_oob_ops ops;
};

struct mtd_multi_write_ops {
	struct list_head writes;
};

int (*_multi_write)(struct mtd_info *mtd,
		    struct mtd_multi_write_ops *ops);

Then the NAND layer could optimize that if the NAND chip supports
"two-plane page program", and if 2 pages in the write list are
fulfilling the requirements.

>  	int (*_get_fact_prot_info) (struct mtd_info *mtd, size_t len,
>  				    size_t *retlen, struct otp_info *buf);
>  	int (*_read_fact_prot_reg) (struct mtd_info *mtd, loff_t from,
> @@ -280,6 +283,22 @@ static inline int mtd_write_oob(struct mtd_info *mtd, loff_t to,
>  	return mtd->_write_oob(mtd, to, ops);
>  }
>  
> +static inline int mtd_write_dual_plane_oob(struct mtd_info *mtd,
> +		loff_t to_plane0, struct mtd_oob_ops *ops0, loff_t to_plane1,
> +						struct mtd_oob_ops *ops1)
> +{
> +	ops0->retlen = ops0->oobretlen = 0;
> +	ops1->retlen = ops1->oobretlen = 0;
> +
> +	if (!mtd->_dual_plane_write_oob)
> +		return -EOPNOTSUPP;
> +	if (!(mtd->flags & MTD_WRITEABLE))
> +		return -EROFS;
> +
> +	return mtd->_dual_plane_write_oob(mtd, to_plane0, ops0,
> +						to_plane1, ops1);
> +}
> +
>  int mtd_get_fact_prot_info(struct mtd_info *mtd, size_t len, size_t *retlen,
>  			   struct otp_info *buf);
>  int mtd_read_fact_prot_reg(struct mtd_info *mtd, loff_t from, size_t len,
> diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h
> index 272f429..4c5be01 100644
> --- a/include/linux/mtd/nand.h
> +++ b/include/linux/mtd/nand.h
> @@ -77,6 +77,7 @@ extern int nand_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len);
>  #define NAND_CMD_READ1		1
>  #define NAND_CMD_RNDOUT		5
>  #define NAND_CMD_PAGEPROG	0x10
> +#define NAND_CMD_MULTI_PAGEPROG	0x11
>  #define NAND_CMD_READOOB	0x50
>  #define NAND_CMD_ERASE1		0x60
>  #define NAND_CMD_STATUS		0x70
> @@ -671,6 +672,9 @@ struct nand_chip {
>  	int (*write_page)(struct mtd_info *mtd, struct nand_chip *chip,
>  			uint32_t offset, int data_len, const uint8_t *buf,
>  			int oob_required, int page, int cached, int raw);
> +	int (*write_plane_page)(struct mtd_info *mtd, struct nand_chip *chip,
> +			uint32_t offset, int data_len, const uint8_t *buf,
> +			int oob_required, int page, int plane, int raw);
>  	int (*onfi_set_features)(struct mtd_info *mtd, struct nand_chip *chip,
>  			int feature_addr, uint8_t *subfeature_para);
>  	int (*onfi_get_features)(struct mtd_info *mtd, struct nand_chip *chip,
> diff --git a/include/linux/mtd/ubi.h b/include/linux/mtd/ubi.h
> index 1e271cb..1da3418 100644
> --- a/include/linux/mtd/ubi.h
> +++ b/include/linux/mtd/ubi.h
> @@ -35,6 +35,15 @@
>   */
>  #define UBI_MAX_SG_COUNT 64
>  
> +enum {
> +	UBI_BAKVOL_UNONE,
> +	UBI_BAKVOL_INIT_INFO,
> +	UBI_BAKVOL_INIT_INFO_DONE,
> +	UBI_BAKVOL_INIT_VOLUME,
> +	UBI_BAKVOL_INIT_VOLUME_DONE,
> +	UBI_BAKVOL_RUN
> +};
> +

Are those changes related to this patch?

Best Regards,

Boris

-- 
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
--
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]


#1235781

FromBean Huo 霍斌斌 (beanhuo) <beanhuo@micron.com>
Date2015-09-30 08:10 +0200
Message-ID<qeiKt-4Sa-5@gated-at.bofh.it>
In reply to#1233982
PiBIaSBCZWFuLA0KPiANCj4gT24gTW9uLCAyOCBTZXAgMjAxNSAwNzowMjozNyArMDAwMA0KPiBC
ZWFuIEh1byDpnI3mlozmlowgKGJlYW5odW8pIDxiZWFuaHVvQG1pY3Jvbi5jb20+IHdyb3RlOg0K
PiANCj4gPiBBZGQgc3VwcG9ydCBmb3IgVUJJIGJha3ZvbCBpbiBtdGQgbGF5ZXIuDQo+ID4NCj4g
PiBUaGlzIHNvbHV0aW9uIGJhc2VkIG9uIE1MQyBOQU5EIGR1YWwgcGxhbmUgcHJvZ3JhbS4NCj4g
PiBzbyBhZGQgaG9vayBpbiBtdGQgbGF5ZXIuDQo+IA0KPiBJIGtub3cgeW91IGRvbid0IGhhdmUg
YW55IG90aGVyIGNob2ljZXMgdG8gZXhwb3NlICJ0d28tcGxhbmUgcGFnZSBwcm9ncmFtIg0KPiB0
byB0aGUgVUJJIGxheWVyLCBidXQgSSBrZWVwIHRoaW5raW5nIHRoYXQgZXhwb3NpbmcgdGhhdCB0
byB0aGUgTVREIHVzZXJzIGlzIG5vdA0KPiBhIGdvb2QgaWRlYSAoSSBtaWdodCBiZSB3cm9uZyA7
LSkpLg0KDQpUd28tcGxhbmUgb3BlcmF0aW9uIGlzIHJlbGF0ZWQgdG8gTkFORCBmZWF0dXJlLCBj
YW4gbm90IGludm9sdmUgaW4gVUJJIGxheWVyLg0KTWF5YmUgSSBjYW4gZmlyc3RseSBlbmFibGUg
bXVsdGlwbGUgcGxhbmUgcHJvZ3JhbSBpbiBNVEQgbGF5ZXIsIGJ1dCBjdXJyZW50bHksIG5vIHBl
b3BsZSANClVzZXMgbXVsdGlwbGUgcGxhbmUgcHJvZ3JhbSBpbiBMaW51eCwgb25seSBpbiB0aGlz
IHBhdGNoLg0KSSBkb24ndCBrbm93IGlmIHRoaXMgaXMgbmVjZXNzYXJ5Lg0KPiA+DQo+ID4gU2ln
bmVkLW9mZi1ieTogQmVhbiBIdW8gPGJlYW5odW9AbWljcm9uLmNvbT4NCj4gPiAtLS0NCj4gPiAg
aW5jbHVkZS9saW51eC9tdGQvbXRkLmggIHwgMTkgKysrKysrKysrKysrKysrKysrKw0KPiA+IGlu
Y2x1ZGUvbGludXgvbXRkL25hbmQuaCB8ICA0ICsrKysgIGluY2x1ZGUvbGludXgvbXRkL3ViaS5o
ICB8ICA5DQo+ID4gKysrKysrKysrDQo+ID4gIDMgZmlsZXMgY2hhbmdlZCwgMzIgaW5zZXJ0aW9u
cygrKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbXRkL210ZC5oIGIvaW5j
bHVkZS9saW51eC9tdGQvbXRkLmggaW5kZXgNCj4gPiBmMTdmYTc1Li5jZmNiM2E2OCAxMDA2NDQN
Cj4gPiAtLS0gYS9pbmNsdWRlL2xpbnV4L210ZC9tdGQuaA0KPiA+ICsrKyBiL2luY2x1ZGUvbGlu
dXgvbXRkL210ZC5oDQo+ID4gQEAgLTIwNCw2ICsyMDQsOSBAQCBzdHJ1Y3QgbXRkX2luZm8gew0K
PiA+ICAJCQkgIHN0cnVjdCBtdGRfb29iX29wcyAqb3BzKTsNCj4gPiAgCWludCAoKl93cml0ZV9v
b2IpIChzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IHRvLA0KPiA+ICAJCQkgICBzdHJ1Y3Qg
bXRkX29vYl9vcHMgKm9wcyk7DQo+ID4gKwlpbnQgKCpfZHVhbF9wbGFuZV93cml0ZV9vb2IpIChz
dHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IHRvX3BsYW5lMCwNCj4gPiArCQkJc3RydWN0IG10
ZF9vb2Jfb3BzICpvcHNfcGxhbmUwLCBsb2ZmX3QgdG9fcGxhbmUxLA0KPiA+ICsJCQkJCXN0cnVj
dCBtdGRfb29iX29wcyAqb3BzX3BsYW5lMSk7DQo+IA0KPiANCj4gSU1ITywgaWYgd2Ugd2VyZSBh
Ym91dCB0byBhbGxvdyBwYXJhbGxlbCB3cml0ZSBvcGVyYXRpb25zIHRoaXMgc2hvdWxkIGJlDQo+
IGV4cG9zZWQgYXMgYSBtb3JlIGdlbmVyaWMgQVBJLCBzb21ldGhpbmcgbGlrZToNCj4gDQo+IHN0
cnVjdCBtdGRfd3JpdGVfb3Agew0KPiAJbG9mZl90IHRvOw0KPiAJc3RydWN0IG10ZF9vb2Jfb3Bz
IG9wczsNCj4gfTsNCj4gDQo+IHN0cnVjdCBtdGRfbXVsdGlfd3JpdGVfb3BzIHsNCj4gCXN0cnVj
dCBsaXN0X2hlYWQgd3JpdGVzOw0KPiB9Ow0KPiANCj4gaW50ICgqX211bHRpX3dyaXRlKShzdHJ1
Y3QgbXRkX2luZm8gKm10ZCwNCj4gCQkgICAgc3RydWN0IG10ZF9tdWx0aV93cml0ZV9vcHMgKm9w
cyk7DQo+IA0KPiBUaGVuIHRoZSBOQU5EIGxheWVyIGNvdWxkIG9wdGltaXplIHRoYXQgaWYgdGhl
IE5BTkQgY2hpcCBzdXBwb3J0cyAidHdvLXBsYW5lDQo+IHBhZ2UgcHJvZ3JhbSIsIGFuZCBpZiAy
IHBhZ2VzIGluIHRoZSB3cml0ZSBsaXN0IGFyZSBmdWxmaWxsaW5nIHRoZSByZXF1aXJlbWVudHMu
DQo+IA0KR29vZCBzdWdnZXN0aW9uLCBJIGNhbiBpbXByb3ZlIGl0IGZvciBuZXh0IHZlcnNpb24g
cGF0Y2guIFRoYW5rcy4NCg0KPiA+ICAJaW50ICgqX2dldF9mYWN0X3Byb3RfaW5mbykgKHN0cnVj
dCBtdGRfaW5mbyAqbXRkLCBzaXplX3QgbGVuLA0KPiA+ICAJCQkJICAgIHNpemVfdCAqcmV0bGVu
LCBzdHJ1Y3Qgb3RwX2luZm8gKmJ1Zik7DQo+ID4gIAlpbnQgKCpfcmVhZF9mYWN0X3Byb3RfcmVn
KSAoc3RydWN0IG10ZF9pbmZvICptdGQsIGxvZmZfdCBmcm9tLCBAQA0KPiA+IC0yODAsNiArMjgz
LDIyIEBAIHN0YXRpYyBpbmxpbmUgaW50IG10ZF93cml0ZV9vb2Ioc3RydWN0IG10ZF9pbmZvICpt
dGQsDQo+IGxvZmZfdCB0bywNCj4gPiAgCXJldHVybiBtdGQtPl93cml0ZV9vb2IobXRkLCB0bywg
b3BzKTsgIH0NCj4gPg0KPiA+ICtzdGF0aWMgaW5saW5lIGludCBtdGRfd3JpdGVfZHVhbF9wbGFu
ZV9vb2Ioc3RydWN0IG10ZF9pbmZvICptdGQsDQo+ID4gKwkJbG9mZl90IHRvX3BsYW5lMCwgc3Ry
dWN0IG10ZF9vb2Jfb3BzICpvcHMwLCBsb2ZmX3QgdG9fcGxhbmUxLA0KPiA+ICsJCQkJCQlzdHJ1
Y3QgbXRkX29vYl9vcHMgKm9wczEpDQo+ID4gK3sNCj4gPiArCW9wczAtPnJldGxlbiA9IG9wczAt
Pm9vYnJldGxlbiA9IDA7DQo+ID4gKwlvcHMxLT5yZXRsZW4gPSBvcHMxLT5vb2JyZXRsZW4gPSAw
Ow0KPiA+ICsNCj4gPiArCWlmICghbXRkLT5fZHVhbF9wbGFuZV93cml0ZV9vb2IpDQo+ID4gKwkJ
cmV0dXJuIC1FT1BOT1RTVVBQOw0KPiA+ICsJaWYgKCEobXRkLT5mbGFncyAmIE1URF9XUklURUFC
TEUpKQ0KPiA+ICsJCXJldHVybiAtRVJPRlM7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIG10ZC0+X2R1
YWxfcGxhbmVfd3JpdGVfb29iKG10ZCwgdG9fcGxhbmUwLCBvcHMwLA0KPiA+ICsJCQkJCQl0b19w
bGFuZTEsIG9wczEpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICBpbnQgbXRkX2dldF9mYWN0X3Byb3Rf
aW5mbyhzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgc2l6ZV90IGxlbiwgc2l6ZV90ICpyZXRsZW4sDQo+
ID4gIAkJCSAgIHN0cnVjdCBvdHBfaW5mbyAqYnVmKTsNCj4gPiAgaW50IG10ZF9yZWFkX2ZhY3Rf
cHJvdF9yZWcoc3RydWN0IG10ZF9pbmZvICptdGQsIGxvZmZfdCBmcm9tLCBzaXplX3QNCj4gPiBs
ZW4sIGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L210ZC9uYW5kLmggYi9pbmNsdWRlL2xpbnV4
L210ZC9uYW5kLmgNCj4gPiBpbmRleCAyNzJmNDI5Li40YzViZTAxIDEwMDY0NA0KPiA+IC0tLSBh
L2luY2x1ZGUvbGludXgvbXRkL25hbmQuaA0KPiA+ICsrKyBiL2luY2x1ZGUvbGludXgvbXRkL25h
bmQuaA0KPiA+IEBAIC03Nyw2ICs3Nyw3IEBAIGV4dGVybiBpbnQgbmFuZF91bmxvY2soc3RydWN0
IG10ZF9pbmZvICptdGQsIGxvZmZfdCBvZnMsDQo+IHVpbnQ2NF90IGxlbik7DQo+ID4gICNkZWZp
bmUgTkFORF9DTURfUkVBRDEJCTENCj4gPiAgI2RlZmluZSBOQU5EX0NNRF9STkRPVVQJCTUNCj4g
PiAgI2RlZmluZSBOQU5EX0NNRF9QQUdFUFJPRwkweDEwDQo+ID4gKyNkZWZpbmUgTkFORF9DTURf
TVVMVElfUEFHRVBST0cJMHgxMQ0KPiA+ICAjZGVmaW5lIE5BTkRfQ01EX1JFQURPT0IJMHg1MA0K
PiA+ICAjZGVmaW5lIE5BTkRfQ01EX0VSQVNFMQkJMHg2MA0KPiA+ICAjZGVmaW5lIE5BTkRfQ01E
X1NUQVRVUwkJMHg3MA0KPiA+IEBAIC02NzEsNiArNjcyLDkgQEAgc3RydWN0IG5hbmRfY2hpcCB7
DQo+ID4gIAlpbnQgKCp3cml0ZV9wYWdlKShzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgc3RydWN0IG5h
bmRfY2hpcCAqY2hpcCwNCj4gPiAgCQkJdWludDMyX3Qgb2Zmc2V0LCBpbnQgZGF0YV9sZW4sIGNv
bnN0IHVpbnQ4X3QgKmJ1ZiwNCj4gPiAgCQkJaW50IG9vYl9yZXF1aXJlZCwgaW50IHBhZ2UsIGlu
dCBjYWNoZWQsIGludCByYXcpOw0KPiA+ICsJaW50ICgqd3JpdGVfcGxhbmVfcGFnZSkoc3RydWN0
IG10ZF9pbmZvICptdGQsIHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsDQo+ID4gKwkJCXVpbnQzMl90
IG9mZnNldCwgaW50IGRhdGFfbGVuLCBjb25zdCB1aW50OF90ICpidWYsDQo+ID4gKwkJCWludCBv
b2JfcmVxdWlyZWQsIGludCBwYWdlLCBpbnQgcGxhbmUsIGludCByYXcpOw0KPiA+ICAJaW50ICgq
b25maV9zZXRfZmVhdHVyZXMpKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBzdHJ1Y3QgbmFuZF9jaGlw
ICpjaGlwLA0KPiA+ICAJCQlpbnQgZmVhdHVyZV9hZGRyLCB1aW50OF90ICpzdWJmZWF0dXJlX3Bh
cmEpOw0KPiA+ICAJaW50ICgqb25maV9nZXRfZmVhdHVyZXMpKHN0cnVjdCBtdGRfaW5mbyAqbXRk
LCBzdHJ1Y3QgbmFuZF9jaGlwDQo+ID4gKmNoaXAsIGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4
L210ZC91YmkuaCBiL2luY2x1ZGUvbGludXgvbXRkL3ViaS5oDQo+ID4gaW5kZXggMWUyNzFjYi4u
MWRhMzQxOCAxMDA2NDQNCj4gPiAtLS0gYS9pbmNsdWRlL2xpbnV4L210ZC91YmkuaA0KPiA+ICsr
KyBiL2luY2x1ZGUvbGludXgvbXRkL3ViaS5oDQo+ID4gQEAgLTM1LDYgKzM1LDE1IEBADQo+ID4g
ICAqLw0KPiA+ICAjZGVmaW5lIFVCSV9NQVhfU0dfQ09VTlQgNjQNCj4gPg0KPiA+ICtlbnVtIHsN
Cj4gPiArCVVCSV9CQUtWT0xfVU5PTkUsDQo+ID4gKwlVQklfQkFLVk9MX0lOSVRfSU5GTywNCj4g
PiArCVVCSV9CQUtWT0xfSU5JVF9JTkZPX0RPTkUsDQo+ID4gKwlVQklfQkFLVk9MX0lOSVRfVk9M
VU1FLA0KPiA+ICsJVUJJX0JBS1ZPTF9JTklUX1ZPTFVNRV9ET05FLA0KPiA+ICsJVUJJX0JBS1ZP
TF9SVU4NCj4gPiArfTsNCj4gPiArDQo+IA0KPiBBcmUgdGhvc2UgY2hhbmdlcyByZWxhdGVkIHRv
IHRoaXMgcGF0Y2g/DQo+IA0KDQpZZXMsIG1heWJlIGNhbiBzaW1wbGlmeSBtb3JlLg0KDQo+IEJl
c3QgUmVnYXJkcywNCj4gDQo+IEJvcmlzDQo+IA0KPiAtLQ0KPiBCb3JpcyBCcmV6aWxsb24sIEZy
ZWUgRWxlY3Ryb25zDQo+IEVtYmVkZGVkIExpbnV4IGFuZCBLZXJuZWwgZW5naW5lZXJpbmcNCj4g
aHR0cDovL2ZyZWUtZWxlY3Ryb25zLmNvbQ0K
--
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]


#1235824

FromBoris Brezillon <boris.brezillon@free-electrons.com>
Date2015-09-30 09:20 +0200
Message-ID<qejQd-6nP-9@gated-at.bofh.it>
In reply to#1235781
Hi Bean,

On Wed, 30 Sep 2015 06:05:44 +0000
Bean Huo 霍斌斌 (beanhuo) <beanhuo@micron.com> wrote:


> > > diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h index
> > > f17fa75..cfcb3a68 100644
> > > --- a/include/linux/mtd/mtd.h
> > > +++ b/include/linux/mtd/mtd.h
> > > @@ -204,6 +204,9 @@ struct mtd_info {
> > >  			  struct mtd_oob_ops *ops);
> > >  	int (*_write_oob) (struct mtd_info *mtd, loff_t to,
> > >  			   struct mtd_oob_ops *ops);
> > > +	int (*_dual_plane_write_oob) (struct mtd_info *mtd, loff_t to_plane0,
> > > +			struct mtd_oob_ops *ops_plane0, loff_t to_plane1,
> > > +					struct mtd_oob_ops *ops_plane1);
> > 
> > 
> > IMHO, if we were about to allow parallel write operations this should be
> > exposed as a more generic API, something like:
> > 
> > struct mtd_write_op {
> > 	loff_t to;
> > 	struct mtd_oob_ops ops;
> > };
> > 
> > struct mtd_multi_write_ops {
> > 	struct list_head writes;
> > };
> > 
> > int (*_multi_write)(struct mtd_info *mtd,
> > 		    struct mtd_multi_write_ops *ops);
> > 
> > Then the NAND layer could optimize that if the NAND chip supports "two-plane
> > page program", and if 2 pages in the write list are fulfilling the requirements.
> > 
> Good suggestion, I can improve it for next version patch. Thanks.
> 

Please wait for other reviews before reworking that.

> > > index 1e271cb..1da3418 100644
> > > --- a/include/linux/mtd/ubi.h
> > > +++ b/include/linux/mtd/ubi.h
> > > @@ -35,6 +35,15 @@
> > >   */
> > >  #define UBI_MAX_SG_COUNT 64
> > >
> > > +enum {
> > > +	UBI_BAKVOL_UNONE,
> > > +	UBI_BAKVOL_INIT_INFO,
> > > +	UBI_BAKVOL_INIT_INFO_DONE,
> > > +	UBI_BAKVOL_INIT_VOLUME,
> > > +	UBI_BAKVOL_INIT_VOLUME_DONE,
> > > +	UBI_BAKVOL_RUN
> > > +};
> > > +
> > 
> > Are those changes related to this patch?
> > 
> 
> Yes, maybe can simplify more.

Actually that was a rhetorical question. My point was that this enum
definition has nothing to do in this patch, and you're doing that
(mixing unrelated changes in the same commit) a lot in your other
patches.
So please make sure you correctly split your changes next time you send
a patch set.

Best Regards,

Boris

-- 
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
--
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