aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/atmel_lcdfb.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-10-30 18:30:01 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2011-10-30 18:30:01 -0400
commitacff987d94cbdb4049f3706bed1f1792f8ef6837 (patch)
tree36bded977aab5d80cf9aeb5467f83dd554a25d01 /drivers/video/atmel_lcdfb.c
parentce949717b559709423c1ef716a9db16d1dcadaed (diff)
parentb57287ba497b63a0d87a058631bbddfed9392e9f (diff)
Merge branch 'fbdev-next' of git://github.com/schandinat/linux-2.6
* 'fbdev-next' of git://github.com/schandinat/linux-2.6: (270 commits) video: platinumfb: Add __devexit_p at necessary place drivers/video: fsl-diu-fb: merge diu_pool into fsl_diu_data drivers/video: fsl-diu-fb: merge diu_hw into fsl_diu_data drivers/video: fsl-diu-fb: only DIU modes 0 and 1 are supported drivers/video: fsl-diu-fb: remove unused panel operating mode support drivers/video: fsl-diu-fb: use an enum for the AOI index drivers/video: fsl-diu-fb: add several new video modes drivers/video: fsl-diu-fb: remove broken screen blanking support drivers/video: fsl-diu-fb: move some definitions out of the header file drivers/video: fsl-diu-fb: fix some ioctls video: da8xx-fb: Increased resolution configuration of revised LCDC IP OMAPDSS: picodlp: add missing #include <linux/module.h> fb: fix au1100fb bitrot. mx3fb: fix NULL pointer dereference in screen blanking. video: irq: Remove IRQF_DISABLED smscufx: change edid data to u8 instead of char OMAPDSS: DISPC: zorder support for DSS overlays OMAPDSS: DISPC: VIDEO3 pipeline support OMAPDSS/OMAP_VOUT: Fix incorrect OMAP3-alpha compatibility setting video/omap: fix build dependencies ... Fix up conflicts in: - drivers/staging/xgifb/XGI_main_26.c Changes to XGIfb_pan_var() - drivers/video/omap/{lcd_apollon.c,lcd_ldp.c,lcd_overo.c} Removed (or in the case of apollon.c, merged into the generic DSS panel in drivers/video/omap2/displays/panel-generic-dpi.c)
Diffstat (limited to 'drivers/video/atmel_lcdfb.c')
-rw-r--r--drivers/video/atmel_lcdfb.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/video/atmel_lcdfb.c b/drivers/video/atmel_lcdfb.c
index dda920623c6a..4ac48d9ee665 100644
--- a/drivers/video/atmel_lcdfb.c
+++ b/drivers/video/atmel_lcdfb.c
@@ -39,7 +39,8 @@
39 | FBINFO_HWACCEL_YPAN) 39 | FBINFO_HWACCEL_YPAN)
40 40
41static inline void atmel_lcdfb_update_dma2d(struct atmel_lcdfb_info *sinfo, 41static inline void atmel_lcdfb_update_dma2d(struct atmel_lcdfb_info *sinfo,
42 struct fb_var_screeninfo *var) 42 struct fb_var_screeninfo *var,
43 struct fb_info *info)
43{ 44{
44 45
45} 46}
@@ -50,14 +51,16 @@ static inline void atmel_lcdfb_update_dma2d(struct atmel_lcdfb_info *sinfo,
50 | FBINFO_HWACCEL_YPAN) 51 | FBINFO_HWACCEL_YPAN)
51 52
52static void atmel_lcdfb_update_dma2d(struct atmel_lcdfb_info *sinfo, 53static void atmel_lcdfb_update_dma2d(struct atmel_lcdfb_info *sinfo,
53 struct fb_var_screeninfo *var) 54 struct fb_var_screeninfo *var,
55 struct fb_info *info)
54{ 56{
55 u32 dma2dcfg; 57 u32 dma2dcfg;
56 u32 pixeloff; 58 u32 pixeloff;
57 59
58 pixeloff = (var->xoffset * var->bits_per_pixel) & 0x1f; 60 pixeloff = (var->xoffset * info->var.bits_per_pixel) & 0x1f;
59 61
60 dma2dcfg = ((var->xres_virtual - var->xres) * var->bits_per_pixel) / 8; 62 dma2dcfg = (info->var.xres_virtual - info->var.xres)
63 * info->var.bits_per_pixel / 8;
61 dma2dcfg |= pixeloff << ATMEL_LCDC_PIXELOFF_OFFSET; 64 dma2dcfg |= pixeloff << ATMEL_LCDC_PIXELOFF_OFFSET;
62 lcdc_writel(sinfo, ATMEL_LCDC_DMA2DCFG, dma2dcfg); 65 lcdc_writel(sinfo, ATMEL_LCDC_DMA2DCFG, dma2dcfg);
63 66
@@ -249,14 +252,14 @@ static void atmel_lcdfb_update_dma(struct fb_info *info,
249 unsigned long dma_addr; 252 unsigned long dma_addr;
250 253
251 dma_addr = (fix->smem_start + var->yoffset * fix->line_length 254 dma_addr = (fix->smem_start + var->yoffset * fix->line_length
252 + var->xoffset * var->bits_per_pixel / 8); 255 + var->xoffset * info->var.bits_per_pixel / 8);
253 256
254 dma_addr &= ~3UL; 257 dma_addr &= ~3UL;
255 258
256 /* Set framebuffer DMA base address and pixel offset */ 259 /* Set framebuffer DMA base address and pixel offset */
257 lcdc_writel(sinfo, ATMEL_LCDC_DMABADDR1, dma_addr); 260 lcdc_writel(sinfo, ATMEL_LCDC_DMABADDR1, dma_addr);
258 261
259 atmel_lcdfb_update_dma2d(sinfo, var); 262 atmel_lcdfb_update_dma2d(sinfo, var, info);
260} 263}
261 264
262static inline void atmel_lcdfb_free_video_memory(struct atmel_lcdfb_info *sinfo) 265static inline void atmel_lcdfb_free_video_memory(struct atmel_lcdfb_info *sinfo)