video/rk_eink: add virtual width and height support.
Signed-off-by: Wenping Zhang <wenping.zhang@rock-chips.com> Change-Id: I60f026b0aa2ac62b6827675a7e780418d0928386
This commit is contained in:
parent
20618a45d9
commit
9876686da0
|
|
@ -13,6 +13,8 @@
|
|||
struct ebc_panel {
|
||||
u32 width;
|
||||
u32 height;
|
||||
u32 vir_width;
|
||||
u32 vir_height;
|
||||
u32 width_mm;
|
||||
u32 height_mm;
|
||||
|
||||
|
|
|
|||
|
|
@ -271,8 +271,8 @@ static int ebc_tcon_enable(struct udevice *dev, struct ebc_panel *panel)
|
|||
DSP_HEIGHT(panel->height) |
|
||||
DSP_WIDTH(panel->width));
|
||||
tcon_write(tcon, EBC_WIN_VIR,
|
||||
WIN_VIR_HEIGHT(panel->height) |
|
||||
WIN_VIR_WIDTH(panel->width));
|
||||
WIN_VIR_HEIGHT(panel->vir_height) |
|
||||
WIN_VIR_WIDTH(panel->vir_width));
|
||||
tcon_write(tcon, EBC_WIN_ACT,
|
||||
WIN_ACT_HEIGHT(panel->height) |
|
||||
WIN_ACT_WIDTH(panel->width));
|
||||
|
|
|
|||
|
|
@ -158,8 +158,8 @@ static int read_waveform(struct udevice *dev)
|
|||
static u32 aligned_image_size_4k(struct udevice *dev)
|
||||
{
|
||||
struct ebc_panel *plat = dev_get_platdata(dev);
|
||||
u32 w = plat->width;
|
||||
u32 h = plat->height;
|
||||
u32 w = plat->vir_width;
|
||||
u32 h = plat->vir_height;
|
||||
|
||||
return ALIGN((w * h) >> 1, 4096);
|
||||
}
|
||||
|
|
@ -314,11 +314,11 @@ static int read_needed_logo_from_partition(struct udevice *dev,
|
|||
printf("eink logo read header failed,ret = %d\n", ret);
|
||||
return -EINVAL;
|
||||
}
|
||||
if (part_hdr->screen_width != panel->width ||
|
||||
part_hdr->screen_height != panel->height){
|
||||
if (part_hdr->screen_width != panel->vir_width ||
|
||||
part_hdr->screen_height != panel->vir_height){
|
||||
printf("logo size(%dx%d) is not same as screen size(%dx%d)\n",
|
||||
part_hdr->screen_width, part_hdr->screen_height,
|
||||
panel->width, panel->height);
|
||||
panel->vir_width, panel->vir_height);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
|
@ -508,7 +508,7 @@ static int rockchip_eink_show_logo(int cur_logo_type, int update_mode)
|
|||
* The last_logo_type is -1 means it's first displaying
|
||||
*/
|
||||
if (last_logo_type == -1) {
|
||||
int size = (plat->width * plat->height) >> 1;
|
||||
int size = (plat->vir_width * plat->vir_height) >> 1;
|
||||
|
||||
logo_addr = get_addr_by_type(dev, EINK_LOGO_RESET);
|
||||
memset((u32 *)(u64)logo_addr, 0xff, size);
|
||||
|
|
@ -661,6 +661,8 @@ static int rockchip_eink_display_ofdata_to_platdata(struct udevice *dev)
|
|||
|
||||
plat->width = dev_read_u32_default(dev, "panel,width", 0);
|
||||
plat->height = dev_read_u32_default(dev, "panel,height", 0);
|
||||
plat->vir_width = dev_read_u32_default(dev, "panel,vir_width", plat->width);
|
||||
plat->vir_height = dev_read_u32_default(dev, "panel,vir_height", plat->height);
|
||||
plat->sdck = dev_read_u32_default(dev, "panel,sdck", 0);
|
||||
plat->lsl = dev_read_u32_default(dev, "panel,lsl", 0);
|
||||
plat->lbl = dev_read_u32_default(dev, "panel,lbl", 0);
|
||||
|
|
|
|||
Loading…
Reference in New Issue