drivers/auxdisplay/ht16k33.c
109
container_of(p, struct ht16k33_priv, linedisp)
drivers/auxdisplay/ht16k33.c
403
struct linedisp_map *map = priv->linedisp.map;
drivers/auxdisplay/ht16k33.c
404
char *s = priv->linedisp.buf;
drivers/auxdisplay/ht16k33.c
423
struct linedisp_map *map = priv->linedisp.map;
drivers/auxdisplay/ht16k33.c
424
char *s = priv->linedisp.buf;
drivers/auxdisplay/ht16k33.c
435
static int ht16k33_linedisp_get_map_type(struct linedisp *linedisp)
drivers/auxdisplay/ht16k33.c
437
struct ht16k33_priv *priv = ht16k33_linedisp_to_priv(linedisp);
drivers/auxdisplay/ht16k33.c
453
static void ht16k33_linedisp_update(struct linedisp *linedisp)
drivers/auxdisplay/ht16k33.c
455
struct ht16k33_priv *priv = ht16k33_linedisp_to_priv(linedisp);
drivers/auxdisplay/ht16k33.c
647
struct linedisp *linedisp = &priv->linedisp;
drivers/auxdisplay/ht16k33.c
654
return linedisp_register(linedisp, dev, 4, &ht16k33_linedisp_ops);
drivers/auxdisplay/ht16k33.c
739
linedisp_unregister(&priv->linedisp);
drivers/auxdisplay/ht16k33.c
96
struct linedisp linedisp;
drivers/auxdisplay/img-ascii-lcd.c
170
static void sead3_update(struct linedisp *linedisp)
drivers/auxdisplay/img-ascii-lcd.c
173
container_of(linedisp, struct img_ascii_lcd_ctx, linedisp);
drivers/auxdisplay/img-ascii-lcd.c
177
for (i = 0; i < linedisp->num_chars; i++) {
drivers/auxdisplay/img-ascii-lcd.c
194
linedisp->buf[i]);
drivers/auxdisplay/img-ascii-lcd.c
252
err = linedisp_register(&ctx->linedisp, dev, cfg->num_chars, &cfg->ops);
drivers/auxdisplay/img-ascii-lcd.c
258
&ctx->linedisp.dev.kobj,
drivers/auxdisplay/img-ascii-lcd.c
267
linedisp_unregister(&ctx->linedisp);
drivers/auxdisplay/img-ascii-lcd.c
283
linedisp_unregister(&ctx->linedisp);
drivers/auxdisplay/img-ascii-lcd.c
41
struct linedisp linedisp;
drivers/auxdisplay/img-ascii-lcd.c
53
static void boston_update(struct linedisp *linedisp)
drivers/auxdisplay/img-ascii-lcd.c
56
container_of(linedisp, struct img_ascii_lcd_ctx, linedisp);
drivers/auxdisplay/img-ascii-lcd.c
60
val = *((u64 *)&linedisp->buf[0]);
drivers/auxdisplay/img-ascii-lcd.c
63
val = *((u32 *)&linedisp->buf[0]);
drivers/auxdisplay/img-ascii-lcd.c
65
val = *((u32 *)&linedisp->buf[4]);
drivers/auxdisplay/img-ascii-lcd.c
83
static void malta_update(struct linedisp *linedisp)
drivers/auxdisplay/img-ascii-lcd.c
86
container_of(linedisp, struct img_ascii_lcd_ctx, linedisp);
drivers/auxdisplay/img-ascii-lcd.c
90
for (i = 0; i < linedisp->num_chars; i++) {
drivers/auxdisplay/img-ascii-lcd.c
92
ctx->offset + (i * 8), linedisp->buf[i]);
drivers/auxdisplay/line-display.c
110
return attachment->linedisp;
drivers/auxdisplay/line-display.c
113
static inline bool should_scroll(struct linedisp *linedisp)
drivers/auxdisplay/line-display.c
115
return linedisp->message_len > linedisp->num_chars && linedisp->scroll_rate;
drivers/auxdisplay/line-display.c
127
struct linedisp *linedisp = timer_container_of(linedisp, t, timer);
drivers/auxdisplay/line-display.c
128
unsigned int i, ch = linedisp->scroll_pos;
drivers/auxdisplay/line-display.c
129
unsigned int num_chars = linedisp->num_chars;
drivers/auxdisplay/line-display.c
134
for (; i < num_chars && ch < linedisp->message_len; i++, ch++)
drivers/auxdisplay/line-display.c
135
linedisp->buf[i] = linedisp->message[ch];
drivers/auxdisplay/line-display.c
142
linedisp->ops->update(linedisp);
drivers/auxdisplay/line-display.c
145
linedisp->scroll_pos++;
drivers/auxdisplay/line-display.c
146
linedisp->scroll_pos %= linedisp->message_len;
drivers/auxdisplay/line-display.c
149
mod_timer(&linedisp->timer, jiffies + linedisp->scroll_rate);
drivers/auxdisplay/line-display.c
164
static int linedisp_display(struct linedisp *linedisp, const char *msg,
drivers/auxdisplay/line-display.c
170
timer_delete_sync(&linedisp->timer);
drivers/auxdisplay/line-display.c
181
kfree(linedisp->message);
drivers/auxdisplay/line-display.c
182
linedisp->message = NULL;
drivers/auxdisplay/line-display.c
183
linedisp->message_len = 0;
drivers/auxdisplay/line-display.c
184
memset(linedisp->buf, ' ', linedisp->num_chars);
drivers/auxdisplay/line-display.c
185
linedisp->ops->update(linedisp);
drivers/auxdisplay/line-display.c
193
kfree(linedisp->message);
drivers/auxdisplay/line-display.c
195
linedisp->message = new_msg;
drivers/auxdisplay/line-display.c
196
linedisp->message_len = count;
drivers/auxdisplay/line-display.c
197
linedisp->scroll_pos = 0;
drivers/auxdisplay/line-display.c
199
if (should_scroll(linedisp)) {
drivers/auxdisplay/line-display.c
201
linedisp_scroll(&linedisp->timer);
drivers/auxdisplay/line-display.c
204
memset(linedisp->buf, ' ', linedisp->num_chars);
drivers/auxdisplay/line-display.c
205
memcpy(linedisp->buf, linedisp->message,
drivers/auxdisplay/line-display.c
206
umin(linedisp->num_chars, linedisp->message_len));
drivers/auxdisplay/line-display.c
207
linedisp->ops->update(linedisp);
drivers/auxdisplay/line-display.c
227
struct linedisp *linedisp = to_linedisp(dev);
drivers/auxdisplay/line-display.c
229
return sysfs_emit(buf, "%s\n", linedisp->message);
drivers/auxdisplay/line-display.c
246
struct linedisp *linedisp = to_linedisp(dev);
drivers/auxdisplay/line-display.c
249
err = linedisp_display(linedisp, buf, count);
drivers/auxdisplay/line-display.c
258
struct linedisp *linedisp = to_linedisp(dev);
drivers/auxdisplay/line-display.c
260
return sysfs_emit(buf, "%u\n", linedisp->num_chars);
drivers/auxdisplay/line-display.c
268
struct linedisp *linedisp = to_linedisp(dev);
drivers/auxdisplay/line-display.c
270
return sysfs_emit(buf, "%u\n", jiffies_to_msecs(linedisp->scroll_rate));
drivers/auxdisplay/line-display.c
277
struct linedisp *linedisp = to_linedisp(dev);
drivers/auxdisplay/line-display.c
285
timer_delete_sync(&linedisp->timer);
drivers/auxdisplay/line-display.c
287
linedisp->scroll_rate = msecs_to_jiffies(ms);
drivers/auxdisplay/line-display.c
289
if (should_scroll(linedisp))
drivers/auxdisplay/line-display.c
290
linedisp_scroll(&linedisp->timer);
drivers/auxdisplay/line-display.c
299
struct linedisp *linedisp = to_linedisp(dev);
drivers/auxdisplay/line-display.c
300
struct linedisp_map *map = linedisp->map;
drivers/auxdisplay/line-display.c
309
struct linedisp *linedisp = to_linedisp(dev);
drivers/auxdisplay/line-display.c
310
struct linedisp_map *map = linedisp->map;
drivers/auxdisplay/line-display.c
337
struct linedisp *linedisp = to_linedisp(dev);
drivers/auxdisplay/line-display.c
338
struct linedisp_map *map = linedisp->map;
drivers/auxdisplay/line-display.c
362
__ATTRIBUTE_GROUPS(linedisp);
drivers/auxdisplay/line-display.c
368
struct linedisp *linedisp = container_of(dev, struct linedisp, dev);
drivers/auxdisplay/line-display.c
370
kfree(linedisp->map);
drivers/auxdisplay/line-display.c
371
kfree(linedisp->message);
drivers/auxdisplay/line-display.c
372
kfree(linedisp->buf);
drivers/auxdisplay/line-display.c
373
ida_free(&linedisp_id, linedisp->id);
drivers/auxdisplay/line-display.c
381
static int linedisp_init_map(struct linedisp *linedisp)
drivers/auxdisplay/line-display.c
386
if (!linedisp->ops->get_map_type)
drivers/auxdisplay/line-display.c
389
err = linedisp->ops->get_map_type(linedisp);
drivers/auxdisplay/line-display.c
414
linedisp->map = map;
drivers/auxdisplay/line-display.c
438
int linedisp_attach(struct linedisp *linedisp, struct device *dev,
drivers/auxdisplay/line-display.c
443
memset(linedisp, 0, sizeof(*linedisp));
drivers/auxdisplay/line-display.c
444
linedisp->ops = ops;
drivers/auxdisplay/line-display.c
445
linedisp->num_chars = num_chars;
drivers/auxdisplay/line-display.c
446
linedisp->scroll_rate = DEFAULT_SCROLL_RATE;
drivers/auxdisplay/line-display.c
448
linedisp->buf = kzalloc(linedisp->num_chars, GFP_KERNEL);
drivers/auxdisplay/line-display.c
449
if (!linedisp->buf)
drivers/auxdisplay/line-display.c
453
err = linedisp_init_map(linedisp);
drivers/auxdisplay/line-display.c
458
timer_setup(&linedisp->timer, linedisp_scroll, 0);
drivers/auxdisplay/line-display.c
460
err = create_attachment(dev, linedisp, true);
drivers/auxdisplay/line-display.c
465
err = linedisp_display(linedisp, LINEDISP_INIT_TEXT, -1);
drivers/auxdisplay/line-display.c
479
timer_delete_sync(&linedisp->timer);
drivers/auxdisplay/line-display.c
48
struct linedisp *linedisp;
drivers/auxdisplay/line-display.c
481
kfree(linedisp->buf);
drivers/auxdisplay/line-display.c
493
struct linedisp *linedisp;
drivers/auxdisplay/line-display.c
495
linedisp = delete_attachment(dev, true);
drivers/auxdisplay/line-display.c
496
if (!linedisp)
drivers/auxdisplay/line-display.c
499
timer_delete_sync(&linedisp->timer);
drivers/auxdisplay/line-display.c
503
kfree(linedisp->map);
drivers/auxdisplay/line-display.c
504
kfree(linedisp->message);
drivers/auxdisplay/line-display.c
505
kfree(linedisp->buf);
drivers/auxdisplay/line-display.c
523
int linedisp_register(struct linedisp *linedisp, struct device *parent,
drivers/auxdisplay/line-display.c
528
memset(linedisp, 0, sizeof(*linedisp));
drivers/auxdisplay/line-display.c
529
linedisp->dev.parent = parent;
drivers/auxdisplay/line-display.c
530
linedisp->dev.type = &linedisp_type;
drivers/auxdisplay/line-display.c
531
linedisp->ops = ops;
drivers/auxdisplay/line-display.c
532
linedisp->num_chars = num_chars;
drivers/auxdisplay/line-display.c
533
linedisp->scroll_rate = DEFAULT_SCROLL_RATE;
drivers/auxdisplay/line-display.c
538
linedisp->id = err;
drivers/auxdisplay/line-display.c
540
device_initialize(&linedisp->dev);
drivers/auxdisplay/line-display.c
541
dev_set_name(&linedisp->dev, "linedisp.%u", linedisp->id);
drivers/auxdisplay/line-display.c
544
linedisp->buf = kzalloc(linedisp->num_chars, GFP_KERNEL);
drivers/auxdisplay/line-display.c
545
if (!linedisp->buf)
drivers/auxdisplay/line-display.c
549
err = linedisp_init_map(linedisp);
drivers/auxdisplay/line-display.c
55
static int create_attachment(struct device *dev, struct linedisp *linedisp, bool direct)
drivers/auxdisplay/line-display.c
554
timer_setup(&linedisp->timer, linedisp_scroll, 0);
drivers/auxdisplay/line-display.c
556
err = create_attachment(&linedisp->dev, linedisp, false);
drivers/auxdisplay/line-display.c
561
err = linedisp_display(linedisp, LINEDISP_INIT_TEXT, -1);
drivers/auxdisplay/line-display.c
565
err = device_add(&linedisp->dev);
drivers/auxdisplay/line-display.c
572
delete_attachment(&linedisp->dev, false);
drivers/auxdisplay/line-display.c
574
timer_delete_sync(&linedisp->timer);
drivers/auxdisplay/line-display.c
576
put_device(&linedisp->dev);
drivers/auxdisplay/line-display.c
586
void linedisp_unregister(struct linedisp *linedisp)
drivers/auxdisplay/line-display.c
588
device_del(&linedisp->dev);
drivers/auxdisplay/line-display.c
589
delete_attachment(&linedisp->dev, false);
drivers/auxdisplay/line-display.c
590
timer_delete_sync(&linedisp->timer);
drivers/auxdisplay/line-display.c
591
put_device(&linedisp->dev);
drivers/auxdisplay/line-display.c
64
attachment->linedisp = linedisp;
drivers/auxdisplay/line-display.c
73
static struct linedisp *delete_attachment(struct device *dev, bool direct)
drivers/auxdisplay/line-display.c
76
struct linedisp *linedisp;
drivers/auxdisplay/line-display.c
89
linedisp = attachment->linedisp;
drivers/auxdisplay/line-display.c
93
return linedisp;
drivers/auxdisplay/line-display.c
96
static struct linedisp *to_linedisp(struct device *dev)
drivers/auxdisplay/line-display.h
21
struct linedisp;
drivers/auxdisplay/line-display.h
54
int (*get_map_type)(struct linedisp *linedisp);
drivers/auxdisplay/line-display.h
55
void (*update)(struct linedisp *linedisp);
drivers/auxdisplay/line-display.h
85
int linedisp_attach(struct linedisp *linedisp, struct device *dev,
drivers/auxdisplay/line-display.h
88
int linedisp_register(struct linedisp *linedisp, struct device *parent,
drivers/auxdisplay/line-display.h
90
void linedisp_unregister(struct linedisp *linedisp);
drivers/auxdisplay/max6959.c
138
ret = linedisp_register(&priv->linedisp, dev, 4, &max6959_linedisp_ops);
drivers/auxdisplay/max6959.c
152
linedisp_unregister(&priv->linedisp);
drivers/auxdisplay/max6959.c
45
struct linedisp linedisp;
drivers/auxdisplay/max6959.c
53
struct linedisp *linedisp = &priv->linedisp;
drivers/auxdisplay/max6959.c
54
struct linedisp_map *map = linedisp->map;
drivers/auxdisplay/max6959.c
55
char *s = linedisp->buf;
drivers/auxdisplay/max6959.c
67
static int max6959_linedisp_get_map_type(struct linedisp *linedisp)
drivers/auxdisplay/max6959.c
69
struct max6959_priv *priv = container_of(linedisp, struct max6959_priv, linedisp);
drivers/auxdisplay/max6959.c
75
static void max6959_linedisp_update(struct linedisp *linedisp)
drivers/auxdisplay/max6959.c
77
struct max6959_priv *priv = container_of(linedisp, struct max6959_priv, linedisp);
drivers/auxdisplay/seg-led-gpio.c
25
struct linedisp linedisp;
drivers/auxdisplay/seg-led-gpio.c
33
struct linedisp *linedisp = &priv->linedisp;
drivers/auxdisplay/seg-led-gpio.c
34
struct linedisp_map *map = linedisp->map;
drivers/auxdisplay/seg-led-gpio.c
37
bitmap_set_value8(values, map_to_seg7(&map->map.seg7, linedisp->buf[0]), 0);
drivers/auxdisplay/seg-led-gpio.c
42
static int seg_led_linedisp_get_map_type(struct linedisp *linedisp)
drivers/auxdisplay/seg-led-gpio.c
44
struct seg_led_priv *priv = container_of(linedisp, struct seg_led_priv, linedisp);
drivers/auxdisplay/seg-led-gpio.c
50
static void seg_led_linedisp_update(struct linedisp *linedisp)
drivers/auxdisplay/seg-led-gpio.c
52
struct seg_led_priv *priv = container_of(linedisp, struct seg_led_priv, linedisp);
drivers/auxdisplay/seg-led-gpio.c
80
return linedisp_register(&priv->linedisp, dev, 1, &seg_led_linedisp_ops);
drivers/auxdisplay/seg-led-gpio.c
88
linedisp_unregister(&priv->linedisp);