Lines Matching defs:canvas

22 #include "aml-canvas.h"
25 aml_canvas_t* canvas = ctx;
26 mmio_buffer_release(&canvas->dmc_regs);
28 if (canvas->pmt_handle[index] != ZX_HANDLE_INVALID) {
29 zx_pmt_unpin(canvas->pmt_handle[index]);
30 canvas->pmt_handle[index] = ZX_HANDLE_INVALID;
33 free(canvas);
39 aml_canvas_t* canvas = ctx;
51 mtx_lock(&canvas->lock);
62 // find an unused canvas index
64 if (canvas->pmt_handle[index] == ZX_HANDLE_INVALID) {
70 CANVAS_ERROR("All canvas indexes are currently in use\n");
75 status = zx_bti_pin(canvas->bti, ZX_BTI_PERM_READ | ZX_BTI_PERM_WRITE | ZX_BTI_CONTIGUOUS,
78 &canvas->pmt_handle[index]);
87 zx_handle_close(canvas->pmt_handle[index]);
88 canvas->pmt_handle[index] = ZX_HANDLE_INVALID;
116 mtx_unlock(&canvas->lock);
121 aml_canvas_t* canvas = ctx;
123 mtx_lock(&canvas->lock);
125 zx_pmt_unpin(canvas->pmt_handle[canvas_idx]);
126 canvas->pmt_handle[canvas_idx] = ZX_HANDLE_INVALID;
128 mtx_unlock(&canvas->lock);
132 static void aml_canvas_init(aml_canvas_t* canvas) {
143 aml_canvas_t* canvas = ctx;
144 device_remove(canvas->zxdev);
205 aml_canvas_t* canvas = calloc(1, sizeof(aml_canvas_t));
206 if (!canvas) {
211 status = device_get_protocol(parent, ZX_PROTOCOL_PLATFORM_DEV, &canvas->pdev);
224 status = pdev_get_bti(&canvas->pdev, 0, &canvas->bti);
231 status = pdev_map_mmio_buffer2(&canvas->pdev, 0,
233 &canvas->dmc_regs);
240 aml_canvas_init(canvas);
242 mtx_init(&canvas->lock, mtx_plain);
246 .name = "aml-canvas",
247 .ctx = canvas,
252 status = device_add(parent, &args, &canvas->zxdev);
257 canvas->canvas.ops = &canvas_ops;
258 canvas->canvas.ctx = canvas;
260 // Register the canvas protocol with the platform bus
261 pbus_register_protocol(&pbus, ZX_PROTOCOL_AMLOGIC_CANVAS, &canvas->canvas, aml_canvas_proxy_cb,
262 canvas);
265 aml_canvas_release(canvas);