4 #include "fbconfig_kdebug.h"
5 // Forward declarations
14 DISP_STATUS_NOT_IMPLEMENTED
,
15 DISP_STATUS_ALREADY_SET
,
26 #define MAKE_PANEL_COLOR_FORMAT(R, G, B) ((R << 16) | (G << 8) | B)
27 #define PANEL_COLOR_FORMAT_TO_BPP(x) ((x&0xff) + ((x>>8)&0xff) + ((x>>16)&0xff))
30 PANEL_COLOR_FORMAT_RGB332
= MAKE_PANEL_COLOR_FORMAT(3, 3, 2),
31 PANEL_COLOR_FORMAT_RGB444
= MAKE_PANEL_COLOR_FORMAT(4, 4, 4),
32 PANEL_COLOR_FORMAT_RGB565
= MAKE_PANEL_COLOR_FORMAT(5, 6, 5),
33 PANEL_COLOR_FORMAT_RGB666
= MAKE_PANEL_COLOR_FORMAT(6, 6, 6),
34 PANEL_COLOR_FORMAT_RGB888
= MAKE_PANEL_COLOR_FORMAT(8, 8, 8),
39 DISP_STATUS (*init
)(UINT32 fbVA
, UINT32 fbPA
, BOOL isLcmInited
);
40 DISP_STATUS (*enable_power
)(BOOL enable
);
41 DISP_STATUS (*update_screen
)(BOOL isMuextLocked
);
43 UINT32 (*get_working_buffer_size
)(void);
44 UINT32 (*get_working_buffer_bpp
)(void);
45 PANEL_COLOR_FORMAT (*get_panel_color_format
)(void);
46 void (*init_te_control
)(void);
47 UINT32 (*get_dithering_bpp
)(void);
49 DISP_STATUS (*capture_framebuffer
)(unsigned int pvbuf
, unsigned int bpp
);
51 void (*esd_reset
)(void);
52 BOOL (*esd_check
)(void);
55 typedef void (*DISPHAL_EVENT_HANDLER
)(void *params
);
57 int disphal_process_dbg_opt(const char *opt
);
58 const DISP_IF_DRIVER
* disphal_get_if_driver(void);
59 int disphal_init_ctrl_if(void);
60 int disphal_panel_enable(const LCM_DRIVER
*lcm_drv
, struct mutex
* pLcmCmdMutex
, BOOL enable
);
61 int disphal_wait_not_busy(void);
62 int disphal_update_screen(const LCM_DRIVER
*lcm_drv
, struct mutex
* pLcmCmdMutex
, UINT32 x
, UINT32 y
, UINT32 width
, UINT32 height
);
63 int disphal_set_backlight(const LCM_DRIVER
*lcm_drv
, struct mutex
* pLcmCmdMutex
, UINT32 level
);
64 int disphal_set_backlight_mode(const LCM_DRIVER
*lcm_drv
, struct mutex
* pLcmCmdMutex
, UINT32 mode
);
65 int disphal_set_pwm(const LCM_DRIVER
*lcm_drv
, struct mutex
* pLcmCmdMutex
, UINT32 divider
);
66 int disphal_get_pwm(const LCM_DRIVER
*lcm_drv
, struct mutex
* pLcmCmdMutex
, UINT32 divider
, unsigned int *freq
);
67 DISP_STATUS
disphal_fm_desense_query(void);
68 DISP_STATUS
disphal_fm_desense(unsigned long freq
);
69 DISP_STATUS
disphal_reset_update(void);
70 DISP_STATUS
disphal_get_default_updatespeed(unsigned int *speed
);
71 DISP_STATUS
disphal_get_current_updatespeed(unsigned int *speed
);
72 DISP_STATUS
disphal_change_updatespeed(unsigned int speed
);
73 int disphal_prepare_suspend(void);
74 const LCM_DRIVER
*disphal_get_lcm_driver(const char *lcm_name
, unsigned int *lcm_index
);
75 int disphal_register_event(char* event_name
, DISPHAL_EVENT_HANDLER event_handler
);
76 int disphal_enable_te(BOOL enable
);
77 int disphal_pm_restore_noirq(struct device
*device
);
78 int disphal_enable_mmu(BOOL enable
);
79 int disphal_allocate_fb(struct resource
* res
, unsigned int* pa
, unsigned int* va
, unsigned int* dma_pa
);
80 int disphal_map_overlay_out_buffer(unsigned int va
, unsigned int size
, unsigned int* dma_pa
);
81 int disphal_unmap_overlay_out_buffer(unsigned int va
, unsigned int size
, unsigned int dma_pa
);
82 int disphal_sync_overlay_out_buffer(unsigned int va
, unsigned int size
);
83 int disphal_dma_map_kernel(unsigned int dma_pa
, unsigned int size
, unsigned int* kva
, unsigned int* mapsize
);
84 int disphal_dma_unmap_kernel(unsigned int dma_pa
, unsigned int size
, unsigned int kva
);
85 int disphal_init_overlay_to_memory(void);
86 int disphal_deinit_overlay_to_memory(void);
87 int disphal_get_fb_alignment(void);
88 unsigned int disphal_bls_query(void);
89 void disphal_bls_enable(bool enable
);
90 unsigned int disphal_check_lcm(UINT32 color
);
91 void fbconfig_disp_set_te_enable(char enable
);
92 void fbconfig_disp_set_continuous_clock(int enable
);