[PATCH v4 07/14] drm: tilcdc: Replace drm_fb_get_bpp_depth() with drm_format_plane_cpp()

Jyri Sarha jsarha at ti.com
Thu Sep 15 09:49:52 UTC 2016


On 09/15/16 12:36, Tomi Valkeinen wrote:
> On 08/09/16 17:44, Laurent Pinchart wrote:
>> The driver needs the number of bytes per pixel, not the bpp and depth
>> info meant for fbdev compatibility. Use the right API.
>>
>> In the tilcdc_crtc_mode_set() function compute the hardware register
>> value directly from the pixel format instead of computing the number of
>> bits per pixels first.
>>
>> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
>> Reviewed-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
>> ---
>> Changes since v3:
>>
>> - Removed DRM_FORMAT_ARGB8888 support
>> - Fixed coding style
>> - Renamed min_pitch to pitch
>> ---
>>  drivers/gpu/drm/tilcdc/tilcdc_crtc.c  | 15 +++++----------
>>  drivers/gpu/drm/tilcdc/tilcdc_plane.c |  7 ++++---
>>  2 files changed, 9 insertions(+), 13 deletions(-)
>>
>> Cc: Jyri Sarha <jsarha at ti.com>
>>
>> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
>> index 25d6b220ee8a..a64718630cdb 100644
>> --- a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
>> +++ b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
>> @@ -67,15 +67,13 @@ static void set_scanout(struct drm_crtc *crtc, struct drm_framebuffer *fb)
>>  	struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc);
>>  	struct drm_device *dev = crtc->dev;
>>  	struct drm_gem_cma_object *gem;
>> -	unsigned int depth, bpp;
>>  	dma_addr_t start, end;
>>  
>> -	drm_fb_get_bpp_depth(fb->pixel_format, &depth, &bpp);
>>  	gem = drm_fb_cma_get_gem_obj(fb, 0);
>>  
>>  	start = gem->paddr + fb->offsets[0] +
>>  		crtc->y * fb->pitches[0] +
>> -		crtc->x * bpp / 8;
>> +		crtc->x * drm_format_plane_cpp(fb->pixel_format, 0);
>>  
>>  	end = start + (crtc->mode.vdisplay * fb->pitches[0]);
>>  
>> @@ -404,16 +402,13 @@ static void tilcdc_crtc_mode_set_nofb(struct drm_crtc *crtc)
>>  	if (info->tft_alt_mode)
>>  		reg |= LCDC_TFT_ALT_ENABLE;
>>  	if (priv->rev == 2) {
>> -		unsigned int depth, bpp;
>> -
>> -		drm_fb_get_bpp_depth(fb->pixel_format, &depth, &bpp);
>> -		switch (bpp) {
>> -		case 16:
>> +		switch (fb->pixel_format) {
>> +		case DRM_FORMAT_RGB565:
>>  			break;
>> -		case 32:
>> +		case DRM_FORMAT_XRGB8888:
>>  			reg |= LCDC_V2_TFT_24BPP_UNPACK;
>>  			/* fallthrough */
>> -		case 24:
>> +		case DRM_FORMAT_RGB888:
>>  			reg |= LCDC_V2_TFT_24BPP_MODE;
>>  			break;
> 
> Jyri, with your latest tilcdc changes, we need also BGR565, XBGR8888 and
> BGR888 here, don't we?
> 

Yes we do.

BR,
Jyri



More information about the dri-devel mailing list