[Intel-gfx] [PATCH] Use pipes, not planes for sarea geometry data

Eric Anholt eric at anholt.net
Mon Oct 20 00:13:34 CEST 2008


On Sun, 2008-10-19 at 15:06 -0700, Keith Packard wrote:
> Vblank in the kernel is far simpler if it deals with pipes instead of
> planes, so we're changing both user and kernel side. This is the user mode
> side. This fixes both i830_crtc_dpms and i830PipeSetBase, the two functions
> which copy geometry from the crtc to the sarea.

Looks good, I like it.

> Signed-off-by: Keith Packard <keithp at keithp.com>
> ---
>  src/i830_common.h  |   16 ++++++++--------
>  src/i830_display.c |   22 +++++++++++-----------
>  src/i830_dri.c     |   16 ++++++++--------
>  3 files changed, 27 insertions(+), 27 deletions(-)
> 
> diff --git a/src/i830_common.h b/src/i830_common.h
> index f3a7ea0..eeb2ed7 100644
> --- a/src/i830_common.h
> +++ b/src/i830_common.h
> @@ -124,14 +124,14 @@ typedef struct {
>          unsigned int rotated_tiled;
>          unsigned int rotated2_tiled;
>  
> -	int planeA_x;
> -	int planeA_y;
> -	int planeA_w;
> -	int planeA_h;
> -	int planeB_x;
> -	int planeB_y;
> -	int planeB_w;
> -	int planeB_h;
> +	int pipeA_x;
> +	int pipeA_y;
> +	int pipeA_w;
> +	int pipeA_h;
> +	int pipeB_x;
> +	int pipeB_y;
> +	int pipeB_w;
> +	int pipeB_h;
>  
>  	/* Triple buffering */
>  	drm_handle_t third_handle;
> diff --git a/src/i830_display.c b/src/i830_display.c
> index 0632f3a..341def9 100644
> --- a/src/i830_display.c
> +++ b/src/i830_display.c
> @@ -428,14 +428,14 @@ i830PipeSetBase(xf86CrtcPtr crtc, int x, int y)
>  	if (!sPriv)
>  	    return;
>  
> -	switch (plane) {
> +	switch (pipe) {
>  	case 0:
> -	    sPriv->planeA_x = x;
> -	    sPriv->planeA_y = y;
> +	    sPriv->pipeA_x = x;
> +	    sPriv->pipeA_y = y;
>  	    break;
>  	case 1:
> -	    sPriv->planeB_x = x;
> -	    sPriv->planeB_y = y;
> +	    sPriv->pipeB_x = x;
> +	    sPriv->pipeB_y = y;
>  	    break;
>  	default:
>  	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
> @@ -756,7 +756,7 @@ static void i830_modeset_ctl(xf86CrtcPtr crtc, int pre)
>      if (!pI830->directRenderingEnabled)
>        return;
>  
> -    modeset.crtc = intel_crtc->plane;
> +    modeset.crtc = intel_crtc->pipe;
>  
>      /*
>       * DPMS will be called many times (especially off), but we only
> @@ -921,14 +921,14 @@ i830_crtc_dpms(xf86CrtcPtr crtc, int mode)
>  	if (!sPriv)
>  	    return;
>  
> -	switch (plane) {
> +	switch (pipe) {
>  	case 0:
> -	    sPriv->planeA_w = enabled ? crtc->mode.HDisplay : 0;
> -	    sPriv->planeA_h = enabled ? crtc->mode.VDisplay : 0;
> +	    sPriv->pipeA_w = enabled ? crtc->mode.HDisplay : 0;
> +	    sPriv->pipeA_h = enabled ? crtc->mode.VDisplay : 0;
>  	    break;
>  	case 1:
> -	    sPriv->planeB_w = enabled ? crtc->mode.HDisplay : 0;
> -	    sPriv->planeB_h = enabled ? crtc->mode.VDisplay : 0;
> +	    sPriv->pipeB_w = enabled ? crtc->mode.HDisplay : 0;
> +	    sPriv->pipeB_h = enabled ? crtc->mode.VDisplay : 0;
>  	    break;
>  	default:
>  	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
> diff --git a/src/i830_dri.c b/src/i830_dri.c
> index c964486..488409d 100644
> --- a/src/i830_dri.c
> +++ b/src/i830_dri.c
> @@ -1504,14 +1504,14 @@ I830DRIClipNotify(ScreenPtr pScreen, WindowPtr *ppWin, int num)
>        unsigned numvisible[2] = { 0, 0 };
>        int i, j;
>  
> -      crtcBox[0].x1 = sPriv->planeA_x;
> -      crtcBox[0].y1 = sPriv->planeA_y;
> -      crtcBox[0].x2 = crtcBox[0].x1 + sPriv->planeA_w;
> -      crtcBox[0].y2 = crtcBox[0].y1 + sPriv->planeA_h;
> -      crtcBox[1].x1 = sPriv->planeB_x;
> -      crtcBox[1].y1 = sPriv->planeB_y;
> -      crtcBox[1].x2 = crtcBox[1].x1 + sPriv->planeB_w;
> -      crtcBox[1].y2 = crtcBox[1].y1 + sPriv->planeB_h;
> +      crtcBox[0].x1 = sPriv->pipeA_x;
> +      crtcBox[0].y1 = sPriv->pipeA_y;
> +      crtcBox[0].x2 = crtcBox[0].x1 + sPriv->pipeA_w;
> +      crtcBox[0].y2 = crtcBox[0].y1 + sPriv->pipeA_h;
> +      crtcBox[1].x1 = sPriv->pipeB_x;
> +      crtcBox[1].y1 = sPriv->pipeB_y;
> +      crtcBox[1].x2 = crtcBox[1].x1 + sPriv->pipeB_w;
> +      crtcBox[1].y2 = crtcBox[1].y1 + sPriv->pipeB_h;
>  
>        for (i = 0; i < 2; i++) {
>  	 for (j = 0; j < num; j++) {
-- 
Eric Anholt
eric at anholt.net                         eric.anholt at intel.com


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20081019/dbaa2c7e/attachment.sig>


More information about the Intel-gfx mailing list