From: Christian Marangi <ansuelsmth@gmail.com>
To: Jens Axboe <axboe@kernel.dk>, Jonathan Corbet <corbet@lwn.net>,
Ulf Hansson <ulf.hansson@linaro.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Christian Marangi <ansuelsmth@gmail.com>,
Daniel Golle <daniel@makrotopia.org>,
INAGAKI Hiroshi <musashino.open@gmail.com>,
Christian Brauner <brauner@kernel.org>,
Al Viro <viro@zeniv.linux.org.uk>, Ming Lei <ming.lei@redhat.com>,
Li Lingfeng <lilingfeng3@huawei.com>,
Christian Heusel <christian@heusel.eu>,
Avri Altman <avri.altman@wdc.com>,
Linus Walleij <linus.walleij@linaro.org>,
Adrian Hunter <adrian.hunter@intel.com>,
Riyan Dhiman <riyandhiman14@gmail.com>,
Mikko Rapeli <mikko.rapeli@linaro.org>,
Jorge Ramirez-Ortiz <jorge@foundries.io>,
Li Zhijian <lizhijian@fujitsu.com>,
Dominique Martinet <dominique.martinet@atmark-techno.com>,
Jens Wiklander <jens.wiklander@linaro.org>,
Christophe JAILLET <christophe.jaillet@wanadoo.fr>,
linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org,
devicetree@vger.kernel.org, Lorenzo Bianconi <lorenzo@kernel.org>,
Miquel Raynal <miquel.raynal@bootlin.com>,
upstream@airoha.com, Christoph Hellwig <hch@infradead.org>
Subject: [PATCH v6 3/6] block: introduce add_disk_fwnode()
Date: Thu, 3 Oct 2024 00:11:43 +0200 [thread overview]
Message-ID: <20241002221306.4403-4-ansuelsmth@gmail.com> (raw)
In-Reply-To: <20241002221306.4403-1-ansuelsmth@gmail.com>
Introduce add_disk_fwnode() as a replacement of device_add_disk() that
permits to pass and attach a fwnode to disk dev.
This variant can be useful for eMMC that might have the partition table
for the disk defined in DT. A parser can later make use of the attached
fwnode to parse the related table and init the hardcoded partition for
the disk.
device_add_disk() is converted to a simple wrapper of add_disk_fwnode()
with the fwnode entry set as NULL.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
---
block/genhd.c | 28 ++++++++++++++++++++++++----
include/linux/blkdev.h | 3 +++
2 files changed, 27 insertions(+), 4 deletions(-)
diff --git a/block/genhd.c b/block/genhd.c
index 1c05dd4c6980..bc30eee7ab16 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -383,16 +383,18 @@ int disk_scan_partitions(struct gendisk *disk, blk_mode_t mode)
}
/**
- * device_add_disk - add disk information to kernel list
+ * add_disk_fwnode - add disk information to kernel list with fwnode
* @parent: parent device for the disk
* @disk: per-device partitioning information
* @groups: Additional per-device sysfs groups
+ * @fwnode: attached disk fwnode
*
* This function registers the partitioning information in @disk
- * with the kernel.
+ * with the kernel. Also attach a fwnode to the disk device.
*/
-int __must_check device_add_disk(struct device *parent, struct gendisk *disk,
- const struct attribute_group **groups)
+int __must_check add_disk_fwnode(struct device *parent, struct gendisk *disk,
+ const struct attribute_group **groups,
+ struct fwnode_handle *fwnode)
{
struct device *ddev = disk_to_dev(disk);
@@ -452,6 +454,8 @@ int __must_check device_add_disk(struct device *parent, struct gendisk *disk,
ddev->parent = parent;
ddev->groups = groups;
dev_set_name(ddev, "%s", disk->disk_name);
+ if (fwnode)
+ device_set_node(ddev, fwnode);
if (!(disk->flags & GENHD_FL_HIDDEN))
ddev->devt = MKDEV(disk->major, disk->first_minor);
ret = device_add(ddev);
@@ -553,6 +557,22 @@ int __must_check device_add_disk(struct device *parent, struct gendisk *disk,
elevator_exit(disk->queue);
return ret;
}
+EXPORT_SYMBOL_GPL(add_disk_fwnode);
+
+/**
+ * device_add_disk - add disk information to kernel list
+ * @parent: parent device for the disk
+ * @disk: per-device partitioning information
+ * @groups: Additional per-device sysfs groups
+ *
+ * This function registers the partitioning information in @disk
+ * with the kernel.
+ */
+int __must_check device_add_disk(struct device *parent, struct gendisk *disk,
+ const struct attribute_group **groups)
+{
+ return add_disk_fwnode(parent, disk, groups, NULL);
+}
EXPORT_SYMBOL(device_add_disk);
static void blk_report_disk_dead(struct gendisk *disk, bool surprise)
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index bf1aa951fda2..c0f50f977f5e 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -725,6 +725,9 @@ static inline unsigned int blk_queue_depth(struct request_queue *q)
#define for_each_bio(_bio) \
for (; _bio; _bio = _bio->bi_next)
+int __must_check add_disk_fwnode(struct device *parent, struct gendisk *disk,
+ const struct attribute_group **groups,
+ struct fwnode_handle *fwnode);
int __must_check device_add_disk(struct device *parent, struct gendisk *disk,
const struct attribute_group **groups);
static inline int __must_check add_disk(struct gendisk *disk)
--
2.45.2
next prev parent reply other threads:[~2024-10-02 22:13 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-02 22:11 [PATCH v6 0/6] block: partition table OF support Christian Marangi
2024-10-02 22:11 ` [PATCH v6 1/6] block: add support for defining read-only partitions Christian Marangi
2024-10-02 22:11 ` [PATCH v6 2/6] docs: block: Document support for read-only partition in cmdline part Christian Marangi
2024-10-02 22:11 ` Christian Marangi [this message]
2024-10-03 12:09 ` [PATCH v6 3/6] block: introduce add_disk_fwnode() Christoph Hellwig
2024-10-02 22:11 ` [PATCH v6 4/6] mmc: block: attach partitions fwnode if found in mmc-card Christian Marangi
2024-10-02 22:11 ` [PATCH v6 5/6] block: add support for partition table defined in OF Christian Marangi
2024-12-05 11:21 ` Co-existence of GPT and fixed partitions (Was: Re: [PATCH v6 5/6] block: add support for partition table defined in OF) Ahmad Fatoum
2024-12-05 11:54 ` Christian Marangi (Ansuel)
2024-12-05 12:12 ` Ahmad Fatoum
2025-06-11 18:15 ` Ahmad Fatoum
2024-10-02 22:11 ` [PATCH v6 6/6] dt-bindings: mmc: Document support for partition table in mmc-card Christian Marangi
2024-10-07 20:22 ` [PATCH v6 0/6] block: partition table OF support Jens Axboe
2024-10-08 9:10 ` Ulf Hansson
2024-10-08 13:24 ` Jens Axboe
2024-10-08 14:33 ` Ulf Hansson
2024-10-08 14:42 ` Jens Axboe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241002221306.4403-4-ansuelsmth@gmail.com \
--to=ansuelsmth@gmail.com \
--cc=adrian.hunter@intel.com \
--cc=avri.altman@wdc.com \
--cc=axboe@kernel.dk \
--cc=brauner@kernel.org \
--cc=christian@heusel.eu \
--cc=christophe.jaillet@wanadoo.fr \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=daniel@makrotopia.org \
--cc=devicetree@vger.kernel.org \
--cc=dominique.martinet@atmark-techno.com \
--cc=hch@infradead.org \
--cc=jens.wiklander@linaro.org \
--cc=jorge@foundries.io \
--cc=krzk+dt@kernel.org \
--cc=lilingfeng3@huawei.com \
--cc=linus.walleij@linaro.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=lizhijian@fujitsu.com \
--cc=lorenzo@kernel.org \
--cc=mikko.rapeli@linaro.org \
--cc=ming.lei@redhat.com \
--cc=miquel.raynal@bootlin.com \
--cc=musashino.open@gmail.com \
--cc=riyandhiman14@gmail.com \
--cc=robh@kernel.org \
--cc=ulf.hansson@linaro.org \
--cc=upstream@airoha.com \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.