aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/platform
diff options
context:
space:
mode:
authorNiklas Söderlund <niklas.soderlund+renesas@ragnatech.se>2016-09-02 11:37:06 -0400
committerMauro Carvalho Chehab <mchehab@s-opensource.com>2016-09-19 15:30:20 -0400
commit6de690dd4e78b1bfd8e6777905203e55649d4d52 (patch)
tree3cec7f8e28b8e683eaef9780f6159ef5f52cf5a5 /drivers/media/platform
parentf429b56a7f8037ce58cf258b3bce182e376438c7 (diff)
[media] adv7180: rcar-vin: change mbus format to UYVY
The media bus format reported by the adv7180 is wrong. Steve Longerbeam posted a patch which changed the format to UYVY8_2X8 with the commit message: Change the media bus format from YUYV8_2X8 to UYVY8_2X8. Colors now look correct when capturing with the i.mx6 backend. The other option is to set the SWPC bit in register 0x27 to swap the Cr and Cb output samples. The rcar-vin driver was developed and tested with the adv7180 and therefor suffers from the same issue, looking for the wrong media bus format. The two errors corrected each other. This patch takes Steve's patch and merge it with a fix for rcar-vin driver. The rcar-vin driver is used used in together with the adv7180 och Koelsch and this ensures it will not break while fixing the adv7180 issue. I checked wit Steve and he was fine with me merging the patches. ADV7180 parts: Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> Suggested-by: Steve Longerbeam <steve_longerbeam@mentor.com> Signed-off-by: Steve Longerbeam <steve_longerbeam@mentor.com> Acked-by: Lars-Peter Clausen <lars@metafoo.de> Tested-by: Tim Harvey <tharvey@gateworks.com> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Diffstat (limited to 'drivers/media/platform')
-rw-r--r--drivers/media/platform/rcar-vin/rcar-core.c4
-rw-r--r--drivers/media/platform/rcar-vin/rcar-dma.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/drivers/media/platform/rcar-vin/rcar-core.c b/drivers/media/platform/rcar-vin/rcar-core.c
index 64999a2fba15..6219cbaea940 100644
--- a/drivers/media/platform/rcar-vin/rcar-core.c
+++ b/drivers/media/platform/rcar-vin/rcar-core.c
@@ -43,8 +43,8 @@ static bool rvin_mbus_supported(struct rvin_graph_entity *entity)
43 code.index++; 43 code.index++;
44 switch (code.code) { 44 switch (code.code) {
45 case MEDIA_BUS_FMT_YUYV8_1X16: 45 case MEDIA_BUS_FMT_YUYV8_1X16:
46 case MEDIA_BUS_FMT_YUYV8_2X8: 46 case MEDIA_BUS_FMT_UYVY8_2X8:
47 case MEDIA_BUS_FMT_YUYV10_2X10: 47 case MEDIA_BUS_FMT_UYVY10_2X10:
48 case MEDIA_BUS_FMT_RGB888_1X24: 48 case MEDIA_BUS_FMT_RGB888_1X24:
49 entity->code = code.code; 49 entity->code = code.code;
50 return true; 50 return true;
diff --git a/drivers/media/platform/rcar-vin/rcar-dma.c b/drivers/media/platform/rcar-vin/rcar-dma.c
index 9d9f02b1a4d9..8397125a8968 100644
--- a/drivers/media/platform/rcar-vin/rcar-dma.c
+++ b/drivers/media/platform/rcar-vin/rcar-dma.c
@@ -169,7 +169,7 @@ static int rvin_setup(struct rvin_dev *vin)
169 vnmc |= VNMC_INF_YUV16; 169 vnmc |= VNMC_INF_YUV16;
170 input_is_yuv = true; 170 input_is_yuv = true;
171 break; 171 break;
172 case MEDIA_BUS_FMT_YUYV8_2X8: 172 case MEDIA_BUS_FMT_UYVY8_2X8:
173 /* BT.656 8bit YCbCr422 or BT.601 8bit YCbCr422 */ 173 /* BT.656 8bit YCbCr422 or BT.601 8bit YCbCr422 */
174 vnmc |= vin->digital.mbus_cfg.type == V4L2_MBUS_BT656 ? 174 vnmc |= vin->digital.mbus_cfg.type == V4L2_MBUS_BT656 ?
175 VNMC_INF_YUV8_BT656 : VNMC_INF_YUV8_BT601; 175 VNMC_INF_YUV8_BT656 : VNMC_INF_YUV8_BT601;
@@ -178,7 +178,7 @@ static int rvin_setup(struct rvin_dev *vin)
178 case MEDIA_BUS_FMT_RGB888_1X24: 178 case MEDIA_BUS_FMT_RGB888_1X24:
179 vnmc |= VNMC_INF_RGB888; 179 vnmc |= VNMC_INF_RGB888;
180 break; 180 break;
181 case MEDIA_BUS_FMT_YUYV10_2X10: 181 case MEDIA_BUS_FMT_UYVY10_2X10:
182 /* BT.656 10bit YCbCr422 or BT.601 10bit YCbCr422 */ 182 /* BT.656 10bit YCbCr422 or BT.601 10bit YCbCr422 */
183 vnmc |= vin->digital.mbus_cfg.type == V4L2_MBUS_BT656 ? 183 vnmc |= vin->digital.mbus_cfg.type == V4L2_MBUS_BT656 ?
184 VNMC_INF_YUV10_BT656 : VNMC_INF_YUV10_BT601; 184 VNMC_INF_YUV10_BT656 : VNMC_INF_YUV10_BT601;