Am 19.03.2013 20:12, schrieb Bryce Harrington:
> And if we've had to delay booting due to not being able to set the
> interface, fess up.
> 
> Signed-off-by: Bryce Harrington <[email protected]>
> Reviewed-by: Chris Wilson <[email protected]>
> ---
>  hw/xfree86/os-support/linux/lnx_platform.c |   20 +++++++++++++++-----
>  1 file changed, 15 insertions(+), 5 deletions(-)
> 
> diff --git a/hw/xfree86/os-support/linux/lnx_platform.c 
> b/hw/xfree86/os-support/linux/lnx_platform.c
> index 3ae2db1..10c8ecf 100644
> --- a/hw/xfree86/os-support/linux/lnx_platform.c
> +++ b/hw/xfree86/os-support/linux/lnx_platform.c
> @@ -26,16 +26,26 @@ get_drm_info(struct OdevAttributes *attribs, char *path)
>      char *buf;
>      int fd;
>      int err = 0;
> +    int tries = 0;
>  
>      fd = open(path, O_RDWR, O_CLOEXEC);
>      if (fd == -1)
>          return FALSE;
>  
> -    sv.drm_di_major = 1;
> -    sv.drm_di_minor = 4;
> -    sv.drm_dd_major = -1;       /* Don't care */
> -    sv.drm_dd_minor = -1;       /* Don't care */
> -    err = drmSetInterfaceVersion(fd, &sv);
> +    while (tries++ < 200) {
> +     sv.drm_di_major = 1;
> +     sv.drm_di_minor = 4;
> +     sv.drm_dd_major = -1;       /* Don't care */
> +     sv.drm_dd_minor = -1;       /* Don't care */
> +
> +     err = drmSetInterfaceVersion(fd, &sv);
> +     if (!err) {
> +         if (tries > 1)
> +             LogMessage(X_INFO, "setversion 1.4 succeeded on try #%d\n", 
> tries);
> +         break;
> +     }
> +     usleep(10000);


nitpicking:
posix 2008 says that usleep() is obsolet, perhaps you can use sleep() here ?

re,
 wh
> +    }
>      if (err) {
>          ErrorF("setversion 1.4 failed: %s\n", strerror(-err));
>       goto out;
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to