Lines Matching refs:cd

160 dpaa2_cons_read_bs(struct dpaa2_cons_dev *cd, size_t offset, void *dst, size_t len)  in dpaa2_cons_read_bs()  argument
169 bus_space_read_region_1(cd->bst, cd->bsh, offset + count, p + count, l); in dpaa2_cons_read_bs()
176 bus_space_read_region_8(cd->bst, cd->bsh, offset + count, (uint64_t *)(p + count), l); in dpaa2_cons_read_bs()
183 bus_space_read_region_4(cd->bst, cd->bsh, offset + count, (uint32_t *)(p + count), l); in dpaa2_cons_read_bs()
190 bus_space_read_region_2(cd->bst, cd->bsh, offset + count, (uint16_t *)(p + count), l); in dpaa2_cons_read_bs()
196 bus_space_read_region_1(cd->bst, cd->bsh, offset + count, p + count, len); in dpaa2_cons_read_bs()
206 struct dpaa2_cons_dev *cd; in dpaa2_cons_open() local
214 cd = cdev->si_drv1; in dpaa2_cons_open()
215 if (cd->size == 0) in dpaa2_cons_open()
218 mtx_lock(&cd->mtx); in dpaa2_cons_open()
219 rlen = dpaa2_cons_read_bs(cd, 0, &hdr, sizeof(hdr)); in dpaa2_cons_open()
221 "cd %p\n", __func__, __LINE__, rlen, sizeof(hdr), cdev, cd)); in dpaa2_cons_open()
223 cd->hdr_magic = hdr.magic; in dpaa2_cons_open()
224 if (cd->hdr_magic != cd->magic) { in dpaa2_cons_open()
225 mtx_unlock(&cd->mtx); in dpaa2_cons_open()
229 cd->hdr_eobyte = hdr.eobyte; in dpaa2_cons_open()
230 cd->hdr_start = hdr.start; in dpaa2_cons_open()
231 cd->hdr_len = hdr.len; in dpaa2_cons_open()
233 cd->start = cd->hdr_start - cd->offset; in dpaa2_cons_open()
234 cd->end = cd->start + cd->hdr_len; in dpaa2_cons_open()
236 wrapped = cd->hdr_eobyte & LOG_HEADER_FLAG_BUFFER_WRAPAROUND; in dpaa2_cons_open()
237 cd->eod = cd->start + LAST_BYTE(cd->hdr_eobyte); in dpaa2_cons_open()
239 if (wrapped && cd->eod != cd->end) in dpaa2_cons_open()
240 cd->cur = cd->eod + 1; in dpaa2_cons_open()
242 cd->cur = cd->start; in dpaa2_cons_open()
243 mtx_unlock(&cd->mtx); in dpaa2_cons_open()
251 struct dpaa2_cons_dev *cd; in dpaa2_cons_close() local
253 cd = cdev->si_drv1; in dpaa2_cons_close()
254 mtx_lock(&cd->mtx); in dpaa2_cons_close()
255 cd->hdr_magic = cd->hdr_eobyte = cd->hdr_start = cd->hdr_len = 0; in dpaa2_cons_close()
256 cd->start = cd->end = 0; in dpaa2_cons_close()
257 mtx_unlock(&cd->mtx); in dpaa2_cons_close()
266 struct dpaa2_cons_dev *cd; in dpaa2_cons_read() local
271 cd = cdev->si_drv1; in dpaa2_cons_read()
272 mtx_lock(&cd->mtx); in dpaa2_cons_read()
273 if (cd->cur == cd->eod) { in dpaa2_cons_read()
274 mtx_unlock(&cd->mtx); in dpaa2_cons_read()
276 } else if (cd->cur > cd->eod) { in dpaa2_cons_read()
277 len = (cd->end - cd->cur) + (cd->eod - cd->start); in dpaa2_cons_read()
279 len = cd->eod - cd->cur; in dpaa2_cons_read()
281 size = cd->end - cd->cur; in dpaa2_cons_read()
290 rlen = dpaa2_cons_read_bs(cd, cd->cur, buf, count); in dpaa2_cons_read()
293 cdev, cd)); in dpaa2_cons_read()
295 cd->cur += count; in dpaa2_cons_read()
298 mtx_unlock(&cd->mtx); in dpaa2_cons_read()
302 mtx_lock(&cd->mtx); in dpaa2_cons_read()
304 cd->cur = cd->start; in dpaa2_cons_read()
313 rlen = dpaa2_cons_read_bs(cd, cd->cur, buf, count); in dpaa2_cons_read()
315 "cd %p\n", __func__, __LINE__, rlen, count, cdev, cd)); in dpaa2_cons_read()
317 cd->cur += count; in dpaa2_cons_read()
319 mtx_unlock(&cd->mtx); in dpaa2_cons_read()
323 mtx_lock(&cd->mtx); in dpaa2_cons_read()
325 mtx_unlock(&cd->mtx); in dpaa2_cons_read()
332 struct dpaa2_cons_dev *cd) in dpaa2_cons_create_dev() argument
342 error = bus_space_map(sc->bst, pa, size, 0, &cd->bsh); in dpaa2_cons_create_dev()
349 cd->bst = sc->bst; in dpaa2_cons_create_dev()
350 cd->size = size; in dpaa2_cons_create_dev()
352 len = dpaa2_cons_read_bs(cd, 0, &hdr, sizeof(hdr)); in dpaa2_cons_create_dev()
356 bus_space_unmap(cd->bst, cd->bsh, cd->size); in dpaa2_cons_create_dev()
357 cd->size = 0; in dpaa2_cons_create_dev()
367 bus_space_unmap(cd->bst, cd->bsh, cd->size); in dpaa2_cons_create_dev()
368 cd->size = 0; in dpaa2_cons_create_dev()
375 bus_space_unmap(cd->bst, cd->bsh, cd->size); in dpaa2_cons_create_dev()
376 cd->size = 0; in dpaa2_cons_create_dev()
380 cd->offset = offset; in dpaa2_cons_create_dev()
381 cd->magic = magic; in dpaa2_cons_create_dev()
382 mtx_init(&cd->mtx, "dpaa2 cons", NULL, MTX_DEF); in dpaa2_cons_create_dev()
390 md_args.mda_si_drv1 = cd; in dpaa2_cons_create_dev()
391 error = make_dev_s(&md_args, &cd->cdev, "%s", devsw->d_name); in dpaa2_cons_create_dev()
395 mtx_destroy(&cd->mtx); in dpaa2_cons_create_dev()
396 bus_space_unmap(cd->bst, cd->bsh, cd->size); in dpaa2_cons_create_dev()
397 cd->size = 0; in dpaa2_cons_create_dev()
429 dpaa2_cons_detach_common(struct dpaa2_cons_dev *cd) in dpaa2_cons_detach_common() argument
432 bus_space_unmap(cd->bst, cd->bsh, cd->size); in dpaa2_cons_detach_common()
433 mtx_destroy(&cd->mtx); in dpaa2_cons_detach_common()