Lines Matching refs:cd

63 static inline void adjust_end(struct console_data *cd)
65 u32 last_byte = readl(&cd->hdr->last_byte);
67 cd->end_of_data = cd->start_addr + LAST_BYTE(last_byte);
91 static ssize_t dpaa2_console_size(struct console_data *cd)
95 if (cd->cur_ptr <= cd->end_of_data)
96 size = cd->end_of_data - cd->cur_ptr;
98 size = (cd->end_addr - cd->cur_ptr) +
99 (cd->end_of_data - cd->start_addr);
110 struct console_data *cd;
114 cd = kmalloc(sizeof(*cd), GFP_KERNEL);
115 if (!cd)
124 cd->map_addr = ioremap(base_addr + offset, size);
125 if (!cd->map_addr) {
131 cd->hdr = (struct log_header __iomem *)cd->map_addr;
132 read_magic = readl(&cd->hdr->magic_word);
133 last_byte = readl(&cd->hdr->last_byte);
134 buf_start = readl(&cd->hdr->buf_start);
135 buf_length = readl(&cd->hdr->buf_length);
144 cd->start_addr = cd->map_addr + buf_start - offset_delta;
145 cd->end_addr = cd->start_addr + buf_length;
149 adjust_end(cd);
150 if (wrapped && cd->end_of_data != cd->end_addr)
151 cd->cur_ptr = cd->end_of_data + 1;
153 cd->cur_ptr = cd->start_addr;
155 fp->private_data = cd;
160 iounmap(cd->map_addr);
164 kfree(cd);
185 struct console_data *cd = fp->private_data;
187 iounmap(cd->map_addr);
188 kfree(cd);
195 struct console_data *cd = fp->private_data;
196 size_t bytes = dpaa2_console_size(cd);
197 size_t bytes_end = cd->end_addr - cd->cur_ptr;
203 adjust_end(cd);
205 if (cd->end_of_data == cd->cur_ptr)
216 memcpy_fromio(kbuf, cd->cur_ptr, bytes_end);
222 cd->cur_ptr = cd->start_addr;
227 memcpy_fromio(kbuf, cd->cur_ptr, bytes);
232 cd->cur_ptr += bytes;