Commit e9355085 authored by Jaya Kumar's avatar Jaya Kumar Committed by Russell King

[ARM] 5209/1: metronomefb: changes to use platform framebuffer

These changes are used in order to support the use of the framebuffer
provided by the platform device driver rather than to directly allocate one.
Other changes are cleanup to error handling and order of release.
Signed-off-by: default avatarJaya Kumar <jayakumar.lkml@gmail.com>
Acked-by: default avatarKrzysztof Helt <krzysztof.h1@wp.pl>
Acked-by: default avatarEric Miao <eric.miao@marvell.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 28501336
...@@ -172,11 +172,6 @@ config FB_DEFERRED_IO ...@@ -172,11 +172,6 @@ config FB_DEFERRED_IO
bool bool
depends on FB depends on FB
config FB_METRONOME
tristate
depends on FB
depends on FB_DEFERRED_IO
config FB_HECUBA config FB_HECUBA
tristate tristate
depends on FB depends on FB
...@@ -2041,6 +2036,19 @@ config XEN_FBDEV_FRONTEND ...@@ -2041,6 +2036,19 @@ config XEN_FBDEV_FRONTEND
frame buffer driver. It communicates with a back-end frame buffer driver. It communicates with a back-end
in another domain. in another domain.
config FB_METRONOME
tristate "E-Ink Metronome/8track controller support"
depends on FB
select FB_SYS_FILLRECT
select FB_SYS_COPYAREA
select FB_SYS_IMAGEBLIT
select FB_SYS_FOPS
select FB_DEFERRED_IO
help
This driver implements support for the E-Ink Metronome
controller. The pre-release name for this device was 8track
and could also have been called by some vendors as PVI-nnnn.
source "drivers/video/omap/Kconfig" source "drivers/video/omap/Kconfig"
source "drivers/video/backlight/Kconfig" source "drivers/video/backlight/Kconfig"
......
This diff is collapsed.
...@@ -12,14 +12,6 @@ ...@@ -12,14 +12,6 @@
#ifndef _LINUX_METRONOMEFB_H_ #ifndef _LINUX_METRONOMEFB_H_
#define _LINUX_METRONOMEFB_H_ #define _LINUX_METRONOMEFB_H_
/* address and control descriptors used by metronome controller */
struct metromem_desc {
u32 mFDADR0;
u32 mFSADR0;
u32 mFIDR0;
u32 mLDCMD0;
};
/* command structure used by metronome controller */ /* command structure used by metronome controller */
struct metromem_cmd { struct metromem_cmd {
u16 opcode; u16 opcode;
...@@ -29,34 +21,37 @@ struct metromem_cmd { ...@@ -29,34 +21,37 @@ struct metromem_cmd {
/* struct used by metronome. board specific stuff comes from *board */ /* struct used by metronome. board specific stuff comes from *board */
struct metronomefb_par { struct metronomefb_par {
unsigned char *metromem;
struct metromem_desc *metromem_desc;
struct metromem_cmd *metromem_cmd; struct metromem_cmd *metromem_cmd;
unsigned char *metromem_wfm; unsigned char *metromem_wfm;
unsigned char *metromem_img; unsigned char *metromem_img;
u16 *metromem_img_csum; u16 *metromem_img_csum;
u16 *csum_table; u16 *csum_table;
int metromemsize;
dma_addr_t metromem_dma; dma_addr_t metromem_dma;
dma_addr_t metromem_desc_dma;
struct fb_info *info; struct fb_info *info;
struct metronome_board *board; struct metronome_board *board;
wait_queue_head_t waitq; wait_queue_head_t waitq;
u8 frame_count; u8 frame_count;
int extra_size;
int dt;
}; };
/* board specific routines */ /* board specific routines and data */
struct metronome_board { struct metronome_board {
struct module *owner; struct module *owner; /* the platform device */
void (*free_irq)(struct fb_info *);
void (*init_gpio_regs)(struct metronomefb_par *);
void (*init_lcdc_regs)(struct metronomefb_par *);
void (*post_dma_setup)(struct metronomefb_par *);
void (*set_rst)(struct metronomefb_par *, int); void (*set_rst)(struct metronomefb_par *, int);
void (*set_stdby)(struct metronomefb_par *, int); void (*set_stdby)(struct metronomefb_par *, int);
void (*cleanup)(struct metronomefb_par *);
int (*met_wait_event)(struct metronomefb_par *); int (*met_wait_event)(struct metronomefb_par *);
int (*met_wait_event_intr)(struct metronomefb_par *); int (*met_wait_event_intr)(struct metronomefb_par *);
int (*setup_irq)(struct fb_info *); int (*setup_irq)(struct fb_info *);
int (*setup_fb)(struct metronomefb_par *);
int (*setup_io)(struct metronomefb_par *);
int (*get_panel_type)(void);
unsigned char *metromem;
int fw;
int fh;
int wfm_size;
struct fb_info *host_fbinfo; /* the host LCD controller's fbi */
}; };
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment