Lines Matching refs:elog

49 static void elog_putchar(struct bcm_elog *elog, unsigned char c)  in elog_putchar()  argument
53 offset = mmio_read_32(elog->base + BCM_ELOG_OFF_OFFSET); in elog_putchar()
54 len = mmio_read_32(elog->base + BCM_ELOG_LEN_OFFSET); in elog_putchar()
55 mmio_write_8(elog->base + offset, c); in elog_putchar()
59 if (offset >= elog->max_size) in elog_putchar()
63 if (len < elog->max_size - BCM_ELOG_HEADER_LEN) in elog_putchar()
66 mmio_write_32(elog->base + BCM_ELOG_OFF_OFFSET, offset); in elog_putchar()
67 mmio_write_32(elog->base + BCM_ELOG_LEN_OFFSET, len); in elog_putchar()
70 static void elog_unsigned_num(struct bcm_elog *elog, unsigned long unum, in elog_unsigned_num() argument
86 elog_putchar(elog, num_buf[i]); in elog_unsigned_num()
89 static void elog_string(struct bcm_elog *elog, const char *str) in elog_string() argument
92 elog_putchar(elog, *str++); in elog_string()
100 struct bcm_elog *elog = &global_elog; in bcm_elog_init() local
103 elog->base = (uintptr_t)base; in bcm_elog_init()
104 elog->max_size = size; in bcm_elog_init()
105 elog->is_active = 1; in bcm_elog_init()
106 elog->level = level / 10; in bcm_elog_init()
113 val = mmio_read_32(elog->base + BCM_ELOG_SIG_OFFSET); in bcm_elog_init()
115 mmio_write_32(elog->base + BCM_ELOG_SIG_OFFSET, in bcm_elog_init()
117 mmio_write_32(elog->base + BCM_ELOG_OFF_OFFSET, in bcm_elog_init()
119 mmio_write_32(elog->base + BCM_ELOG_LEN_OFFSET, 0); in bcm_elog_init()
130 struct bcm_elog *elog = &global_elog; in bcm_elog_exit() local
132 if (!elog->is_active) in bcm_elog_exit()
135 elog->is_active = 0; in bcm_elog_exit()
137 flush_dcache_range(elog->base, elog->max_size); in bcm_elog_exit()
147 struct bcm_elog *elog = &global_elog; in bcm_elog_copy_log() local
150 if (!elog->is_active || ((uintptr_t)dst == elog->base)) in bcm_elog_copy_log()
154 flush_dcache_range(elog->base, max_size); in bcm_elog_copy_log()
161 offset = mmio_read_32(elog->base + BCM_ELOG_OFF_OFFSET); in bcm_elog_copy_log()
164 mmio_write_32(elog->base + BCM_ELOG_OFF_OFFSET, offset); in bcm_elog_copy_log()
168 len = mmio_read_32(elog->base + BCM_ELOG_LEN_OFFSET); in bcm_elog_copy_log()
171 mmio_write_32(elog->base + BCM_ELOG_LEN_OFFSET, len); in bcm_elog_copy_log()
175 memcpy16(dst, (const void *)elog->base, len + BCM_ELOG_HEADER_LEN); in bcm_elog_copy_log()
176 elog->base = (uintptr_t)dst; in bcm_elog_copy_log()
177 elog->max_size = max_size; in bcm_elog_copy_log()
193 struct bcm_elog *elog = &global_elog; in bcm_elog() local
198 if (!elog->is_active || level > elog->level) in bcm_elog()
204 elog_putchar(elog, *prefix_str); in bcm_elog()
226 elog_putchar(elog, '-'); in bcm_elog()
231 elog_unsigned_num(elog, unum, 10); in bcm_elog()
235 elog_string(elog, str); in bcm_elog()
243 elog_unsigned_num(elog, unum, 16); in bcm_elog()
255 elog_unsigned_num(elog, unum, 10); in bcm_elog()
264 elog_putchar(elog, *fmt++); in bcm_elog()