On Sat, Feb 11, 2017 at 11:02:01PM +0300, Sergei Shtylyov wrote:
> From: Konstantin Kozhevnikov <[email protected]>
>
> The image renderer light extended 4 (IMR-LX4) or the distortion correction
> engine is a drawing processor with a simple instruction system capable of
> referencing data on an external memory as 2D texture data and performing
> texture mapping and drawing with respect to any shape that is split into
> triangular objects.
>
> This V4L2 memory-to-memory device driver only supports image renderer found
> in the R-Car gen3 SoCs; the R-Car gen2 support can be added later...
>
> [Sergei: merged 2 original patches, added the patch description, removed
> unrelated parts, added the binding document, ported the driver to the
> modern kernel, renamed the UAPI header file and the guard macros to match
> the driver name, extended the copyrights, fixed up Kconfig prompt/depends/
> help, made use of the BIT()/GENMASK() macros, sorted #include's, removed
> leading dots and fixed grammar in the comments, fixed up indentation to
> use tabs where possible, renamed IMR_DLSR to IMR_DLPR to match the manual,
> separated the register offset/bit #define's, removed *inline* from .c file,
> fixed lines over 80 columns, removed useless parens, operators, casts,
> braces, variables, #include's, (commented out) statements, and even
> function, inserted empty line after desclaration, removed extra empty
> lines, reordered some local variable desclarations, removed calls to
> 4l2_err() on kmalloc() failure, fixed the error returned by imr_default(),
> avoided code duplication in the IRQ handler, used '__packed' for the UAPI
> structures, enclosed the macro parameters in parens, exchanged the values
> of IMR_MAP_AUTO[SD]G macros.]
>
> Signed-off-by: Konstantin Kozhevnikov
> <[email protected]>
> Signed-off-by: Sergei Shtylyov <[email protected]>
>
> ---
> This patch is against the 'media_tree.git' repo's 'master' branch.
>
> Documentation/devicetree/bindings/media/rcar_imr.txt | 23
> drivers/media/platform/Kconfig | 13
> drivers/media/platform/Makefile | 1
> drivers/media/platform/rcar_imr.c | 1923
> +++++++++++++++++++
> include/uapi/linux/rcar_imr.h | 94
> 5 files changed, 2054 insertions(+)
>
> Index: media_tree/Documentation/devicetree/bindings/media/rcar_imr.txt
> ===================================================================
> --- /dev/null
> +++ media_tree/Documentation/devicetree/bindings/media/rcar_imr.txt
> @@ -0,0 +1,23 @@
> +Renesas R-Car Image Renderer (Distortion Correction Engine)
> +-----------------------------------------------------------
> +
> +The image renderer or the distortion correction engine is a drawing
> processor
> +with a simple instruction system capable of referencing data in external
> memory
> +as 2D texture data and performing texture mapping and drawing with respect
> to
> +any shape that is split into triangular objects.
Please fix extra spaces in here.
> +
> +Required properties:
> +- compatible: must be "renesas,imr-lx4" for the image renderer light
> extended 4
> + (IMR-LX4) found in the R-Car gen3 SoCs;
Needs an SoC specific compatible string too.
The description is above, so you just need to list the compatible
strings.
> +- reg: offset and length of the register block;
> +- interrupts: interrupt specifier;
How many interrupts?
> +- clocks: clock phandle and specifier pair.
How many clocks?
> +
> +Example:
> +
> + imr-lx4@fe860000 {
> + compatible = "renesas,imr-lx4";
> + reg = <0 0xfe860000 0 0x2000>;
> + interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&cpg CPG_MOD 823>;
> + };