drm/msm: add hdmi support for apq8x74/mdp5
The HDMI block is basically the same between older SoC's with mdp4 display controller, and newer ones with mdp5. So mostly this consists of better abstracting out the different sets of regulators, clks, etc. In particular, for regulators and clks we can split it up by what is needed for hot plug detect to work, and what is needed to light up the display. Also, 8x74 has a new phy.. a very simple one, but split out into a different mmio space. And with mdp5, the irq is shared with mdp, so we don't directly register our own irq handler. Signed-off-by: Rob Clark <robdclark@gmail.com>
这个提交包含在:
@@ -39,7 +39,7 @@ static int mdp4_hw_init(struct msm_kms *kms)
|
||||
major = FIELD(version, MDP4_VERSION_MAJOR);
|
||||
minor = FIELD(version, MDP4_VERSION_MINOR);
|
||||
|
||||
DBG("found MDP version v%d.%d", major, minor);
|
||||
DBG("found MDP4 version v%d.%d", major, minor);
|
||||
|
||||
if (major != 4) {
|
||||
dev_err(dev->dev, "unexpected MDP version: v%d.%d\n",
|
||||
@@ -195,6 +195,7 @@ static int modeset_init(struct mdp4_kms *mdp4_kms)
|
||||
struct drm_plane *plane;
|
||||
struct drm_crtc *crtc;
|
||||
struct drm_encoder *encoder;
|
||||
struct hdmi *hdmi;
|
||||
int ret;
|
||||
|
||||
/*
|
||||
@@ -244,9 +245,10 @@ static int modeset_init(struct mdp4_kms *mdp4_kms)
|
||||
encoder->possible_crtcs = 0x1; /* DTV can be hooked to DMA_E */
|
||||
priv->encoders[priv->num_encoders++] = encoder;
|
||||
|
||||
ret = hdmi_init(dev, encoder);
|
||||
if (ret) {
|
||||
dev_err(dev->dev, "failed to initialize HDMI\n");
|
||||
hdmi = hdmi_init(dev, encoder);
|
||||
if (IS_ERR(hdmi)) {
|
||||
ret = PTR_ERR(hdmi);
|
||||
dev_err(dev->dev, "failed to initialize HDMI: %d\n", ret);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
在新工单中引用
屏蔽一个用户