From: Jonathan Cameron Date: Sat, 17 Feb 2024 16:42:36 +0000 (+0000) Subject: device property: Add cleanup.h based fwnode_handle_put() scope based cleanup. X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=59ed5e2d505bf5f9b4af64d0021cd0c96aec1f7c;p=linux.git device property: Add cleanup.h based fwnode_handle_put() scope based cleanup. Useful where the fwnode_handle was obtained from a call such as fwnode_find_reference() as it will safely do nothing if IS_ERR() is true and will automatically release the reference on the variable leaving scope. Reviewed-by: Andy Shevchenko Acked-by: Greg Kroah-Hartman Reviewed-by: Sakari Ailus Link: https://lore.kernel.org/r/20240217164249.921878-3-jic23@kernel.org Signed-off-by: Jonathan Cameron --- diff --git a/include/linux/property.h b/include/linux/property.h index 93d992a92f59e..1322f0cce77a0 100644 --- a/include/linux/property.h +++ b/include/linux/property.h @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -194,6 +195,8 @@ static inline void fwnode_handle_put(struct fwnode_handle *fwnode) fwnode_call_void_op(fwnode, put); } +DEFINE_FREE(fwnode_handle, struct fwnode_handle *, fwnode_handle_put(_T)) + int fwnode_irq_get(const struct fwnode_handle *fwnode, unsigned int index); int fwnode_irq_get_byname(const struct fwnode_handle *fwnode, const char *name);