Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/media/platform/sunxi/sun8i-rotate/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 3 kB image not shown  

Quelle  sun8i-rotate.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Allwinner DE2 rotation driver
 *
 * Copyright (C) 2020 Jernej Skrabec <jernej.skrabec@siol.net>
 */


#ifndef _SUN8I_ROTATE_H_
#define _SUN8I_ROTATE_H_

#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#include <media/v4l2-mem2mem.h>
#include <media/videobuf2-v4l2.h>
#include <media/videobuf2-dma-contig.h>

#include <linux/platform_device.h>

#define ROTATE_NAME  "sun8i-rotate"

#define ROTATE_GLB_CTL   0x00
#define ROTATE_GLB_CTL_START   BIT(31)
#define ROTATE_GLB_CTL_RESET   BIT(30)
#define ROTATE_GLB_CTL_BURST_LEN(x)  ((x) << 16)
#define ROTATE_GLB_CTL_HFLIP   BIT(7)
#define ROTATE_GLB_CTL_VFLIP   BIT(6)
#define ROTATE_GLB_CTL_ROTATION(x)  ((x) << 4)
#define ROTATE_GLB_CTL_MODE(x)   ((x) << 0)

#define ROTATE_INT   0x04
#define ROTATE_INT_FINISH_IRQ_EN  BIT(16)
#define ROTATE_INT_FINISH_IRQ   BIT(0)

#define ROTATE_IN_FMT   0x20
#define ROTATE_IN_FMT_FORMAT(x)   ((x) << 0)

#define ROTATE_IN_SIZE   0x24
#define ROTATE_IN_PITCH0  0x30
#define ROTATE_IN_PITCH1  0x34
#define ROTATE_IN_PITCH2  0x38
#define ROTATE_IN_ADDRL0  0x40
#define ROTATE_IN_ADDRH0  0x44
#define ROTATE_IN_ADDRL1  0x48
#define ROTATE_IN_ADDRH1  0x4c
#define ROTATE_IN_ADDRL2  0x50
#define ROTATE_IN_ADDRH2  0x54
#define ROTATE_OUT_SIZE   0x84
#define ROTATE_OUT_PITCH0  0x90
#define ROTATE_OUT_PITCH1  0x94
#define ROTATE_OUT_PITCH2  0x98
#define ROTATE_OUT_ADDRL0  0xA0
#define ROTATE_OUT_ADDRH0  0xA4
#define ROTATE_OUT_ADDRL1  0xA8
#define ROTATE_OUT_ADDRH1  0xAC
#define ROTATE_OUT_ADDRL2  0xB0
#define ROTATE_OUT_ADDRH2  0xB4

#define ROTATE_BURST_8   0x07
#define ROTATE_BURST_16   0x0f
#define ROTATE_BURST_32   0x1f
#define ROTATE_BURST_64   0x3f

#define ROTATE_MODE_COPY_ROTATE  0x01

#define ROTATE_FORMAT_ARGB32  0x00
#define ROTATE_FORMAT_ABGR32  0x01
#define ROTATE_FORMAT_RGBA32  0x02
#define ROTATE_FORMAT_BGRA32  0x03
#define ROTATE_FORMAT_XRGB32  0x04
#define ROTATE_FORMAT_XBGR32  0x05
#define ROTATE_FORMAT_RGBX32  0x06
#define ROTATE_FORMAT_BGRX32  0x07
#define ROTATE_FORMAT_RGB24  0x08
#define ROTATE_FORMAT_BGR24  0x09
#define ROTATE_FORMAT_RGB565  0x0a
#define ROTATE_FORMAT_BGR565  0x0b
#define ROTATE_FORMAT_ARGB4444  0x0c
#define ROTATE_FORMAT_ABGR4444  0x0d
#define ROTATE_FORMAT_RGBA4444  0x0e
#define ROTATE_FORMAT_BGRA4444  0x0f
#define ROTATE_FORMAT_ARGB1555  0x10
#define ROTATE_FORMAT_ABGR1555  0x11
#define ROTATE_FORMAT_RGBA5551  0x12
#define ROTATE_FORMAT_BGRA5551  0x13

#define ROTATE_FORMAT_YUYV  0x20
#define ROTATE_FORMAT_UYVY  0x21
#define ROTATE_FORMAT_YVYU  0x22
#define ROTATE_FORMAT_VYUV  0x23
#define ROTATE_FORMAT_NV61  0x24
#define ROTATE_FORMAT_NV16  0x25
#define ROTATE_FORMAT_YUV422P  0x26
#define ROTATE_FORMAT_NV21  0x28
#define ROTATE_FORMAT_NV12  0x29
#define ROTATE_FORMAT_YUV420P  0x2A

#define ROTATE_SIZE(w, h) (((h) - 1) << 16 | ((w) - 1))

#define ROTATE_MIN_WIDTH 8U
#define ROTATE_MIN_HEIGHT 8U
#define ROTATE_MAX_WIDTH 4096U
#define ROTATE_MAX_HEIGHT 4096U

struct rotate_ctx {
 struct v4l2_fh  fh;
 struct rotate_dev *dev;

 struct v4l2_pix_format src_fmt;
 struct v4l2_pix_format dst_fmt;

 struct v4l2_ctrl_handler ctrl_handler;

 u32 hflip;
 u32 vflip;
 u32 rotate;
};

struct rotate_dev {
 struct v4l2_device v4l2_dev;
 struct video_device vfd;
 struct device  *dev;
 struct v4l2_m2m_dev *m2m_dev;

 /* Device file mutex */
 struct mutex  dev_mutex;

 void __iomem  *base;

 struct clk  *bus_clk;
 struct clk  *mod_clk;

 struct reset_control *rstc;
};

#endif

Messung V0.5
C=97 H=100 G=98

¤ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.