root/drivers/staging/media/omap4iss/iss_ipipe.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0+ */
   2 /*
   3  * TI OMAP4 ISS V4L2 Driver - ISP IPIPE module
   4  *
   5  * Copyright (C) 2012 Texas Instruments, Inc.
   6  *
   7  * Author: Sergio Aguirre <sergio.a.aguirre@gmail.com>
   8  */
   9 
  10 #ifndef OMAP4_ISS_IPIPE_H
  11 #define OMAP4_ISS_IPIPE_H
  12 
  13 #include "iss_video.h"
  14 
  15 enum ipipe_input_entity {
  16         IPIPE_INPUT_NONE,
  17         IPIPE_INPUT_IPIPEIF,
  18 };
  19 
  20 #define IPIPE_OUTPUT_VP                         BIT(0)
  21 
  22 /* Sink and source IPIPE pads */
  23 #define IPIPE_PAD_SINK                          0
  24 #define IPIPE_PAD_SOURCE_VP                     1
  25 #define IPIPE_PADS_NUM                          2
  26 
  27 /*
  28  * struct iss_ipipe_device - Structure for the IPIPE module to store its own
  29  *                          information
  30  * @subdev: V4L2 subdevice
  31  * @pads: Sink and source media entity pads
  32  * @formats: Active video formats
  33  * @input: Active input
  34  * @output: Active outputs
  35  * @error: A hardware error occurred during capture
  36  * @state: Streaming state
  37  * @wait: Wait queue used to stop the module
  38  * @stopping: Stopping state
  39  */
  40 struct iss_ipipe_device {
  41         struct v4l2_subdev subdev;
  42         struct media_pad pads[IPIPE_PADS_NUM];
  43         struct v4l2_mbus_framefmt formats[IPIPE_PADS_NUM];
  44 
  45         enum ipipe_input_entity input;
  46         unsigned int output;
  47         unsigned int error;
  48 
  49         enum iss_pipeline_stream_state state;
  50         wait_queue_head_t wait;
  51         atomic_t stopping;
  52 };
  53 
  54 struct iss_device;
  55 
  56 int omap4iss_ipipe_register_entities(struct iss_ipipe_device *ipipe,
  57                                      struct v4l2_device *vdev);
  58 void omap4iss_ipipe_unregister_entities(struct iss_ipipe_device *ipipe);
  59 
  60 int omap4iss_ipipe_init(struct iss_device *iss);
  61 void omap4iss_ipipe_cleanup(struct iss_device *iss);
  62 
  63 #endif  /* OMAP4_ISS_IPIPE_H */

/* [<][>][^][v][top][bottom][index][help] */