]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/video/pxafb.h
[ARM] pxafb: cleanup of the timing checking code
[linux-2.6-omap-h63xx.git] / drivers / video / pxafb.h
index 31541b86f13d2d0e509fb9649342fbcb7b666126..ae3cbc1ca64fa46a32d57f82b0e28c70696b8c50 100644 (file)
@@ -54,11 +54,14 @@ enum {
 #define PALETTE_SIZE   (256 * 4)
 #define CMD_BUFF_SIZE  (1024 * 50)
 
+/* NOTE: the palette and frame dma descriptors are doubled to allow
+ * the 2nd set for branch settings (FBRx)
+ */
 struct pxafb_dma_buff {
        unsigned char palette[PAL_MAX * PALETTE_SIZE];
        uint16_t cmd_buff[CMD_BUFF_SIZE];
-       struct pxafb_dma_descriptor pal_desc[PAL_MAX];
-       struct pxafb_dma_descriptor dma_desc[DMA_MAX];
+       struct pxafb_dma_descriptor pal_desc[PAL_MAX * 2];
+       struct pxafb_dma_descriptor dma_desc[DMA_MAX * 2];
 };
 
 struct pxafb_info {
@@ -69,24 +72,15 @@ struct pxafb_info {
        void __iomem            *mmio_base;
 
        struct pxafb_dma_buff   *dma_buff;
+       size_t                  dma_buff_size;
        dma_addr_t              dma_buff_phys;
-       dma_addr_t              fdadr[DMA_MAX];
-
-       /*
-        * These are the addresses we mapped
-        * the framebuffer memory region to.
-        */
-       /* raw memory addresses */
-       dma_addr_t              map_dma;        /* physical */
-       u_char *                map_cpu;        /* virtual */
-       u_int                   map_size;
-
-       /* addresses of pieces placed in raw buffer */
-       u_char *                screen_cpu;     /* virtual address of frame buffer */
-       dma_addr_t              screen_dma;     /* physical address of frame buffer */
+       dma_addr_t              fdadr[DMA_MAX * 2];
+
+       void __iomem            *video_mem;     /* virtual address of frame buffer */
+       unsigned long           video_mem_phys; /* physical address of frame buffer */
+       size_t                  video_mem_size; /* size of the frame buffer */
        u16 *                   palette_cpu;    /* virtual address of palette memory */
        u_int                   palette_size;
-       ssize_t                 video_offset;
 
        u_int                   lccr0;
        u_int                   lccr3;
@@ -124,6 +118,9 @@ struct pxafb_info {
        struct notifier_block   freq_transition;
        struct notifier_block   freq_policy;
 #endif
+
+       void (*lcd_power)(int, struct fb_var_screeninfo *);
+       void (*backlight_power)(int);
 };
 
 #define TO_INF(ptr,member) container_of(ptr,struct pxafb_info,member)
@@ -148,4 +145,10 @@ struct pxafb_info {
 #define MIN_XRES       64
 #define MIN_YRES       64
 
+/* maximum X and Y resolutions - note these are limits from the register
+ * bits length instead of the real ones
+ */
+#define MAX_XRES       1024
+#define MAX_YRES       1024
+
 #endif /* __PXAFB_H__ */