text: /*
   * Copyright (C) 2010 Freescale Semiconductor, Inc.
   *
   * This program is free software; you can redistribute it and/or modify
   * it under the terms of the GNU General Public License as published by
   * the Free Software Foundation; either version 2 of the License, or
   * (at your option) any later version.
   *
   * This program is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   * GNU General Public License for more details.
   *
   * You should have received a copy of the GNU General Public License
   * along with this program; if not, write to the Free Software
   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
   *
   */
  /*
   * Based on STMP378X PxP driver
   * Copyright 2008-2009 Embedded Alley Solutions, Inc All Rights Reserved.
   */
  
  #ifndef	_MXC_PXP_V4L2_H
  #define	_MXC_PXP_V4L2_H
  
  #include <linux/dmaengine.h>
  #include <linux/pxp_dma.h>
  
  struct pxp_buffer {
  	/* Must be first! */
  	struct videobuf_buffer vb;
  
  	/* One descriptor per scatterlist (per frame) */
  	struct dma_async_tx_descriptor		*txd;
  
  	struct scatterlist			sg[3];
  };
  
  struct pxps {
  	struct platform_device *pdev;
  
  	spinlock_t lock;
  	struct mutex mutex;
  	int users;
  
  	struct video_device *vdev;
  
  	struct videobuf_queue s0_vbq;
  	struct pxp_buffer *active;
  	struct list_head outq;
  	struct pxp_channel	*pxp_channel[1];	/* We need 1 channel */
  	struct pxp_config_data pxp_conf;
  
  	int output;
  	u32 *outb;
  	dma_addr_t outb_phys;
  	u32 outb_size;
  
  	/* Current S0 configuration */
  	struct pxp_data_format *s0_fmt;
  
  	struct v4l2_framebuffer fb;
  
  	/* Output overlay support */
  	int overlay_state;
  	int global_alpha_state;
  	u8  global_alpha;
  	int s1_chromakey_state;
  	u32 s1_chromakey;
  
  	int fb_blank;
  };
  
  struct pxp_data_format {
  	char *name;
  	unsigned int bpp;
  	u32 fourcc;
  	enum v4l2_colorspace colorspace;
  };
  
  #endif
  