media: v4l: i2c: Add a comment not to use static sub-device names in the future
authorSakari Ailus <sakari.ailus@linux.intel.com>
Mon, 24 Sep 2018 14:24:43 +0000 (10:24 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Wed, 3 Oct 2018 15:55:44 +0000 (11:55 -0400)
A number of sub-device drivers used a static name for the sub-device, and
thus the media entity. As the entity name must be unique within a media
device, this makes it impossible to have more than one instance of each
device in a media device. This is a rather severe limitation.

Instead of fixing these drivers, add a comment to the drivers noting that
such static names may not be used in the future.

The alternative of fixing the drivers is troublesome as the entity (as
well as sub-device) name is part of the uAPI. Changing that is almost
certain to break something. As these devices are old but no-one has
encountered a problem with the static names, leave it as-is.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/i2c/m5mols/m5mols_core.c
drivers/media/i2c/noon010pc30.c
drivers/media/i2c/s5c73m3/s5c73m3-core.c
drivers/media/i2c/s5k4ecgx.c
drivers/media/i2c/s5k6aa.c

index 155424a43d4c7b903214a025714adaa1a6f4573f..b8b2bf4cbfb253f4a1bd1d131cadcca325b55090 100644 (file)
@@ -987,6 +987,7 @@ static int m5mols_probe(struct i2c_client *client,
 
        sd = &info->sd;
        v4l2_i2c_subdev_init(sd, client, &m5mols_ops);
+       /* Static name; NEVER use in new drivers! */
        strscpy(sd->name, MODULE_NAME, sizeof(sd->name));
        sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
 
index 4698e40fedd24e9eee994c638559a2b3667d3eeb..11479e65a9ae15c30a4e2b2d761774109c6f79b0 100644 (file)
@@ -720,6 +720,7 @@ static int noon010_probe(struct i2c_client *client,
        mutex_init(&info->lock);
        sd = &info->sd;
        v4l2_i2c_subdev_init(sd, client, &noon010_ops);
+       /* Static name; NEVER use in new drivers! */
        strscpy(sd->name, MODULE_NAME, sizeof(sd->name));
 
        sd->internal_ops = &noon010_subdev_internal_ops;
index 21ca5186f9ed569aa804573f039b5bda4155b568..c4145194251f83e8d6aa34d9b5a5b1ac7eb7e8b6 100644 (file)
@@ -1698,6 +1698,7 @@ static int s5c73m3_probe(struct i2c_client *client,
                return ret;
 
        v4l2_i2c_subdev_init(oif_sd, client, &oif_subdev_ops);
+       /* Static name; NEVER use in new drivers! */
        strscpy(oif_sd->name, "S5C73M3-OIF", sizeof(oif_sd->name));
 
        oif_sd->internal_ops = &oif_internal_ops;
index 8c0dca6cb20cfaef23bc0decee6e421b18565a37..79aa2740edc471beb8d741695000e1ded03a2a16 100644 (file)
@@ -954,6 +954,7 @@ static int s5k4ecgx_probe(struct i2c_client *client,
        sd = &priv->sd;
        /* Registering subdev */
        v4l2_i2c_subdev_init(sd, client, &s5k4ecgx_ops);
+       /* Static name; NEVER use in new drivers! */
        strscpy(sd->name, S5K4ECGX_DRIVER_NAME, sizeof(sd->name));
 
        sd->internal_ops = &s5k4ecgx_subdev_internal_ops;
index 52ca033f706908106c05ff0fd1faebc633644a5d..63cf8db82e7df772e449c2ab53a229708609b956 100644 (file)
@@ -1576,6 +1576,7 @@ static int s5k6aa_probe(struct i2c_client *client,
 
        sd = &s5k6aa->sd;
        v4l2_i2c_subdev_init(sd, client, &s5k6aa_subdev_ops);
+       /* Static name; NEVER use in new drivers! */
        strscpy(sd->name, DRIVER_NAME, sizeof(sd->name));
 
        sd->internal_ops = &s5k6aa_subdev_internal_ops;