diff mbox series

[v1,2/5] device property: Constify fwnode connection match APIs

Message ID 20220927142822.4095-2-andriy.shevchenko@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series [v1,1/5] device property: Keep dev_fwnode() and dev_fwnode_const() separate | expand

Commit Message

Andy Shevchenko Sept. 27, 2022, 2:28 p.m. UTC
The fwnode and device parameters are not altered in the fwnode
connection match APIs, constify them.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/base/property.c     |  8 ++++----
 drivers/usb/roles/class.c   |  2 +-
 drivers/usb/typec/retimer.c |  2 +-
 include/linux/property.h    | 10 +++++-----
 4 files changed, 11 insertions(+), 11 deletions(-)

Comments

kernel test robot Sept. 27, 2022, 4:35 p.m. UTC | #1
Hi Andy,

I love your patch! Yet something to improve:

[auto build test ERROR on driver-core/driver-core-testing]
[cannot apply to usb/usb-testing westeri-thunderbolt/next linus/master v6.0-rc7 next-20220923]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Andy-Shevchenko/device-property-Keep-dev_fwnode-and-dev_fwnode_const-separate/20220927-223109
base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git 1da40c2667388dd70306bfd3d4dcb49fd20b50a9
config: sh-allmodconfig
compiler: sh4-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/intel-lab-lkp/linux/commit/34401a778cc4e8ddd9610bf7f76d8b7e4fff142e
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Andy-Shevchenko/device-property-Keep-dev_fwnode-and-dev_fwnode_const-separate/20220927-223109
        git checkout 34401a778cc4e8ddd9610bf7f76d8b7e4fff142e
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=sh SHELL=/bin/bash drivers/usb/typec/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/usb/typec/mux.c: In function 'fwnode_typec_switch_get':
>> drivers/usb/typec/mux.c:84:48: error: passing argument 4 of 'fwnode_connection_find_matches' from incompatible pointer type [-Werror=incompatible-pointer-types]
      84 |                                                typec_switch_match,
         |                                                ^~~~~~~~~~~~~~~~~~
         |                                                |
         |                                                void * (*)(struct fwnode_handle *, const char *, void *)
   In file included from drivers/usb/typec/mux.c:14:
   include/linux/property.h:457:54: note: expected 'devcon_match_fn_t' {aka 'void * (*)(const struct fwnode_handle *, const char *, void *)'} but argument is of type 'void * (*)(struct fwnode_handle *, const char *, void *)'
     457 |                                    devcon_match_fn_t match,
         |                                    ~~~~~~~~~~~~~~~~~~^~~~~
   drivers/usb/typec/mux.c: In function 'fwnode_typec_mux_get':
   drivers/usb/typec/mux.c:352:62: error: passing argument 4 of 'fwnode_connection_find_matches' from incompatible pointer type [-Werror=incompatible-pointer-types]
     352 |                                                (void *)desc, typec_mux_match,
         |                                                              ^~~~~~~~~~~~~~~
         |                                                              |
         |                                                              void * (*)(struct fwnode_handle *, const char *, void *)
   include/linux/property.h:457:54: note: expected 'devcon_match_fn_t' {aka 'void * (*)(const struct fwnode_handle *, const char *, void *)'} but argument is of type 'void * (*)(struct fwnode_handle *, const char *, void *)'
     457 |                                    devcon_match_fn_t match,
         |                                    ~~~~~~~~~~~~~~~~~~^~~~~
   cc1: some warnings being treated as errors


vim +/fwnode_connection_find_matches +84 drivers/usb/typec/mux.c

