Static naming causes problems when multiple devices are registered.

Signed-off-by: Robin van der Gracht <ro...@protonic.nl>
---
 drivers/auxdisplay/ht16k33.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/auxdisplay/ht16k33.c b/drivers/auxdisplay/ht16k33.c
index eeb323f..9c09bbc 100644
--- a/drivers/auxdisplay/ht16k33.c
+++ b/drivers/auxdisplay/ht16k33.c
@@ -345,6 +345,7 @@ static int ht16k33_probe(struct i2c_client *client,
        struct ht16k33_keypad *keypad;
        struct ht16k33_fbdev *fbdev;
        struct device_node *node = client->dev.of_node;
+       const char *dev_id = dev_name(&client->dev);
 
        if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
                dev_err(&client->dev, "i2c_check_functionality error\n");
@@ -365,7 +366,7 @@ static int ht16k33_probe(struct i2c_client *client,
        fbdev = &priv->fbdev;
        keypad = &priv->keypad;
 
-       priv->workqueue = create_singlethread_workqueue(DRIVER_NAME "-wq");
+       priv->workqueue = create_singlethread_workqueue(dev_id);
        if (priv->workqueue == NULL)
                return -ENOMEM;
 
@@ -422,7 +423,7 @@ static int ht16k33_probe(struct i2c_client *client,
                goto err_fbdev_unregister;
        }
 
-       keypad->dev->name = DRIVER_NAME"-keypad";
+       keypad->dev->name = dev_id;
        keypad->dev->id.bustype = BUS_I2C;
        keypad->dev->open = ht16k33_keypad_start;
        keypad->dev->close = ht16k33_keypad_stop;
@@ -476,7 +477,7 @@ static int ht16k33_probe(struct i2c_client *client,
        bl_props.type = BACKLIGHT_RAW;
        bl_props.max_brightness = MAX_BRIGHTNESS;
 
-       bl = devm_backlight_device_register(&client->dev, DRIVER_NAME"-bl",
+       bl = devm_backlight_device_register(&client->dev, dev_id,
                                            &client->dev, priv,
                                            &ht16k33_bl_ops, &bl_props);
        if (IS_ERR(bl)) {
-- 
2.7.4

Reply via email to