mirror of https://gitee.com/openkylin/linux.git
drm/i915: Convert DIP port switch cases to a simple macro
We have a couple of switch cases to compute the port value for the VIDEO_DIP_CTL register. Replace them with a simple macro. We do lose a few BUG() calls, but many people may consider that an improvement. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
4d10cc0f86
commit
822cdc5293
|
@ -2347,9 +2347,7 @@
|
||||||
#define VIDEO_DIP_CTL 0x61170
|
#define VIDEO_DIP_CTL 0x61170
|
||||||
/* Pre HSW: */
|
/* Pre HSW: */
|
||||||
#define VIDEO_DIP_ENABLE (1 << 31)
|
#define VIDEO_DIP_ENABLE (1 << 31)
|
||||||
#define VIDEO_DIP_PORT_B (1 << 29)
|
#define VIDEO_DIP_PORT(port) ((port) << 29)
|
||||||
#define VIDEO_DIP_PORT_C (2 << 29)
|
|
||||||
#define VIDEO_DIP_PORT_D (3 << 29)
|
|
||||||
#define VIDEO_DIP_PORT_MASK (3 << 29)
|
#define VIDEO_DIP_PORT_MASK (3 << 29)
|
||||||
#define VIDEO_DIP_ENABLE_GCP (1 << 25)
|
#define VIDEO_DIP_ENABLE_GCP (1 << 25)
|
||||||
#define VIDEO_DIP_ENABLE_AVI (1 << 21)
|
#define VIDEO_DIP_ENABLE_AVI (1 << 21)
|
||||||
|
|
|
@ -425,7 +425,7 @@ static void g4x_set_infoframes(struct drm_encoder *encoder,
|
||||||
struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi;
|
struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi;
|
||||||
u32 reg = VIDEO_DIP_CTL;
|
u32 reg = VIDEO_DIP_CTL;
|
||||||
u32 val = I915_READ(reg);
|
u32 val = I915_READ(reg);
|
||||||
u32 port;
|
u32 port = VIDEO_DIP_PORT(intel_dig_port->port);
|
||||||
|
|
||||||
assert_hdmi_port_disabled(intel_hdmi);
|
assert_hdmi_port_disabled(intel_hdmi);
|
||||||
|
|
||||||
|
@ -449,18 +449,6 @@ static void g4x_set_infoframes(struct drm_encoder *encoder,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (intel_dig_port->port) {
|
|
||||||
case PORT_B:
|
|
||||||
port = VIDEO_DIP_PORT_B;
|
|
||||||
break;
|
|
||||||
case PORT_C:
|
|
||||||
port = VIDEO_DIP_PORT_C;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
BUG();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (port != (val & VIDEO_DIP_PORT_MASK)) {
|
if (port != (val & VIDEO_DIP_PORT_MASK)) {
|
||||||
if (val & VIDEO_DIP_ENABLE) {
|
if (val & VIDEO_DIP_ENABLE) {
|
||||||
val &= ~VIDEO_DIP_ENABLE;
|
val &= ~VIDEO_DIP_ENABLE;
|
||||||
|
@ -491,7 +479,7 @@ static void ibx_set_infoframes(struct drm_encoder *encoder,
|
||||||
struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi;
|
struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi;
|
||||||
u32 reg = TVIDEO_DIP_CTL(intel_crtc->pipe);
|
u32 reg = TVIDEO_DIP_CTL(intel_crtc->pipe);
|
||||||
u32 val = I915_READ(reg);
|
u32 val = I915_READ(reg);
|
||||||
u32 port;
|
u32 port = VIDEO_DIP_PORT(intel_dig_port->port);
|
||||||
|
|
||||||
assert_hdmi_port_disabled(intel_hdmi);
|
assert_hdmi_port_disabled(intel_hdmi);
|
||||||
|
|
||||||
|
@ -507,21 +495,6 @@ static void ibx_set_infoframes(struct drm_encoder *encoder,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (intel_dig_port->port) {
|
|
||||||
case PORT_B:
|
|
||||||
port = VIDEO_DIP_PORT_B;
|
|
||||||
break;
|
|
||||||
case PORT_C:
|
|
||||||
port = VIDEO_DIP_PORT_C;
|
|
||||||
break;
|
|
||||||
case PORT_D:
|
|
||||||
port = VIDEO_DIP_PORT_D;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
BUG();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (port != (val & VIDEO_DIP_PORT_MASK)) {
|
if (port != (val & VIDEO_DIP_PORT_MASK)) {
|
||||||
if (val & VIDEO_DIP_ENABLE) {
|
if (val & VIDEO_DIP_ENABLE) {
|
||||||
val &= ~VIDEO_DIP_ENABLE;
|
val &= ~VIDEO_DIP_ENABLE;
|
||||||
|
|
Loading…
Reference in New Issue