Lines Matching refs:priv

45 	struct cr0014114	*priv;
80 static int cr0014114_recount(struct cr0014114 *priv)
86 dev_dbg(priv->dev, "LEDs recount is started\n");
89 ret = spi_write(priv->spi, &cmd, sizeof(cmd));
94 for (i = 0; i < priv->count; i++) {
97 ret = spi_write(priv->spi, &cmd, sizeof(cmd));
103 dev_dbg(priv->dev, "LEDs recount is finished\n");
106 dev_err(priv->dev, "with error %d", ret);
111 static int cr0014114_sync(struct cr0014114 *priv)
118 if (time_after(priv->delay, now)) {
119 udelay = jiffies_to_usecs(priv->delay - now);
123 if (unlikely(priv->do_recount)) {
124 ret = cr0014114_recount(priv);
128 priv->do_recount = false;
132 priv->buf[0] = CR_SET_BRIGHTNESS;
133 for (i = 0; i < priv->count; i++)
134 priv->buf[i + 1] = priv->leds[i].brightness;
135 cr0014114_calc_crc(priv->buf, priv->count + 2);
136 ret = spi_write(priv->spi, priv->buf, priv->count + 2);
139 priv->delay = jiffies + msecs_to_jiffies(CR_FW_DELAY_MSEC);
147 struct cr0014114 *priv = container_of(work,
151 mutex_lock(&priv->lock);
152 priv->do_recount = true;
153 ret = cr0014114_sync(priv);
154 mutex_unlock(&priv->lock);
157 dev_warn(priv->dev, "sync of LEDs failed %d\n", ret);
159 schedule_delayed_work(&priv->work, CR_RECOUNT_DELAY);
170 dev_dbg(led->priv->dev, "Set brightness to %d\n", brightness);
172 mutex_lock(&led->priv->lock);
174 ret = cr0014114_sync(led->priv);
175 mutex_unlock(&led->priv->lock);
180 static int cr0014114_probe_dt(struct cr0014114 *priv)
188 device_for_each_child_node(priv->dev, child) {
189 led = &priv->leds[i];
191 led->priv = priv;
199 ret = devm_led_classdev_register_ext(priv->dev, &led->ldev,
202 dev_err(priv->dev,
216 struct cr0014114 *priv;
226 priv = devm_kzalloc(&spi->dev, struct_size(priv, leds, count),
228 if (!priv)
231 priv->buf = devm_kzalloc(&spi->dev, count + 2, GFP_KERNEL);
232 if (!priv->buf)
235 mutex_init(&priv->lock);
236 INIT_DELAYED_WORK(&priv->work, cr0014114_recount_work);
237 priv->count = count;
238 priv->dev = &spi->dev;
239 priv->spi = spi;
240 priv->delay = jiffies -
243 priv->do_recount = true;
244 ret = cr0014114_sync(priv);
246 dev_err(priv->dev, "first recount failed %d\n", ret);
250 priv->do_recount = true;
251 ret = cr0014114_sync(priv);
253 dev_err(priv->dev, "second recount failed %d\n", ret);
257 ret = cr0014114_probe_dt(priv);
262 schedule_delayed_work(&priv->work, CR_RECOUNT_DELAY);
264 spi_set_drvdata(spi, priv);
271 struct cr0014114 *priv = spi_get_drvdata(spi);
273 cancel_delayed_work_sync(&priv->work);
274 mutex_destroy(&priv->lock);