[PATCH] DDX/fbdevhw: Make error message on failed FBIOBLANK less noisy and scarey
walter harms
wharms at bfs.de
Tue Aug 13 00:14:25 PDT 2013
Am 12.08.2013 18:22, schrieb Egbert Eich:
> Warn only once on repeated occurrences of the same errno when the
> FBIOBLANK ioctl fails. Change the status of the message from error
> to info as this is ioctl is not supported for all fbdev drivers.
> Also give a better description to make the user happier.
>
> Signed-off-by: Egbert Eich <eich at freedesktop.org>
> ---
> hw/xfree86/fbdevhw/fbdevhw.c | 20 ++++++++++++++------
> 1 file changed, 14 insertions(+), 6 deletions(-)
>
> diff --git a/hw/xfree86/fbdevhw/fbdevhw.c b/hw/xfree86/fbdevhw/fbdevhw.c
> index cbb4093..487a1dc 100644
> --- a/hw/xfree86/fbdevhw/fbdevhw.c
> +++ b/hw/xfree86/fbdevhw/fbdevhw.c
> @@ -829,6 +829,7 @@ fbdevHWDPMSSet(ScrnInfoPtr pScrn, int mode, int flags)
> {
> fbdevHWPtr fPtr = FBDEVHWPTR(pScrn);
> unsigned long fbmode;
> + static int last_errno = 0;
>
> if (!pScrn->vtSema)
> return;
> @@ -850,9 +851,13 @@ fbdevHWDPMSSet(ScrnInfoPtr pScrn, int mode, int flags)
> return;
> }
>
> - if (-1 == ioctl(fPtr->fd, FBIOBLANK, (void *) fbmode))
> - xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
> - "FBIOBLANK: %s\n", strerror(errno));
> + if (-1 == ioctl(fPtr->fd, FBIOBLANK, (void *) fbmode) &&
> + last_errno != errno) {
> + xf86DrvMsg(pScrn->scrnIndex, X_INFO,
> + "FBIOBLANK: %s (Screen blanking not supported "
> + "by kernel)\n", strerror(errno));
> + }
> + last_errno = errno;
> }
>
I do not get the point, do you expect ioctl to modify the errno ?
re,
wh
> Bool
> @@ -861,15 +866,18 @@ fbdevHWSaveScreen(ScreenPtr pScreen, int mode)
> ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
> fbdevHWPtr fPtr = FBDEVHWPTR(pScrn);
> unsigned long unblank;
> + static int last_errno = 0;
>
> if (!pScrn->vtSema)
> return TRUE;
>
> unblank = xf86IsUnblank(mode);
>
> - if (-1 == ioctl(fPtr->fd, FBIOBLANK, (void *) (1 - unblank))) {
> - xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
> - "FBIOBLANK: %s\n", strerror(errno));
> + if (-1 == ioctl(fPtr->fd, FBIOBLANK, (void *) (1 - unblank)) &&
> + last_errno != errno) {
> + xf86DrvMsg(pScrn->scrnIndex, X_INFO,
> + "FBIOBLANK: (Screen blanking not supported by kernel)%s\n", strerror(errno));
> + last_errno = errno;
> return FALSE;
> }
>
More information about the xorg-devel
mailing list