* [PATCH 1/2] drm/i915: Simplify hpd pin to port
@ 2017-08-02 17:20 Rodrigo Vivi
2017-08-02 17:21 ` [PATCH 2/2] drm/i915: Introduce intel_hdp_pin Rodrigo Vivi
` (4 more replies)
0 siblings, 5 replies; 13+ messages in thread
From: Rodrigo Vivi @ 2017-08-02 17:20 UTC (permalink / raw)
To: intel-gfx; +Cc: Rodrigo Vivi
We will soon need to make that pin port association per
platform, so let's try to simplify it beforehand.
Also we are moving the backwards port to pin
here as well so let's use a standardized way.
One extra possibility here would be to add a
MISSING_CASE along with PORT_NONE, but I don't want
to change this behaviour for now.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
drivers/gpu/drm/i915/i915_drv.h | 2 +-
drivers/gpu/drm/i915/i915_irq.c | 3 ++-
drivers/gpu/drm/i915/intel_dp.c | 2 +-
drivers/gpu/drm/i915/intel_hotplug.c | 31 +++++++++++++++++--------------
4 files changed, 21 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index d63645a521c4..5c2c7a677e96 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -3147,7 +3147,7 @@ void intel_hpd_irq_handler(struct drm_i915_private *dev_priv,
void intel_hpd_init(struct drm_i915_private *dev_priv);
void intel_hpd_init_work(struct drm_i915_private *dev_priv);
void intel_hpd_cancel_work(struct drm_i915_private *dev_priv);
-bool intel_hpd_pin_to_port(enum hpd_pin pin, enum port *port);
+enum port intel_hpd_port(enum hpd_pin pin);
bool intel_hpd_disable(struct drm_i915_private *dev_priv, enum hpd_pin pin);
void intel_hpd_enable(struct drm_i915_private *dev_priv, enum hpd_pin pin);
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 196caa463edf..b115ab584b5e 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -1501,7 +1501,8 @@ static void intel_get_hpd_pins(u32 *pin_mask, u32 *long_mask,
*pin_mask |= BIT(i);
- if (!intel_hpd_pin_to_port(i, &port))
+ port = intel_hpd_port(i);
+ if (port == PORT_NONE)
continue;
if (long_pulse_detect(port, dig_hotplug_reg))
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 2d42d09428c9..d4e6128f3b3a 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4566,7 +4566,7 @@ static bool bxt_digital_port_connected(struct drm_i915_private *dev_priv,
enum port port;
u32 bit;
- intel_hpd_pin_to_port(intel_encoder->hpd_pin, &port);
+ port = intel_hpd_port(intel_encoder->hpd_pin);
switch (port) {
case PORT_A:
bit = BXT_DE_PORT_HP_DDIA;
diff --git a/drivers/gpu/drm/i915/intel_hotplug.c b/drivers/gpu/drm/i915/intel_hotplug.c
index f1200272a699..5982c47586e7 100644
--- a/drivers/gpu/drm/i915/intel_hotplug.c
+++ b/drivers/gpu/drm/i915/intel_hotplug.c
@@ -76,26 +76,28 @@
* it will use i915_hotplug_work_func where this logic is handled.
*/
-bool intel_hpd_pin_to_port(enum hpd_pin pin, enum port *port)
+/**
+ * intel_hpd_port - return port hard associated with certain pin.
+ * @pin: the hpd pin to get associated port
+ *
+ * Return port that is associatade with @pin and PORT_NONE if no port is
+ * hard associated with that @pin.
+ */
+enum port intel_hpd_port(enum hpd_pin pin)
{
switch (pin) {
case HPD_PORT_A:
- *port = PORT_A;
- return true;
+ return PORT_A;
case HPD_PORT_B:
- *port = PORT_B;
- return true;
+ return PORT_B;
case HPD_PORT_C:
- *port = PORT_C;
- return true;
+ return PORT_C;
case HPD_PORT_D:
- *port = PORT_D;
- return true;
+ return PORT_D;
case HPD_PORT_E:
- *port = PORT_E;
- return true;
+ return PORT_E;
default:
- return false; /* no hpd */
+ return PORT_NONE; /* no port for this pin */
}
}
@@ -389,8 +391,9 @@ void intel_hpd_irq_handler(struct drm_i915_private *dev_priv,
if (!(BIT(i) & pin_mask))
continue;
- is_dig_port = intel_hpd_pin_to_port(i, &port) &&
- dev_priv->hotplug.irq_port[port];
+ port = intel_hpd_port(i);
+ is_dig_port = port != PORT_NONE &&
+ dev_priv->hotplug.irq_port[port];
if (is_dig_port) {
bool long_hpd = long_mask & BIT(i);
--
2.13.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 2/2] drm/i915: Introduce intel_hdp_pin.
2017-08-02 17:20 [PATCH 1/2] drm/i915: Simplify hpd pin to port Rodrigo Vivi
@ 2017-08-02 17:21 ` Rodrigo Vivi
2017-08-02 19:26 ` [PATCH] " Rodrigo Vivi
2017-08-02 17:45 ` ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915: Simplify hpd pin to port Patchwork
` (3 subsequent siblings)
4 siblings, 1 reply; 13+ messages in thread
From: Rodrigo Vivi @ 2017-08-02 17:21 UTC (permalink / raw)
To: intel-gfx; +Cc: Rodrigo Vivi
The idea is to have an unique place to decide the pin-port
per platform.
So let's create this function now without any functional
change. Just adding together code from hdmi and dp together.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
drivers/gpu/drm/i915/i915_drv.h | 1 +
drivers/gpu/drm/i915/intel_dp.c | 8 ++------
drivers/gpu/drm/i915/intel_hdmi.c | 19 +------------------
drivers/gpu/drm/i915/intel_hotplug.c | 24 ++++++++++++++++++++++++
4 files changed, 28 insertions(+), 24 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 5c2c7a677e96..c038717ad739 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -3148,6 +3148,7 @@ void intel_hpd_init(struct drm_i915_private *dev_priv);
void intel_hpd_init_work(struct drm_i915_private *dev_priv);
void intel_hpd_cancel_work(struct drm_i915_private *dev_priv);
enum port intel_hpd_port(enum hpd_pin pin);
+enum hpd_pin intel_hpd_pin(enum port port);
bool intel_hpd_disable(struct drm_i915_private *dev_priv, enum hpd_pin pin);
void intel_hpd_enable(struct drm_i915_private *dev_priv, enum hpd_pin pin);
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index d4e6128f3b3a..126783752c6d 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -5906,26 +5906,22 @@ intel_dp_init_connector_port_info(struct intel_digital_port *intel_dig_port)
struct intel_encoder *encoder = &intel_dig_port->base;
struct intel_dp *intel_dp = &intel_dig_port->dp;
+ encoder->hpd_pin = intel_hpd_pin(intel_dig_port->port);
+
switch (intel_dig_port->port) {
case PORT_A:
- encoder->hpd_pin = HPD_PORT_A;
intel_dp->aux_power_domain = POWER_DOMAIN_AUX_A;
break;
case PORT_B:
- encoder->hpd_pin = HPD_PORT_B;
intel_dp->aux_power_domain = POWER_DOMAIN_AUX_B;
break;
case PORT_C:
- encoder->hpd_pin = HPD_PORT_C;
intel_dp->aux_power_domain = POWER_DOMAIN_AUX_C;
break;
case PORT_D:
- encoder->hpd_pin = HPD_PORT_D;
intel_dp->aux_power_domain = POWER_DOMAIN_AUX_D;
break;
case PORT_E:
- encoder->hpd_pin = HPD_PORT_E;
-
/* FIXME: Check VBT for actual wiring of PORT E */
intel_dp->aux_power_domain = POWER_DOMAIN_AUX_D;
break;
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 5609976539bf..dcd14c71a989 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -1921,24 +1921,7 @@ void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port,
connector->ycbcr_420_allowed = true;
intel_hdmi->ddc_bus = intel_hdmi_ddc_pin(dev_priv, port);
-
- switch (port) {
- case PORT_B:
- intel_encoder->hpd_pin = HPD_PORT_B;
- break;
- case PORT_C:
- intel_encoder->hpd_pin = HPD_PORT_C;
- break;
- case PORT_D:
- intel_encoder->hpd_pin = HPD_PORT_D;
- break;
- case PORT_E:
- intel_encoder->hpd_pin = HPD_PORT_E;
- break;
- default:
- MISSING_CASE(port);
- return;
- }
+ intel_encoder->hpd_pin = intel_hpd_pin(port);
if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
intel_hdmi->write_infoframe = vlv_write_infoframe;
diff --git a/drivers/gpu/drm/i915/intel_hotplug.c b/drivers/gpu/drm/i915/intel_hotplug.c
index 5982c47586e7..360192d4b70a 100644
--- a/drivers/gpu/drm/i915/intel_hotplug.c
+++ b/drivers/gpu/drm/i915/intel_hotplug.c
@@ -101,6 +101,30 @@ enum port intel_hpd_port(enum hpd_pin pin)
}
}
+/**
+ * intel_hpd_pin - return pin hard associated with certain port.
+ * @port: the hpd port to get associated pin
+ *
+ * Return pin that is associatade with @port and HDP_NONE if no pin is
+ * hard associated with that @port.
+ */
+enum hpd_pin intel_hpd_pin(enum port port)
+{
+ switch (port) {
+ case PORT_B:
+ return HPD_PORT_B;
+ case PORT_C:
+ return HPD_PORT_C;
+ case PORT_D:
+ return HPD_PORT_D;
+ case PORT_E:
+ return HPD_PORT_E;
+ default:
+ MISSING_CASE(port);
+ return HPD_NONE;
+ }
+}
+
#define HPD_STORM_DETECT_PERIOD 1000
#define HPD_STORM_REENABLE_DELAY (2 * 60 * 1000)
--
2.13.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 13+ messages in thread
* ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915: Simplify hpd pin to port
2017-08-02 17:20 [PATCH 1/2] drm/i915: Simplify hpd pin to port Rodrigo Vivi
2017-08-02 17:21 ` [PATCH 2/2] drm/i915: Introduce intel_hdp_pin Rodrigo Vivi
@ 2017-08-02 17:45 ` Patchwork
2017-08-02 19:50 ` ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915: Simplify hpd pin to port (rev2) Patchwork
` (2 subsequent siblings)
4 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2017-08-02 17:45 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/2] drm/i915: Simplify hpd pin to port
URL : https://patchwork.freedesktop.org/series/28261/
State : failure
== Summary ==
Series 28261v1 Series without cover letter
https://patchwork.freedesktop.org/api/1.0/series/28261/revisions/1/mbox/
Test gem_exec_suspend:
Subgroup basic-s3:
pass -> DMESG-WARN (fi-bxt-j4205)
Test gem_pread:
Subgroup basic:
pass -> INCOMPLETE (fi-bxt-j4205)
Test kms_busy:
Subgroup basic-flip-default-a:
pass -> DMESG-WARN (fi-skl-6700hq) fdo#101144
Subgroup basic-flip-default-b:
pass -> FAIL (fi-skl-6700hq) fdo#101518 +31
Test kms_flip:
Subgroup basic-flip-vs-modeset:
pass -> SKIP (fi-skl-6700hq)
Subgroup basic-flip-vs-wf_vblank:
pass -> SKIP (fi-skl-6700hq) fdo#99739
Subgroup basic-plain-flip:
pass -> SKIP (fi-skl-6700hq)
Test kms_frontbuffer_tracking:
Subgroup basic:
pass -> SKIP (fi-skl-6700hq)
Test kms_pipe_crc_basic:
Subgroup hang-read-crc-pipe-a:
pass -> DMESG-WARN (fi-pnv-d510) fdo#101597
Test pm_rpm:
Subgroup basic-pci-d3-state:
pass -> SKIP (fi-skl-6700hq)
Subgroup basic-rte:
pass -> SKIP (fi-skl-6700hq)
Test drv_module_reload:
Subgroup basic-reload:
pass -> DMESG-WARN (fi-skl-6700hq)
pass -> DMESG-WARN (fi-skl-x1585l)
pass -> DMESG-WARN (fi-kbl-7500u)
pass -> DMESG-WARN (fi-kbl-7560u)
pass -> DMESG-WARN (fi-kbl-r)
pass -> DMESG-WARN (fi-glk-2a)
Subgroup basic-reload-inject:
pass -> DMESG-WARN (fi-skl-6700hq)
pass -> DMESG-WARN (fi-skl-x1585l)
pass -> DMESG-WARN (fi-kbl-7500u)
pass -> DMESG-WARN (fi-kbl-7560u)
pass -> DMESG-WARN (fi-kbl-r)
pass -> DMESG-WARN (fi-glk-2a)
Subgroup basic-reload-final:
pass -> DMESG-WARN (fi-skl-6700hq)
pass -> DMESG-WARN (fi-skl-x1585l)
pass -> DMESG-WARN (fi-kbl-7500u)
pass -> DMESG-WARN (fi-kbl-7560u)
pass -> DMESG-WARN (fi-kbl-r)
pass -> DMESG-WARN (fi-glk-2a)
fdo#101144 https://bugs.freedesktop.org/show_bug.cgi?id=101144
fdo#101518 https://bugs.freedesktop.org/show_bug.cgi?id=101518
fdo#99739 https://bugs.freedesktop.org/show_bug.cgi?id=99739
fdo#101597 https://bugs.freedesktop.org/show_bug.cgi?id=101597
fi-bdw-5557u total:280 pass:269 dwarn:0 dfail:0 fail:0 skip:11 time:448s
fi-bdw-gvtdvm total:280 pass:266 dwarn:0 dfail:0 fail:0 skip:14 time:433s
fi-blb-e6850 total:280 pass:225 dwarn:1 dfail:0 fail:0 skip:54 time:357s
fi-bsw-n3050 total:280 pass:244 dwarn:0 dfail:0 fail:0 skip:36 time:545s
fi-bxt-j4205 total:139 pass:125 dwarn:1 dfail:0 fail:0 skip:12
fi-byt-n2820 total:280 pass:251 dwarn:1 dfail:0 fail:0 skip:28 time:496s
fi-glk-2a total:280 pass:258 dwarn:3 dfail:0 fail:0 skip:19 time:611s
fi-hsw-4770 total:280 pass:264 dwarn:0 dfail:0 fail:0 skip:16 time:440s
fi-hsw-4770r total:280 pass:264 dwarn:0 dfail:0 fail:0 skip:16 time:417s
fi-ilk-650 total:280 pass:230 dwarn:0 dfail:0 fail:0 skip:50 time:418s
fi-ivb-3520m total:280 pass:262 dwarn:0 dfail:0 fail:0 skip:18 time:497s
fi-ivb-3770 total:280 pass:262 dwarn:0 dfail:0 fail:0 skip:18 time:471s
fi-kbl-7500u total:280 pass:259 dwarn:3 dfail:0 fail:0 skip:18 time:467s
fi-kbl-7560u total:280 pass:267 dwarn:3 dfail:0 fail:0 skip:10 time:546s
fi-kbl-r total:280 pass:259 dwarn:3 dfail:0 fail:0 skip:18 time:556s
fi-pnv-d510 total:280 pass:223 dwarn:2 dfail:0 fail:0 skip:55 time:562s
fi-skl-6260u total:280 pass:270 dwarn:0 dfail:0 fail:0 skip:10 time:453s
fi-skl-6700hq total:280 pass:221 dwarn:4 dfail:0 fail:30 skip:24 time:314s
fi-skl-6700k total:280 pass:262 dwarn:0 dfail:0 fail:0 skip:18 time:472s
fi-skl-6770hq total:280 pass:270 dwarn:0 dfail:0 fail:0 skip:10 time:472s
fi-skl-gvtdvm total:280 pass:267 dwarn:0 dfail:0 fail:0 skip:13 time:441s
fi-skl-x1585l total:280 pass:266 dwarn:3 dfail:0 fail:0 skip:11 time:477s
fi-snb-2520m total:280 pass:252 dwarn:0 dfail:0 fail:0 skip:28 time:544s
fi-snb-2600 total:280 pass:251 dwarn:0 dfail:0 fail:0 skip:29 time:406s
fcb630a80579faf6d12ee62cb49bd7a4acff41e6 drm-tip: 2017y-08m-01d-17h-14m-57s UTC integration manifest
3b266ce6a7ae drm/i915: Introduce intel_hdp_pin.
d19d0d8b41e1 drm/i915: Simplify hpd pin to port
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_5312/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH] drm/i915: Introduce intel_hdp_pin.
2017-08-02 17:21 ` [PATCH 2/2] drm/i915: Introduce intel_hdp_pin Rodrigo Vivi
@ 2017-08-02 19:26 ` Rodrigo Vivi
2017-08-10 4:44 ` Pandiyan, Dhinakaran
0 siblings, 1 reply; 13+ messages in thread
From: Rodrigo Vivi @ 2017-08-02 19:26 UTC (permalink / raw)
To: intel-gfx; +Cc: Rodrigo Vivi
The idea is to have an unique place to decide the pin-port
per platform.
So let's create this function now without any functional
change. Just adding together code from hdmi and dp together.
v2: Add missing pin for port A.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
drivers/gpu/drm/i915/i915_drv.h | 1 +
drivers/gpu/drm/i915/intel_dp.c | 8 ++------
drivers/gpu/drm/i915/intel_hdmi.c | 19 +------------------
drivers/gpu/drm/i915/intel_hotplug.c | 26 ++++++++++++++++++++++++++
4 files changed, 30 insertions(+), 24 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 5c2c7a677e96..c038717ad739 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -3148,6 +3148,7 @@ void intel_hpd_init(struct drm_i915_private *dev_priv);
void intel_hpd_init_work(struct drm_i915_private *dev_priv);
void intel_hpd_cancel_work(struct drm_i915_private *dev_priv);
enum port intel_hpd_port(enum hpd_pin pin);
+enum hpd_pin intel_hpd_pin(enum port port);
bool intel_hpd_disable(struct drm_i915_private *dev_priv, enum hpd_pin pin);
void intel_hpd_enable(struct drm_i915_private *dev_priv, enum hpd_pin pin);
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index d4e6128f3b3a..126783752c6d 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -5906,26 +5906,22 @@ intel_dp_init_connector_port_info(struct intel_digital_port *intel_dig_port)
struct intel_encoder *encoder = &intel_dig_port->base;
struct intel_dp *intel_dp = &intel_dig_port->dp;
+ encoder->hpd_pin = intel_hpd_pin(intel_dig_port->port);
+
switch (intel_dig_port->port) {
case PORT_A:
- encoder->hpd_pin = HPD_PORT_A;
intel_dp->aux_power_domain = POWER_DOMAIN_AUX_A;
break;
case PORT_B:
- encoder->hpd_pin = HPD_PORT_B;
intel_dp->aux_power_domain = POWER_DOMAIN_AUX_B;
break;
case PORT_C:
- encoder->hpd_pin = HPD_PORT_C;
intel_dp->aux_power_domain = POWER_DOMAIN_AUX_C;
break;
case PORT_D:
- encoder->hpd_pin = HPD_PORT_D;
intel_dp->aux_power_domain = POWER_DOMAIN_AUX_D;
break;
case PORT_E:
- encoder->hpd_pin = HPD_PORT_E;
-
/* FIXME: Check VBT for actual wiring of PORT E */
intel_dp->aux_power_domain = POWER_DOMAIN_AUX_D;
break;
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 5609976539bf..dcd14c71a989 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -1921,24 +1921,7 @@ void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port,
connector->ycbcr_420_allowed = true;
intel_hdmi->ddc_bus = intel_hdmi_ddc_pin(dev_priv, port);
-
- switch (port) {
- case PORT_B:
- intel_encoder->hpd_pin = HPD_PORT_B;
- break;
- case PORT_C:
- intel_encoder->hpd_pin = HPD_PORT_C;
- break;
- case PORT_D:
- intel_encoder->hpd_pin = HPD_PORT_D;
- break;
- case PORT_E:
- intel_encoder->hpd_pin = HPD_PORT_E;
- break;
- default:
- MISSING_CASE(port);
- return;
- }
+ intel_encoder->hpd_pin = intel_hpd_pin(port);
if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
intel_hdmi->write_infoframe = vlv_write_infoframe;
diff --git a/drivers/gpu/drm/i915/intel_hotplug.c b/drivers/gpu/drm/i915/intel_hotplug.c
index 5982c47586e7..7b1cf30a3e9b 100644
--- a/drivers/gpu/drm/i915/intel_hotplug.c
+++ b/drivers/gpu/drm/i915/intel_hotplug.c
@@ -101,6 +101,32 @@ enum port intel_hpd_port(enum hpd_pin pin)
}
}
+/**
+ * intel_hpd_pin - return pin hard associated with certain port.
+ * @port: the hpd port to get associated pin
+ *
+ * Return pin that is associatade with @port and HDP_NONE if no pin is
+ * hard associated with that @port.
+ */
+enum hpd_pin intel_hpd_pin(enum port port)
+{
+ switch (port) {
+ case PORT_A:
+ return HPD_PORT_A;
+ case PORT_B:
+ return HPD_PORT_B;
+ case PORT_C:
+ return HPD_PORT_C;
+ case PORT_D:
+ return HPD_PORT_D;
+ case PORT_E:
+ return HPD_PORT_E;
+ default:
+ MISSING_CASE(port);
+ return HPD_NONE;
+ }
+}
+
#define HPD_STORM_DETECT_PERIOD 1000
#define HPD_STORM_REENABLE_DELAY (2 * 60 * 1000)
--
2.13.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 13+ messages in thread
* ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915: Simplify hpd pin to port (rev2)
2017-08-02 17:20 [PATCH 1/2] drm/i915: Simplify hpd pin to port Rodrigo Vivi
2017-08-02 17:21 ` [PATCH 2/2] drm/i915: Introduce intel_hdp_pin Rodrigo Vivi
2017-08-02 17:45 ` ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915: Simplify hpd pin to port Patchwork
@ 2017-08-02 19:50 ` Patchwork
2017-08-10 5:22 ` [PATCH 1/2] drm/i915: Simplify hpd pin to port Pandiyan, Dhinakaran
2017-08-11 18:49 ` ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: Simplify hpd pin to port (rev4) Patchwork
4 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2017-08-02 19:50 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/2] drm/i915: Simplify hpd pin to port (rev2)
URL : https://patchwork.freedesktop.org/series/28261/
State : failure
== Summary ==
Series 28261v2 Series without cover letter
https://patchwork.freedesktop.org/api/1.0/series/28261/revisions/2/mbox/
Test kms_busy:
Subgroup basic-flip-default-a:
pass -> FAIL (fi-byt-n2820)
fi-bdw-5557u total:280 pass:269 dwarn:0 dfail:0 fail:0 skip:11 time:451s
fi-bdw-gvtdvm total:280 pass:266 dwarn:0 dfail:0 fail:0 skip:14 time:429s
fi-blb-e6850 total:280 pass:225 dwarn:1 dfail:0 fail:0 skip:54 time:352s
fi-bsw-n3050 total:280 pass:244 dwarn:0 dfail:0 fail:0 skip:36 time:542s
fi-bxt-j4205 total:280 pass:261 dwarn:0 dfail:0 fail:0 skip:19 time:515s
fi-byt-n2820 total:280 pass:250 dwarn:1 dfail:0 fail:1 skip:28 time:506s
fi-glk-2a total:280 pass:261 dwarn:0 dfail:0 fail:0 skip:19 time:611s
fi-hsw-4770 total:280 pass:264 dwarn:0 dfail:0 fail:0 skip:16 time:440s
fi-hsw-4770r total:280 pass:264 dwarn:0 dfail:0 fail:0 skip:16 time:420s
fi-ilk-650 total:280 pass:230 dwarn:0 dfail:0 fail:0 skip:50 time:422s
fi-ivb-3520m total:280 pass:262 dwarn:0 dfail:0 fail:0 skip:18 time:510s
fi-ivb-3770 total:280 pass:262 dwarn:0 dfail:0 fail:0 skip:18 time:472s
fi-kbl-7500u total:280 pass:262 dwarn:0 dfail:0 fail:0 skip:18 time:474s
fi-kbl-7560u total:280 pass:270 dwarn:0 dfail:0 fail:0 skip:10 time:579s
fi-kbl-r total:280 pass:262 dwarn:0 dfail:0 fail:0 skip:18 time:581s
fi-pnv-d510 total:280 pass:224 dwarn:1 dfail:0 fail:0 skip:55 time:566s
fi-skl-6260u total:280 pass:270 dwarn:0 dfail:0 fail:0 skip:10 time:460s
fi-skl-6700hq total:280 pass:263 dwarn:0 dfail:0 fail:0 skip:17 time:587s
fi-skl-6700k total:280 pass:262 dwarn:0 dfail:0 fail:0 skip:18 time:469s
fi-skl-6770hq total:280 pass:270 dwarn:0 dfail:0 fail:0 skip:10 time:481s
fi-skl-gvtdvm total:280 pass:267 dwarn:0 dfail:0 fail:0 skip:13 time:441s
fi-skl-x1585l total:280 pass:269 dwarn:0 dfail:0 fail:0 skip:11 time:477s
fi-snb-2520m total:280 pass:252 dwarn:0 dfail:0 fail:0 skip:28 time:542s
fi-snb-2600 total:280 pass:251 dwarn:0 dfail:0 fail:0 skip:29 time:406s
fcb630a80579faf6d12ee62cb49bd7a4acff41e6 drm-tip: 2017y-08m-01d-17h-14m-57s UTC integration manifest
efeca7c390ea drm/i915: Introduce intel_hdp_pin.
841ca9ad81dd drm/i915: Simplify hpd pin to port
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_5314/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] drm/i915: Introduce intel_hdp_pin.
2017-08-02 19:26 ` [PATCH] " Rodrigo Vivi
@ 2017-08-10 4:44 ` Pandiyan, Dhinakaran
2017-08-10 21:23 ` Rodrigo Vivi
0 siblings, 1 reply; 13+ messages in thread
From: Pandiyan, Dhinakaran @ 2017-08-10 4:44 UTC (permalink / raw)
To: Vivi, Rodrigo; +Cc: intel-gfx
On Wed, 2017-08-02 at 12:26 -0700, Rodrigo Vivi wrote:
> The idea is to have an unique place to decide the pin-port
> per platform.
>
> So let's create this function now without any functional
> change.
This seems to change the behavior when port A is not eDP.
> Just adding together code from hdmi and dp together.
>
> v2: Add missing pin for port A.
>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
> drivers/gpu/drm/i915/i915_drv.h | 1 +
> drivers/gpu/drm/i915/intel_dp.c | 8 ++------
> drivers/gpu/drm/i915/intel_hdmi.c | 19 +------------------
> drivers/gpu/drm/i915/intel_hotplug.c | 26 ++++++++++++++++++++++++++
> 4 files changed, 30 insertions(+), 24 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 5c2c7a677e96..c038717ad739 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -3148,6 +3148,7 @@ void intel_hpd_init(struct drm_i915_private *dev_priv);
> void intel_hpd_init_work(struct drm_i915_private *dev_priv);
> void intel_hpd_cancel_work(struct drm_i915_private *dev_priv);
> enum port intel_hpd_port(enum hpd_pin pin);
> +enum hpd_pin intel_hpd_pin(enum port port);
> bool intel_hpd_disable(struct drm_i915_private *dev_priv, enum hpd_pin pin);
> void intel_hpd_enable(struct drm_i915_private *dev_priv, enum hpd_pin pin);
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index d4e6128f3b3a..126783752c6d 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -5906,26 +5906,22 @@ intel_dp_init_connector_port_info(struct intel_digital_port *intel_dig_port)
> struct intel_encoder *encoder = &intel_dig_port->base;
> struct intel_dp *intel_dp = &intel_dig_port->dp;
>
> + encoder->hpd_pin = intel_hpd_pin(intel_dig_port->port);
> +
> switch (intel_dig_port->port) {
> case PORT_A:
> - encoder->hpd_pin = HPD_PORT_A;
> intel_dp->aux_power_domain = POWER_DOMAIN_AUX_A;
> break;
> case PORT_B:
> - encoder->hpd_pin = HPD_PORT_B;
> intel_dp->aux_power_domain = POWER_DOMAIN_AUX_B;
> break;
> case PORT_C:
> - encoder->hpd_pin = HPD_PORT_C;
> intel_dp->aux_power_domain = POWER_DOMAIN_AUX_C;
> break;
> case PORT_D:
> - encoder->hpd_pin = HPD_PORT_D;
> intel_dp->aux_power_domain = POWER_DOMAIN_AUX_D;
> break;
> case PORT_E:
> - encoder->hpd_pin = HPD_PORT_E;
> -
> /* FIXME: Check VBT for actual wiring of PORT E */
> intel_dp->aux_power_domain = POWER_DOMAIN_AUX_D;
> break;
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> index 5609976539bf..dcd14c71a989 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -1921,24 +1921,7 @@ void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port,
> connector->ycbcr_420_allowed = true;
>
> intel_hdmi->ddc_bus = intel_hdmi_ddc_pin(dev_priv, port);
> -
> - switch (port) {
> - case PORT_B:
> - intel_encoder->hpd_pin = HPD_PORT_B;
> - break;
> - case PORT_C:
> - intel_encoder->hpd_pin = HPD_PORT_C;
> - break;
> - case PORT_D:
> - intel_encoder->hpd_pin = HPD_PORT_D;
> - break;
> - case PORT_E:
> - intel_encoder->hpd_pin = HPD_PORT_E;
> - break;
> - default:
> - MISSING_CASE(port);
> - return;
> - }
> + intel_encoder->hpd_pin = intel_hpd_pin(port);
Instead of returning early for port A, this will go ahead and attach the
HDMI encoder to the connector. However, I don't know likely we'll have
a vbt that says port A supports both DP and HDMI but not eDP.
>
> if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
> intel_hdmi->write_infoframe = vlv_write_infoframe;
> diff --git a/drivers/gpu/drm/i915/intel_hotplug.c b/drivers/gpu/drm/i915/intel_hotplug.c
> index 5982c47586e7..7b1cf30a3e9b 100644
> --- a/drivers/gpu/drm/i915/intel_hotplug.c
> +++ b/drivers/gpu/drm/i915/intel_hotplug.c
> @@ -101,6 +101,32 @@ enum port intel_hpd_port(enum hpd_pin pin)
> }
> }
>
> +/**
> + * intel_hpd_pin - return pin hard associated with certain port.
> + * @port: the hpd port to get associated pin
> + *
> + * Return pin that is associatade with @port and HDP_NONE if no pin is
> + * hard associated with that @port.
> + */
> +enum hpd_pin intel_hpd_pin(enum port port)
> +{
> + switch (port) {
> + case PORT_A:
> + return HPD_PORT_A;
> + case PORT_B:
> + return HPD_PORT_B;
> + case PORT_C:
> + return HPD_PORT_C;
> + case PORT_D:
> + return HPD_PORT_D;
> + case PORT_E:
> + return HPD_PORT_E;
> + default:
> + MISSING_CASE(port);
> + return HPD_NONE;
> + }
> +}
> +
> #define HPD_STORM_DETECT_PERIOD 1000
> #define HPD_STORM_REENABLE_DELAY (2 * 60 * 1000)
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] drm/i915: Simplify hpd pin to port
2017-08-02 17:20 [PATCH 1/2] drm/i915: Simplify hpd pin to port Rodrigo Vivi
` (2 preceding siblings ...)
2017-08-02 19:50 ` ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915: Simplify hpd pin to port (rev2) Patchwork
@ 2017-08-10 5:22 ` Pandiyan, Dhinakaran
2017-08-11 18:49 ` ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: Simplify hpd pin to port (rev4) Patchwork
4 siblings, 0 replies; 13+ messages in thread
From: Pandiyan, Dhinakaran @ 2017-08-10 5:22 UTC (permalink / raw)
To: Vivi, Rodrigo; +Cc: intel-gfx
On Wed, 2017-08-02 at 10:20 -0700, Rodrigo Vivi wrote:
> We will soon need to make that pin port association per
> platform, so let's try to simplify it beforehand.
>
> Also we are moving the backwards port to pin
> here as well so let's use a standardized way.
>
> One extra possibility here would be to add a
> MISSING_CASE along with PORT_NONE, but I don't want
> to change this behaviour for now.
>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
> drivers/gpu/drm/i915/i915_drv.h | 2 +-
> drivers/gpu/drm/i915/i915_irq.c | 3 ++-
> drivers/gpu/drm/i915/intel_dp.c | 2 +-
> drivers/gpu/drm/i915/intel_hotplug.c | 31 +++++++++++++++++--------------
> 4 files changed, 21 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index d63645a521c4..5c2c7a677e96 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -3147,7 +3147,7 @@ void intel_hpd_irq_handler(struct drm_i915_private *dev_priv,
> void intel_hpd_init(struct drm_i915_private *dev_priv);
> void intel_hpd_init_work(struct drm_i915_private *dev_priv);
> void intel_hpd_cancel_work(struct drm_i915_private *dev_priv);
> -bool intel_hpd_pin_to_port(enum hpd_pin pin, enum port *port);
> +enum port intel_hpd_port(enum hpd_pin pin);
bikeshed: I feel hpd_pin_to_port reads better, conveys the conversion
from enum hpd_pin to enum port. Secondly, I haven't seen any references
to "hpd_port" in the driver.
It is not entirely obvious to me how changing the function signature
will help per-platform mapping, but returning port looks cleaner.
With the function name left intact
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> bool intel_hpd_disable(struct drm_i915_private *dev_priv, enum hpd_pin pin);
> void intel_hpd_enable(struct drm_i915_private *dev_priv, enum hpd_pin pin);
>
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index 196caa463edf..b115ab584b5e 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -1501,7 +1501,8 @@ static void intel_get_hpd_pins(u32 *pin_mask, u32 *long_mask,
>
> *pin_mask |= BIT(i);
>
> - if (!intel_hpd_pin_to_port(i, &port))
> + port = intel_hpd_port(i);
> + if (port == PORT_NONE)
> continue;
>
> if (long_pulse_detect(port, dig_hotplug_reg))
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 2d42d09428c9..d4e6128f3b3a 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -4566,7 +4566,7 @@ static bool bxt_digital_port_connected(struct drm_i915_private *dev_priv,
> enum port port;
> u32 bit;
>
> - intel_hpd_pin_to_port(intel_encoder->hpd_pin, &port);
> + port = intel_hpd_port(intel_encoder->hpd_pin);
> switch (port) {
> case PORT_A:
> bit = BXT_DE_PORT_HP_DDIA;
> diff --git a/drivers/gpu/drm/i915/intel_hotplug.c b/drivers/gpu/drm/i915/intel_hotplug.c
> index f1200272a699..5982c47586e7 100644
> --- a/drivers/gpu/drm/i915/intel_hotplug.c
> +++ b/drivers/gpu/drm/i915/intel_hotplug.c
> @@ -76,26 +76,28 @@
> * it will use i915_hotplug_work_func where this logic is handled.
> */
>
> -bool intel_hpd_pin_to_port(enum hpd_pin pin, enum port *port)
> +/**
> + * intel_hpd_port - return port hard associated with certain pin.
> + * @pin: the hpd pin to get associated port
> + *
> + * Return port that is associatade with @pin and PORT_NONE if no port is
> + * hard associated with that @pin.
> + */
> +enum port intel_hpd_port(enum hpd_pin pin)
> {
> switch (pin) {
> case HPD_PORT_A:
> - *port = PORT_A;
> - return true;
> + return PORT_A;
> case HPD_PORT_B:
> - *port = PORT_B;
> - return true;
> + return PORT_B;
> case HPD_PORT_C:
> - *port = PORT_C;
> - return true;
> + return PORT_C;
> case HPD_PORT_D:
> - *port = PORT_D;
> - return true;
> + return PORT_D;
> case HPD_PORT_E:
> - *port = PORT_E;
> - return true;
> + return PORT_E;
> default:
> - return false; /* no hpd */
> + return PORT_NONE; /* no port for this pin */
> }
> }
>
> @@ -389,8 +391,9 @@ void intel_hpd_irq_handler(struct drm_i915_private *dev_priv,
> if (!(BIT(i) & pin_mask))
> continue;
>
> - is_dig_port = intel_hpd_pin_to_port(i, &port) &&
> - dev_priv->hotplug.irq_port[port];
> + port = intel_hpd_port(i);
> + is_dig_port = port != PORT_NONE &&
> + dev_priv->hotplug.irq_port[port];
nit: I find
= (port != PORT_NONE) && dev_priv->hotplug.irq_port[port]
easier to read
>
> if (is_dig_port) {
> bool long_hpd = long_mask & BIT(i);
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] drm/i915: Introduce intel_hdp_pin.
2017-08-10 4:44 ` Pandiyan, Dhinakaran
@ 2017-08-10 21:23 ` Rodrigo Vivi
2017-08-10 23:24 ` Pandiyan, Dhinakaran
0 siblings, 1 reply; 13+ messages in thread
From: Rodrigo Vivi @ 2017-08-10 21:23 UTC (permalink / raw)
To: Pandiyan, Dhinakaran; +Cc: intel-gfx, Vivi, Rodrigo
On Wed, Aug 9, 2017 at 9:44 PM, Pandiyan, Dhinakaran
<dhinakaran.pandiyan@intel.com> wrote:
> On Wed, 2017-08-02 at 12:26 -0700, Rodrigo Vivi wrote:
>> The idea is to have an unique place to decide the pin-port
>> per platform.
>>
>> So let's create this function now without any functional
>> change.
>
> This seems to change the behavior when port A is not eDP.
>
>> Just adding together code from hdmi and dp together.
>>
>> v2: Add missing pin for port A.
>>
>> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>> ---
>> drivers/gpu/drm/i915/i915_drv.h | 1 +
>> drivers/gpu/drm/i915/intel_dp.c | 8 ++------
>> drivers/gpu/drm/i915/intel_hdmi.c | 19 +------------------
>> drivers/gpu/drm/i915/intel_hotplug.c | 26 ++++++++++++++++++++++++++
>> 4 files changed, 30 insertions(+), 24 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
>> index 5c2c7a677e96..c038717ad739 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.h
>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>> @@ -3148,6 +3148,7 @@ void intel_hpd_init(struct drm_i915_private *dev_priv);
>> void intel_hpd_init_work(struct drm_i915_private *dev_priv);
>> void intel_hpd_cancel_work(struct drm_i915_private *dev_priv);
>> enum port intel_hpd_port(enum hpd_pin pin);
>> +enum hpd_pin intel_hpd_pin(enum port port);
>> bool intel_hpd_disable(struct drm_i915_private *dev_priv, enum hpd_pin pin);
>> void intel_hpd_enable(struct drm_i915_private *dev_priv, enum hpd_pin pin);
>>
>> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
>> index d4e6128f3b3a..126783752c6d 100644
>> --- a/drivers/gpu/drm/i915/intel_dp.c
>> +++ b/drivers/gpu/drm/i915/intel_dp.c
>> @@ -5906,26 +5906,22 @@ intel_dp_init_connector_port_info(struct intel_digital_port *intel_dig_port)
>> struct intel_encoder *encoder = &intel_dig_port->base;
>> struct intel_dp *intel_dp = &intel_dig_port->dp;
>>
>> + encoder->hpd_pin = intel_hpd_pin(intel_dig_port->port);
>> +
>> switch (intel_dig_port->port) {
>> case PORT_A:
>> - encoder->hpd_pin = HPD_PORT_A;
>> intel_dp->aux_power_domain = POWER_DOMAIN_AUX_A;
>> break;
>> case PORT_B:
>> - encoder->hpd_pin = HPD_PORT_B;
>> intel_dp->aux_power_domain = POWER_DOMAIN_AUX_B;
>> break;
>> case PORT_C:
>> - encoder->hpd_pin = HPD_PORT_C;
>> intel_dp->aux_power_domain = POWER_DOMAIN_AUX_C;
>> break;
>> case PORT_D:
>> - encoder->hpd_pin = HPD_PORT_D;
>> intel_dp->aux_power_domain = POWER_DOMAIN_AUX_D;
>> break;
>> case PORT_E:
>> - encoder->hpd_pin = HPD_PORT_E;
>> -
>> /* FIXME: Check VBT for actual wiring of PORT E */
>> intel_dp->aux_power_domain = POWER_DOMAIN_AUX_D;
>> break;
>> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
>> index 5609976539bf..dcd14c71a989 100644
>> --- a/drivers/gpu/drm/i915/intel_hdmi.c
>> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
>> @@ -1921,24 +1921,7 @@ void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port,
>> connector->ycbcr_420_allowed = true;
>>
>> intel_hdmi->ddc_bus = intel_hdmi_ddc_pin(dev_priv, port);
>> -
>> - switch (port) {
>> - case PORT_B:
>> - intel_encoder->hpd_pin = HPD_PORT_B;
>> - break;
>> - case PORT_C:
>> - intel_encoder->hpd_pin = HPD_PORT_C;
>> - break;
>> - case PORT_D:
>> - intel_encoder->hpd_pin = HPD_PORT_D;
>> - break;
>> - case PORT_E:
>> - intel_encoder->hpd_pin = HPD_PORT_E;
>> - break;
>> - default:
>> - MISSING_CASE(port);
>> - return;
>> - }
>> + intel_encoder->hpd_pin = intel_hpd_pin(port);
>
> Instead of returning early for port A, this will go ahead and attach the
> HDMI encoder to the connector.
hmm! indeed!
this also explains how I end up forgetting the PORT_A on v1...
> However, I don't know likely we'll have
> a vbt that says port A supports both DP and HDMI but not eDP.
If we have a VBT stating that or it is a current bug we have or if
we have a VBT that lies to that point we have probably bigger issues,
but I understand that so far this option is working stable out there and
we don't want to take the risk, so what about a"
+ if(WARN_ON(port == PORT_A)) return;
+ intel_encoder->hpd_pin = intel_hpd_pin(port);
?
or just change the commit message explaining this case?
>
>>
>> if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
>> intel_hdmi->write_infoframe = vlv_write_infoframe;
>> diff --git a/drivers/gpu/drm/i915/intel_hotplug.c b/drivers/gpu/drm/i915/intel_hotplug.c
>> index 5982c47586e7..7b1cf30a3e9b 100644
>> --- a/drivers/gpu/drm/i915/intel_hotplug.c
>> +++ b/drivers/gpu/drm/i915/intel_hotplug.c
>> @@ -101,6 +101,32 @@ enum port intel_hpd_port(enum hpd_pin pin)
>> }
>> }
>>
>> +/**
>> + * intel_hpd_pin - return pin hard associated with certain port.
>> + * @port: the hpd port to get associated pin
>> + *
>> + * Return pin that is associatade with @port and HDP_NONE if no pin is
>> + * hard associated with that @port.
>> + */
>> +enum hpd_pin intel_hpd_pin(enum port port)
>> +{
>> + switch (port) {
>> + case PORT_A:
>> + return HPD_PORT_A;
>> + case PORT_B:
>> + return HPD_PORT_B;
>> + case PORT_C:
>> + return HPD_PORT_C;
>> + case PORT_D:
>> + return HPD_PORT_D;
>> + case PORT_E:
>> + return HPD_PORT_E;
>> + default:
>> + MISSING_CASE(port);
>> + return HPD_NONE;
>> + }
>> +}
>> +
>> #define HPD_STORM_DETECT_PERIOD 1000
>> #define HPD_STORM_REENABLE_DELAY (2 * 60 * 1000)
>>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Rodrigo Vivi
Blog: http://blog.vivi.eng.br
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] drm/i915: Introduce intel_hdp_pin.
2017-08-10 21:23 ` Rodrigo Vivi
@ 2017-08-10 23:24 ` Pandiyan, Dhinakaran
2017-08-11 18:26 ` [PATCH 1/2] drm/i915: Simplify hpd pin to port Rodrigo Vivi
0 siblings, 1 reply; 13+ messages in thread
From: Pandiyan, Dhinakaran @ 2017-08-10 23:24 UTC (permalink / raw)
To: rodrigo.vivi; +Cc: intel-gfx, Vivi, Rodrigo
On Thu, 2017-08-10 at 14:23 -0700, Rodrigo Vivi wrote:
> On Wed, Aug 9, 2017 at 9:44 PM, Pandiyan, Dhinakaran
> <dhinakaran.pandiyan@intel.com> wrote:
> > On Wed, 2017-08-02 at 12:26 -0700, Rodrigo Vivi wrote:
> >> The idea is to have an unique place to decide the pin-port
> >> per platform.
> >>
> >> So let's create this function now without any functional
> >> change.
> >
> > This seems to change the behavior when port A is not eDP.
> >
> >> Just adding together code from hdmi and dp together.
> >>
> >> v2: Add missing pin for port A.
> >>
> >> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> >> ---
> >> drivers/gpu/drm/i915/i915_drv.h | 1 +
> >> drivers/gpu/drm/i915/intel_dp.c | 8 ++------
> >> drivers/gpu/drm/i915/intel_hdmi.c | 19 +------------------
> >> drivers/gpu/drm/i915/intel_hotplug.c | 26 ++++++++++++++++++++++++++
> >> 4 files changed, 30 insertions(+), 24 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> >> index 5c2c7a677e96..c038717ad739 100644
> >> --- a/drivers/gpu/drm/i915/i915_drv.h
> >> +++ b/drivers/gpu/drm/i915/i915_drv.h
> >> @@ -3148,6 +3148,7 @@ void intel_hpd_init(struct drm_i915_private *dev_priv);
> >> void intel_hpd_init_work(struct drm_i915_private *dev_priv);
> >> void intel_hpd_cancel_work(struct drm_i915_private *dev_priv);
> >> enum port intel_hpd_port(enum hpd_pin pin);
> >> +enum hpd_pin intel_hpd_pin(enum port port);
> >> bool intel_hpd_disable(struct drm_i915_private *dev_priv, enum hpd_pin pin);
> >> void intel_hpd_enable(struct drm_i915_private *dev_priv, enum hpd_pin pin);
> >>
> >> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> >> index d4e6128f3b3a..126783752c6d 100644
> >> --- a/drivers/gpu/drm/i915/intel_dp.c
> >> +++ b/drivers/gpu/drm/i915/intel_dp.c
> >> @@ -5906,26 +5906,22 @@ intel_dp_init_connector_port_info(struct intel_digital_port *intel_dig_port)
> >> struct intel_encoder *encoder = &intel_dig_port->base;
> >> struct intel_dp *intel_dp = &intel_dig_port->dp;
> >>
> >> + encoder->hpd_pin = intel_hpd_pin(intel_dig_port->port);
> >> +
> >> switch (intel_dig_port->port) {
> >> case PORT_A:
> >> - encoder->hpd_pin = HPD_PORT_A;
> >> intel_dp->aux_power_domain = POWER_DOMAIN_AUX_A;
> >> break;
> >> case PORT_B:
> >> - encoder->hpd_pin = HPD_PORT_B;
> >> intel_dp->aux_power_domain = POWER_DOMAIN_AUX_B;
> >> break;
> >> case PORT_C:
> >> - encoder->hpd_pin = HPD_PORT_C;
> >> intel_dp->aux_power_domain = POWER_DOMAIN_AUX_C;
> >> break;
> >> case PORT_D:
> >> - encoder->hpd_pin = HPD_PORT_D;
> >> intel_dp->aux_power_domain = POWER_DOMAIN_AUX_D;
> >> break;
> >> case PORT_E:
> >> - encoder->hpd_pin = HPD_PORT_E;
> >> -
> >> /* FIXME: Check VBT for actual wiring of PORT E */
> >> intel_dp->aux_power_domain = POWER_DOMAIN_AUX_D;
> >> break;
> >> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> >> index 5609976539bf..dcd14c71a989 100644
> >> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> >> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> >> @@ -1921,24 +1921,7 @@ void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port,
> >> connector->ycbcr_420_allowed = true;
> >>
> >> intel_hdmi->ddc_bus = intel_hdmi_ddc_pin(dev_priv, port);
> >> -
> >> - switch (port) {
> >> - case PORT_B:
> >> - intel_encoder->hpd_pin = HPD_PORT_B;
> >> - break;
> >> - case PORT_C:
> >> - intel_encoder->hpd_pin = HPD_PORT_C;
> >> - break;
> >> - case PORT_D:
> >> - intel_encoder->hpd_pin = HPD_PORT_D;
> >> - break;
> >> - case PORT_E:
> >> - intel_encoder->hpd_pin = HPD_PORT_E;
> >> - break;
> >> - default:
> >> - MISSING_CASE(port);
> >> - return;
> >> - }
> >> + intel_encoder->hpd_pin = intel_hpd_pin(port);
> >
> > Instead of returning early for port A, this will go ahead and attach the
> > HDMI encoder to the connector.
>
> hmm! indeed!
> this also explains how I end up forgetting the PORT_A on v1...
>
> > However, I don't know likely we'll have
> > a vbt that says port A supports both DP and HDMI but not eDP.
>
> If we have a VBT stating that or it is a current bug we have or if
> we have a VBT that lies to that point we have probably bigger issues,
> but I understand that so far this option is working stable out there and
> we don't want to take the risk, so what about a"
>
> + if(WARN_ON(port == PORT_A)) return;
> + intel_encoder->hpd_pin = intel_hpd_pin(port);
>
Looks good to me with this change
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> ?
> or just change the commit message explaining this case?
>
> >
> >>
> >> if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
> >> intel_hdmi->write_infoframe = vlv_write_infoframe;
> >> diff --git a/drivers/gpu/drm/i915/intel_hotplug.c b/drivers/gpu/drm/i915/intel_hotplug.c
> >> index 5982c47586e7..7b1cf30a3e9b 100644
> >> --- a/drivers/gpu/drm/i915/intel_hotplug.c
> >> +++ b/drivers/gpu/drm/i915/intel_hotplug.c
> >> @@ -101,6 +101,32 @@ enum port intel_hpd_port(enum hpd_pin pin)
> >> }
> >> }
> >>
> >> +/**
> >> + * intel_hpd_pin - return pin hard associated with certain port.
> >> + * @port: the hpd port to get associated pin
> >> + *
> >> + * Return pin that is associatade with @port and HDP_NONE if no pin is
> >> + * hard associated with that @port.
> >> + */
> >> +enum hpd_pin intel_hpd_pin(enum port port)
> >> +{
> >> + switch (port) {
> >> + case PORT_A:
> >> + return HPD_PORT_A;
> >> + case PORT_B:
> >> + return HPD_PORT_B;
> >> + case PORT_C:
> >> + return HPD_PORT_C;
> >> + case PORT_D:
> >> + return HPD_PORT_D;
> >> + case PORT_E:
> >> + return HPD_PORT_E;
> >> + default:
> >> + MISSING_CASE(port);
> >> + return HPD_NONE;
> >> + }
> >> +}
> >> +
> >> #define HPD_STORM_DETECT_PERIOD 1000
> >> #define HPD_STORM_REENABLE_DELAY (2 * 60 * 1000)
> >>
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
>
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 1/2] drm/i915: Simplify hpd pin to port
2017-08-10 23:24 ` Pandiyan, Dhinakaran
@ 2017-08-11 18:26 ` Rodrigo Vivi
2017-08-11 18:26 ` [PATCH 2/2] drm/i915: Introduce intel_hpd_pin function Rodrigo Vivi
0 siblings, 1 reply; 13+ messages in thread
From: Rodrigo Vivi @ 2017-08-11 18:26 UTC (permalink / raw)
To: intel-gfx; +Cc: Rodrigo Vivi
We will soon need to make that pin port association per
platform, so let's try to simplify it beforehand.
Also we are moving the backwards port to pin
here as well so let's use a standardized way.
One extra possibility here would be to add a
MISSING_CASE along with PORT_NONE, but I don't want
to change this behaviour for now.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
---
drivers/gpu/drm/i915/i915_drv.h | 2 +-
drivers/gpu/drm/i915/i915_irq.c | 3 ++-
drivers/gpu/drm/i915/intel_dp.c | 2 +-
drivers/gpu/drm/i915/intel_hotplug.c | 31 +++++++++++++++++--------------
4 files changed, 21 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 907603cba447..68ec47b378ac 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -3194,7 +3194,7 @@ void intel_hpd_irq_handler(struct drm_i915_private *dev_priv,
void intel_hpd_init(struct drm_i915_private *dev_priv);
void intel_hpd_init_work(struct drm_i915_private *dev_priv);
void intel_hpd_cancel_work(struct drm_i915_private *dev_priv);
-bool intel_hpd_pin_to_port(enum hpd_pin pin, enum port *port);
+enum port intel_hpd_pin_to_port(enum hpd_pin pin);
bool intel_hpd_disable(struct drm_i915_private *dev_priv, enum hpd_pin pin);
void intel_hpd_enable(struct drm_i915_private *dev_priv, enum hpd_pin pin);
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 196caa463edf..58262380dcb8 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -1501,7 +1501,8 @@ static void intel_get_hpd_pins(u32 *pin_mask, u32 *long_mask,
*pin_mask |= BIT(i);
- if (!intel_hpd_pin_to_port(i, &port))
+ port = intel_hpd_pin_to_port(i);
+ if (port == PORT_NONE)
continue;
if (long_pulse_detect(port, dig_hotplug_reg))
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 76c8a0bd17f9..eeede2037931 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4566,7 +4566,7 @@ static bool bxt_digital_port_connected(struct drm_i915_private *dev_priv,
enum port port;
u32 bit;
- intel_hpd_pin_to_port(intel_encoder->hpd_pin, &port);
+ port = intel_hpd_pin_to_port(intel_encoder->hpd_pin);
switch (port) {
case PORT_A:
bit = BXT_DE_PORT_HP_DDIA;
diff --git a/drivers/gpu/drm/i915/intel_hotplug.c b/drivers/gpu/drm/i915/intel_hotplug.c
index f1200272a699..d442d9f012d6 100644
--- a/drivers/gpu/drm/i915/intel_hotplug.c
+++ b/drivers/gpu/drm/i915/intel_hotplug.c
@@ -76,26 +76,28 @@
* it will use i915_hotplug_work_func where this logic is handled.
*/
-bool intel_hpd_pin_to_port(enum hpd_pin pin, enum port *port)
+/**
+ * intel_hpd_port - return port hard associated with certain pin.
+ * @pin: the hpd pin to get associated port
+ *
+ * Return port that is associatade with @pin and PORT_NONE if no port is
+ * hard associated with that @pin.
+ */
+enum port intel_hpd_pin_to_port(enum hpd_pin pin)
{
switch (pin) {
case HPD_PORT_A:
- *port = PORT_A;
- return true;
+ return PORT_A;
case HPD_PORT_B:
- *port = PORT_B;
- return true;
+ return PORT_B;
case HPD_PORT_C:
- *port = PORT_C;
- return true;
+ return PORT_C;
case HPD_PORT_D:
- *port = PORT_D;
- return true;
+ return PORT_D;
case HPD_PORT_E:
- *port = PORT_E;
- return true;
+ return PORT_E;
default:
- return false; /* no hpd */
+ return PORT_NONE; /* no port for this pin */
}
}
@@ -389,8 +391,9 @@ void intel_hpd_irq_handler(struct drm_i915_private *dev_priv,
if (!(BIT(i) & pin_mask))
continue;
- is_dig_port = intel_hpd_pin_to_port(i, &port) &&
- dev_priv->hotplug.irq_port[port];
+ port = intel_hpd_pin_to_port(i);
+ is_dig_port = port != PORT_NONE &&
+ dev_priv->hotplug.irq_port[port];
if (is_dig_port) {
bool long_hpd = long_mask & BIT(i);
--
2.13.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 2/2] drm/i915: Introduce intel_hpd_pin function.
2017-08-11 18:26 ` [PATCH 1/2] drm/i915: Simplify hpd pin to port Rodrigo Vivi
@ 2017-08-11 18:26 ` Rodrigo Vivi
2017-08-11 18:55 ` Rodrigo Vivi
0 siblings, 1 reply; 13+ messages in thread
From: Rodrigo Vivi @ 2017-08-11 18:26 UTC (permalink / raw)
To: intel-gfx; +Cc: Dhinakaran Pandiyan, Rodrigo Vivi
The idea is to have an unique place to decide the pin-port
per platform.
So let's create this function now without any functional
change. Just adding together code from hdmi and dp together.
v2: Add missing pin for port A.
v3: Fix typo on subject.
Avoid behaviour change so add WARN_ON and return
if port A on HDMI. (by DK).
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
---
drivers/gpu/drm/i915/i915_drv.h | 1 +
drivers/gpu/drm/i915/intel_dp.c | 8 ++------
drivers/gpu/drm/i915/intel_hdmi.c | 18 ++----------------
drivers/gpu/drm/i915/intel_hotplug.c | 26 ++++++++++++++++++++++++++
4 files changed, 31 insertions(+), 22 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 68ec47b378ac..ba59e64eb378 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -3195,6 +3195,7 @@ void intel_hpd_init(struct drm_i915_private *dev_priv);
void intel_hpd_init_work(struct drm_i915_private *dev_priv);
void intel_hpd_cancel_work(struct drm_i915_private *dev_priv);
enum port intel_hpd_pin_to_port(enum hpd_pin pin);
+enum hpd_pin intel_hpd_pin(enum port port);
bool intel_hpd_disable(struct drm_i915_private *dev_priv, enum hpd_pin pin);
void intel_hpd_enable(struct drm_i915_private *dev_priv, enum hpd_pin pin);
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index eeede2037931..0e4b40663067 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -5904,26 +5904,22 @@ intel_dp_init_connector_port_info(struct intel_digital_port *intel_dig_port)
struct intel_encoder *encoder = &intel_dig_port->base;
struct intel_dp *intel_dp = &intel_dig_port->dp;
+ encoder->hpd_pin = intel_hpd_pin(intel_dig_port->port);
+
switch (intel_dig_port->port) {
case PORT_A:
- encoder->hpd_pin = HPD_PORT_A;
intel_dp->aux_power_domain = POWER_DOMAIN_AUX_A;
break;
case PORT_B:
- encoder->hpd_pin = HPD_PORT_B;
intel_dp->aux_power_domain = POWER_DOMAIN_AUX_B;
break;
case PORT_C:
- encoder->hpd_pin = HPD_PORT_C;
intel_dp->aux_power_domain = POWER_DOMAIN_AUX_C;
break;
case PORT_D:
- encoder->hpd_pin = HPD_PORT_D;
intel_dp->aux_power_domain = POWER_DOMAIN_AUX_D;
break;
case PORT_E:
- encoder->hpd_pin = HPD_PORT_E;
-
/* FIXME: Check VBT for actual wiring of PORT E */
intel_dp->aux_power_domain = POWER_DOMAIN_AUX_D;
break;
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 2ef1ee85129d..e30c27acb94f 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -1920,23 +1920,9 @@ void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port,
intel_hdmi->ddc_bus = intel_hdmi_ddc_pin(dev_priv, port);
- switch (port) {
- case PORT_B:
- intel_encoder->hpd_pin = HPD_PORT_B;
- break;
- case PORT_C:
- intel_encoder->hpd_pin = HPD_PORT_C;
- break;
- case PORT_D:
- intel_encoder->hpd_pin = HPD_PORT_D;
- break;
- case PORT_E:
- intel_encoder->hpd_pin = HPD_PORT_E;
- break;
- default:
- MISSING_CASE(port);
+ if (WARN_ON(port == PORT_A))
return;
- }
+ intel_encoder->hpd_pin = intel_hpd_pin(port);
if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
intel_hdmi->write_infoframe = vlv_write_infoframe;
diff --git a/drivers/gpu/drm/i915/intel_hotplug.c b/drivers/gpu/drm/i915/intel_hotplug.c
index d442d9f012d6..875d5d218d5c 100644
--- a/drivers/gpu/drm/i915/intel_hotplug.c
+++ b/drivers/gpu/drm/i915/intel_hotplug.c
@@ -101,6 +101,32 @@ enum port intel_hpd_pin_to_port(enum hpd_pin pin)
}
}
+/**
+ * intel_hpd_pin - return pin hard associated with certain port.
+ * @port: the hpd port to get associated pin
+ *
+ * Return pin that is associatade with @port and HDP_NONE if no pin is
+ * hard associated with that @port.
+ */
+enum hpd_pin intel_hpd_pin(enum port port)
+{
+ switch (port) {
+ case PORT_A:
+ return HPD_PORT_A;
+ case PORT_B:
+ return HPD_PORT_B;
+ case PORT_C:
+ return HPD_PORT_C;
+ case PORT_D:
+ return HPD_PORT_D;
+ case PORT_E:
+ return HPD_PORT_E;
+ default:
+ MISSING_CASE(port);
+ return HPD_NONE;
+ }
+}
+
#define HPD_STORM_DETECT_PERIOD 1000
#define HPD_STORM_REENABLE_DELAY (2 * 60 * 1000)
--
2.13.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 13+ messages in thread
* ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: Simplify hpd pin to port (rev4)
2017-08-02 17:20 [PATCH 1/2] drm/i915: Simplify hpd pin to port Rodrigo Vivi
` (3 preceding siblings ...)
2017-08-10 5:22 ` [PATCH 1/2] drm/i915: Simplify hpd pin to port Pandiyan, Dhinakaran
@ 2017-08-11 18:49 ` Patchwork
4 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2017-08-11 18:49 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/2] drm/i915: Simplify hpd pin to port (rev4)
URL : https://patchwork.freedesktop.org/series/28261/
State : success
== Summary ==
Series 28261v4 Series without cover letter
https://patchwork.freedesktop.org/api/1.0/series/28261/revisions/4/mbox/
Test kms_flip:
Subgroup basic-flip-vs-modeset:
pass -> SKIP (fi-skl-x1585l) fdo#101781
Test kms_pipe_crc_basic:
Subgroup suspend-read-crc-pipe-b:
dmesg-warn -> PASS (fi-byt-n2820) fdo#101705
fdo#101781 https://bugs.freedesktop.org/show_bug.cgi?id=101781
fdo#101705 https://bugs.freedesktop.org/show_bug.cgi?id=101705
fi-bdw-5557u total:279 pass:268 dwarn:0 dfail:0 fail:0 skip:11 time:444s
fi-bdw-gvtdvm total:279 pass:265 dwarn:0 dfail:0 fail:0 skip:14 time:430s
fi-blb-e6850 total:279 pass:224 dwarn:1 dfail:0 fail:0 skip:54 time:356s
fi-bsw-n3050 total:279 pass:243 dwarn:0 dfail:0 fail:0 skip:36 time:544s
fi-bxt-j4205 total:279 pass:260 dwarn:0 dfail:0 fail:0 skip:19 time:522s
fi-byt-j1900 total:279 pass:254 dwarn:1 dfail:0 fail:0 skip:24 time:520s
fi-byt-n2820 total:279 pass:251 dwarn:0 dfail:0 fail:0 skip:28 time:515s
fi-glk-2a total:279 pass:260 dwarn:0 dfail:0 fail:0 skip:19 time:605s
fi-hsw-4770 total:279 pass:263 dwarn:0 dfail:0 fail:0 skip:16 time:442s
fi-hsw-4770r total:279 pass:263 dwarn:0 dfail:0 fail:0 skip:16 time:414s
fi-ilk-650 total:279 pass:229 dwarn:0 dfail:0 fail:0 skip:50 time:417s
fi-ivb-3520m total:279 pass:261 dwarn:0 dfail:0 fail:0 skip:18 time:507s
fi-ivb-3770 total:279 pass:261 dwarn:0 dfail:0 fail:0 skip:18 time:483s
fi-kbl-7500u total:279 pass:261 dwarn:0 dfail:0 fail:0 skip:18 time:466s
fi-kbl-7560u total:279 pass:269 dwarn:0 dfail:0 fail:0 skip:10 time:582s
fi-kbl-r total:279 pass:261 dwarn:0 dfail:0 fail:0 skip:18 time:598s
fi-pnv-d510 total:279 pass:223 dwarn:1 dfail:0 fail:0 skip:55 time:522s
fi-skl-6260u total:279 pass:269 dwarn:0 dfail:0 fail:0 skip:10 time:466s
fi-skl-6700k total:279 pass:261 dwarn:0 dfail:0 fail:0 skip:18 time:471s
fi-skl-6770hq total:279 pass:269 dwarn:0 dfail:0 fail:0 skip:10 time:472s
fi-skl-gvtdvm total:279 pass:266 dwarn:0 dfail:0 fail:0 skip:13 time:437s
fi-skl-x1585l total:279 pass:268 dwarn:0 dfail:0 fail:0 skip:11 time:479s
fi-snb-2520m total:279 pass:251 dwarn:0 dfail:0 fail:0 skip:28 time:549s
fi-snb-2600 total:279 pass:249 dwarn:0 dfail:0 fail:1 skip:29 time:409s
354550367a457f96f0ac550bd70d71da373495f2 drm-tip: 2017y-08m-11d-16h-07m-01s UTC integration manifest
864dcd95517e drm/i915: Simplify hpd pin to port
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_5385/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/2] drm/i915: Introduce intel_hpd_pin function.
2017-08-11 18:26 ` [PATCH 2/2] drm/i915: Introduce intel_hpd_pin function Rodrigo Vivi
@ 2017-08-11 18:55 ` Rodrigo Vivi
0 siblings, 0 replies; 13+ messages in thread
From: Rodrigo Vivi @ 2017-08-11 18:55 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: intel-gfx, Dhinakaran Pandiyan
merged to dinq. thanks for the reviews and ideas
On Fri, Aug 11, 2017 at 11:26 AM, Rodrigo Vivi <rodrigo.vivi@intel.com> wrote:
> The idea is to have an unique place to decide the pin-port
> per platform.
>
> So let's create this function now without any functional
> change. Just adding together code from hdmi and dp together.
>
> v2: Add missing pin for port A.
> v3: Fix typo on subject.
> Avoid behaviour change so add WARN_ON and return
> if port A on HDMI. (by DK).
>
> Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> ---
> drivers/gpu/drm/i915/i915_drv.h | 1 +
> drivers/gpu/drm/i915/intel_dp.c | 8 ++------
> drivers/gpu/drm/i915/intel_hdmi.c | 18 ++----------------
> drivers/gpu/drm/i915/intel_hotplug.c | 26 ++++++++++++++++++++++++++
> 4 files changed, 31 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 68ec47b378ac..ba59e64eb378 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -3195,6 +3195,7 @@ void intel_hpd_init(struct drm_i915_private *dev_priv);
> void intel_hpd_init_work(struct drm_i915_private *dev_priv);
> void intel_hpd_cancel_work(struct drm_i915_private *dev_priv);
> enum port intel_hpd_pin_to_port(enum hpd_pin pin);
> +enum hpd_pin intel_hpd_pin(enum port port);
> bool intel_hpd_disable(struct drm_i915_private *dev_priv, enum hpd_pin pin);
> void intel_hpd_enable(struct drm_i915_private *dev_priv, enum hpd_pin pin);
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index eeede2037931..0e4b40663067 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -5904,26 +5904,22 @@ intel_dp_init_connector_port_info(struct intel_digital_port *intel_dig_port)
> struct intel_encoder *encoder = &intel_dig_port->base;
> struct intel_dp *intel_dp = &intel_dig_port->dp;
>
> + encoder->hpd_pin = intel_hpd_pin(intel_dig_port->port);
> +
> switch (intel_dig_port->port) {
> case PORT_A:
> - encoder->hpd_pin = HPD_PORT_A;
> intel_dp->aux_power_domain = POWER_DOMAIN_AUX_A;
> break;
> case PORT_B:
> - encoder->hpd_pin = HPD_PORT_B;
> intel_dp->aux_power_domain = POWER_DOMAIN_AUX_B;
> break;
> case PORT_C:
> - encoder->hpd_pin = HPD_PORT_C;
> intel_dp->aux_power_domain = POWER_DOMAIN_AUX_C;
> break;
> case PORT_D:
> - encoder->hpd_pin = HPD_PORT_D;
> intel_dp->aux_power_domain = POWER_DOMAIN_AUX_D;
> break;
> case PORT_E:
> - encoder->hpd_pin = HPD_PORT_E;
> -
> /* FIXME: Check VBT for actual wiring of PORT E */
> intel_dp->aux_power_domain = POWER_DOMAIN_AUX_D;
> break;
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> index 2ef1ee85129d..e30c27acb94f 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -1920,23 +1920,9 @@ void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port,
>
> intel_hdmi->ddc_bus = intel_hdmi_ddc_pin(dev_priv, port);
>
> - switch (port) {
> - case PORT_B:
> - intel_encoder->hpd_pin = HPD_PORT_B;
> - break;
> - case PORT_C:
> - intel_encoder->hpd_pin = HPD_PORT_C;
> - break;
> - case PORT_D:
> - intel_encoder->hpd_pin = HPD_PORT_D;
> - break;
> - case PORT_E:
> - intel_encoder->hpd_pin = HPD_PORT_E;
> - break;
> - default:
> - MISSING_CASE(port);
> + if (WARN_ON(port == PORT_A))
> return;
> - }
> + intel_encoder->hpd_pin = intel_hpd_pin(port);
>
> if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
> intel_hdmi->write_infoframe = vlv_write_infoframe;
> diff --git a/drivers/gpu/drm/i915/intel_hotplug.c b/drivers/gpu/drm/i915/intel_hotplug.c
> index d442d9f012d6..875d5d218d5c 100644
> --- a/drivers/gpu/drm/i915/intel_hotplug.c
> +++ b/drivers/gpu/drm/i915/intel_hotplug.c
> @@ -101,6 +101,32 @@ enum port intel_hpd_pin_to_port(enum hpd_pin pin)
> }
> }
>
> +/**
> + * intel_hpd_pin - return pin hard associated with certain port.
> + * @port: the hpd port to get associated pin
> + *
> + * Return pin that is associatade with @port and HDP_NONE if no pin is
> + * hard associated with that @port.
> + */
> +enum hpd_pin intel_hpd_pin(enum port port)
> +{
> + switch (port) {
> + case PORT_A:
> + return HPD_PORT_A;
> + case PORT_B:
> + return HPD_PORT_B;
> + case PORT_C:
> + return HPD_PORT_C;
> + case PORT_D:
> + return HPD_PORT_D;
> + case PORT_E:
> + return HPD_PORT_E;
> + default:
> + MISSING_CASE(port);
> + return HPD_NONE;
> + }
> +}
> +
> #define HPD_STORM_DETECT_PERIOD 1000
> #define HPD_STORM_REENABLE_DELAY (2 * 60 * 1000)
>
> --
> 2.13.2
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Rodrigo Vivi
Blog: http://blog.vivi.eng.br
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2017-08-11 18:55 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-02 17:20 [PATCH 1/2] drm/i915: Simplify hpd pin to port Rodrigo Vivi
2017-08-02 17:21 ` [PATCH 2/2] drm/i915: Introduce intel_hdp_pin Rodrigo Vivi
2017-08-02 19:26 ` [PATCH] " Rodrigo Vivi
2017-08-10 4:44 ` Pandiyan, Dhinakaran
2017-08-10 21:23 ` Rodrigo Vivi
2017-08-10 23:24 ` Pandiyan, Dhinakaran
2017-08-11 18:26 ` [PATCH 1/2] drm/i915: Simplify hpd pin to port Rodrigo Vivi
2017-08-11 18:26 ` [PATCH 2/2] drm/i915: Introduce intel_hpd_pin function Rodrigo Vivi
2017-08-11 18:55 ` Rodrigo Vivi
2017-08-02 17:45 ` ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915: Simplify hpd pin to port Patchwork
2017-08-02 19:50 ` ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915: Simplify hpd pin to port (rev2) Patchwork
2017-08-10 5:22 ` [PATCH 1/2] drm/i915: Simplify hpd pin to port Pandiyan, Dhinakaran
2017-08-11 18:49 ` ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: Simplify hpd pin to port (rev4) Patchwork
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.