[PATCH 3/8] drm/exynos: mixer: simplify {vp_video,mixer_graph}_buffer()

Tobias Jakobi tjakobi at math.uni-bielefeld.de
Fri Aug 11 11:43:40 UTC 2017


Inki Dae wrote:
> 
> 
> 2017년 08월 09일 20:48에 Tobias Jakobi 이(가) 쓴 글:
>> DRM core already checks the validity of the pixelformats, so we
>> can simplify the checks here. The same applies to the FB modifier,
>> which is now checked in common Exynos plane code.
>>
>> Also rename the booleans to reflect what true/false actually
>> means.
>>
>> Signed-off-by: Tobias Jakobi <tjakobi at math.uni-bielefeld.de>
>> ---
>>  drivers/gpu/drm/exynos/exynos_mixer.c | 31 +++++++------------------------
>>  1 file changed, 7 insertions(+), 24 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c
>> index 4c894d97aba3..8d68de85bada 100644
>> --- a/drivers/gpu/drm/exynos/exynos_mixer.c
>> +++ b/drivers/gpu/drm/exynos/exynos_mixer.c
>> @@ -484,32 +484,18 @@ static void vp_video_buffer(struct mixer_context *ctx,
>>  	unsigned int priority =tate->base.normalized_zpos + 1;
>>  	unsigned long flags;
>>  	dma_addr_t luma_addr[2], chroma_addr[2];
>> -	bool tiled_mode =alse;
>> -	bool crcb_mode =alse;
>> +	bool is_tiled, is_nv21;
>>  	u32 val;
>>  
>> -	switch (fb->format->format) {
>> -	case DRM_FORMAT_NV12:
>> -		crcb_mode =alse;
>> -		break;
>> -	case DRM_FORMAT_NV21:
>> -		crcb_mode =rue;
>> -		break;
>> -	default:
>> -		DRM_ERROR("pixel format for vp is wrong [%d].\n",
>> -				fb->format->format);
>> -		return;
>> -	}
>> -
>> -	if (fb->modifier =DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
>> -		tiled_mode =rue;
>> +	is_nv21 =fb->format->format == DRM_FORMAT_NV21);
>> +	is_tiled =fb->modifier == DRM_FORMAT_MOD_SAMSUNG_64_32_TILE);
>>  
>>  	luma_addr[0] =xynos_drm_fb_dma_addr(fb, 0);
>>  	chroma_addr[0] =xynos_drm_fb_dma_addr(fb, 1);
>>  
>>  	if (mode->flags & DRM_MODE_FLAG_INTERLACE) {
>>  		__set_bit(MXR_BIT_INTERLACE, &ctx->flags);
>> -		if (tiled_mode) {
>> +		if (is_tiled) {
>>  			luma_addr[1] =uma_addr[0] + 0x40;
>>  			chroma_addr[1] =hroma_addr[0] + 0x40;
>>  		} else {
>> @@ -529,8 +515,8 @@ static void vp_video_buffer(struct mixer_context *ctx,
>>  	vp_reg_writemask(res, VP_MODE, val, VP_MODE_LINE_SKIP);
>>  
>>  	/* setup format */
>> -	val =crcb_mode ? VP_MODE_NV21 : VP_MODE_NV12);
>> -	val |=tiled_mode ? VP_MODE_MEM_TILED : VP_MODE_MEM_LINEAR);
>> +	val =is_nv21 ? VP_MODE_NV21 : VP_MODE_NV12);
>> +	val |=is_tiled ? VP_MODE_MEM_TILED : VP_MODE_MEM_LINEAR);
>>  	vp_reg_writemask(res, VP_MODE, val, VP_MODE_FMT_MASK);
>>  
>>  	/* setting size of input image */
>> @@ -620,12 +606,9 @@ static void mixer_graph_buffer(struct mixer_context *ctx,
>>  
>>  	case DRM_FORMAT_XRGB8888:
>>  	case DRM_FORMAT_ARGB8888:
>> +	default:
>>  		fmt =XR_FORMAT_ARGB8888;
>>  		break;
>> -
>> -	default:
>> -		DRM_DEBUG_KMS("pixelformat unsupported by mixer\n");
>> -		return;
> 
> This change should be made as another patch because this patch changes the behavior whether it allows wrong pixel format or not.
> 
OK, I will split the change to mixer_graph_buffer() into another patch here.

- Tobias


> Thanks,
> Inki Dae
> 
>>  	}
>>  
>>  	/* ratio is already checked by common plane code */
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 



More information about the dri-devel mailing list