On Fri, Feb 10, 2006 at 11:41:34AM -0500, Kyle Moffett wrote: > On Feb 10, 2006, at 06:53, Antonino A. Daplas wrote: > >Christian Trefzer wrote: > >>+ par->PanelDispCntlRegRead = 0; > >>+ par->PanelDispCntlRegRead = 0; > >>+ par->PanelDispCntlRegRead = 0; > >>+ par->PanelDispCntlRegRead = 0; > >>+ par->PanelDispCntlRegRead = 1; > > > >You can save a few lines by > > > >par->PanelDispCntlRegRead = (blank_mode) ? 0 : 1; > > How about the really simple so-obvious-its-impossible-to-misread > solution? > > par->PanelDispCntlRegRead = !blank_mode; Where is my mind..? Sure, why not. Guess I had my head too much in the smoke clouds of not knowing why a dead-sure-to-work implementation still would not do the right thing, I already thought I got the C representation of true and false wrong. Even Tony's hint would be clearer than my code, but that can in turn be condensed into something really obvious. It's just a negation, after all. Silly me. Changed patch below. Should be the final one now, right? Signed-off-by: Christian Trefzer <[email protected]> --- a/include/video/neomagic.h 2006-01-03 04:21:10.000000000 +0100 +++ b/include/video/neomagic.h 2006-02-09 20:59:20.164839408 +0100 @@ -159,6 +159,7 @@ unsigned char PanelDispCntlReg1; unsigned char PanelDispCntlReg2; unsigned char PanelDispCntlReg3; + unsigned char PanelDispCntlRegRead; unsigned char PanelVertCenterReg1; unsigned char PanelVertCenterReg2; unsigned char PanelVertCenterReg3; --- a/drivers/video/neofb.c 2006-02-08 21:24:05.000000000 +0100 +++ b/drivers/video/neofb.c 2006-02-11 11:39:39.346365480 +0100 @@ -843,6 +843,9 @@ par->SysIfaceCntl2 = 0xc0; /* VESA Bios sets this to 0x80! */ + /* Initialize: by default, we want display config register to be read */ + par->PanelDispCntlRegRead = 1; + /* Enable any user specified display devices. */ par->PanelDispCntlReg1 = 0x00; if (par->internal_display) @@ -1334,8 +1337,12 @@ struct neofb_par *par = (struct neofb_par *)info->par; int seqflags, lcdflags, dpmsflags, reg; - /* Reload the value stored in the register, might have been changed via FN keystroke */ - par->PanelDispCntlReg1 = vga_rgfx(NULL, 0x20) & 0x03; + /* Reload the value stored in the register, if sensible. It might have been + * changed via FN keystroke. */ + if (par->PanelDispCntlRegRead && !blank_mode) { + par->PanelDispCntlReg1 = vga_rgfx(NULL, 0x20) & 0x03; + } + par->PanelDispCntlRegRead = !blank_mode; switch (blank_mode) { case FB_BLANK_POWERDOWN: /* powerdown - both sync lines down */
Attachment:
pgpduf7GatuGT.pgp
Description: PGP signature
- References:
- [PATCH] neofb: avoid resetting display config on unblank
- From: Christian Trefzer <[email protected]>
- [PATCH] neofb: add more logic to determine sensibility of register readback
- From: Christian Trefzer <[email protected]>
- Re: [PATCH] neofb: add more logic to determine sensibility of register readback
- From: "Antonino A. Daplas" <[email protected]>
- Re: [PATCH] neofb: add more logic to determine sensibility of register readback
- From: Kyle Moffett <[email protected]>
- [PATCH] neofb: avoid resetting display config on unblank
- Prev by Date: Re: Which is simpler? (Was Re: [Suspend2-devel] Re: [ 00/10] [Suspend2] Modules support.)
- Next by Date: Re: [RFC][PATCH 04/20] pspace: Allow multiple instaces of the process id namespace
- Previous by thread: Re: [PATCH] neofb: add more logic to determine sensibility of register readback
- Next by thread: [PATCH 7/8] don't mangle INQUIRY if cmddt or evpd bits are set
- Index(es):