bdecb33af34f79 Heikki Krogerus 2018-03-20   61  
bdecb33af34f79 Heikki Krogerus 2018-03-20   62  /**
d1c6a769cdf466 Heikki Krogerus 2020-03-02   63   * fwnode_typec_switch_get - Find USB Type-C orientation switch
d1c6a769cdf466 Heikki Krogerus 2020-03-02   64   * @fwnode: The caller device node
bdecb33af34f79 Heikki Krogerus 2018-03-20   65   *
bdecb33af34f79 Heikki Krogerus 2018-03-20   66   * Finds a switch linked with @dev. Returns a reference to the switch on
bdecb33af34f79 Heikki Krogerus 2018-03-20   67   * success, NULL if no matching connection was found, or
bdecb33af34f79 Heikki Krogerus 2018-03-20   68   * ERR_PTR(-EPROBE_DEFER) when a connection was found but the switch
bdecb33af34f79 Heikki Krogerus 2018-03-20   69   * has not been enumerated yet.
bdecb33af34f79 Heikki Krogerus 2018-03-20   70   */
d1c6a769cdf466 Heikki Krogerus 2020-03-02   71  struct typec_switch *fwnode_typec_switch_get(struct fwnode_handle *fwnode)
bdecb33af34f79 Heikki Krogerus 2018-03-20   72  {
71793b579ba682 Bjorn Andersson 2022-04-22   73  	struct typec_switch_dev *sw_devs[TYPEC_MUX_MAX_DEVS];
bdecb33af34f79 Heikki Krogerus 2018-03-20   74  	struct typec_switch *sw;
71793b579ba682 Bjorn Andersson 2022-04-22   75  	int count;
71793b579ba682 Bjorn Andersson 2022-04-22   76  	int err;
71793b579ba682 Bjorn Andersson 2022-04-22   77  	int i;
bdecb33af34f79 Heikki Krogerus 2018-03-20   78  
713fd49b430c37 Bjorn Andersson 2022-04-22   79  	sw = kzalloc(sizeof(*sw), GFP_KERNEL);
713fd49b430c37 Bjorn Andersson 2022-04-22   80  	if (!sw)
713fd49b430c37 Bjorn Andersson 2022-04-22   81  		return ERR_PTR(-ENOMEM);
713fd49b430c37 Bjorn Andersson 2022-04-22   82  
71793b579ba682 Bjorn Andersson 2022-04-22   83  	count = fwnode_connection_find_matches(fwnode, "orientation-switch", NULL,
71793b579ba682 Bjorn Andersson 2022-04-22  @84  					       typec_switch_match,
71793b579ba682 Bjorn Andersson 2022-04-22   85  					       (void **)sw_devs,
71793b579ba682 Bjorn Andersson 2022-04-22   86  					       ARRAY_SIZE(sw_devs));
71793b579ba682 Bjorn Andersson 2022-04-22   87  	if (count <= 0) {
713fd49b430c37 Bjorn Andersson 2022-04-22   88  		kfree(sw);
71793b579ba682 Bjorn Andersson 2022-04-22   89  		return NULL;
713fd49b430c37 Bjorn Andersson 2022-04-22   90  	}
713fd49b430c37 Bjorn Andersson 2022-04-22   91  
71793b579ba682 Bjorn Andersson 2022-04-22   92  	for (i = 0; i < count; i++) {
71793b579ba682 Bjorn Andersson 2022-04-22   93  		if (IS_ERR(sw_devs[i])) {
71793b579ba682 Bjorn Andersson 2022-04-22   94  			err = PTR_ERR(sw_devs[i]);
71793b579ba682 Bjorn Andersson 2022-04-22   95  			goto put_sw_devs;
71793b579ba682 Bjorn Andersson 2022-04-22   96  		}
71793b579ba682 Bjorn Andersson 2022-04-22   97  	}
713fd49b430c37 Bjorn Andersson 2022-04-22   98  
71793b579ba682 Bjorn Andersson 2022-04-22   99  	for (i = 0; i < count; i++) {
71793b579ba682 Bjorn Andersson 2022-04-22  100  		WARN_ON(!try_module_get(sw_devs[i]->dev.parent->driver->owner));
71793b579ba682 Bjorn Andersson 2022-04-22  101  		sw->sw_devs[i] = sw_devs[i];
71793b579ba682 Bjorn Andersson 2022-04-22  102  	}
71793b579ba682 Bjorn Andersson 2022-04-22  103  
71793b579ba682 Bjorn Andersson 2022-04-22  104  	sw->num_sw_devs = count;
bdecb33af34f79 Heikki Krogerus 2018-03-20  105  
bdecb33af34f79 Heikki Krogerus 2018-03-20  106  	return sw;
71793b579ba682 Bjorn Andersson 2022-04-22  107  
71793b579ba682 Bjorn Andersson 2022-04-22  108  put_sw_devs:
71793b579ba682 Bjorn Andersson 2022-04-22  109  	for (i = 0; i < count; i++) {
71793b579ba682 Bjorn Andersson 2022-04-22  110  		if (!IS_ERR(sw_devs[i]))
71793b579ba682 Bjorn Andersson 2022-04-22  111  			put_device(&sw_devs[i]->dev);
71793b579ba682 Bjorn Andersson 2022-04-22  112  	}
71793b579ba682 Bjorn Andersson 2022-04-22  113  
71793b579ba682 Bjorn Andersson 2022-04-22  114  	kfree(sw);
71793b579ba682 Bjorn Andersson 2022-04-22  115  
71793b579ba682 Bjorn Andersson 2022-04-22  116  	return ERR_PTR(err);
bdecb33af34f79 Heikki Krogerus 2018-03-20  117  }
d1c6a769cdf466 Heikki Krogerus 2020-03-02  118  EXPORT_SYMBOL_GPL(fwnode_typec_switch_get);
bdecb33af34f79 Heikki Krogerus 2018-03-20  119
Andy Shevchenko Sept. 27, 2022, 5:33 p.m. UTC | #2
On Wed, Sep 28, 2022 at 12:35:10AM +0800, kernel test robot wrote:
> Hi Andy,
> 
> I love your patch! Yet something to improve:
> 
> [auto build test ERROR on driver-core/driver-core-testing]
> [cannot apply to usb/usb-testing westeri-thunderbolt/next linus/master v6.0-rc7 next-20220923]
> [If your patch is applied to the wrong git tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in
> https://git-scm.com/docs/git-format-patch#_base_tree_information]
> 
> url:    https://github.com/intel-lab-lkp/linux/commits/Andy-Shevchenko/device-property-Keep-dev_fwnode-and-dev_fwnode_const-separate/20220927-223109
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git 1da40c2667388dd70306bfd3d4dcb49fd20b50a9
> config: sh-allmodconfig
> compiler: sh4-linux-gcc (GCC) 12.1.0
> reproduce (this is a W=1 build):
>         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # https://github.com/intel-lab-lkp/linux/commit/34401a778cc4e8ddd9610bf7f76d8b7e4fff142e
>         git remote add linux-review https://github.com/intel-lab-lkp/linux
>         git fetch --no-tags linux-review Andy-Shevchenko/device-property-Keep-dev_fwnode-and-dev_fwnode_const-separate/20220927-223109
>         git checkout 34401a778cc4e8ddd9610bf7f76d8b7e4fff142e
>         # save the config file
>         mkdir build_dir && cp config build_dir/.config
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=sh SHELL=/bin/bash drivers/usb/typec/
> 
> If you fix the issue, kindly add following tag where applicable
> | Reported-by: kernel test robot <lkp@intel.com>
> 
> All errors (new ones prefixed by >>):

Thanks, fixed locally for v2.
kernel test robot Sept. 27, 2022, 7:28 p.m. UTC | #3
Hi Andy,

I love your patch! Yet something to improve:

[auto build test ERROR on driver-core/driver-core-testing]
[cannot apply to usb/usb-testing westeri-thunderbolt/next linus/master v6.0-rc7 next-20220923]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Andy-Shevchenko/device-property-Keep-dev_fwnode-and-dev_fwnode_const-separate/20220927-223109
base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git 1da40c2667388dd70306bfd3d4dcb49fd20b50a9
config: hexagon-randconfig-r045-20220927
compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project 791a7ae1ba3efd6bca96338e10ffde557ba83920)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/intel-lab-lkp/linux/commit/34401a778cc4e8ddd9610bf7f76d8b7e4fff142e
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Andy-Shevchenko/device-property-Keep-dev_fwnode-and-dev_fwnode_const-separate/20220927-223109
        git checkout 34401a778cc4e8ddd9610bf7f76d8b7e4fff142e
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/usb/typec/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> drivers/usb/typec/mux.c:84:13: error: incompatible function pointer types passing 'void *(struct fwnode_handle *, const char *, void *)' to parameter of type 'devcon_match_fn_t' (aka 'void *(*)(const struct fwnode_handle *, const char *, void *)') [-Wincompatible-function-pointer-types]
                                                  typec_switch_match,
                                                  ^~~~~~~~~~~~~~~~~~
   include/linux/property.h:457:26: note: passing argument to parameter 'match' here
                                      devcon_match_fn_t match,
                                                        ^
   drivers/usb/typec/mux.c:352:27: error: incompatible function pointer types passing 'void *(struct fwnode_handle *, const char *, void *)' to parameter of type 'devcon_match_fn_t' (aka 'void *(*)(const struct fwnode_handle *, const char *, void *)') [-Wincompatible-function-pointer-types]
                                                  (void *)desc, typec_mux_match,
                                                                ^~~~~~~~~~~~~~~
   include/linux/property.h:457:26: note: passing argument to parameter 'match' here
                                      devcon_match_fn_t match,
                                                        ^
   2 errors generated.


