Commit 5cdf5741 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Mauro Carvalho Chehab
Browse files

[media] v4l: vsp1: Add HST and HSI support



The Hue Saturation value Transform and Hue Saturation value Inverse
transform entities convert from RGB to HSV and back.

Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
parent 7e941a79
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
vsp1-y					:= vsp1_drv.o vsp1_entity.o vsp1_video.o
vsp1-y					+= vsp1_rpf.o vsp1_rwpf.o vsp1_wpf.o
vsp1-y					+= vsp1_lif.o vsp1_uds.o
vsp1-y					+= vsp1_hsit.o vsp1_lif.o vsp1_uds.o

obj-$(CONFIG_VIDEO_RENESAS_VSP1)	+= vsp1.o
+3 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ struct clk;
struct device;

struct vsp1_platform_data;
struct vsp1_hsit;
struct vsp1_lif;
struct vsp1_rwpf;
struct vsp1_uds;
@@ -47,6 +48,8 @@ struct vsp1_device {
	struct mutex lock;
	int ref_count;

	struct vsp1_hsit *hsi;
	struct vsp1_hsit *hst;
	struct vsp1_lif *lif;
	struct vsp1_rwpf *rpf[VPS1_MAX_RPF];
	struct vsp1_uds *uds[VPS1_MAX_UDS];
+17 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@
#include <linux/videodev2.h>

#include "vsp1.h"
#include "vsp1_hsit.h"
#include "vsp1_lif.h"
#include "vsp1_rwpf.h"
#include "vsp1_uds.h"
@@ -152,6 +153,22 @@ static int vsp1_create_entities(struct vsp1_device *vsp1)
	}

	/* Instantiate all the entities. */
	vsp1->hsi = vsp1_hsit_create(vsp1, true);
	if (IS_ERR(vsp1->hsi)) {
		ret = PTR_ERR(vsp1->hsi);
		goto done;
	}

	list_add_tail(&vsp1->hsi->entity.list_dev, &vsp1->entities);

	vsp1->hst = vsp1_hsit_create(vsp1, false);
	if (IS_ERR(vsp1->hst)) {
		ret = PTR_ERR(vsp1->hst);
		goto done;
	}

	list_add_tail(&vsp1->hst->entity.list_dev, &vsp1->entities);

	if (vsp1->pdata->features & VSP1_HAS_LIF) {
		vsp1->lif = vsp1_lif_create(vsp1);
		if (IS_ERR(vsp1->lif)) {
+2 −0
Original line number Diff line number Diff line
@@ -122,6 +122,8 @@ int vsp1_entity_init(struct vsp1_device *vsp1, struct vsp1_entity *entity,
		unsigned int id;
		unsigned int reg;
	} routes[] = {
		{ VI6_DPR_NODE_HSI, VI6_DPR_HSI_ROUTE },
		{ VI6_DPR_NODE_HST, VI6_DPR_HST_ROUTE },
		{ VI6_DPR_NODE_LIF, 0 },
		{ VI6_DPR_NODE_RPF(0), VI6_DPR_RPF_ROUTE(0) },
		{ VI6_DPR_NODE_RPF(1), VI6_DPR_RPF_ROUTE(1) },
+2 −0
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@
struct vsp1_device;

enum vsp1_entity_type {
	VSP1_ENTITY_HSI,
	VSP1_ENTITY_HST,
	VSP1_ENTITY_LIF,
	VSP1_ENTITY_RPF,
	VSP1_ENTITY_UDS,
Loading