diff options
author | Eric Miao <eric.miao@marvell.com> | 2008-12-15 22:54:34 -0500 |
---|---|---|
committer | Eric Miao <eric.miao@marvell.com> | 2008-12-29 04:59:16 -0500 |
commit | 77e196752bdd76a0c58ab082658d28c6a90fa40e (patch) | |
tree | 935fbe8b897d8770fff05254c6c91dc0a8058984 /drivers/video/pxafb.h | |
parent | 5bfb4093be6ac7b6c06c8e6461d85241654acc61 (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.h | 17 |
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; |