From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9F1AAC282EC for ; Tue, 18 Mar 2025 15:53:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:References :In-Reply-To:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=78kxqHlfj7Ahs9rX9oZNYRdtVw4DLqd1p0jNBP1/qTk=; b=e58fulDJwLzJs7 fqz4c6yigH80w4COSuFFVPXCn2AyuIQ7kmGjC6rWYahXEizDNSfvl4cR4Ng5Zq3WsRVhqOwBq9Z/z +QCv6zSKCKrEZ5931DJJQDuA4IHBJmpENhYq2ykPXZfvAN7Bl7H3IrLv6MlwOeUyFtfV80w0G9AuO FTBpYhq2BaxH19WNJXGAavgBmyvAW+ZW5e869O1f91VUfObnd/8BeQT78V2Yeg5ucweJxpT2tSWHw hJdZe7INIDVZTK//+At5Kuzm9CkDg2lRGKL05IWNk0sqyYspMF+9VphJ24/6Hj6Wrkeq8UJzh29xA lyMo/hdSoEJho8BhedfA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tuZFq-00000006QJO-1RNN; Tue, 18 Mar 2025 15:53:22 +0000 Received: from relay4-d.mail.gandi.net ([217.70.183.196]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tuZFm-00000006QIz-26Gc for linux-mtd@lists.infradead.org; Tue, 18 Mar 2025 15:53:20 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 779D7443FC; Tue, 18 Mar 2025 15:53:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1742313195; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=iAWNBG+PNBdOBSynjb6NA8R0b0TjTIkaOpMrZv7LLCU=; b=bWEYhkwgJbIncuTobP8+YhQR2CafKyxtki7qRzVUWrDvZ5JAQBMsAmoIvg21Watx/9DXk3 T1ubG2RlF2Pr9srzxvUB2oH484qP/OsB0ijj2JACGS0lPnoV1+sGXuwP0f5DfyzPn6Uxob Biz8Q9Kd/6VPKSIz8WnzzrouA9d+KUHmZGllzzmTOEN3axjeV+9KAM3qgNoAvZ8gm2Nde5 49ge5xqZkkn8JkaWCpa2gKnP/nUvQrihs91E9F3qx/K994G8WcUDTopho/SyvrPXNhWYPz y+wleBNzR/JC6VuyFunE1fVOUiPzkH45O0fcA5H28pG/xDLh8BuZj1OIXZiG3Q== From: Miquel Raynal To: Amit Kumar Mahapatra Cc: , , , , , , , , , , Bernhard Frauendienst Subject: Re: [PATCH v12 3/3] mtd: Add driver for concatenating devices In-Reply-To: <20250205133730.273985-4-amit.kumar-mahapatra@amd.com> (Amit Kumar Mahapatra's message of "Wed, 5 Feb 2025 19:07:30 +0530") References: <20250205133730.273985-1-amit.kumar-mahapatra@amd.com> <20250205133730.273985-4-amit.kumar-mahapatra@amd.com> User-Agent: mu4e 1.12.7; emacs 29.4 Date: Tue, 18 Mar 2025 16:53:14 +0100 Message-ID: <8734fa8hed.fsf@bootlin.com> MIME-Version: 1.0 X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddugedvkeegucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuifetpfffkfdpucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddunecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhvfevufgjfhgffffkgggtgfesthhqredttderjeenucfhrhhomhepofhiqhhuvghlucftrgihnhgrlhcuoehmihhquhgvlhdrrhgrhihnrghlsegsohhothhlihhnrdgtohhmqeenucggtffrrghtthgvrhhnpeffgefhjedtfeeigeduudekudejkedtiefhleelueeiueevheekvdeludehiedvfeenucfkphepledtrdekledrudeifedruddvjeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeeltddrkeelrdduieefrdduvdejpdhhvghloheplhhotggrlhhhohhsthdpmhgrihhlfhhrohhmpehmihhquhgvlhdrrhgrhihnrghlsegsohhothhlihhnrdgtohhmpdhnsggprhgtphhtthhopeduvddprhgtphhtthhopegrmhhithdrkhhumhgrrhdqmhgrhhgrphgrthhrrgesrghmugdrtghomhdprhgtphhtthhopehrihgthhgrrhgusehnohgurdgrthdprhgtphhtthhopehvihhgnhgvshhhrhesthhirdgtohhmpdhrtghpthhtoheprhhosghhsehkvghrnhgvlhdrohhrghdprhgtphhtthhopehkrhiikhdoughtsehkvghrnhgvlhdrohhrghdprhgtphhtthhopegtohhnohhrodgutheskhgvr hhnvghlrdhorhhgpdhrtghpthhtoheplhhinhhugidqmhhtugeslhhishhtshdrihhnfhhrrgguvggrugdrohhrghdprhgtphhtthhopeguvghvihgtvghtrhgvvgesvhhgvghrrdhkvghrnhgvlhdrohhrgh X-GND-Sasl: miquel.raynal@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250318_085318_997603_511728BF X-CRM114-Status: GOOD ( 28.69 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org T24gMDUvMDIvMjAyNSBhdCAxOTowNzozMCArMDUzMCwgQW1pdCBLdW1hciBNYWhhcGF0cmEgPGFt aXQua3VtYXItbWFoYXBhdHJhQGFtZC5jb20+IHdyb3RlOgoKPiBJbnRyb2R1Y2luZyBDT05GSUdf VklSVF9DT05DQVQgdG8gc2VwYXJhdGUgdGhlIGxlZ2FjeSBmbG93IGZyb20gdGhlCj4gbmV3CgpD T05GSUdfTVREX1ZJUlRfQ09OQ0FUCgo+IGFwcHJvYWNoLCB3aGVyZSBpbmRpdmlkdWFsIHBhcnRp dGlvbnMgd2l0aGluIGEgY29uY2F0ZW5hdGVkIHBhcnRpdGlvbiBhcmUKPiBub3QgcmVnaXN0ZXJl ZCwgYXMgdGhleSBhcmUgbGlrZWx5IG5vdCBuZWVkZWQgYnkgdGhlIHVzZXIuCgpJIGFtIG5vdCBh IGJpZyBmYW4gb2YgdGhpcyBjaG9pY2UuIFdlIGhhZCBpc3N1ZXMgd2l0aCBoaWRpbmcgdGhpbmdz IHRvCnRoZSB1c2VyIGluIHRoZSBmaXJzdCBwbGFjZS4gQ291bGQgd2UgZmluZCBhIHdheSB0byBl eHBvc2UgYm90aCB0aGUKb3JpZ2luYWwgbXRkIGRldmljZXMgYXMgd2VsbCBhcyB0aGUgdmlydHVh bGx5IGNvbmNhdGVuYXRlZCBwYXJ0aXRpb25zPwoKPiBTb2x1dGlvbiBpcyBmb2N1c2luZyBvbiBm aXhlZC1wYXJ0aXRpb25zIGRlc2NyaXB0aW9uIG9ubHkgYmVjYXVzZSBpdAo+IGRlcGVuZHMgb24g ZGV2aWNlIGJvdW5kYXJpZXMuCj4KPiBTdWdnZXN0ZWQtYnk6IEJlcm5oYXJkIEZyYXVlbmRpZW5z dCA8a2VybmVsQG5vc3BhbS5vYmVsaWtzLmRlPgo+IFN1Z2dlc3RlZC1ieTogTWlxdWVsIFJheW5h bCA8bWlxdWVsLnJheW5hbEBib290bGluLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBBbWl0IEt1bWFy IE1haGFwYXRyYSA8YW1pdC5rdW1hci1tYWhhcGF0cmFAYW1kLmNvbT4KPiAtLS0KPiAgZHJpdmVy cy9tdGQvS2NvbmZpZyAgICAgICAgICAgfCAgIDggKysKPiAgZHJpdmVycy9tdGQvTWFrZWZpbGUg ICAgICAgICAgfCAgIDEgKwo+ICBkcml2ZXJzL210ZC9tdGRfdmlydF9jb25jYXQuYyB8IDI1NCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGRyaXZlcnMvbXRkL210ZGNvcmUu YyAgICAgICAgIHwgICA3ICsKPiAgZHJpdmVycy9tdGQvbXRkcGFydC5jICAgICAgICAgfCAgIDYg Kwo+ICBpbmNsdWRlL2xpbnV4L210ZC9jb25jYXQuaCAgICB8ICAyNCArKysrCj4gIDYgZmlsZXMg Y2hhbmdlZCwgMzAwIGluc2VydGlvbnMoKykKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv bXRkL210ZF92aXJ0X2NvbmNhdC5jCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvS2NvbmZp ZyBiL2RyaXZlcnMvbXRkL0tjb25maWcKPiBpbmRleCA3OTZhMmVjY2JlZjAuLjNkYWRlN2M0Njlk ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL210ZC9LY29uZmlnCj4gKysrIGIvZHJpdmVycy9tdGQv S2NvbmZpZwo+IEBAIC0yMDYsNiArMjA2LDE0IEBAIGNvbmZpZyBNVERfUEFSVElUSU9ORURfTUFT VEVSCj4gIAkgIHRoZSBwYXJlbnQgb2YgdGhlIHBhcnRpdGlvbiBkZXZpY2UgYmUgdGhlIG1hc3Rl ciBkZXZpY2UsIHJhdGhlciB0aGFuCj4gIAkgIHdoYXQgbGllcyBiZWhpbmQgdGhlIG1hc3Rlci4K PiAgCj4gK2NvbmZpZyBNVERfVklSVF9DT05DQVQKPiArCXRyaXN0YXRlICJWaXJ0dWFsIGNvbmNh dGVuYXRlZCBNVEQgZGV2aWNlcyIKPiArCWhlbHAKPiArCSAgVGhlIGRyaXZlciBlbmFibGVzIHRo ZSBjcmVhdGlvbiBvZiBhIHZpcnR1YWwgTVREIGRldmljZQoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb2YgdmlydHVhbCBNVEQgZGV2aWNlcwoKPiArCSAgYnkgY29u Y2F0ZW5hdGluZyBtdWx0aXBsZSBwaHlzaWNhbCBNVEQgZGV2aWNlcyBpbnRvIGEgc2luZ2xlCj4g KwkgIGVudGl0eS4gVGhpcyBhbGxvd3MgZm9yIHRoZSBjcmVhdGlvbiBvZiBwYXJ0aXRpb25zIGxh cmdlciB0aGFuCj4gKwkgIHRoZSBpbmRpdmlkdWFsIHBoeXNpY2FsIGNoaXBzLCBleHRlbmRpbmcg YWNyb3NzIGNoaXAgYm91bmRhcmllcy4KPiArCgouLi4KCj4gK3N0YXRpYyBpbnQgX19pbml0IG10 ZF92aXJ0X2NvbmNhdF9jcmVhdGVfam9pbih2b2lkKQo+ICt7Cj4gKwlzdHJ1Y3QgbXRkX3ZpcnRf Y29uY2F0X25vZGUgKml0ZW07Cj4gKwlzdHJ1Y3QgbXRkX2NvbmNhdCAqY29uY2F0Owo+ICsJc3Ry dWN0IG10ZF9pbmZvICptdGQ7Cj4gKwlzc2l6ZV90IG5hbWVfc3o7Cj4gKwljaGFyICpuYW1lOwo+ ICsJaW50IHJldDsKPiArCj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGl0ZW0sICZjb25jYXRfbm9k ZV9saXN0LCBoZWFkKSB7Cj4gKwkJY29uY2F0ID0gaXRlbS0+Y29uY2F0Owo+ICsJCW10ZCA9ICZj b25jYXQtPm10ZDsKPiArCQkvKiBDcmVhdGUgdGhlIHZpcnR1YWwgZGV2aWNlICovCj4gKwkJbmFt ZV9zeiA9IHNucHJpbnRmKE5VTEwsIDAsICIlcy0lcyVzLWNvbmNhdCIsCj4gKwkJCQkgICBjb25j YXQtPnN1YmRldlswXS0+bmFtZSwKPiArCQkJCSAgIGNvbmNhdC0+c3ViZGV2WzFdLT5uYW1lLAo+ ICsJCQkJICAgY29uY2F0LT5udW1fc3ViZGV2ID4gTUlOX0RFVl9QRVJfQ09OQ0FUID8KPiArCQkJ CSAgICItKyIgOiAiIik7Cj4gKwkJbmFtZSA9IGttYWxsb2MobmFtZV9zeiArIDEsIEdGUF9LRVJO RUwpOwo+ICsJCWlmICghbmFtZSkgewo+ICsJCQltdGRfdmlydF9jb25jYXRfcHV0X210ZF9kZXZp Y2VzKGNvbmNhdCk7Cj4gKwkJCXJldHVybiAtRU5PTUVNOwo+ICsJCX0KPiArCj4gKwkJc3ByaW50 ZihuYW1lLCAiJXMtJXMlcy1jb25jYXQiLAo+ICsJCQljb25jYXQtPnN1YmRldlswXS0+bmFtZSwK PiArCQkJY29uY2F0LT5zdWJkZXZbMV0tPm5hbWUsCj4gKwkJCWNvbmNhdC0+bnVtX3N1YmRldiA+ IE1JTl9ERVZfUEVSX0NPTkNBVCA/Cj4gKwkJCSItKyIgOiAiIik7Cj4gKwo+ICsJCW10ZCA9IG10 ZF9jb25jYXRfY3JlYXRlKGNvbmNhdC0+c3ViZGV2LCBjb25jYXQtPm51bV9zdWJkZXYsIG5hbWUp Owo+ICsJCWlmICghbXRkKSB7Cj4gKwkJCWtmcmVlKG5hbWUpOwo+ICsJCQlyZXR1cm4gLUVOWElP Owo+ICsJCX0KPiArCj4gKwkJLyogQXJiaXRyYXJ5IHNldCB0aGUgZmlyc3QgZGV2aWNlIGFzIHBh cmVudCAqLwoKSGVyZSB3ZSBtYXkgZmFjZSBydW50aW1lIFBNIGlzc3Vlcy4gQXQgc29tZSBwb2lu dCB0aGUgZGV2aWNlIG1vZGVsCmV4cGVjdHMgYSBzaW5nbGUgcGFyZW50IHBlciBzdHJ1Y3QgZGV2 aWNlLCBidXQgaGVyZSB3ZSBoYXZlIHR3by4gSSBkbwpub3QgaGF2ZSBhbnkgaGludHMgYXQgdGhl IG1vbWVudCBvbiBob3cgd2UgY291bGQgc29sdmUgdGhhdC4KCj4gKwkJbXRkLT5kZXYucGFyZW50 ID0gY29uY2F0LT5zdWJkZXZbMF0tPmRldi5wYXJlbnQ7Cj4gKwkJbXRkLT5kZXYgPSBjb25jYXQt PnN1YmRldlswXS0+ZGV2Owo+ICsKPiArCQkvKiBSZWdpc3RlciB0aGUgcGxhdGZvcm0gZGV2aWNl ICovCj4gKwkJcmV0ID0gbXRkX2RldmljZV9yZWdpc3RlcihtdGQsIE5VTEwsIDApOwo+ICsJCWlm IChyZXQpCj4gKwkJCWdvdG8gZGVzdHJveV9jb25jYXQ7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIDA7 Cj4gKwo+ICtkZXN0cm95X2NvbmNhdDoKPiArCW10ZF9jb25jYXRfZGVzdHJveShtdGQpOwo+ICsK PiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK2xhdGVfaW5pdGNhbGwobXRkX3ZpcnRfY29uY2F0 X2NyZWF0ZV9qb2luKTsKClRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIGRvZXMgbm90IHN1cHBv cnQgcHJvYmUgZGVmZXJyYWxzLCBJIGJlbGlldmUKaXQgc2hvdWxkIGJlIGhhbmRsZWQuCgo+ICtz dGF0aWMgdm9pZCBfX2V4aXQgbXRkX3ZpcnRfY29uY2F0X2V4aXQodm9pZCkKPiArewo+ICsJbXRk X3ZpcnRfY29uY2F0X2Rlc3Ryb3lfam9pbnMoKTsKPiArCW10ZF92aXJ0X2NvbmNhdF9kZXN0cm95 X2l0ZW1zKCk7Cj4gK30KPiArbW9kdWxlX2V4aXQobXRkX3ZpcnRfY29uY2F0X2V4aXQpOwo+ICsK PiArTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwo+ICtNT0RVTEVfQVVUSE9SKCJCZXJuaGFyZCBGcmF1 ZW5kaWVuc3QgPGtlcm5lbEBub3NwYW0ub2JlbGlrcy5kZT4iKTsKPiArTU9EVUxFX0FVVEhPUigi QW1pdCBLdW1hciBNYWhhcGF0cmEgPGFtaXQua3VtYXItbWFoYXBhdHJhQGFtZC5jb20+Iik7Cj4g K01PRFVMRV9ERVNDUklQVElPTigiVmlydHVhbCBjb25jYXQgTVREIGRldmljZSBkcml2ZXIiKTsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbXRkY29yZS5jIGIvZHJpdmVycy9tdGQvbXRkY29y ZS5jCj4gaW5kZXggNzI0ZjkxN2Y5MWJhLi4yMjY0ZmU4MTgxMGYgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9tdGQvbXRkY29yZS5jCj4gKysrIGIvZHJpdmVycy9tdGQvbXRkY29yZS5jCj4gQEAgLTM0 LDYgKzM0LDcgQEAKPiAgCj4gICNpbmNsdWRlIDxsaW51eC9tdGQvbXRkLmg+Cj4gICNpbmNsdWRl IDxsaW51eC9tdGQvcGFydGl0aW9ucy5oPgo+ICsjaW5jbHVkZSA8bGludXgvbXRkL2NvbmNhdC5o Pgo+ICAKPiAgI2luY2x1ZGUgIm10ZGNvcmUuaCIKPiAgCj4gQEAgLTEwNjcsNiArMTA2OCwxMiBA QCBpbnQgbXRkX2RldmljZV9wYXJzZV9yZWdpc3RlcihzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgY29u c3QgY2hhciAqIGNvbnN0ICp0eXBlcywKPiAgCQkJZ290byBvdXQ7Cj4gIAl9Cj4gIAo+ICsJaWYg KElTX0VOQUJMRUQoQ09ORklHX01URF9WSVJUX0NPTkNBVCkpIHsKCk1heWJlIElTX1JFQUNIQUJM RSgpIGlzIG1vcmUgcmVsZXZhbnQ/Cgo+ICsJCXJldCA9IG10ZF92aXJ0X2NvbmNhdF9ub2RlX2Ny ZWF0ZSgpOwo+ICsJCWlmIChyZXQgPCAwKQo+ICsJCQlnb3RvIG91dDsKPiArCX0KPiArCj4gIAkv KiBQcmVmZXIgcGFyc2VkIHBhcnRpdGlvbnMgb3ZlciBkcml2ZXItcHJvdmlkZWQgZmFsbGJhY2sg Ki8KPiAgCXJldCA9IHBhcnNlX210ZF9wYXJ0aXRpb25zKG10ZCwgdHlwZXMsIHBhcnNlcl9kYXRh KTsKPiAgCWlmIChyZXQgPT0gLUVQUk9CRV9ERUZFUikKClRoYW5rcywKTWlxdcOobAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4IE1U RCBkaXNjdXNzaW9uIG1haWxpbmcgbGlzdApodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LW10ZC8K From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net [217.70.183.196]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 323277464; Tue, 18 Mar 2025 15:53:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.70.183.196 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742313203; cv=none; b=nOHFPVUNFscOfzLGdLexHtRlKsrUMFSKxUwVsBFcTC9y+CO1Abnyh2q9iDfbH6eISOtlj1tDj0Akh4CJtZlsLR3EMSiTPKhFZq+sEt1keqy16k4QsHMipSY9aaSdEF5ycTYvgjdduWmQ+KuQNyf8TNvUaet5Mio7Smxb+faMDBk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742313203; c=relaxed/simple; bh=/L/vb59tMICXkWyQfLdayIVVHIj+CbXfwoPWYrJWspg=; h=From:To:Cc:Subject:In-Reply-To:References:Date:Message-ID: MIME-Version:Content-Type; b=hRXtpSrIFSyEgmHydegZOZHPFS8shSveJRun3EUGeiTiT4QgvncX6h/UI3puKAPuaiaXKn5aQEnbYQRqlk3Us5OnXYa7fpq+adrtdUyvmDMhtfSl5C/KYgkEfk8vJ7xxWtSLfDdjBhfKJCiHE39ttrug68W/i4V0QyalOqcQimI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=bWEYhkwg; arc=none smtp.client-ip=217.70.183.196 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="bWEYhkwg" Received: by mail.gandi.net (Postfix) with ESMTPSA id 779D7443FC; Tue, 18 Mar 2025 15:53:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1742313195; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=iAWNBG+PNBdOBSynjb6NA8R0b0TjTIkaOpMrZv7LLCU=; b=bWEYhkwgJbIncuTobP8+YhQR2CafKyxtki7qRzVUWrDvZ5JAQBMsAmoIvg21Watx/9DXk3 T1ubG2RlF2Pr9srzxvUB2oH484qP/OsB0ijj2JACGS0lPnoV1+sGXuwP0f5DfyzPn6Uxob Biz8Q9Kd/6VPKSIz8WnzzrouA9d+KUHmZGllzzmTOEN3axjeV+9KAM3qgNoAvZ8gm2Nde5 49ge5xqZkkn8JkaWCpa2gKnP/nUvQrihs91E9F3qx/K994G8WcUDTopho/SyvrPXNhWYPz y+wleBNzR/JC6VuyFunE1fVOUiPzkH45O0fcA5H28pG/xDLh8BuZj1OIXZiG3Q== From: Miquel Raynal To: Amit Kumar Mahapatra Cc: , , , , , , , , , , Bernhard Frauendienst Subject: Re: [PATCH v12 3/3] mtd: Add driver for concatenating devices In-Reply-To: <20250205133730.273985-4-amit.kumar-mahapatra@amd.com> (Amit Kumar Mahapatra's message of "Wed, 5 Feb 2025 19:07:30 +0530") References: <20250205133730.273985-1-amit.kumar-mahapatra@amd.com> <20250205133730.273985-4-amit.kumar-mahapatra@amd.com> User-Agent: mu4e 1.12.7; emacs 29.4 Date: Tue, 18 Mar 2025 16:53:14 +0100 Message-ID: <8734fa8hed.fsf@bootlin.com> Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddugedvkeegucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuifetpfffkfdpucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddunecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhvfevufgjfhgffffkgggtgfesthhqredttderjeenucfhrhhomhepofhiqhhuvghlucftrgihnhgrlhcuoehmihhquhgvlhdrrhgrhihnrghlsegsohhothhlihhnrdgtohhmqeenucggtffrrghtthgvrhhnpeffgefhjedtfeeigeduudekudejkedtiefhleelueeiueevheekvdeludehiedvfeenucfkphepledtrdekledrudeifedruddvjeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeeltddrkeelrdduieefrdduvdejpdhhvghloheplhhotggrlhhhohhsthdpmhgrihhlfhhrohhmpehmihhquhgvlhdrrhgrhihnrghlsegsohhothhlihhnrdgtohhmpdhnsggprhgtphhtthhopeduvddprhgtphhtthhopegrmhhithdrkhhumhgrrhdqmhgrhhgrphgrthhrrgesrghmugdrtghomhdprhgtphhtthhopehrihgthhgrrhgusehnohgurdgrthdprhgtphhtthhopehvihhgnhgvshhhrhesthhirdgtohhmpdhrtghpthhtoheprhhosghhsehkvghrnhgvlhdrohhrghdprhgtphhtthhopehkrhiikhdoughtsehkvghrnhgvlhdrohhrghdprhgtphhtthhopegtohhnohhrodgutheskhgvr hhnvghlrdhorhhgpdhrtghpthhtoheplhhinhhugidqmhhtugeslhhishhtshdrihhnfhhrrgguvggrugdrohhrghdprhgtphhtthhopeguvghvihgtvghtrhgvvgesvhhgvghrrdhkvghrnhgvlhdrohhrgh X-GND-Sasl: miquel.raynal@bootlin.com On 05/02/2025 at 19:07:30 +0530, Amit Kumar Mahapatra wrote: > Introducing CONFIG_VIRT_CONCAT to separate the legacy flow from the > new CONFIG_MTD_VIRT_CONCAT > approach, where individual partitions within a concatenated partition are > not registered, as they are likely not needed by the user. I am not a big fan of this choice. We had issues with hiding things to the user in the first place. Could we find a way to expose both the original mtd devices as well as the virtually concatenated partitions? > Solution is focusing on fixed-partitions description only because it > depends on device boundaries. > > Suggested-by: Bernhard Frauendienst > Suggested-by: Miquel Raynal > Signed-off-by: Amit Kumar Mahapatra > --- > drivers/mtd/Kconfig | 8 ++ > drivers/mtd/Makefile | 1 + > drivers/mtd/mtd_virt_concat.c | 254 ++++++++++++++++++++++++++++++++++ > drivers/mtd/mtdcore.c | 7 + > drivers/mtd/mtdpart.c | 6 + > include/linux/mtd/concat.h | 24 ++++ > 6 files changed, 300 insertions(+) > create mode 100644 drivers/mtd/mtd_virt_concat.c > > diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig > index 796a2eccbef0..3dade7c469df 100644 > --- a/drivers/mtd/Kconfig > +++ b/drivers/mtd/Kconfig > @@ -206,6 +206,14 @@ config MTD_PARTITIONED_MASTER > the parent of the partition device be the master device, rather than > what lies behind the master. >=20=20 > +config MTD_VIRT_CONCAT > + tristate "Virtual concatenated MTD devices" > + help > + The driver enables the creation of a virtual MTD device of virtual MTD devices > + by concatenating multiple physical MTD devices into a single > + entity. This allows for the creation of partitions larger than > + the individual physical chips, extending across chip boundaries. > + ... > +static int __init mtd_virt_concat_create_join(void) > +{ > + struct mtd_virt_concat_node *item; > + struct mtd_concat *concat; > + struct mtd_info *mtd; > + ssize_t name_sz; > + char *name; > + int ret; > + > + list_for_each_entry(item, &concat_node_list, head) { > + concat =3D item->concat; > + mtd =3D &concat->mtd; > + /* Create the virtual device */ > + name_sz =3D snprintf(NULL, 0, "%s-%s%s-concat", > + concat->subdev[0]->name, > + concat->subdev[1]->name, > + concat->num_subdev > MIN_DEV_PER_CONCAT ? > + "-+" : ""); > + name =3D kmalloc(name_sz + 1, GFP_KERNEL); > + if (!name) { > + mtd_virt_concat_put_mtd_devices(concat); > + return -ENOMEM; > + } > + > + sprintf(name, "%s-%s%s-concat", > + concat->subdev[0]->name, > + concat->subdev[1]->name, > + concat->num_subdev > MIN_DEV_PER_CONCAT ? > + "-+" : ""); > + > + mtd =3D mtd_concat_create(concat->subdev, concat->num_subdev, name); > + if (!mtd) { > + kfree(name); > + return -ENXIO; > + } > + > + /* Arbitrary set the first device as parent */ Here we may face runtime PM issues. At some point the device model expects a single parent per struct device, but here we have two. I do not have any hints at the moment on how we could solve that. > + mtd->dev.parent =3D concat->subdev[0]->dev.parent; > + mtd->dev =3D concat->subdev[0]->dev; > + > + /* Register the platform device */ > + ret =3D mtd_device_register(mtd, NULL, 0); > + if (ret) > + goto destroy_concat; > + } > + > + return 0; > + > +destroy_concat: > + mtd_concat_destroy(mtd); > + > + return ret; > +} > + > +late_initcall(mtd_virt_concat_create_join); The current implementation does not support probe deferrals, I believe it should be handled. > +static void __exit mtd_virt_concat_exit(void) > +{ > + mtd_virt_concat_destroy_joins(); > + mtd_virt_concat_destroy_items(); > +} > +module_exit(mtd_virt_concat_exit); > + > +MODULE_LICENSE("GPL"); > +MODULE_AUTHOR("Bernhard Frauendienst "); > +MODULE_AUTHOR("Amit Kumar Mahapatra "); > +MODULE_DESCRIPTION("Virtual concat MTD device driver"); > diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c > index 724f917f91ba..2264fe81810f 100644 > --- a/drivers/mtd/mtdcore.c > +++ b/drivers/mtd/mtdcore.c > @@ -34,6 +34,7 @@ >=20=20 > #include > #include > +#include >=20=20 > #include "mtdcore.h" >=20=20 > @@ -1067,6 +1068,12 @@ int mtd_device_parse_register(struct mtd_info *mtd= , const char * const *types, > goto out; > } >=20=20 > + if (IS_ENABLED(CONFIG_MTD_VIRT_CONCAT)) { Maybe IS_REACHABLE() is more relevant? > + ret =3D mtd_virt_concat_node_create(); > + if (ret < 0) > + goto out; > + } > + > /* Prefer parsed partitions over driver-provided fallback */ > ret =3D parse_mtd_partitions(mtd, types, parser_data); > if (ret =3D=3D -EPROBE_DEFER) Thanks, Miqu=C3=A8l