Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1233899 > unrolled thread
| Started by | Bean Huo 霍斌斌 (beanhuo) <beanhuo@micron.com> |
|---|---|
| First post | 2015-09-28 09:10 +0200 |
| Last post | 2015-09-30 09:20 +0200 |
| Articles | 4 — 2 participants |
Back to article view | Back to linux.kernel
[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
| From | Bean Huo 霍斌斌 (beanhuo) <beanhuo@micron.com> |
|---|---|
| Date | 2015-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]
| From | Boris Brezillon <boris.brezillon@free-electrons.com> |
|---|---|
| Date | 2015-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]
| From | Bean Huo 霍斌斌 (beanhuo) <beanhuo@micron.com> |
|---|---|
| Date | 2015-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]
| From | Boris Brezillon <boris.brezillon@free-electrons.com> |
|---|---|
| Date | 2015-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