aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/pxafb.h
diff options
context:
space:
mode:
authorEric Miao <eric.miao@marvell.com>2008-12-15 22:54:34 -0500
committerEric Miao <eric.miao@marvell.com>2008-12-29 04:59:16 -0500
commit77e196752bdd76a0c58ab082658d28c6a90fa40e (patch)
tree935fbe8b897d8770fff05254c6c91dc0a8058984 /drivers/video/pxafb.h
parent5bfb4093be6ac7b6c06c8e6461d85241654acc61 (diff)
[ARM] pxafb: allow video memory size to be configurable
The amount of video memory size is decided according to the following order: 1. <xres> x <yres> x <bits_per_pixel> by default, which is the backward compatible way 2. size specified in platform data 3. size specified in module parameter 'options' string or specified in kernel boot command line (see updated Documentation/fb/pxafb.txt) And now since the memory is allocated from system memory, the pxafb_mmap can be removed and the default fb_mmap() should be working all right. Also, since we now have introduced the 'struct pxafb_dma_buff' for DMA descriptors and palettes, the allocation can be separated cleanly. NOTE: the LCD DMA actually supports chained transfer (i.e. page-based transfers), to simplify the logic and keep the performance (with less TLB misses when accessing from memory mapped user space), the memory is allocated by alloc_pages_*() to ensures it's physical contiguous. Signed-off-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Eric Miao <ycmiao@ycmiao-hp520.(none)>
Diffstat (limited to 'drivers/video/pxafb.h')
-rw-r--r--drivers/video/pxafb.h17
1 files changed, 4 insertions, 13 deletions
diff --git a/drivers/video/pxafb.h b/drivers/video/pxafb.h
index d8eb93fa03a3..0981938682ef 100644
--- a/drivers/video/pxafb.h
+++ b/drivers/video/pxafb.h
@@ -69,24 +69,15 @@ struct pxafb_info {
69 void __iomem *mmio_base; 69 void __iomem *mmio_base;
70 70
71 struct pxafb_dma_buff *dma_buff; 71 struct pxafb_dma_buff *dma_buff;
72 size_t dma_buff_size;
72 dma_addr_t dma_buff_phys; 73 dma_addr_t dma_buff_phys;
73 dma_addr_t fdadr[DMA_MAX]; 74 dma_addr_t fdadr[DMA_MAX];
74 75
75 /* 76 void __iomem *video_mem; /* virtual address of frame buffer */
76 * These are the addresses we mapped 77 unsigned long video_mem_phys; /* physical address of frame buffer */
77 * the framebuffer memory region to. 78 size_t video_mem_size; /* size of the frame buffer */
78 */
79 /* raw memory addresses */
80 dma_addr_t map_dma; /* physical */
81 u_char * map_cpu; /* virtual */
82 u_int map_size;
83
84 /* addresses of pieces placed in raw buffer */
85 u_char * screen_cpu; /* virtual address of frame buffer */
86 dma_addr_t screen_dma; /* physical address of frame buffer */
87 u16 * palette_cpu; /* virtual address of palette memory */ 79 u16 * palette_cpu; /* virtual address of palette memory */
88 u_int palette_size; 80 u_int palette_size;
89 ssize_t video_offset;
90 81
91 u_int lccr0; 82 u_int lccr0;
92 u_int lccr3; 83 u_int lccr3;