Op 02-07-10 13:25, Ben Dooks schreef: > On 28/06/10 12:28, Maurus Cuelenaere wrote: >> Op 28-06-10 10:08, Pawel Osciak schreef: >>> Supports all bpp modes. >>> >>> The PRTCON register is used to disable in-hardware updates of registers >>> that store start and end addresses of framebuffer memory. This prevents >>> display corruption in case we do not make it before VSYNC with updating >>> them atomically. With this feature there is no need to wait for a VSYNC >>> interrupt before each such update. >>> >>> Signed-off-by: Pawel Osciak <p.osciak@xxxxxxxxxxx> >>> Signed-off-by: Kyungmin Park <kyungmin.park@xxxxxxxxxxx> >>> --- >>> arch/arm/plat-samsung/include/plat/regs-fb.h | 5 ++ >>> drivers/video/s3c-fb.c | 71 ++++++++++++++++++++++++++ >>> 2 files changed, 76 insertions(+), 0 deletions(-) >>> >>> diff --git a/arch/arm/plat-samsung/include/plat/regs-fb.h b/arch/arm/plat-samsung/include/plat/regs-fb.h >>> index ac10013..f454e32 100644 >>> --- a/arch/arm/plat-samsung/include/plat/regs-fb.h >>> +++ b/arch/arm/plat-samsung/include/plat/regs-fb.h >>> @@ -112,6 +112,11 @@ >>> #define VIDCON2_ORGYCbCr (1 << 8) >>> #define VIDCON2_YUVORDCrCb (1 << 7) >>> >>> +/* PRTCON (S3C6410, S5PC100) */ >>> + >>> +#define PRTCON (0x0c) >>> +#define PRTCON_PROTECT (1 << 11) >>> + >>> /* VIDTCON0 */ >>> >>> #define VIDTCON0_VBPDE_MASK (0xff << 24) >>> diff --git a/drivers/video/s3c-fb.c b/drivers/video/s3c-fb.c >>> index 59ac76a..4f3680d 100644 >>> --- a/drivers/video/s3c-fb.c >>> +++ b/drivers/video/s3c-fb.c >>> @@ -71,6 +71,7 @@ struct s3c_fb; >>> * @buf_end: Offset of buffer end registers. >>> * @osd: The base for the OSD registers. >>> * @palette: Address of palette memory, or 0 if none. >>> + * @has_prtcon: Set if has PRTCON register. >>> */ >>> struct s3c_fb_variant { >>> unsigned int is_2443:1; >>> @@ -85,6 +86,8 @@ struct s3c_fb_variant { >>> unsigned short osd; >>> unsigned short osd_stride; >>> unsigned short palette[S3C_FB_MAX_WIN]; >>> + >>> + unsigned int has_prtcon:1; >>> }; >>> >>> /** >>> @@ -379,6 +382,9 @@ static int s3c_fb_set_par(struct fb_info *info) >>> >>> info->fix.line_length = (var->xres_virtual * var->bits_per_pixel) / 8; >>> >>> + info->fix.xpanstep = info->var.xres_virtual > info->var.xres ? 1 : 0; >>> + info->fix.ypanstep = info->var.yres_virtual > info->var.yres ? 1 : 0; >> No need for the '? 1 : 0' > I tihnk there is, IIRC there is no neccessity for a compiler to produce > one for true, just that the result be !0 Hmm ok, I only checked this using GCC 4.4.3 and this: #include <stdio.h> #include <stdbool.h> int main(void) { printf("%d %d\n", (int)(1 > 2), (int)(1 < 2)); // gives 0 1 printf("%d %d\n", (bool)(1 > 2), (bool)(1 < 2)); // gives 0 1 return 0; } -- Maurus Cuelenaere -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html