drm/rockchip: ebc_dev: release version v2.27

ebc: improve handwrite rate
pvi: add version 0x48

Signed-off-by: Zorro Liu <lyx@rock-chips.com>
Change-Id: I3b4646e5a4b2932309fa71d9fd4438bc96155907
This commit is contained in:
Zorro Liu
2022-01-10 11:46:52 +08:00
committed by Zorro liu
parent 4464333fca
commit 8247cacdf4
4 changed files with 12951 additions and 12837 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -210,6 +210,7 @@ static int tcon_enable(struct ebc_tcon *tcon, struct ebc_panel *panel)
tcon_write(tcon, EBC_DSP_START, DSP_SDCE_WIDTH(panel->ldl) | SW_BURST_CTRL);
tcon_write(tcon, EBC_DSP_CTRL,
DSP_SWAP_MODE(panel->panel_16bit ? 2 : 3) | DSP_VCOM_MODE(1) | DSP_SDCLK_DIV(0));
tcon_write(tcon, EBC_VNUM, (panel->fsl + panel->fbl + panel->fdl + panel->fel) * 2 / 3);
tcon_cfg_done(tcon);
enable_irq(tcon->irq);
@@ -277,7 +278,7 @@ static int tcon_lut_data_set(struct ebc_tcon *tcon, unsigned int *lut_data, int
static void tcon_frame_start(struct ebc_tcon *tcon, int frame_total)
{
tcon_write(tcon, EBC_INT_STATUS, LINE_FLAG_INT_MASK | DSP_FRM_INT_MASK | FRM_END_INT_MASK);
tcon_write(tcon, EBC_INT_STATUS, DSP_FRM_INT_MASK | FRM_END_INT_MASK);
/* always set frm start bit 0 before real frame start */
tcon_update_bits(tcon, EBC_DSP_START, DSP_FRM_TOTAL_MASK | DSP_FRM_START_MASK, DSP_FRM_TOTAL(frame_total - 1));
tcon_cfg_done(tcon);
@@ -291,10 +292,13 @@ static irqreturn_t tcon_irq_hanlder(int irq, void *dev_id)
u32 intr_status;
intr_status = tcon_read(tcon, EBC_INT_STATUS);
tcon_update_bits(tcon, EBC_INT_STATUS, DSP_END_INT_CLR | LINE_FLAG_INT_CLR, DSP_END_INT_CLR | LINE_FLAG_INT_CLR);
if (intr_status & LINE_FLAG_INT) {
if (tcon->line_flag_callback)
tcon->line_flag_callback();
}
if (intr_status & DSP_END_INT) {
tcon_update_bits(tcon, EBC_INT_STATUS, DSP_END_INT_CLR, DSP_END_INT_CLR);
if (tcon->dsp_end_callback)
tcon->dsp_end_callback();
}

View File

@@ -37,7 +37,7 @@ struct ebc_tcon {
void (*frame_addr_set)(struct ebc_tcon *tcon, u32 frame_addr);
int (*lut_data_set)(struct ebc_tcon *tcon, unsigned int *lut_data, int frame_count, int lut_32);
void (*frame_start)(struct ebc_tcon *tcon, int frame_total);
void (*line_flag_callback)(void);
void (*dsp_end_callback)(void);
};