vim +84 drivers/usb/typec/mux.c

bdecb33af34f79 Heikki Krogerus 2018-03-20   61  
bdecb33af34f79 Heikki Krogerus 2018-03-20   62  /**
d1c6a769cdf466 Heikki Krogerus 2020-03-02   63   * fwnode_typec_switch_get - Find USB Type-C orientation switch
d1c6a769cdf466 Heikki Krogerus 2020-03-02   64   * @fwnode: The caller device node
bdecb33af34f79 Heikki Krogerus 2018-03-20   65   *
bdecb33af34f79 Heikki Krogerus 2018-03-20   66   * Finds a switch linked with @dev. Returns a reference to the switch on
bdecb33af34f79 Heikki Krogerus 2018-03-20   67   * success, NULL if no matching connection was found, or
bdecb33af34f79 Heikki Krogerus 2018-03-20   68   * ERR_PTR(-EPROBE_DEFER) when a connection was found but the switch
bdecb33af34f79 Heikki Krogerus 2018-03-20   69   * has not been enumerated yet.
bdecb33af34f79 Heikki Krogerus 2018-03-20   70   */
d1c6a769cdf466 Heikki Krogerus 2020-03-02   71  struct typec_switch *fwnode_typec_switch_get(struct fwnode_handle *fwnode)
bdecb33af34f79 Heikki Krogerus 2018-03-20   72  {
71793b579ba682 Bjorn Andersson 2022-04-22   73  	struct typec_switch_dev *sw_devs[TYPEC_MUX_MAX_DEVS];
bdecb33af34f79 Heikki Krogerus 2018-03-20   74  	struct typec_switch *sw;
71793b579ba682 Bjorn Andersson 2022-04-22   75  	int count;
71793b579ba682 Bjorn Andersson 2022-04-22   76  	int err;
71793b579ba682 Bjorn Andersson 2022-04-22   77  	int i;
bdecb33af34f79 Heikki Krogerus 2018-03-20   78  
713fd49b430c37 Bjorn Andersson 2022-04-22   79  	sw = kzalloc(sizeof(*sw), GFP_KERNEL);
713fd49b430c37 Bjorn Andersson 2022-04-22   80  	if (!sw)
713fd49b430c37 Bjorn Andersson 2022-04-22   81  		return ERR_PTR(-ENOMEM);
713fd49b430c37 Bjorn Andersson 2022-04-22   82  
71793b579ba682 Bjorn Andersson 2022-04-22   83  	count = fwnode_connection_find_matches(fwnode, "orientation-switch", NULL,
71793b579ba682 Bjorn Andersson 2022-04-22  @84  					       typec_switch_match,
71793b579ba682 Bjorn Andersson 2022-04-22   85  					       (void **)sw_devs,
71793b579ba682 Bjorn Andersson 2022-04-22   86  					       ARRAY_SIZE(sw_devs));
71793b579ba682 Bjorn Andersson 2022-04-22   87  	if (count <= 0) {
713fd49b430c37 Bjorn Andersson 2022-04-22   88  		kfree(sw);
71793b579ba682 Bjorn Andersson 2022-04-22   89  		return NULL;
713fd49b430c37 Bjorn Andersson 2022-04-22   90  	}
713fd49b430c37 Bjorn Andersson 2022-04-22   91  
71793b579ba682 Bjorn Andersson 2022-04-22   92  	for (i = 0; i < count; i++) {
71793b579ba682 Bjorn Andersson 2022-04-22   93  		if (IS_ERR(sw_devs[i])) {
71793b579ba682 Bjorn Andersson 2022-04-22   94  			err = PTR_ERR(sw_devs[i]);
71793b579ba682 Bjorn Andersson 2022-04-22   95  			goto put_sw_devs;
71793b579ba682 Bjorn Andersson 2022-04-22   96  		}
71793b579ba682 Bjorn Andersson 2022-04-22   97  	}
713fd49b430c37 Bjorn Andersson 2022-04-22   98  
71793b579ba682 Bjorn Andersson 2022-04-22   99  	for (i = 0; i < count; i++) {
71793b579ba682 Bjorn Andersson 2022-04-22  100  		WARN_ON(!try_module_get(sw_devs[i]->dev.parent->driver->owner));
71793b579ba682 Bjorn Andersson 2022-04-22  101  		sw->sw_devs[i] = sw_devs[i];
71793b579ba682 Bjorn Andersson 2022-04-22  102  	}
71793b579ba682 Bjorn Andersson 2022-04-22  103  
71793b579ba682 Bjorn Andersson 2022-04-22  104  	sw->num_sw_devs = count;
bdecb33af34f79 Heikki Krogerus 2018-03-20  105  
bdecb33af34f79 Heikki Krogerus 2018-03-20  106  	return sw;
71793b579ba682 Bjorn Andersson 2022-04-22  107  
71793b579ba682 Bjorn Andersson 2022-04-22  108  put_sw_devs:
71793b579ba682 Bjorn Andersson 2022-04-22  109  	for (i = 0; i < count; i++) {
71793b579ba682 Bjorn Andersson 2022-04-22  110  		if (!IS_ERR(sw_devs[i]))
71793b579ba682 Bjorn Andersson 2022-04-22  111  			put_device(&sw_devs[i]->dev);
71793b579ba682 Bjorn Andersson 2022-04-22  112  	}
71793b579ba682 Bjorn Andersson 2022-04-22  113  
71793b579ba682 Bjorn Andersson 2022-04-22  114  	kfree(sw);
71793b579ba682 Bjorn Andersson 2022-04-22  115  
71793b579ba682 Bjorn Andersson 2022-04-22  116  	return ERR_PTR(err);
bdecb33af34f79 Heikki Krogerus 2018-03-20  117  }
d1c6a769cdf466 Heikki Krogerus 2020-03-02  118  EXPORT_SYMBOL_GPL(fwnode_typec_switch_get);
bdecb33af34f79 Heikki Krogerus 2018-03-20  119
diff mbox series

