diff mbox

drm/exynos: fix source data argument for plane

Message ID 1429173804-27064-1-git-send-email-jy0922.shim@samsung.com (mailing list archive)
State New, archived
Headers show

Commit Message

Joonyoung Shim April 16, 2015, 8:43 a.m. UTC
The exynos_update_plane function needs 16.16 fixed point source data.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
---
 drivers/gpu/drm/exynos/exynos_drm_crtc.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Comments

Gustavo Padovan April 24, 2015, 6:15 p.m. UTC | #1
Hi Joonyoung,

2015-04-16 Joonyoung Shim <jy0922.shim@samsung.com>:

> The exynos_update_plane function needs 16.16 fixed point source data.
> 
> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
> ---
>  drivers/gpu/drm/exynos/exynos_drm_crtc.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
> index eb49195..f0bdaca 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
> @@ -127,7 +127,8 @@ static int exynos_drm_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y,
>  	crtc_h = fb->height - y;
>  
>  	return exynos_update_plane(crtc->primary, crtc, fb, 0, 0,
> -				   crtc_w, crtc_h, x, y, crtc_w, crtc_h);
> +				   crtc_w, crtc_h, x << 16, y << 16,
> +				   crtc_w << 16, crtc_h << 16);
>  }
>  
>  static void exynos_drm_crtc_disable(struct drm_crtc *crtc)
> @@ -202,8 +203,8 @@ static int exynos_drm_crtc_page_flip(struct drm_crtc *crtc,
>  	crtc_w = fb->width - crtc->x;
>  	crtc_h = fb->height - crtc->y;
>  	ret = exynos_update_plane(crtc->primary, crtc, fb, 0, 0,
> -				  crtc_w, crtc_h, crtc->x, crtc->y,
> -				  crtc_w, crtc_h);
> +				  crtc_w, crtc_h, crtc->x << 16, crtc->y << 16,
> +				  crtc_w << 16, crtc_h << 16);

Assuming we are pushing the atomic patches soon we don't need the change
on this patch.  I've asked about the atomic  modesetting patches in the
other thread.

	Gustavo
Joonyoung Shim April 27, 2015, 6:56 a.m. UTC | #2
Hi Gustavo,

On 04/25/2015 03:15 AM, Gustavo Padovan wrote:
> Hi Joonyoung,
> 
> 2015-04-16 Joonyoung Shim <jy0922.shim@samsung.com>:
> 
>> The exynos_update_plane function needs 16.16 fixed point source data.
>>
>> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
>> ---
>>  drivers/gpu/drm/exynos/exynos_drm_crtc.c | 7 ++++---
>>  1 file changed, 4 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
>> index eb49195..f0bdaca 100644
>> --- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c
>> +++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
>> @@ -127,7 +127,8 @@ static int exynos_drm_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y,
>>  	crtc_h = fb->height - y;
>>  
>>  	return exynos_update_plane(crtc->primary, crtc, fb, 0, 0,
>> -				   crtc_w, crtc_h, x, y, crtc_w, crtc_h);
>> +				   crtc_w, crtc_h, x << 16, y << 16,
>> +				   crtc_w << 16, crtc_h << 16);
>>  }
>>  
>>  static void exynos_drm_crtc_disable(struct drm_crtc *crtc)
>> @@ -202,8 +203,8 @@ static int exynos_drm_crtc_page_flip(struct drm_crtc *crtc,
>>  	crtc_w = fb->width - crtc->x;
>>  	crtc_h = fb->height - crtc->y;
>>  	ret = exynos_update_plane(crtc->primary, crtc, fb, 0, 0,
>> -				  crtc_w, crtc_h, crtc->x, crtc->y,
>> -				  crtc_w, crtc_h);
>> +				  crtc_w, crtc_h, crtc->x << 16, crtc->y << 16,
>> +				  crtc_w << 16, crtc_h << 16);
> 
> Assuming we are pushing the atomic patches soon we don't need the change
> on this patch.  I've asked about the atomic  modesetting patches in the
> other thread.
> 

Yeah, but this fixed patch needs until merged your atomic patches, if
not, i cannot output updated screen from primary plane on current
exynos drm driver.

Thanks.
diff mbox

Patch

diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
index eb49195..f0bdaca 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
@@ -127,7 +127,8 @@  static int exynos_drm_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y,
 	crtc_h = fb->height - y;
 
 	return exynos_update_plane(crtc->primary, crtc, fb, 0, 0,
-				   crtc_w, crtc_h, x, y, crtc_w, crtc_h);
+				   crtc_w, crtc_h, x << 16, y << 16,
+				   crtc_w << 16, crtc_h << 16);
 }
 
 static void exynos_drm_crtc_disable(struct drm_crtc *crtc)
@@ -202,8 +203,8 @@  static int exynos_drm_crtc_page_flip(struct drm_crtc *crtc,
 	crtc_w = fb->width - crtc->x;
 	crtc_h = fb->height - crtc->y;
 	ret = exynos_update_plane(crtc->primary, crtc, fb, 0, 0,
-				  crtc_w, crtc_h, crtc->x, crtc->y,
-				  crtc_w, crtc_h);
+				  crtc_w, crtc_h, crtc->x << 16, crtc->y << 16,
+				  crtc_w << 16, crtc_h << 16);
 	if (ret) {
 		crtc->primary->fb = old_fb;
 		spin_lock_irq(&dev->event_lock);