Lines Matching full:canvas
299 + dev_name = "amlogic-canvas";
301 + amlogic,canvas = <&canvas>;
400 + amlogic,canvas = <&canvas>;
4839 + meson_canvas_config(priv->canvas, priv->canvas_id_osd2,
4973 + /* Set up BLK0 to point to the right canvas */
5043 + /* Update Canvas with buffer address */
5156 #include <linux/soc/amlogic/meson-canvas.h>
5227 ret = meson_canvas_alloc(priv->canvas, &priv->canvas_id_osd1);
5230 + ret = meson_canvas_alloc(priv->canvas, &priv->canvas_id_osd2);
5233 ret = meson_canvas_alloc(priv->canvas, &priv->canvas_id_vd1_0);
5235 meson_canvas_free(priv->canvas, priv->canvas_id_osd1);
5426 struct meson_canvas *canvas;
7767 /* Update Canvas with buffer address */
11348 diff -Naur a/drivers/soc/amlogic/meson-canvas.c b/drivers/soc/amlogic/meson-canvas.c
11349 --- a/drivers/soc/amlogic/meson-canvas.c 2022-05-27 17:20:17.405924394 +0800
11350 +++ b/drivers/soc/amlogic/meson-canvas.c 2022-05-31 11:56:48.077256291 +0800
11355 +int meson_canvas_alloc_spec(struct meson_canvas *canvas, u8 canvas_index)
11359 + spin_lock_irqsave(&canvas->lock, flags);
11360 + if (!canvas->used[canvas_index]) {
11361 + canvas->used[canvas_index] = 1;
11362 + spin_unlock_irqrestore(&canvas->lock, flags);
11365 + spin_unlock_irqrestore(&canvas->lock, flags);
11367 + dev_err(canvas->dev, "Canvas (%u) is busy\n", canvas_index);
11373 int meson_canvas_free(struct meson_canvas *canvas, u8 canvas_index)
20673 diff -Naur a/include/linux/amlogic/media/canvas/canvas.h b/include/linux/amlogic/media/canvas/canva…
20674 --- a/include/linux/amlogic/media/canvas/canvas.h 1970-01-01 08:00:00.000000000 +0800
20675 +++ b/include/linux/amlogic/media/canvas/canvas.h 2022-05-31 11:56:48.093256151 +0800
20678 + * include/linux/amlogic/media/canvas/canvas.h
20732 +#define PPMGR_DOUBLE_CANVAS_INDEX 0x74 /*for double canvas use */
20742 + *the following reserved canvas index value
21632 +#include <linux/soc/amlogic/meson-canvas.h>
22367 + struct meson_canvas *canvas;
22368 + uint8_t alloced_canvas_index[MAX_PLANE*3]; // alloced canvas index.
22486 + /* canvas info */
22529 + /* canvas info */
22595 + /* canvas info */
22645 + /* canvas info */
25442 diff -Naur a/include/linux/soc/amlogic/meson-canvas.h b/include/linux/soc/amlogic/meson-canvas.h
25443 --- a/include/linux/soc/amlogic/meson-canvas.h 2022-05-27 17:20:18.225934968 +0800
25444 +++ b/include/linux/soc/amlogic/meson-canvas.h 2022-05-31 11:56:48.097256115 +0800
25446 int meson_canvas_alloc(struct meson_canvas *canvas, u8 *canvas_index);
25449 + * meson_canvas_alloc_spec() - take ownership of a canvas
25451 + * @canvas: canvas provider instance retrieved from meson_canvas_get()
25452 + * @canvas_index: the specified canvas index
25454 +int meson_canvas_alloc_spec(struct meson_canvas *canvas, u8 canvas_index);
25457 * meson_canvas_free() - remove ownership from a canvas
25459 * @canvas: canvas provider instance retrieved from meson_canvas_get()
25930 + dev_name = "amlogic-canvas";
25932 + amlogic,canvas = <&canvas>;
26031 + amlogic,canvas = <&canvas>;
29324 diff -Naur a/vendor/amlogic/canvas/canvas.c b/vendor/amlogic/canvas/canvas.c
29325 --- a/vendor/amlogic/canvas/canvas.c 1970-01-01 08:00:00.000000000 +0800
29326 +++ b/vendor/amlogic/canvas/canvas.c 2022-06-30 15:17:45.712876428 +0800
29329 + * vendor/amlogic/media/common/canvas/canvas.c
29356 +#include <linux/soc/amlogic/meson-canvas.h>
29358 +#include <linux/amlogic/media/canvas/canvas.h>
29394 + *to canvas memory.
29395 + *64bits CANVAS look up table
29405 + *bit 57:56. Canvas block mode. 2 : 64x32, 1: 32x32;
29407 + *bit 55: canvas Y direction wrap control.
29409 + *bit 54: canvas X direction wrap control.
29411 + *bit 53:41. canvas Hight.
29412 + *bit 40:29. canvas Width, unit: 8bytes. must in 32bytes boundary.
29481 + struct canvas_s *canvas;
29487 + canvas = &info->canvasPool[index];
29488 + canvas->addr = addr;
29489 + canvas->width = width;
29490 + canvas->height = height;
29491 + canvas->wrap = wrap;
29492 + canvas->blkmode = blkmode;
29493 + canvas->endian = endian;
29494 + canvas_config_locked(index, canvas);
29550 + struct canvas_s *canvas;
29555 + canvas = &info->canvasPool[index];
29558 + canvas->addr = addr;
29559 + canvas_config_locked(index, canvas);
29612 + pr_info("Alloc Canvas: [%u, %u]\n", start, end);
29641 + // Pre-Alloc canvas for "VDec" : [0x78, 0xbf]
29647 + // Pre-Alloc canvas for "VEnc" : [0xe4, 0xef]
29664 + // Free canvas
29668 + dev_info(dev, "Canvas driver removed.\n");
29684 + .name = "amlogic-canvas-legacy",
29695 + pr_err("Unable to register canvas driver\n");
29698 + pr_info("register canvas platform driver\n");
29710 +MODULE_DESCRIPTION("AMLOGIC Canvas management driver");
29713 diff -Naur a/vendor/amlogic/canvas/Kconfig b/vendor/amlogic/canvas/Kconfig
29714 --- a/vendor/amlogic/canvas/Kconfig 1970-01-01 08:00:00.000000000 +0800
29715 +++ b/vendor/amlogic/canvas/Kconfig 2022-05-31 11:56:47.709259537 +0800
29718 +# Canvas management driver configuration
29721 +menu "Canvas management driver"
29724 + bool "Amlogic Canvas management driver"
29727 + Select to enable Canvas management driver.
29730 diff -Naur a/vendor/amlogic/canvas/Makefile b/vendor/amlogic/canvas/Makefile
29731 --- a/vendor/amlogic/canvas/Makefile 1970-01-01 08:00:00.000000000 +0800
29732 +++ b/vendor/amlogic/canvas/Makefile 2022-05-31 11:56:47.709259537 +0800
29735 +# Makefile for the Canvas management driver.
29738 +obj-$(CONFIG_AMLOGIC_MEDIA_CANVAS) += canvas.o
35536 + meson_canvas_config(ge2d_manager.canvas, canvas_index,
35544 + ge2d_log_dbg("src canvas: addr(%lx),stride(%d),height(%d)",
35559 + meson_canvas_config(ge2d_manager.canvas, canvas_index,
35567 + ge2d_log_dbg("src2 canvas: addr(%lx),stride(%d),height(%d)",
35583 + meson_canvas_config(ge2d_manager.canvas, canvas_index,
35591 + ge2d_log_dbg("dst canvas: addr(%lx),stride(%d),height(%d)",
36046 + struct canvas_s canvas;
36057 + canvas_read(index, &canvas);
36058 + cs_width = canvas.width;
36059 + cs_height = canvas.height;
36080 + canvas_read(src_dst->canvas_index, &canvas);
36081 + cs_width = canvas.width;
36082 + cs_height = canvas.height;
37850 + // Alloc Canvas
37851 + ge2d_manager.canvas = meson_canvas_get(&pdev->dev);
37852 + if (IS_ERR(ge2d_manager.canvas)) {
37853 + ge2d_log_err("can't get meson canvas\n");
37857 + if (0 != meson_canvas_alloc(ge2d_manager.canvas, &ge2d_manager.alloced_canvas_index[i])) {
37858 + ge2d_log_err("meson_canvas_alloc(%p) failed.\n", ge2d_manager.canvas);
37859 + // free pre-alloced canvas
37861 + meson_canvas_free(ge2d_manager.canvas, ge2d_manager.alloced_canvas_index[j]);
37865 + ge2d_log_info("Canvas ALLOC: [%d] = %d\n", i, ge2d_manager.alloced_canvas_index[i]);
37912 + // Free Canvas
37914 + meson_canvas_free(ge2d_manager.canvas, ge2d_manager.alloced_canvas_index[i]);
39087 +source "vendor/amlogic/canvas/Kconfig"
39138 +obj-$(CONFIG_AMLOGIC_MEDIA_CANVAS) += canvas/