This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/cgit.cgi/media_tree.git tree:

Subject: [media] soc_camera: rcar_vin: Add ARGB8888 caputre format support
Author:  Koji Matsuoka <[email protected]>
Date:    Sun Jan 24 14:13:29 2016 -0200

This patch adds ARGB8888 capture format support for R-Car Gen3.

Signed-off-by: Koji Matsuoka <[email protected]>
Signed-off-by: Yoshihiro Kaneko <[email protected]>
Signed-off-by: Guennadi Liakhovetski <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>

 drivers/media/platform/soc_camera/rcar_vin.c | 39 +++++++++++++++++++++-------
 1 file changed, 29 insertions(+), 10 deletions(-)

---

http://git.linuxtv.org/cgit.cgi/media_tree.git/commit/?id=c54ae8fea6e615dcb43fefd651e49d2d74d86daf
diff --git a/drivers/media/platform/soc_camera/rcar_vin.c 
b/drivers/media/platform/soc_camera/rcar_vin.c
index dc75a80794fb..3b8edf458964 100644
--- a/drivers/media/platform/soc_camera/rcar_vin.c
+++ b/drivers/media/platform/soc_camera/rcar_vin.c
@@ -124,7 +124,7 @@
 #define VNDMR_EXRGB            (1 << 8)
 #define VNDMR_BPSM             (1 << 4)
 #define VNDMR_DTMD_YCSEP       (1 << 1)
-#define VNDMR_DTMD_ARGB1555    (1 << 0)
+#define VNDMR_DTMD_ARGB                (1 << 0)
 
 /* Video n Data Mode Register 2 bits */
 #define VNDMR2_VPS             (1 << 30)
@@ -643,21 +643,26 @@ static int rcar_vin_setup(struct rcar_vin_priv *priv)
                output_is_yuv = true;
                break;
        case V4L2_PIX_FMT_RGB555X:
-               dmr = VNDMR_DTMD_ARGB1555;
+               dmr = VNDMR_DTMD_ARGB;
                break;
        case V4L2_PIX_FMT_RGB565:
                dmr = 0;
                break;
        case V4L2_PIX_FMT_RGB32:
-               if (priv->chip == RCAR_GEN2 || priv->chip == RCAR_H1 ||
-                   priv->chip == RCAR_E1) {
-                       dmr = VNDMR_EXRGB;
-                       break;
-               }
+               if (priv->chip != RCAR_GEN2 && priv->chip != RCAR_H1 &&
+                   priv->chip != RCAR_E1)
+                       goto e_format;
+
+               dmr = VNDMR_EXRGB;
+               break;
+       case V4L2_PIX_FMT_ARGB32:
+               if (priv->chip != RCAR_GEN3)
+                       goto e_format;
+
+               dmr = VNDMR_EXRGB | VNDMR_DTMD_ARGB;
+               break;
        default:
-               dev_warn(icd->parent, "Invalid fourcc format (0x%x)\n",
-                        icd->current_fmt->host_fmt->fourcc);
-               return -EINVAL;
+               goto e_format;
        }
 
        /* Always update on field change */
@@ -679,6 +684,11 @@ static int rcar_vin_setup(struct rcar_vin_priv *priv)
        iowrite32(vnmc | VNMC_ME, priv->base + VNMC_REG);
 
        return 0;
+
+e_format:
+       dev_warn(icd->parent, "Invalid fourcc format (0x%x)\n",
+                icd->current_fmt->host_fmt->fourcc);
+       return -EINVAL;
 }
 
 static void rcar_vin_capture(struct rcar_vin_priv *priv)
@@ -1304,6 +1314,14 @@ static const struct soc_mbus_pixelfmt rcar_vin_formats[] 
= {
                .order                  = SOC_MBUS_ORDER_LE,
                .layout                 = SOC_MBUS_LAYOUT_PACKED,
        },
+       {
+               .fourcc                 = V4L2_PIX_FMT_ARGB32,
+               .name                   = "ARGB8888",
+               .bits_per_sample        = 32,
+               .packing                = SOC_MBUS_PACKING_NONE,
+               .order                  = SOC_MBUS_ORDER_LE,
+               .layout                 = SOC_MBUS_LAYOUT_PACKED,
+       },
 };
 
 static int rcar_vin_get_formats(struct soc_camera_device *icd, unsigned int 
idx,
@@ -1611,6 +1629,7 @@ static int rcar_vin_set_fmt(struct soc_camera_device *icd,
        case V4L2_PIX_FMT_RGB32:
                can_scale = priv->chip != RCAR_E1;
                break;
+       case V4L2_PIX_FMT_ARGB32:
        case V4L2_PIX_FMT_UYVY:
        case V4L2_PIX_FMT_YUYV:
        case V4L2_PIX_FMT_RGB565:

_______________________________________________
linuxtv-commits mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to