aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/linux/nvmem-provider.h
diff options
context:
space:
mode:
authorRafał Miłecki <rafal@milecki.pl>2023-12-19 13:01:03 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-01-04 17:01:13 +0100
commit401df0d4f4098ecc9c5278da2f50756d62e5b37d (patch)
tree6b1b30fac997560ed254eb5a1fe1b330f8ec3a81 /include/linux/nvmem-provider.h
parentppdev: Remove usage of the deprecated ida_simple_xx() API (diff)
downloadwireguard-linux-401df0d4f4098ecc9c5278da2f50756d62e5b37d.tar.xz
wireguard-linux-401df0d4f4098ecc9c5278da2f50756d62e5b37d.zip
nvmem: layouts: refactor .add_cells() callback arguments
Simply pass whole "struct nvmem_layout" instead of single variables. There is nothing in "struct nvmem_layout" that we have to hide from layout drivers. They also access it during .probe() and .remove(). Thanks to this change: 1. API gets more consistent All layouts drivers callbacks get the same argument 2. Layouts get correct device Before this change NVMEM core code was passing NVMEM device instead of layout device. That resulted in: * Confusing prints * Calling devm_*() helpers on wrong device * Helpers like of_device_get_match_data() dereferencing NULLs 3. It gets possible to get match data First of all nvmem_layout_get_match_data() requires passing "struct nvmem_layout" which .add_cells() callback didn't have before this. It doesn't matter much as it's rather useless now anyway (and will be dropped). What's more important however is that of_device_get_match_data() can be used now thanks to owning a proper device pointer. Signed-off-by: Rafał Miłecki <rafal@milecki.pl> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Reviewed-by: Michael Walle <michael@walle.cc> Link: https://lore.kernel.org/r/20231219120104.3422-1-zajec5@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux/nvmem-provider.h')
-rw-r--r--include/linux/nvmem-provider.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h
index 6fe65b35ea97..81a67642ac55 100644
--- a/include/linux/nvmem-provider.h
+++ b/include/linux/nvmem-provider.h
@@ -173,7 +173,7 @@ struct nvmem_cell_table {
struct nvmem_layout {
struct device dev;
struct nvmem_device *nvmem;
- int (*add_cells)(struct device *dev, struct nvmem_device *nvmem);
+ int (*add_cells)(struct nvmem_layout *layout);
};
struct nvmem_layout_driver {