[PATCH 05/18] fbdev: initialize yoffset of varinfo

David Herrmann dh.herrmann at gmail.com
Fri Jun 21 02:27:29 PDT 2013


Hi

On Fri, Jun 21, 2013 at 10:49 AM, mchalain [marc.chalain at gmail.com]
<marc.chalain at gmail.com> wrote:
> From: mchalain <marc.chalain at gmail.com>
>
>  it initializes varinfo.yoffset. varinfo.yoffset has to
>  point on the beginning of the video memory.
>  The card uses this value to push on the screen a part of
>  the video memory when this one is larger than the screen.
>
> ---
>  weston/src/compositor-fbdev.c |    6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/weston/src/compositor-fbdev.c b/weston/src/compositor-fbdev.c
> index adfb67a..d2aee9b 100644
> --- a/weston/src/compositor-fbdev.c
> +++ b/weston/src/compositor-fbdev.c
> @@ -368,6 +368,11 @@ fbdev_query_screen_info(struct fbdev_output *output, int fd,
>                 return -1;
>         }
>
> +       if (varinfo.yoffset != 0) {
> +               varinfo.yoffset = 0;
> +               if (ioctl(fd, FBIOPAN_DISPLAY, &varinfo) < 0)
> +                       return -1;
> +       }

Why do you need this? It's unnecessary. We call FBIOPUT_VSCREENINFO
after fbdev_query_screen_info(), anyway. Furthermore, not all drivers
support panning even though the yoffset may be non-zero (you need
FBIOPUT_VSCREENINFO then).

I think you can just drop this here but keep the yoffset=0 below.

>         return 1;
>  }
>
> @@ -404,6 +409,7 @@ fbdev_set_screen_info(struct fbdev_output *output, int fd,
>         varinfo.blue.length = 8;
>         varinfo.blue.msb_right = 0;
>
> +       varinfo.yoffset = 0;

Yep, this is definitely needed.

Regards
David

>         /* Set the device's screen information. */
>         if (ioctl(fd, FBIOPUT_VSCREENINFO, &varinfo) < 0) {
>                 return -1;
> --
> 1.7.9.5
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list