[PATCH v6 03/12] drm/exynos: atomic phase 1: add .mode_set_nofb() callback

Joonyoung Shim jy0922.shim at samsung.com
Wed May 27 01:43:54 PDT 2015


On 05/23/2015 12:33 AM, Gustavo Padovan wrote:
> Hi Joonyoung,
> 
> 2015-05-22 Joonyoung Shim <jy0922.shim at samsung.com>:
> 
>> On 05/22/2015 05:02 AM, Gustavo Padovan wrote:
>>> From: Gustavo Padovan <gustavo.padovan at collabora.co.uk>
>>>
>>> The new atomic infrastructure needs the .mode_set_nofb() callback to
>>> update CRTC timings before setting any plane.
>>>
>>> Signed-off-by: Gustavo Padovan <gustavo.padovan at collabora.co.uk>
>>> ---
>>>  drivers/gpu/drm/exynos/exynos_drm_crtc.c | 60 +++++---------------------------
>>>  1 file changed, 9 insertions(+), 51 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
>>> index 61b8cfe..54b74e1 100644
>>> --- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c
>>> +++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
>>> @@ -81,59 +81,16 @@ exynos_drm_crtc_mode_fixup(struct drm_crtc *crtc,
>>>  	return true;
>>>  }
>>>  
>>> -static int
>>> -exynos_drm_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *mode,
>>> -			  struct drm_display_mode *adjusted_mode, int x, int y,
>>> -			  struct drm_framebuffer *old_fb)
>>> -{
>>> -	struct drm_framebuffer *fb = crtc->primary->fb;
>>> -	unsigned int crtc_w;
>>> -	unsigned int crtc_h;
>>> -	int ret;
>>> -
>>> -	/*
>>> -	 * copy the mode data adjusted by mode_fixup() into crtc->mode
>>> -	 * so that hardware can be seet to proper mode.
>>> -	 */
>>> -	memcpy(&crtc->mode, adjusted_mode, sizeof(*adjusted_mode));
>>
>> This can cause any problem because exynos drm drivers use crtc->mode
>> directly as adjusted_mode. It's necessary to consider using
>> crtc_state->adjusted_mode in exynos drm drivers.
> 
> Yes, we are moving to use adjusted_mode in exynos, see this patch from
> Tobias. It makes crtc uses the adjusted_mode instead. So I think it is
> okay to remove this memcpy from here.
> 
> http://www.spinics.net/lists/linux-samsung-soc/msg44790.html

Yeah, but that is just one, it can be other missing points. It's better
to care all missing points with removing memcpy of adjusted_mode.


More information about the dri-devel mailing list