Patch

diff --git a/drivers/base/property.c b/drivers/base/property.c
index 699f1b115e0a..1a1616c9b599 100644
--- a/drivers/base/property.c
+++ b/drivers/base/property.c
@@ -1213,7 +1213,7 @@  const void *device_get_match_data(const struct device *dev)
 }
 EXPORT_SYMBOL_GPL(device_get_match_data);
 
-static unsigned int fwnode_graph_devcon_matches(struct fwnode_handle *fwnode,
+static unsigned int fwnode_graph_devcon_matches(const struct fwnode_handle *fwnode,
 						const char *con_id, void *data,
 						devcon_match_fn_t match,
 						void **matches,
@@ -1247,7 +1247,7 @@  static unsigned int fwnode_graph_devcon_matches(struct fwnode_handle *fwnode,
 	return count;
 }
 
-static unsigned int fwnode_devcon_matches(struct fwnode_handle *fwnode,
+static unsigned int fwnode_devcon_matches(const struct fwnode_handle *fwnode,
 					  const char *con_id, void *data,
 					  devcon_match_fn_t match,
 					  void **matches,
@@ -1289,7 +1289,7 @@  static unsigned int fwnode_devcon_matches(struct fwnode_handle *fwnode,
  * device node. @match will be used to convert the connection description to
  * data the caller is expecting to be returned.
  */
-void *fwnode_connection_find_match(struct fwnode_handle *fwnode,
+void *fwnode_connection_find_match(const struct fwnode_handle *fwnode,
 				   const char *con_id, void *data,
 				   devcon_match_fn_t match)
 {
@@ -1326,7 +1326,7 @@  EXPORT_SYMBOL_GPL(fwnode_connection_find_match);
  *
  * Return: Number of matches resolved, or negative errno.
  */
-int fwnode_connection_find_matches(struct fwnode_handle *fwnode,
+int fwnode_connection_find_matches(const struct fwnode_handle *fwnode,
 				   const char *con_id, void *data,
 				   devcon_match_fn_t match,
 				   void **matches, unsigned int matches_len)
diff --git a/drivers/usb/roles/class.c b/drivers/usb/roles/class.c
index dfaed7eee94f..a3575a5a18ce 100644
--- a/drivers/usb/roles/class.c
+++ b/drivers/usb/roles/class.c
@@ -87,7 +87,7 @@  enum usb_role usb_role_switch_get_role(struct usb_role_switch *sw)
 }
 EXPORT_SYMBOL_GPL(usb_role_switch_get_role);
 
-static void *usb_role_switch_match(struct fwnode_handle *fwnode, const char *id,
+static void *usb_role_switch_match(const struct fwnode_handle *fwnode, const char *id,
 				   void *data)
 {
 	struct device *dev;
diff --git a/drivers/usb/typec/retimer.c b/drivers/usb/typec/retimer.c
index 2003731f1bee..8edfdc709a28 100644
--- a/drivers/usb/typec/retimer.c
+++ b/drivers/usb/typec/retimer.c
@@ -34,7 +34,7 @@  static int retimer_fwnode_match(struct device *dev, const void *fwnode)
 	return dev_fwnode(dev) == fwnode && dev_name_ends_with(dev, "-retimer");
 }
 
-static void *typec_retimer_match(struct fwnode_handle *fwnode, const char *id, void *data)
+static void *typec_retimer_match(const struct fwnode_handle *fwnode, const char *id, void *data)
 {
 	struct device *dev;
 
diff --git a/include/linux/property.h b/include/linux/property.h
index ae5d7f8eccf4..6f9d6604edc3 100644
--- a/include/linux/property.h
+++ b/include/linux/property.h
@@ -438,21 +438,21 @@  unsigned int fwnode_graph_get_endpoint_count(struct fwnode_handle *fwnode,
 int fwnode_graph_parse_endpoint(const struct fwnode_handle *fwnode,
 				struct fwnode_endpoint *endpoint);
 
-typedef void *(*devcon_match_fn_t)(struct fwnode_handle *fwnode, const char *id,
+typedef void *(*devcon_match_fn_t)(const struct fwnode_handle *fwnode, const char *id,
 				   void *data);
 
-void *fwnode_connection_find_match(struct fwnode_handle *fwnode,
+void *fwnode_connection_find_match(const struct fwnode_handle *fwnode,
 				   const char *con_id, void *data,
 				   devcon_match_fn_t match);
 
-static inline void *device_connection_find_match(struct device *dev,
+static inline void *device_connection_find_match(const struct device *dev,
 						 const char *con_id, void *data,
 						 devcon_match_fn_t match)
 {
-	return fwnode_connection_find_match(dev_fwnode(dev), con_id, data, match);
+	return fwnode_connection_find_match(dev_fwnode_const(dev), con_id, data, match);
 }
 
-int fwnode_connection_find_matches(struct fwnode_handle *fwnode,
+int fwnode_connection_find_matches(const struct fwnode_handle *fwnode,
 				   const char *con_id, void *data,
 				   devcon_match_fn_t match,
 				   void **matches, unsigned int matches_len);