#include "chg_png.h"
#include "chg_env.h"
#include "chg_battery.h"
-
+#include "chg_power.h"
#define MAX_IMG_FILE_PATH 1024
#define MAX_PROGRESS_CNT 5
}
}
+/*------------------------------------------------------------------------------
+ fb_pan_display()- In case of Roy, the LCD Controller is turned OFF if it is not
+ in use, hence we need to call PAN Display each time we have a
+ new data in FB0 so that it can be pushed on the Display Panel
+------------------------------------------------------------------------------*/
+int fb_pan_display( FbInfo *fbi )
+{
+ int b_status = 0;
+ /* FB_IO_PAN_DISPLAY is used for pushing the data from FB0 i.e.
+ S/W Buffer to the H/W FIFO in the Display Panel
+ */
+ if (fbd_pan_display(&s_fbdi)) {
+ b_status = -1;
+ }
+ else {
+ }
+ return b_status;
+}
/*-----------------------------------------------------------------------------
fb_clear_screen()
----------------------------------------------------------------------------*/
void fb_clear_screen(FbInfo *fbi, unsigned int color)
{
- unsigned int *fb_buf_cur;
+ unsigned int *fb_buf_cur = NULL;
int loop_count = fbi->w * fbi->h;
- if (fbi->current_fb_id == s_drmdi.fb_id[0])
- fb_buf_cur = (unsigned int *)fbi->buf;
- else
- fb_buf_cur = (unsigned int *)fbi->buf2;
-
+#ifdef INTERFACE_DRM
+ if (fbi->type == FB_DEV_DRM) {
+ if (fbi->current_fb_id == s_drmdi.fb_id[0])
+ fb_buf_cur = (unsigned int *)fbi->buf;
+ else
+ fb_buf_cur = (unsigned int *)fbi->buf2;
+ }
+#endif
+#ifdef INTERFACE_FB
+/* temprary code now fb will be use double buffer */
+ if (fbi->type == FB_DEV_FB)
+ return ;
+// fb_buf_cur = (unsigned int *)fbi->buf;
+#endif
while (loop_count--)
*(fb_buf_cur++) = color;
}
void fb_fill_rect(FbInfo *fbi, int x1, int y1, int x2, int y2,
unsigned int color)
{
- unsigned int *fb_buf_cur;
+ unsigned int *fb_buf_cur = NULL;
unsigned int *fb_line_buf;
int screen_width = fbi->w;
int draw_width = x2 - x1 + 1;
int width_cnt;
int height_cnt;
+#ifdef INTERFACE_DRM
+ if (fbi->type == FB_DEV_DRM) {
if (fbi->current_fb_id == s_drmdi.fb_id[0])
fb_buf_cur = (unsigned int *)fbi->buf;
else
fb_buf_cur = (unsigned int *)fbi->buf2;
+ }
+#endif
+#ifdef INTERFACE_DRM
+ if (fbi->type == FB_DEV_FB)
+ fb_buf_cur = (unsigned int *)fbi->buf;
+#endif
fb_buf_cur += (x1 + y1 * screen_width);
fb_line_buf = fb_buf_cur;
static int batt_bar = 5;
char chg_img_filename[MAX_IMG_FILE_PATH];
- if (fbi->current_fb_id == s_drmdi.fb_id[0])
- fbi->current_fb_id = s_drmdi.fb_id[1];
- else
- fbi->current_fb_id = s_drmdi.fb_id[0];
+#ifdef INTERFACE_DRM
+ if (fbi->type == FB_DEV_DRM) {
+ if (fbi->current_fb_id == s_drmdi.fb_id[0])
+ fbi->current_fb_id = s_drmdi.fb_id[1];
+ else
+ fbi->current_fb_id = s_drmdi.fb_id[0];
+ }
+#endif
/* fill full screen with black color */
fb_clear_screen(fbi, 0x00000000);
progress_cnt = 0;
}
- DEBUG_MSG("[fb_draw_img_normal_charging] current_fb_id :%d\n",\
- fbi->current_fb_id);
- drmModePageFlip(s_drmdi.fd, s_drmdi.crtc->crtc_id, fbi->current_fb_id,\
- DRM_MODE_PAGE_FLIP_EVENT, NULL);
- drmHandleEvent(s_drmdi.fd, &evctx);
+#ifdef INTERFACE_DRM
+ if (fbi->type == FB_DEV_DRM) {
+ if (sys_power_state() == SYS_POWER_OFF) {
+ DEBUG_MSG("fb_draw_img_normal_charging - power off ..\n");
+ if (fbi->current_fb_id == s_drmdi.fb_id[0])
+ fbi->current_fb_id = s_drmdi.fb_id[1];
+ else
+ fbi->current_fb_id = s_drmdi.fb_id[0];
+ return;
+ }
+ else
+ DEBUG_MSG("no check..\n");
+
+ DEBUG_MSG("[fb_draw_img_normal_charging] current_fb_id :%d\n",\
+ fbi->current_fb_id);
+ drmModePageFlip(s_drmdi.fd, s_drmdi.crtc->crtc_id,\
+ fbi->current_fb_id, DRM_MODE_PAGE_FLIP_EVENT, NULL);
+ drmHandleEvent(s_drmdi.fd, &evctx);
+ }
+#endif
}
/*-----------------------------------------------------------------------------
{
char chg_img_filename[MAX_IMG_FILE_PATH];
-
- if (fbi->current_fb_id == s_drmdi.fb_id[0])
- fbi->current_fb_id = s_drmdi.fb_id[1];
- else
- fbi->current_fb_id = s_drmdi.fb_id[0];
-
+#ifdef INTERFACE_DRM
+ if (fbi->type == FB_DEV_DRM) {
+ if (fbi->current_fb_id == s_drmdi.fb_id[0])
+ fbi->current_fb_id = s_drmdi.fb_id[1];
+ else
+ fbi->current_fb_id = s_drmdi.fb_id[0];
+ }
+#endif
/* fill full screen with black color */
fb_clear_screen(fbi, 0x00000000);
draw_png_img_xy(fbi, s_normal_img_x, s_normal_img_y);
release_png_res();
- DEBUG_MSG("[fb_draw_img_full_charging] current_fb_id :%d\n",\
- fbi->current_fb_id);
- drmModePageFlip(s_drmdi.fd, s_drmdi.crtc->crtc_id, fbi->current_fb_id,\
- DRM_MODE_PAGE_FLIP_EVENT, NULL);
- drmHandleEvent(s_drmdi.fd, &evctx);
-
+#ifdef INTERFACE_DRM
+ if (fbi->type == FB_DEV_DRM) {
+ if (sys_power_state() == SYS_POWER_OFF) {
+ DEBUG_MSG("fb_draw_img_full_charging - power off ..\n");
+ if (fbi->current_fb_id == s_drmdi.fb_id[0])
+ fbi->current_fb_id = s_drmdi.fb_id[1];
+ else
+ fbi->current_fb_id = s_drmdi.fb_id[0];
+ return;
+ }
+ else
+ DEBUG_MSG("no check..\n");
+
+ DEBUG_MSG("[fb_draw_img_full_charging] current_fb_id :%d\n",\
+ fbi->current_fb_id);
+ drmModePageFlip(s_drmdi.fd, s_drmdi.crtc->crtc_id,\
+ fbi->current_fb_id, DRM_MODE_PAGE_FLIP_EVENT, NULL);
+ drmHandleEvent(s_drmdi.fd, &evctx);
+ }
+#endif
}
/*-----------------------------------------------------------------------------
{
char chg_img_filename[MAX_IMG_FILE_PATH];
- if (fbi->current_fb_id == s_drmdi.fb_id[0])
- fbi->current_fb_id = s_drmdi.fb_id[1];
- else
- fbi->current_fb_id = s_drmdi.fb_id[0];
-
+#ifdef INTERFACE_DRM
+ if (fbi->type == FB_DEV_DRM) {
+ if (fbi->current_fb_id == s_drmdi.fb_id[0])
+ fbi->current_fb_id = s_drmdi.fb_id[1];
+ else
+ fbi->current_fb_id = s_drmdi.fb_id[0];
+ }
+#endif
/* fill full screen with black color */
fb_clear_screen(fbi, 0x00000000);
draw_png_img_xy(fbi, s_err_img_x, s_err_img_y);
release_png_res();
- DEBUG_MSG("[fb_draw_img_batt_err_plug]new_fb_id : %d\n",\
- fbi->current_fb_id);
- drmModePageFlip(s_drmdi.fd, s_drmdi.crtc->crtc_id, fbi->current_fb_id,\
- DRM_MODE_PAGE_FLIP_EVENT, NULL);
- drmHandleEvent(s_drmdi.fd, &evctx);
+#ifdef INTERFACE_DRM
+ if (fbi->type == FB_DEV_DRM) {
+ /*
+ if (sys_power_state() == SYS_POWER_OFF) {
+ DEBUG_MSG("fb_draw_img_batt_err_plug - power off ..\n");
+ return;
+ }
+ else
+ DEBUG_MSG("no check..\n");*/
+
+ DEBUG_MSG("[fb_draw_img_batt_err_plug]new_fb_id : %d\n",\
+ fbi->current_fb_id);
+ drmModePageFlip(s_drmdi.fd, s_drmdi.crtc->crtc_id,\
+ fbi->current_fb_id, DRM_MODE_PAGE_FLIP_EVENT, NULL);
+ drmHandleEvent(s_drmdi.fd, &evctx);
+ }
+#endif
}
/*-----------------------------------------------------------------------------
{
char chg_img_filename[MAX_IMG_FILE_PATH];
- if (fbi->current_fb_id == s_drmdi.fb_id[0])
- fbi->current_fb_id = s_drmdi.fb_id[1];
- else
- fbi->current_fb_id = s_drmdi.fb_id[0];
-
+#ifdef INTERFACE_DRM
+ if (fbi->type == FB_DEV_DRM) {
+ if (fbi->current_fb_id == s_drmdi.fb_id[0])
+ fbi->current_fb_id = s_drmdi.fb_id[1];
+ else
+ fbi->current_fb_id = s_drmdi.fb_id[0];
+ }
+#endif
/* fill full screen with black color */
fb_clear_screen(fbi, 0x00000000);
draw_png_img_xy(fbi, s_err_img_x, s_err_img_y);
release_png_res();
- DEBUG_MSG("[fb_draw_img_batt_err_temp]new_fb_id : %d\n",\
- fbi->current_fb_id);
- drmModePageFlip(s_drmdi.fd, s_drmdi.crtc->crtc_id, fbi->current_fb_id,\
- DRM_MODE_PAGE_FLIP_EVENT, NULL);
- drmHandleEvent(s_drmdi.fd, &evctx);
-
+#ifdef INTERFACE_DRM
+ if (fbi->type == FB_DEV_DRM) {
+ if (sys_power_state() == SYS_POWER_OFF) {
+ DEBUG_MSG("fb_draw_img_batt_err_temp - power off ..\n");
+ if (fbi->current_fb_id == s_drmdi.fb_id[0])
+ fbi->current_fb_id = s_drmdi.fb_id[1];
+ else
+ fbi->current_fb_id = s_drmdi.fb_id[0];
+ return;
+ }
+ else
+ DEBUG_MSG("no check..\n");
+
+ DEBUG_MSG("[fb_draw_img_batt_err_temp]new_fb_id : %d\n",\
+ fbi->current_fb_id);
+ drmModePageFlip(s_drmdi.fd, s_drmdi.crtc->crtc_id,\
+ fbi->current_fb_id, DRM_MODE_PAGE_FLIP_EVENT, NULL);
+ drmHandleEvent(s_drmdi.fd, &evctx);
+ }
+#endif
}
/*-----------------------------------------------------------------------------
static int batt_bar = 5;
char chg_img_filename[MAX_IMG_FILE_PATH];
- if (fbi->current_fb_id == s_drmdi.fb_id[0])
- fbi->current_fb_id = s_drmdi.fb_id[1];
- else
- fbi->current_fb_id = s_drmdi.fb_id[0];
-
+#ifdef INTERFACE_DRM
+ if (fbi->type == FB_DEV_DRM) {
+ if (fbi->current_fb_id == s_drmdi.fb_id[0])
+ fbi->current_fb_id = s_drmdi.fb_id[1];
+ else
+ fbi->current_fb_id = s_drmdi.fb_id[0];
+ }
+#endif
/* fill full screen with black color */
fb_clear_screen(fbi, 0x00000000);
progress_cnt = 0;
}
- DEBUG_MSG("[fb_draw_img_batt_err_charging]new_fb_id : %d\n",\
- fbi->current_fb_id);
- drmModePageFlip(s_drmdi.fd, s_drmdi.crtc->crtc_id, fbi->current_fb_id,\
- DRM_MODE_PAGE_FLIP_EVENT, NULL);
- drmHandleEvent(s_drmdi.fd, &evctx);
+#ifdef INTERFACE_DRM
+ if (fbi->type == FB_DEV_DRM) {
+ if (sys_power_state() == SYS_POWER_OFF) {
+ DEBUG_MSG("fb_draw_img_batt_err_charging - power off ..\n");
+ if (fbi->current_fb_id == s_drmdi.fb_id[0])
+ fbi->current_fb_id = s_drmdi.fb_id[1];
+ else
+ fbi->current_fb_id = s_drmdi.fb_id[0];
+ return;
+ }
+ else
+ DEBUG_MSG("no check..\n");
+
+ DEBUG_MSG("[fb_draw_img_batt_err_charging]new_fb_id : %d\n",\
+ fbi->current_fb_id);
+ drmModePageFlip(s_drmdi.fd, s_drmdi.crtc->crtc_id,\
+ fbi->current_fb_id, DRM_MODE_PAGE_FLIP_EVENT, NULL);
+ drmHandleEvent(s_drmdi.fd, &evctx);
+ }
+#endif
}