Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[media] V4L: remove clock name from v4l2_clk API

All uses of the v4l2_clk API so far only register one clock with a fixed
name. This allows us to get rid of it, which also will make CCF and DT
integration easier.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: Josh Wu <josh.wu@atmel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>

authored by

Guennadi Liakhovetski and committed by
Mauro Carvalho Chehab
a37462b9 9b239b22

+20 -29
+3 -3
drivers/media/platform/soc_camera/soc_camera.c
··· 1364 1364 snprintf(clk_name, sizeof(clk_name), "%d-%04x", 1365 1365 shd->i2c_adapter_id, shd->board_info->addr); 1366 1366 1367 - icd->clk = v4l2_clk_register(&soc_camera_clk_ops, clk_name, "mclk", icd); 1367 + icd->clk = v4l2_clk_register(&soc_camera_clk_ops, clk_name, icd); 1368 1368 if (IS_ERR(icd->clk)) { 1369 1369 ret = PTR_ERR(icd->clk); 1370 1370 goto eclkreg; ··· 1545 1545 snprintf(clk_name, sizeof(clk_name), "%d-%04x", 1546 1546 sasd->asd.match.i2c.adapter_id, sasd->asd.match.i2c.address); 1547 1547 1548 - icd->clk = v4l2_clk_register(&soc_camera_clk_ops, clk_name, "mclk", icd); 1548 + icd->clk = v4l2_clk_register(&soc_camera_clk_ops, clk_name, icd); 1549 1549 if (IS_ERR(icd->clk)) { 1550 1550 ret = PTR_ERR(icd->clk); 1551 1551 goto eclkreg; ··· 1650 1650 snprintf(clk_name, sizeof(clk_name), "of-%s", 1651 1651 of_node_full_name(remote)); 1652 1652 1653 - icd->clk = v4l2_clk_register(&soc_camera_clk_ops, clk_name, "mclk", icd); 1653 + icd->clk = v4l2_clk_register(&soc_camera_clk_ops, clk_name, icd); 1654 1654 if (IS_ERR(icd->clk)) { 1655 1655 ret = PTR_ERR(icd->clk); 1656 1656 goto eclkreg;
+1 -1
drivers/media/usb/em28xx/em28xx-camera.c
··· 330 330 331 331 v4l2_clk_name_i2c(clk_name, sizeof(clk_name), 332 332 i2c_adapter_id(adap), client->addr); 333 - v4l2->clk = v4l2_clk_register_fixed(clk_name, "mclk", -EINVAL); 333 + v4l2->clk = v4l2_clk_register_fixed(clk_name, -EINVAL); 334 334 if (IS_ERR(v4l2->clk)) 335 335 return PTR_ERR(v4l2->clk); 336 336
+13 -20
drivers/media/v4l2-core/v4l2-clk.c
··· 23 23 static DEFINE_MUTEX(clk_lock); 24 24 static LIST_HEAD(clk_list); 25 25 26 - static struct v4l2_clk *v4l2_clk_find(const char *dev_id, const char *id) 26 + static struct v4l2_clk *v4l2_clk_find(const char *dev_id) 27 27 { 28 28 struct v4l2_clk *clk; 29 29 30 - list_for_each_entry(clk, &clk_list, list) { 31 - if (strcmp(dev_id, clk->dev_id)) 32 - continue; 33 - 34 - if (!id || !clk->id || !strcmp(clk->id, id)) 30 + list_for_each_entry(clk, &clk_list, list) 31 + if (!strcmp(dev_id, clk->dev_id)) 35 32 return clk; 36 - } 37 33 38 34 return ERR_PTR(-ENODEV); 39 35 } ··· 39 43 struct v4l2_clk *clk; 40 44 41 45 mutex_lock(&clk_lock); 42 - clk = v4l2_clk_find(dev_name(dev), id); 46 + clk = v4l2_clk_find(dev_name(dev)); 43 47 44 48 if (!IS_ERR(clk)) 45 49 atomic_inc(&clk->use_count); ··· 123 127 mutex_lock(&clk->lock); 124 128 125 129 enable = --clk->enable; 126 - if (WARN(enable < 0, "Unbalanced %s() on %s:%s!\n", __func__, 127 - clk->dev_id, clk->id)) 130 + if (WARN(enable < 0, "Unbalanced %s() on %s!\n", __func__, 131 + clk->dev_id)) 128 132 clk->enable++; 129 133 else if (!enable && clk->ops->disable) 130 134 clk->ops->disable(clk); ··· 177 181 178 182 struct v4l2_clk *v4l2_clk_register(const struct v4l2_clk_ops *ops, 179 183 const char *dev_id, 180 - const char *id, void *priv) 184 + void *priv) 181 185 { 182 186 struct v4l2_clk *clk; 183 187 int ret; ··· 189 193 if (!clk) 190 194 return ERR_PTR(-ENOMEM); 191 195 192 - clk->id = kstrdup(id, GFP_KERNEL); 193 196 clk->dev_id = kstrdup(dev_id, GFP_KERNEL); 194 - if ((id && !clk->id) || !clk->dev_id) { 197 + if (!clk->dev_id) { 195 198 ret = -ENOMEM; 196 199 goto ealloc; 197 200 } ··· 200 205 mutex_init(&clk->lock); 201 206 202 207 mutex_lock(&clk_lock); 203 - if (!IS_ERR(v4l2_clk_find(dev_id, id))) { 208 + if (!IS_ERR(v4l2_clk_find(dev_id))) { 204 209 mutex_unlock(&clk_lock); 205 210 ret = -EEXIST; 206 211 goto eexist; ··· 212 217 213 218 eexist: 214 219 ealloc: 215 - kfree(clk->id); 216 220 kfree(clk->dev_id); 217 221 kfree(clk); 218 222 return ERR_PTR(ret); ··· 221 227 void v4l2_clk_unregister(struct v4l2_clk *clk) 222 228 { 223 229 if (WARN(atomic_read(&clk->use_count), 224 - "%s(): Refusing to unregister ref-counted %s:%s clock!\n", 225 - __func__, clk->dev_id, clk->id)) 230 + "%s(): Refusing to unregister ref-counted %s clock!\n", 231 + __func__, clk->dev_id)) 226 232 return; 227 233 228 234 mutex_lock(&clk_lock); 229 235 list_del(&clk->list); 230 236 mutex_unlock(&clk_lock); 231 237 232 - kfree(clk->id); 233 238 kfree(clk->dev_id); 234 239 kfree(clk); 235 240 } ··· 246 253 } 247 254 248 255 struct v4l2_clk *__v4l2_clk_register_fixed(const char *dev_id, 249 - const char *id, unsigned long rate, struct module *owner) 256 + unsigned long rate, struct module *owner) 250 257 { 251 258 struct v4l2_clk *clk; 252 259 struct v4l2_clk_fixed *priv = kzalloc(sizeof(*priv), GFP_KERNEL); ··· 258 265 priv->ops.get_rate = fixed_get_rate; 259 266 priv->ops.owner = owner; 260 267 261 - clk = v4l2_clk_register(&priv->ops, dev_id, id, priv); 268 + clk = v4l2_clk_register(&priv->ops, dev_id, priv); 262 269 if (IS_ERR(clk)) 263 270 kfree(priv); 264 271
+3 -5
include/media/v4l2-clk.h
··· 26 26 struct list_head list; 27 27 const struct v4l2_clk_ops *ops; 28 28 const char *dev_id; 29 - const char *id; 30 29 int enable; 31 30 struct mutex lock; /* Protect the enable count */ 32 31 atomic_t use_count; ··· 42 43 43 44 struct v4l2_clk *v4l2_clk_register(const struct v4l2_clk_ops *ops, 44 45 const char *dev_name, 45 - const char *name, void *priv); 46 + void *priv); 46 47 void v4l2_clk_unregister(struct v4l2_clk *clk); 47 48 struct v4l2_clk *v4l2_clk_get(struct device *dev, const char *id); 48 49 void v4l2_clk_put(struct v4l2_clk *clk); ··· 54 55 struct module; 55 56 56 57 struct v4l2_clk *__v4l2_clk_register_fixed(const char *dev_id, 57 - const char *id, unsigned long rate, struct module *owner); 58 + unsigned long rate, struct module *owner); 58 59 void v4l2_clk_unregister_fixed(struct v4l2_clk *clk); 59 60 60 61 static inline struct v4l2_clk *v4l2_clk_register_fixed(const char *dev_id, 61 - const char *id, 62 62 unsigned long rate) 63 63 { 64 - return __v4l2_clk_register_fixed(dev_id, id, rate, THIS_MODULE); 64 + return __v4l2_clk_register_fixed(dev_id, rate, THIS_MODULE); 65 65 } 66 66 67 67 #define v4l2_clk_name_i2c(name, size, adap, client) snprintf(name, size, \