Lines Matching full:cd
159 dpaa2_cons_read_bs(struct dpaa2_cons_dev *cd, size_t offset, void *dst, size_t len) in dpaa2_cons_read_bs() argument
168 bus_space_read_region_1(cd->bst, cd->bsh, offset + count, p + count, l); in dpaa2_cons_read_bs()
175 bus_space_read_region_8(cd->bst, cd->bsh, offset + count, (uint64_t *)(p + count), l); in dpaa2_cons_read_bs()
182 bus_space_read_region_4(cd->bst, cd->bsh, offset + count, (uint32_t *)(p + count), l); in dpaa2_cons_read_bs()
189 bus_space_read_region_2(cd->bst, cd->bsh, offset + count, (uint16_t *)(p + count), l); in dpaa2_cons_read_bs()
195 bus_space_read_region_1(cd->bst, cd->bsh, offset + count, p + count, len); in dpaa2_cons_read_bs()
205 struct dpaa2_cons_dev *cd; in dpaa2_cons_open() local
213 cd = cdev->si_drv1; in dpaa2_cons_open()
214 if (cd->size == 0) in dpaa2_cons_open()
217 mtx_lock(&cd->mtx); in dpaa2_cons_open()
218 rlen = dpaa2_cons_read_bs(cd, 0, &hdr, sizeof(hdr)); in dpaa2_cons_open()
220 "cd %p\n", __func__, __LINE__, rlen, sizeof(hdr), cdev, cd)); in dpaa2_cons_open()
222 cd->hdr_magic = hdr.magic; in dpaa2_cons_open()
223 if (cd->hdr_magic != cd->magic) { in dpaa2_cons_open()
224 mtx_unlock(&cd->mtx); in dpaa2_cons_open()
228 cd->hdr_eobyte = hdr.eobyte; in dpaa2_cons_open()
229 cd->hdr_start = hdr.start; in dpaa2_cons_open()
230 cd->hdr_len = hdr.len; in dpaa2_cons_open()
232 cd->start = cd->hdr_start - cd->offset; in dpaa2_cons_open()
233 cd->end = cd->start + cd->hdr_len; in dpaa2_cons_open()
235 wrapped = cd->hdr_eobyte & LOG_HEADER_FLAG_BUFFER_WRAPAROUND; in dpaa2_cons_open()
236 cd->eod = cd->start + LAST_BYTE(cd->hdr_eobyte); in dpaa2_cons_open()
238 if (wrapped && cd->eod != cd->end) in dpaa2_cons_open()
239 cd->cur = cd->eod + 1; in dpaa2_cons_open()
241 cd->cur = cd->start; in dpaa2_cons_open()
242 mtx_unlock(&cd->mtx); in dpaa2_cons_open()
250 struct dpaa2_cons_dev *cd; in dpaa2_cons_close() local
252 cd = cdev->si_drv1; in dpaa2_cons_close()
253 mtx_lock(&cd->mtx); in dpaa2_cons_close()
254 cd->hdr_magic = cd->hdr_eobyte = cd->hdr_start = cd->hdr_len = 0; in dpaa2_cons_close()
255 cd->start = cd->end = 0; in dpaa2_cons_close()
256 mtx_unlock(&cd->mtx); in dpaa2_cons_close()
265 struct dpaa2_cons_dev *cd; in dpaa2_cons_read() local
270 cd = cdev->si_drv1; in dpaa2_cons_read()
271 mtx_lock(&cd->mtx); in dpaa2_cons_read()
272 if (cd->cur == cd->eod) { in dpaa2_cons_read()
273 mtx_unlock(&cd->mtx); in dpaa2_cons_read()
275 } else if (cd->cur > cd->eod) { in dpaa2_cons_read()
276 len = (cd->end - cd->cur) + (cd->eod - cd->start); in dpaa2_cons_read()
278 len = cd->eod - cd->cur; in dpaa2_cons_read()
280 size = cd->end - cd->cur; in dpaa2_cons_read()
289 rlen = dpaa2_cons_read_bs(cd, cd->cur, buf, count); in dpaa2_cons_read()
291 "cdev %p cd %p\n", __func__, __LINE__, rlen, count, in dpaa2_cons_read()
292 cdev, cd)); in dpaa2_cons_read()
294 cd->cur += count; in dpaa2_cons_read()
297 mtx_unlock(&cd->mtx); in dpaa2_cons_read()
301 mtx_lock(&cd->mtx); in dpaa2_cons_read()
303 cd->cur = cd->start; in dpaa2_cons_read()
312 rlen = dpaa2_cons_read_bs(cd, cd->cur, buf, count); in dpaa2_cons_read()
314 "cd %p\n", __func__, __LINE__, rlen, count, cdev, cd)); in dpaa2_cons_read()
316 cd->cur += count; in dpaa2_cons_read()
318 mtx_unlock(&cd->mtx); in dpaa2_cons_read()
322 mtx_lock(&cd->mtx); in dpaa2_cons_read()
324 mtx_unlock(&cd->mtx); in dpaa2_cons_read()
331 struct dpaa2_cons_dev *cd) in dpaa2_cons_create_dev() argument
341 error = bus_space_map(sc->bst, pa, size, 0, &cd->bsh); in dpaa2_cons_create_dev()
348 cd->bst = sc->bst; in dpaa2_cons_create_dev()
349 cd->size = size; in dpaa2_cons_create_dev()
351 len = dpaa2_cons_read_bs(cd, 0, &hdr, sizeof(hdr)); in dpaa2_cons_create_dev()
355 bus_space_unmap(cd->bst, cd->bsh, cd->size); in dpaa2_cons_create_dev()
356 cd->size = 0; in dpaa2_cons_create_dev()
366 bus_space_unmap(cd->bst, cd->bsh, cd->size); in dpaa2_cons_create_dev()
367 cd->size = 0; in dpaa2_cons_create_dev()
374 bus_space_unmap(cd->bst, cd->bsh, cd->size); in dpaa2_cons_create_dev()
375 cd->size = 0; in dpaa2_cons_create_dev()
379 cd->offset = offset; in dpaa2_cons_create_dev()
380 cd->magic = magic; in dpaa2_cons_create_dev()
381 mtx_init(&cd->mtx, "dpaa2 cons", NULL, MTX_DEF); in dpaa2_cons_create_dev()
389 md_args.mda_si_drv1 = cd; in dpaa2_cons_create_dev()
390 error = make_dev_s(&md_args, &cd->cdev, "%s", devsw->d_name); in dpaa2_cons_create_dev()
394 mtx_destroy(&cd->mtx); in dpaa2_cons_create_dev()
395 bus_space_unmap(cd->bst, cd->bsh, cd->size); in dpaa2_cons_create_dev()
396 cd->size = 0; in dpaa2_cons_create_dev()
428 dpaa2_cons_detach_common(struct dpaa2_cons_dev *cd) in dpaa2_cons_detach_common() argument
431 bus_space_unmap(cd->bst, cd->bsh, cd->size); in dpaa2_cons_detach_common()
432 mtx_destroy(&cd->mtx); in dpaa2_cons_detach_common()