Skip to content
Snippets Groups Projects
Select Git revision
  • pred_err_handling default protected
  • pred_err_handling_more_prints
  • pbm_no_preemption_fix_test_input
  • pbm_no_preemption_fix_test
  • libpbm_kernel_fix
  • libpbm_kernel
  • bugfix/setup
  • libpbm_kernel_fix_bak
  • pbm_no_preemption
  • pbm
  • testing
  • sose22results
  • sose22
  • master protected
  • err_detect
  • kelvin
16 results

csc.h

Blame
  • user avatar
    Benoit Parrot authored and Mauro Carvalho Chehab committed
    In preparation to add colorspace conversion support to VIP,
    we need to turn csc.c into its own kernel module.
    
    Signed-off-by: default avatarBenoit Parrot <bparrot@ti.com>
    Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
    51b56c39
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    csc.h 1.64 KiB
    /*
     * Copyright (c) 2013 Texas Instruments Inc.
     *
     * David Griego, <dagriego@biglakesoftware.com>
     * Dale Farnsworth, <dale@farnsworth.org>
     * Archit Taneja, <archit@ti.com>
     *
     * This program is free software; you can redistribute it and/or modify it
     * under the terms of the GNU General Public License version 2 as published by
     * the Free Software Foundation.
     */
    #ifndef TI_CSC_H
    #define TI_CSC_H
    
    /* VPE color space converter regs */
    #define CSC_CSC00		0x00
    #define CSC_A0_MASK		0x1fff
    #define CSC_A0_SHIFT		0
    #define CSC_B0_MASK		0x1fff
    #define CSC_B0_SHIFT		16
    
    #define CSC_CSC01		0x04
    #define CSC_C0_MASK		0x1fff
    #define CSC_C0_SHIFT		0
    #define CSC_A1_MASK		0x1fff
    #define CSC_A1_SHIFT		16
    
    #define CSC_CSC02		0x08
    #define CSC_B1_MASK		0x1fff
    #define CSC_B1_SHIFT		0
    #define CSC_C1_MASK		0x1fff
    #define CSC_C1_SHIFT		16
    
    #define CSC_CSC03		0x0c
    #define CSC_A2_MASK		0x1fff
    #define CSC_A2_SHIFT		0
    #define CSC_B2_MASK		0x1fff
    #define CSC_B2_SHIFT		16
    
    #define CSC_CSC04		0x10
    #define CSC_C2_MASK		0x1fff
    #define CSC_C2_SHIFT		0
    #define CSC_D0_MASK		0x0fff
    #define CSC_D0_SHIFT		16
    
    #define CSC_CSC05		0x14
    #define CSC_D1_MASK		0x0fff
    #define CSC_D1_SHIFT		0
    #define CSC_D2_MASK		0x0fff
    #define CSC_D2_SHIFT		16
    
    #define CSC_BYPASS		(1 << 28)
    
    struct csc_data {
    	void __iomem		*base;
    	struct resource		*res;
    
    	struct platform_device	*pdev;
    };
    
    void csc_dump_regs(struct csc_data *csc);
    void csc_set_coeff_bypass(struct csc_data *csc, u32 *csc_reg5);
    void csc_set_coeff(struct csc_data *csc, u32 *csc_reg0,
    		enum v4l2_colorspace src_colorspace,
    		enum v4l2_colorspace dst_colorspace);
    struct csc_data *csc_create(struct platform_device *pdev, const char *res_name);
    
    #endif