diff mbox

[03/12] davinci: dm365: Added swap between y and c data in isif port.

Message ID AANLkTincSmSsc40tjLFPNpKG7QtfCdqarI3uiF482Hu8@mail.gmail.com (mailing list archive)
State Superseded
Headers show

Commit Message

Raffaele Recalcati June 7, 2010, 10:15 a.m. UTC
None
diff mbox

Patch

diff --git a/drivers/media/video/davinci/isif.c
b/drivers/media/video/davinci/isif.c
index 29c29c6..120fcf0 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