Lines Matching +full:console +full:- +full:size

1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
3 * Freescale DPAA2 Platforms Console Driver
5 * Copyright 2015-2016 Freescale Semiconductor Inc.
9 #define pr_fmt(fmt) "dpaa2-console: " fmt
64 u32 last_byte = readl(&cd->hdr->last_byte); in adjust_end()
66 cd->end_of_data = cd->start_addr + LAST_BYTE(last_byte); in adjust_end()
92 ssize_t size; in dpaa2_console_size() local
94 if (cd->cur_ptr <= cd->end_of_data) in dpaa2_console_size()
95 size = cd->end_of_data - cd->cur_ptr; in dpaa2_console_size()
97 size = (cd->end_addr - cd->cur_ptr) + in dpaa2_console_size()
98 (cd->end_of_data - cd->start_addr); in dpaa2_console_size()
100 return size; in dpaa2_console_size()
104 u64 offset, u64 size, in dpaa2_generic_console_open() argument
115 return -ENOMEM; in dpaa2_generic_console_open()
119 err = -EIO; in dpaa2_generic_console_open()
123 cd->map_addr = ioremap(base_addr + offset, size); in dpaa2_generic_console_open()
124 if (!cd->map_addr) { in dpaa2_generic_console_open()
125 pr_err("cannot map console log memory\n"); in dpaa2_generic_console_open()
126 err = -EIO; in dpaa2_generic_console_open()
130 cd->hdr = (struct log_header __iomem *)cd->map_addr; in dpaa2_generic_console_open()
131 read_magic = readl(&cd->hdr->magic_word); in dpaa2_generic_console_open()
132 last_byte = readl(&cd->hdr->last_byte); in dpaa2_generic_console_open()
133 buf_start = readl(&cd->hdr->buf_start); in dpaa2_generic_console_open()
134 buf_length = readl(&cd->hdr->buf_length); in dpaa2_generic_console_open()
139 err = -EIO; in dpaa2_generic_console_open()
143 cd->start_addr = cd->map_addr + buf_start - offset_delta; in dpaa2_generic_console_open()
144 cd->end_addr = cd->start_addr + buf_length; in dpaa2_generic_console_open()
149 if (wrapped && cd->end_of_data != cd->end_addr) in dpaa2_generic_console_open()
150 cd->cur_ptr = cd->end_of_data + 1; in dpaa2_generic_console_open()
152 cd->cur_ptr = cd->start_addr; in dpaa2_generic_console_open()
154 fp->private_data = cd; in dpaa2_generic_console_open()
159 iounmap(cd->map_addr); in dpaa2_generic_console_open()
184 struct console_data *cd = fp->private_data; in dpaa2_console_close()
186 iounmap(cd->map_addr); in dpaa2_console_close()
194 struct console_data *cd = fp->private_data; in dpaa2_console_read()
196 size_t bytes_end = cd->end_addr - cd->cur_ptr; in dpaa2_console_read()
204 if (cd->end_of_data == cd->cur_ptr) in dpaa2_console_read()
212 return -ENOMEM; in dpaa2_console_read()
215 memcpy_fromio(kbuf, cd->cur_ptr, bytes_end); in dpaa2_console_read()
217 err = -EFAULT; in dpaa2_console_read()
221 cd->cur_ptr = cd->start_addr; in dpaa2_console_read()
222 bytes -= bytes_end; in dpaa2_console_read()
226 memcpy_fromio(kbuf, cd->cur_ptr, bytes); in dpaa2_console_read()
228 err = -EFAULT; in dpaa2_console_read()
231 cd->cur_ptr += bytes; in dpaa2_console_read()
273 error = of_address_to_resource(pdev->dev.of_node, 0, &mc_base_addr); in dpaa2_console_probe()
276 pdev->dev.of_node, error); in dpaa2_console_probe()
311 { .compatible = "fsl,dpaa2-console",},
319 .name = "dpaa2-console",
330 MODULE_DESCRIPTION("DPAA2 console driver");