From: Pierre-Louis Bossart <pierre-louis.boss...@linux.intel.com>

None of the existing codec drivers set the sdw_driver.name, but
instead set sdw_driver.driver.name.

This leads to error messages such as
[   23.935355] rt700 sdw:2:25d:700:0: Probe of (null) failed: -19

We could remove this sdw_driver.name if it doesn't have any
purpose. This patch only suggests using the proper indirection.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.boss...@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovet...@intel.com>
Reviewed-by: Kai Vehmanen <kai.vehma...@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.l...@linux.intel.com>
---
 drivers/soundwire/bus_type.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/drivers/soundwire/bus_type.c b/drivers/soundwire/bus_type.c
index 575b9bad99d5..893296f3fe39 100644
--- a/drivers/soundwire/bus_type.c
+++ b/drivers/soundwire/bus_type.c
@@ -82,6 +82,7 @@ static int sdw_drv_probe(struct device *dev)
        struct sdw_slave *slave = dev_to_sdw_dev(dev);
        struct sdw_driver *drv = drv_to_sdw_driver(dev->driver);
        const struct sdw_device_id *id;
+       const char *name;
        int ret;
 
        /*
@@ -108,7 +109,10 @@ static int sdw_drv_probe(struct device *dev)
 
        ret = drv->probe(slave, id);
        if (ret) {
-               dev_err(dev, "Probe of %s failed: %d\n", drv->name, ret);
+               name = drv->name;
+               if (!name)
+                       name = drv->driver.name;
+               dev_err(dev, "Probe of %s failed: %d\n", name, ret);
                dev_pm_domain_detach(dev, false);
                return ret;
        }
@@ -174,11 +178,16 @@ static void sdw_drv_shutdown(struct device *dev)
  */
 int __sdw_register_driver(struct sdw_driver *drv, struct module *owner)
 {
+       const char *name;
+
        drv->driver.bus = &sdw_bus_type;
 
        if (!drv->probe) {
-               pr_err("driver %s didn't provide SDW probe routine\n",
-                      drv->name);
+               name = drv->name;
+               if (!name)
+                       name = drv->driver.name;
+
+               pr_err("driver %s didn't provide SDW probe routine\n", name);
                return -EINVAL;
        }
 
-- 
2.17.1

Reply via email to