mirror of
https://github.com/genesi/linux-legacy.git
synced 2026-02-14 05:35:11 +00:00
This is i.MX BSP 5.0.0 release ported to 2.6.31 Signed-off-by: Rob Herring <r.herring@freescale.com> Signed-off-by: Alan Tull <r80115@freescale.com> Signed-off-by: Xinyu Chen <xinyu.chen@freescale.com>
126 lines
3.4 KiB
C
126 lines
3.4 KiB
C
/*
|
|
* Copyright 2005-2009 Freescale Semiconductor, Inc. All Rights Reserved.
|
|
*/
|
|
|
|
/*
|
|
* The code contained herein is licensed under the GNU Lesser General
|
|
* Public License. You may obtain a copy of the GNU Lesser General
|
|
* Public License Version 2.1 or later at the following locations:
|
|
*
|
|
* http://www.opensource.org/licenses/lgpl-license.html
|
|
* http://www.gnu.org/copyleft/lgpl.html
|
|
*/
|
|
|
|
/*!
|
|
* @defgroup MXC_PF MPEG4/H.264 Post Filter Driver
|
|
*/
|
|
/*!
|
|
* @file arch-mxc/mxc_pf.h
|
|
*
|
|
* @brief MXC IPU MPEG4/H.264 Post-filtering driver
|
|
*
|
|
* User-level API for IPU Hardware MPEG4/H.264 Post-filtering.
|
|
*
|
|
* @ingroup MXC_PF
|
|
*/
|
|
#ifndef __INCLUDED_MXC_PF_H__
|
|
#define __INCLUDED_MXC_PF_H__
|
|
|
|
#define PF_MAX_BUFFER_CNT 17
|
|
|
|
#define PF_WAIT_Y 0x0001
|
|
#define PF_WAIT_U 0x0002
|
|
#define PF_WAIT_V 0x0004
|
|
#define PF_WAIT_ALL (PF_WAIT_Y|PF_WAIT_U|PF_WAIT_V)
|
|
|
|
/*!
|
|
* Structure for Post Filter initialization parameters.
|
|
*/
|
|
typedef struct {
|
|
uint16_t pf_mode; /*!< Post filter operation mode */
|
|
uint16_t width; /*!< Width of frame in pixels */
|
|
uint16_t height; /*!< Height of frame in pixels */
|
|
uint16_t stride; /*!< Stride of Y plane in pixels. Stride for U and V planes is half Y stride */
|
|
uint32_t qp_size;
|
|
unsigned long qp_paddr;
|
|
} pf_init_params;
|
|
|
|
/*!
|
|
* Structure for Post Filter buffer request parameters.
|
|
*/
|
|
typedef struct {
|
|
int count; /*!< Number of buffers requested */
|
|
__u32 req_size;
|
|
} pf_reqbufs_params;
|
|
|
|
/*!
|
|
* Structure for Post Filter buffer request parameters.
|
|
*/
|
|
typedef struct {
|
|
int index;
|
|
int size; /*!< Size of buffer allocated */
|
|
__u32 offset; /*!< Buffer offset in driver memory. Set by QUERYBUF */
|
|
__u32 y_offset; /*!< Optional starting relative offset of Y data
|
|
from beginning of buffer. Set to 0 to use default
|
|
calculated based on height and stride */
|
|
__u32 u_offset; /*!< Optional starting relative offset of U data
|
|
from beginning of buffer. Set to 0 to use default
|
|
calculated based on height and stride */
|
|
__u32 v_offset; /*!< Optional starting relative offset of V data
|
|
from beginning of buffer. Set to 0 to use default
|
|
calculated based on height and stride */
|
|
} pf_buf;
|
|
|
|
/*!
|
|
* Structure for Post Filter start parameters.
|
|
*/
|
|
typedef struct {
|
|
pf_buf in; /*!< Input buffer address and offsets */
|
|
pf_buf out; /*!< Output buffer address and offsets */
|
|
int qp_buf;
|
|
int wait;
|
|
uint32_t h264_pause_row; /*!< Row to pause at for H.264 mode. 0 to disable pause */
|
|
} pf_start_params;
|
|
|
|
/*! @name User Client Ioctl Interface */
|
|
/*! @{ */
|
|
|
|
/*!
|
|
* IOCTL to Initialize the Post Filter.
|
|
*/
|
|
#define PF_IOCTL_INIT _IOW('F',0x0, pf_init_params)
|
|
|
|
/*!
|
|
* IOCTL to Uninitialize the Post Filter.
|
|
*/
|
|
#define PF_IOCTL_UNINIT _IO('F',0x1)
|
|
|
|
/*!
|
|
* IOCTL to set the buffer mode and allocate buffers if driver allocated.
|
|
*/
|
|
#define PF_IOCTL_REQBUFS _IOWR('F',0x2, pf_reqbufs_params)
|
|
|
|
/*!
|
|
* IOCTL to set the buffer mode and allocate buffers if driver allocated.
|
|
*/
|
|
#define PF_IOCTL_QUERYBUF _IOR('F',0x2, pf_buf)
|
|
|
|
/*!
|
|
* IOCTL to start post filtering on a frame of data. This ioctl may block until
|
|
* processing is done or return immediately.
|
|
*/
|
|
#define PF_IOCTL_START _IOWR('F',0x3, pf_start_params)
|
|
|
|
/*!
|
|
* IOCTL to resume post-filtering after an intra frame pause in H.264 mode.
|
|
*/
|
|
#define PF_IOCTL_RESUME _IOW('F',0x4, int)
|
|
|
|
/*!
|
|
* IOCTL to wait for post-filtering to complete.
|
|
*/
|
|
#define PF_IOCTL_WAIT _IOW('F',0x5, int)
|
|
/*! @} */
|
|
|
|
#endif /* __INCLUDED_MXC_PF_H__ */
|