v4l2-tpg: ignore V4L2_DV_RGB_RANGE setting for YUV formats
PATCH 1/1 v4l2-tpg: ignore V4L2_DV_RGB_RANGE setting for YUV formats
The V4L2_DV_RGB_RANGE_* settings are, as the name says, for RGB formats only. So they should be ignored for non-RGB formats.
Signed-off-by Hans Verkuil <[email protected]>
---
drivers/media/common/v4l2-tpg/v4l2-tpg-core.c +2 -2
@@ -777,7 +777,7 @@ static void precalculate_color(struct tpg_data *tpg, int k)* Remember that r, g and b are still in the 0 - 0xff0 range. */ if (tpg->real_rgb_range ==V4L2_DV_RGB_RANGE_LIMITED && - tpg->rgb_range ==V4L2_DV_RGB_RANGE_FULL ) { + tpg->rgb_range ==V4L2_DV_RGB_RANGE_FULL && !tpg->is_yuv) {/* * Convert from full range (which is what r, g and b are) * to limited range (which is the 'real' RGB range), which
@@ -787,7 +787,7 @@ static void precalculate_color(struct tpg_data *tpg, int k) g = (g *219 ) /255 + (16 <<4 ); b = (b *219 ) /255 + (16 <<4 ); }else if (tpg->real_rgb_range !=V4L2_DV_RGB_RANGE_LIMITED && - tpg->rgb_range ==V4L2_DV_RGB_RANGE_LIMITED ) { + tpg->rgb_range ==V4L2_DV_RGB_RANGE_LIMITED && !tpg->is_yuv) {/* * Clamp r, g and b to the limited range and convert to full * range since that's what we deliver.