mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-03-16 12:14:06 +00:00
Merge branch 'CR_1314_DRM_INNO_Screen_compatibility_Keith.zhao' into 'jh7110-5.15.y-devel'
Cr 1314 drm inno screen compatibility keith.zhao See merge request sdk/linux!357
This commit is contained in:
commit
df2e5af47e
2 changed files with 17 additions and 23 deletions
|
@ -1392,6 +1392,12 @@ static enum drm_mode_status tda998x_bridge_mode_valid(struct drm_bridge *bridge,
|
|||
return MODE_BAD_HVALUE;
|
||||
if (mode->vtotal >= BIT(11))
|
||||
return MODE_BAD_VVALUE;
|
||||
//u32 vic = drm_match_cea_mode(mode);
|
||||
|
||||
//if (vic >= 1)
|
||||
// return MODE_OK;
|
||||
//else
|
||||
// return MODE_BAD;
|
||||
return MODE_OK;
|
||||
}
|
||||
|
||||
|
@ -1599,12 +1605,16 @@ static void tda998x_bridge_mode_set(struct drm_bridge *bridge,
|
|||
* TDA19988 requires high-active sync at input stage,
|
||||
* so invert low-active sync provided by master encoder here
|
||||
*/
|
||||
if (mode->flags & DRM_MODE_FLAG_PHSYNC)
|
||||
if (mode->flags & DRM_MODE_FLAG_NHSYNC)
|
||||
reg |= VIP_CNTRL_3_H_TGL;
|
||||
if (mode->flags & DRM_MODE_FLAG_PVSYNC)
|
||||
if (mode->flags & DRM_MODE_FLAG_NVSYNC)
|
||||
reg |= VIP_CNTRL_3_V_TGL;
|
||||
reg_write(priv, REG_VIP_CNTRL_3, reg);
|
||||
|
||||
|
||||
printk("REG_VIP_CNTRL_3 = %02x\n",reg);
|
||||
//reg_write(priv, REG_VIP_CNTRL_3, 0x26);
|
||||
//reg_write(priv, REG_VIDFORMAT, 0x06);
|
||||
|
||||
reg_write(priv, REG_VIDFORMAT, 0x00);
|
||||
reg_write16(priv, REG_REFPIX_MSB, ref_pix);
|
||||
reg_write16(priv, REG_REFLINE_MSB, ref_line);
|
||||
|
@ -1637,11 +1647,13 @@ static void tda998x_bridge_mode_set(struct drm_bridge *bridge,
|
|||
* revert input stage toggled sync at output stage
|
||||
*/
|
||||
reg = TBG_CNTRL_1_DWIN_DIS | TBG_CNTRL_1_TGL_EN;
|
||||
if (mode->flags & DRM_MODE_FLAG_PHSYNC)
|
||||
if (mode->flags & DRM_MODE_FLAG_NHSYNC)
|
||||
reg |= TBG_CNTRL_1_H_TGL;
|
||||
if (mode->flags & DRM_MODE_FLAG_PVSYNC)
|
||||
if (mode->flags & DRM_MODE_FLAG_NVSYNC)
|
||||
reg |= TBG_CNTRL_1_V_TGL;
|
||||
reg_write(priv, REG_TBG_CNTRL_1, reg);
|
||||
printk("REG_TBG_CNTRL_1 = %02x\n",reg);
|
||||
//reg_write(priv, REG_TBG_CNTRL_1, 0x46);
|
||||
|
||||
/* must be last register set: */
|
||||
reg_write(priv, REG_TBG_CNTRL_0, 0);
|
||||
|
|
|
@ -137,7 +137,6 @@ static inline u8 hdmi_readb(struct inno_hdmi *hdmi, u16 offset)
|
|||
|
||||
static inline void hdmi_writeb(struct inno_hdmi *hdmi, u16 offset, u32 val)
|
||||
{
|
||||
printk("write: addr 0x%02x, val 0x%02x\n",offset,val);
|
||||
writel_relaxed(val, hdmi->regs + (offset) * 0x04);
|
||||
}
|
||||
|
||||
|
@ -533,8 +532,6 @@ static int inno_hdmi_setup(struct inno_hdmi *hdmi,
|
|||
|
||||
val = readl_relaxed(hdmi->regs + (0x1b0) * 0x04);
|
||||
val |= 0x4;
|
||||
//writel_relaxed(val, hdmi->regs + (0x1b0) * 0x04);
|
||||
//writel_relaxed(0xf, hdmi->regs + (0x1cc) * 0x04);
|
||||
hdmi_writeb(hdmi, 0x1b0, val);
|
||||
hdmi_writeb(hdmi, 0x1cc, 0xf);
|
||||
hdmi->hdmi_data.vic = drm_match_cea_mode(mode);
|
||||
|
@ -553,14 +550,8 @@ static int inno_hdmi_setup(struct inno_hdmi *hdmi,
|
|||
hdmi_writeb(hdmi, 0x1be, 0x70);
|
||||
inno_hdmi_tx_phy_power_down(hdmi);
|
||||
|
||||
hdmi_writeb(hdmi, 0xC9, 0x40);
|
||||
inno_hdmi_tx_ctrl(hdmi);
|
||||
|
||||
//hdmi_writeb(hdmi, 0x100, 0x02);
|
||||
|
||||
//drm_scdc_set_high_tmds_clock_ratio(hdmi->ddc, true);
|
||||
//drm_scdc_set_scrambling(hdmi->ddc, true);
|
||||
|
||||
hdmi_writeb(hdmi, 0x35, 0x01);
|
||||
hdmi_writeb(hdmi, 0x38, 0x04);
|
||||
hdmi_writeb(hdmi, 0x40, 0x18);
|
||||
|
@ -621,11 +612,6 @@ inno_hdmi_encoder_atomic_check(struct drm_encoder *encoder,
|
|||
struct drm_crtc_state *crtc_state,
|
||||
struct drm_connector_state *conn_state)
|
||||
{
|
||||
//struct rockchip_crtc_state *s = to_rockchip_crtc_state(crtc_state);
|
||||
|
||||
//s->output_mode = ROCKCHIP_OUT_MODE_P888;
|
||||
//s->output_type = DRM_MODE_CONNECTOR_HDMIA;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -773,10 +759,6 @@ inno_hdmi_connector_mode_valid(struct drm_connector *connector,
|
|||
return (valid) ? MODE_OK : MODE_BAD;
|
||||
#endif
|
||||
u32 vic = drm_match_cea_mode(mode);
|
||||
struct drm_display_info *display = &connector->display_info;
|
||||
printk("vic ======== %d-------display->hdmi.scdc.supported = %d",vic,display->hdmi.scdc.supported);
|
||||
|
||||
printk("display->hdmi.scdc.scrambling.supported = %d",display->hdmi.scdc.scrambling.supported);
|
||||
|
||||
if (vic >= 1)
|
||||
return MODE_OK;
|
||||
|
|
Loading…
Add table
Reference in a new issue