mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] davinci: dm365: Added swap between y and c data in isif port.
@ 2010-06-28  6:47 Raffaele Recalcati
  0 siblings, 0 replies; only message in thread
From: Raffaele Recalcati @ 2010-06-28  6:47 UTC (permalink / raw)
  To: davinci-linux-open-source
  Cc: Raffaele Recalcati, Mauro Carvalho Chehab, Hans Verkuil,
	Murali Karicheri, Nori, Sekhar, Laurent Pinchart, Alexey Klimov,
	Muralidharan Karicheri, linux-media, linux-kernel

From: Raffaele Recalcati <raffaele.recalcati@bticino.it>

    Added the possibility to change the position of y and c
    data in the isif port.
    This patch has been developed against the
    http://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-davinci.git
    git tree and tested on bmx board.

Signed-off-by: Raffaele Recalcati <raffaele.recalcati@bticino.it>
---
 drivers/media/video/davinci/isif.c |    6 +++++-
 include/media/davinci/isif.h       |    2 ++
 include/media/davinci/vpfe_types.h |    8 ++++++++
 3 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/drivers/media/video/davinci/isif.c b/drivers/media/video/davinci/isif.c
index 29c29c6..02a8bdb 100644
--- a/drivers/media/video/davinci/isif.c
+++ b/drivers/media/video/davinci/isif.c
@@ -105,6 +105,7 @@ static struct isif_oper_config {
 		.hd_pol = VPFE_PINPOL_POSITIVE,
 		.pix_order = CCDC_PIXORDER_CBYCRY,
 		.buf_type = CCDC_BUFTYPE_FLD_INTERLEAVED,
+		.ycswap = YCIN_NOT_SWP,
 	},
 	.bayer = {
 		.pix_fmt = CCDC_PIXFMT_RAW,
@@ -864,6 +865,7 @@ static void isif_setfbaddr(unsigned long addr)
 static int isif_set_hw_if_params(struct vpfe_hw_if_param *params)
 {
 	isif_cfg.if_type = params->if_type;
+	isif_cfg.ycbcr.ycswap = params->ycswap;
 
 	switch (params->if_type) {
 	case VPFE_BT656:
@@ -914,7 +916,9 @@ static int isif_config_ycbcr(void)
 		}
 		modeset |= (VPFE_PINPOL_NEGATIVE << ISIF_VD_POL_SHIFT);
 		regw(3, REC656IF);
-		ccdcfg = ccdcfg | ISIF_DATA_PACK8 | ISIF_YCINSWP_YCBCR;
+		ccdcfg = ccdcfg | ISIF_DATA_PACK8;
+		if (params->ycswap == YCIN_SWP)
+			ccdcfg |= ISIF_YCINSWP_YCBCR;
 		break;
 	case VPFE_BT656_10BIT:
 		if (params->pix_fmt != CCDC_PIXFMT_YCBCR_8BIT) {
diff --git a/include/media/davinci/isif.h b/include/media/davinci/isif.h
index b0b74ad..b123f2c 100644
--- a/include/media/davinci/isif.h
+++ b/include/media/davinci/isif.h
@@ -466,6 +466,8 @@ struct isif_ycbcr_config {
 	enum vpfe_pin_pol hd_pol;
 	/* isif pix order. Only used for ycbcr capture */
 	enum ccdc_pixorder pix_order;
+	/* ccdc data connection. 8 bit ycbcr data bus connection */
+	enum vpfe_data_swap ycswap;
 	/* isif buffer type. Only used for ycbcr capture */
 	enum ccdc_buftype buf_type;
 };
diff --git a/include/media/davinci/vpfe_types.h b/include/media/davinci/vpfe_types.h
index 76fb74b..337c917 100644
--- a/include/media/davinci/vpfe_types.h
+++ b/include/media/davinci/vpfe_types.h
@@ -40,12 +40,20 @@ enum vpfe_hw_if_type {
 	VPFE_BT656_10BIT
 };
 
+/* 8 bit interface can be swapped */
+enum vpfe_data_swap {
+	YCIN_NOT_SWP,
+	YCIN_SWP,
+};
+
 /* interface description */
 struct vpfe_hw_if_param {
 	enum vpfe_hw_if_type if_type;
 	enum vpfe_pin_pol hdpol;
 	enum vpfe_pin_pol vdpol;
+	enum vpfe_data_swap ycswap;
 };
 
+
 #endif
 #endif
-- 
1.7.0.4


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2010-06-28  6:47 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-06-28  6:47 [PATCH] davinci: dm365: Added swap between y and c data in isif port Raffaele Recalcati

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome