summaryrefslogtreecommitdiff
path: root/drivers/media/platform/vsp1/vsp1_entity.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/platform/vsp1/vsp1_entity.h')
-rw-r--r--drivers/media/platform/vsp1/vsp1_entity.h167
1 files changed, 0 insertions, 167 deletions
diff --git a/drivers/media/platform/vsp1/vsp1_entity.h b/drivers/media/platform/vsp1/vsp1_entity.h
deleted file mode 100644
index c169a060b6d2..000000000000
--- a/drivers/media/platform/vsp1/vsp1_entity.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * vsp1_entity.h -- R-Car VSP1 Base Entity
- *
- * Copyright (C) 2013-2014 Renesas Electronics Corporation
- *
- * Contact: Laurent Pinchart (laurent.pinchart@ideasonboard.com)
- *
- * 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.
- */
-#ifndef __VSP1_ENTITY_H__
-#define __VSP1_ENTITY_H__
-
-#include <linux/list.h>
-#include <linux/mutex.h>
-
-#include <media/v4l2-subdev.h>
-
-struct vsp1_device;
-struct vsp1_dl_list;
-struct vsp1_pipeline;
-
-enum vsp1_entity_type {
- VSP1_ENTITY_BRU,
- VSP1_ENTITY_CLU,
- VSP1_ENTITY_HGO,
- VSP1_ENTITY_HGT,
- VSP1_ENTITY_HSI,
- VSP1_ENTITY_HST,
- VSP1_ENTITY_LIF,
- VSP1_ENTITY_LUT,
- VSP1_ENTITY_RPF,
- VSP1_ENTITY_SRU,
- VSP1_ENTITY_UDS,
- VSP1_ENTITY_WPF,
-};
-
-/**
- * enum vsp1_entity_params - Entity configuration parameters class
- * @VSP1_ENTITY_PARAMS_INIT - Initial parameters
- * @VSP1_ENTITY_PARAMS_PARTITION - Per-image partition parameters
- * @VSP1_ENTITY_PARAMS_RUNTIME - Runtime-configurable parameters
- */
-enum vsp1_entity_params {
- VSP1_ENTITY_PARAMS_INIT,
- VSP1_ENTITY_PARAMS_PARTITION,
- VSP1_ENTITY_PARAMS_RUNTIME,
-};
-
-#define VSP1_ENTITY_MAX_INPUTS 5 /* For the BRU */
-
-/*
- * struct vsp1_route - Entity routing configuration
- * @type: Entity type this routing entry is associated with
- * @index: Entity index this routing entry is associated with
- * @reg: Output routing configuration register
- * @inputs: Target node value for each input
- * @output: Target node value for entity output
- *
- * Each $vsp1_route entry describes routing configuration for the entity
- * specified by the entry's @type and @index. @reg indicates the register that
- * holds output routing configuration for the entity, and the @inputs array
- * store the target node value for each input of the entity. The @output field
- * stores the target node value of the entity output when used as a source for
- * histogram generation.
- */
-struct vsp1_route {
- enum vsp1_entity_type type;
- unsigned int index;
- unsigned int reg;
- unsigned int inputs[VSP1_ENTITY_MAX_INPUTS];
- unsigned int output;
-};
-
-/**
- * struct vsp1_entity_operations - Entity operations
- * @destroy: Destroy the entity.
- * @configure: Setup the hardware based on the entity state (pipeline, formats,
- * selection rectangles, ...)
- * @max_width: Return the max supported width of data that the entity can
- * process in a single operation.
- */
-struct vsp1_entity_operations {
- void (*destroy)(struct vsp1_entity *);
- void (*configure)(struct vsp1_entity *, struct vsp1_pipeline *,
- struct vsp1_dl_list *, enum vsp1_entity_params);
- unsigned int (*max_width)(struct vsp1_entity *, struct vsp1_pipeline *);
-};
-
-struct vsp1_entity {
- struct vsp1_device *vsp1;
-
- const struct vsp1_entity_operations *ops;
-
- enum vsp1_entity_type type;
- unsigned int index;
- const struct vsp1_route *route;
-
- struct list_head list_dev;
- struct list_head list_pipe;
-
- struct media_pad *pads;
- unsigned int source_pad;
-
- struct media_entity **sources;
- struct media_entity *sink;
- unsigned int sink_pad;
-
- struct v4l2_subdev subdev;
- struct v4l2_subdev_pad_config *config;
-
- struct mutex lock; /* Protects the pad config */
-};
-
-static inline struct vsp1_entity *to_vsp1_entity(struct v4l2_subdev *subdev)
-{
- return container_of(subdev, struct vsp1_entity, subdev);
-}
-
-int vsp1_entity_init(struct vsp1_device *vsp1, struct vsp1_entity *entity,
- const char *name, unsigned int num_pads,
- const struct v4l2_subdev_ops *ops, u32 function);
-void vsp1_entity_destroy(struct vsp1_entity *entity);
-
-extern const struct v4l2_subdev_internal_ops vsp1_subdev_internal_ops;
-
-int vsp1_entity_link_setup(struct media_entity *entity,
- const struct media_pad *local,
- const struct media_pad *remote, u32 flags);
-
-struct v4l2_subdev_pad_config *
-vsp1_entity_get_pad_config(struct vsp1_entity *entity,
- struct v4l2_subdev_pad_config *cfg,
- enum v4l2_subdev_format_whence which);
-struct v4l2_mbus_framefmt *
-vsp1_entity_get_pad_format(struct vsp1_entity *entity,
- struct v4l2_subdev_pad_config *cfg,
- unsigned int pad);
-struct v4l2_rect *
-vsp1_entity_get_pad_selection(struct vsp1_entity *entity,
- struct v4l2_subdev_pad_config *cfg,
- unsigned int pad, unsigned int target);
-int vsp1_entity_init_cfg(struct v4l2_subdev *subdev,
- struct v4l2_subdev_pad_config *cfg);
-
-void vsp1_entity_route_setup(struct vsp1_entity *entity,
- struct vsp1_pipeline *pipe,
- struct vsp1_dl_list *dl);
-
-struct media_pad *vsp1_entity_remote_pad(struct media_pad *pad);
-
-int vsp1_subdev_get_pad_format(struct v4l2_subdev *subdev,
- struct v4l2_subdev_pad_config *cfg,
- struct v4l2_subdev_format *fmt);
-int vsp1_subdev_enum_mbus_code(struct v4l2_subdev *subdev,
- struct v4l2_subdev_pad_config *cfg,
- struct v4l2_subdev_mbus_code_enum *code,
- const unsigned int *codes, unsigned int ncodes);
-int vsp1_subdev_enum_frame_size(struct v4l2_subdev *subdev,
- struct v4l2_subdev_pad_config *cfg,
- struct v4l2_subdev_frame_size_enum *fse,
- unsigned int min_w, unsigned int min_h,
- unsigned int max_w, unsigned int max_h);
-
-#endif /* __VSP1_ENTITY_H__ */