Re: 2.6.19-rc5-mm1

From: Andrew Morton
Date: Thu Nov 09 2006 - 22:39:49 EST


On Thu, 9 Nov 2006 22:21:49 -0500
Ed Tomlinson <edt@xxxxxx> wrote:

> On Wednesday 08 November 2006 04:54, Andrew Morton wrote:
> > -radeonfb-support-24bpp-32bpp-minus-alpha.patch
> >
> >  Dropped
> >
> > +various-fbdev-files-mark-structs-fix.patch
> >
> >  Fix various-fbdev-files-mark-structs.patch
> >
> > +fbcon-rere-fix-little-endian-bogosity-in-slow_imageblit.patch
> >
> >  fbdev fix
>
> Strongly suspect that something is not right with these patches. I have a:
>
> 01:00.0 VGA compatible controller: ATI Technologies Inc RV280 [Radeon 9200] (rev 01) (prog-if 00 [VGA])
> Subsystem: ATI Technologies Inc Unknown device 2002
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
> Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
> Latency: 32 (2000ns min), Cache Line Size 08
> Interrupt: pin A routed to IRQ 16
> Region 0: Memory at d0000000 (32-bit, prefetchable) [size=128M]
> Region 1: I/O ports at 8000 [size=256]
> Region 2: Memory at e9010000 (32-bit, non-prefetchable) [size=64K]
> [virtual] Expansion ROM at e8000000 [disabled] [size=128K]
> Capabilities: [58] AGP version 3.0
> Status: RQ=256 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW+ AGP3+ Rate=x4,x8
> Command: RQ=32 ArqSz=2 Cal=0 SBA+ AGP+ GART64- 64bit- FW- Rate=x8
> Capabilities: [50] Power Management version 2
> Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> Status: D0 PME-Enable- DSel=0 DScale=0 PME-
>
> booting with:
>
> kernel /boot/2.6.19-rc5-mm1 root=/dev/sda3 vga=0x318 video=vesafb:ywrap,mtrr:3 console=tty0 console=ttyS0,38400 nmi_watchdog=1
>
> gives a strangely corrupted screen. The characters seem reversed...
>

Yup, thanks. You'll need to revert
fbcon-rere-fix-little-endian-bogosity-in-slow_imageblit.patch:'


diff -puN drivers/video/cfbimgblt.c~revert-fbcon-rere-fix-little-endian-bogosity-in-slow_imageblit drivers/video/cfbimgblt.c
--- a/drivers/video/cfbimgblt.c~revert-fbcon-rere-fix-little-endian-bogosity-in-slow_imageblit
+++ a/drivers/video/cfbimgblt.c
@@ -168,7 +168,7 @@ static inline void slow_imageblit(const

while (j--) {
l--;
- color = (*s & (1 << FB_BIT_NR(l))) ? fgcolor : bgcolor;
+ color = (*s & (1 << l)) ? fgcolor : bgcolor;
val |= FB_SHIFT_HIGH(color, shift);

/* Did the bitshift spill bits to the next long? */
@@ -258,7 +258,7 @@ static inline void fast_imageblit(const
s += spitch;
}
}
-
+
void cfb_imageblit(struct fb_info *p, const struct fb_image *image)
{
u32 fgcolor, bgcolor, start_index, bitstart, pitch_index = 0;
diff -puN include/linux/fb.h~revert-fbcon-rere-fix-little-endian-bogosity-in-slow_imageblit include/linux/fb.h
--- a/include/linux/fb.h~revert-fbcon-rere-fix-little-endian-bogosity-in-slow_imageblit
+++ a/include/linux/fb.h
@@ -854,12 +854,10 @@ struct fb_info {
#endif

#if defined (__BIG_ENDIAN)
-#define FB_BIT_NR(b) (b)
#define FB_LEFT_POS(bpp) (32 - bpp)
#define FB_SHIFT_HIGH(val, bits) ((val) >> (bits))
#define FB_SHIFT_LOW(val, bits) ((val) << (bits))
#else
-#define FB_BIT_NR(b) (7 - (b))
#define FB_LEFT_POS(bpp) (0)
#define FB_SHIFT_HIGH(val, bits) ((val) << (bits))
#define FB_SHIFT_LOW(val, bits) ((val) >> (bits))
_

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/