All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: make edp optimize config
@ 2018-03-16 16:54 matthew.s.atwood
  2018-03-16 17:40 ` ✗ Fi.CI.BAT: failure for drm/i915: make edp optimize config (rev2) Patchwork
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: matthew.s.atwood @ 2018-03-16 16:54 UTC (permalink / raw)
  To: intel-gfx

From: Matt Atwood <matthew.s.atwood@intel.com>

Previously it was assumed that eDP panels would advertise the lowest link
rate required for their singular mode to function. With the introduction
of more advanced features there are advantages to a panel advertising a
higher rate then it needs for a its given mode. For panels that did, the
driver previously used a higher rate then necessary for that mode.

Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
---
 drivers/gpu/drm/i915/intel_dp.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index a2eeede..57b309c 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1766,8 +1766,10 @@ intel_dp_compute_config(struct intel_encoder *encoder,
 		 * configuration, and typically these values correspond to the
 		 * native resolution of the panel.
 		 */
-		min_lane_count = max_lane_count;
-		min_clock = max_clock;
+		if(dpcd[DP_DPCD_REV] < DPCD_REV_14){
+			min_lane_count = max_lane_count;
+			min_clock = max_clock;
+		}
 	}
 
 	for (; bpp >= 6*3; bpp -= 2*3) {
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* ✗ Fi.CI.BAT: failure for drm/i915: make edp optimize config (rev2)
  2018-03-16 16:54 [PATCH] drm/i915: make edp optimize config matthew.s.atwood
@ 2018-03-16 17:40 ` Patchwork
  2018-03-18 23:41 ` [PATCH] drm/i915: make edp optimize config kbuild test robot
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2018-03-16 17:40 UTC (permalink / raw)
  To: matthew.s.atwood; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: make edp optimize config (rev2)
URL   : https://patchwork.freedesktop.org/series/39652/
State : failure

== Summary ==

CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
  CHK     include/generated/bounds.h
  CHK     include/generated/timeconst.h
  CHK     include/generated/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  DESCEND  objtool
  CHK     scripts/mod/devicetable-offsets.h
  CHK     include/generated/compile.h
  CHK     kernel/config_data.h
  CC [M]  drivers/gpu/drm/i915/intel_dp.o
drivers/gpu/drm/i915/intel_dp.c: In function ‘intel_dp_compute_config’:
drivers/gpu/drm/i915/intel_dp.c:1811:6: error: ‘dpcd’ undeclared (first use in this function)
   if(dpcd[DP_DPCD_REV] < DPCD_REV_14){
      ^~~~
drivers/gpu/drm/i915/intel_dp.c:1811:6: note: each undeclared identifier is reported only once for each function it appears in
drivers/gpu/drm/i915/intel_dp.c:1811:26: error: ‘DPCD_REV_14’ undeclared (first use in this function)
   if(dpcd[DP_DPCD_REV] < DPCD_REV_14){
                          ^~~~~~~~~~~
scripts/Makefile.build:324: recipe for target 'drivers/gpu/drm/i915/intel_dp.o' failed
make[4]: *** [drivers/gpu/drm/i915/intel_dp.o] Error 1
scripts/Makefile.build:583: recipe for target 'drivers/gpu/drm/i915' failed
make[3]: *** [drivers/gpu/drm/i915] Error 2
scripts/Makefile.build:583: recipe for target 'drivers/gpu/drm' failed
make[2]: *** [drivers/gpu/drm] Error 2
scripts/Makefile.build:583: recipe for target 'drivers/gpu' failed
make[1]: *** [drivers/gpu] Error 2
Makefile:1051: recipe for target 'drivers' failed
make: *** [drivers] Error 2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] drm/i915: make edp optimize config
  2018-03-16 16:54 [PATCH] drm/i915: make edp optimize config matthew.s.atwood
  2018-03-16 17:40 ` ✗ Fi.CI.BAT: failure for drm/i915: make edp optimize config (rev2) Patchwork
@ 2018-03-18 23:41 ` kbuild test robot
  2018-03-19  0:06 ` kbuild test robot
  2018-03-19 19:12 ` Jani Nikula
  3 siblings, 0 replies; 10+ messages in thread
From: kbuild test robot @ 2018-03-18 23:41 UTC (permalink / raw)
  To: matthew.s.atwood; +Cc: intel-gfx, kbuild-all

[-- Attachment #1: Type: text/plain, Size: 9843 bytes --]

Hi Matt,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on v4.16-rc4]
[also build test ERROR on next-20180316]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/matthew-s-atwood-intel-com/drm-i915-make-edp-optimize-config/20180319-065307
config: x86_64-randconfig-x002-201811 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   drivers/gpu/drm/i915/intel_dp.c: In function 'intel_dp_compute_config':
>> drivers/gpu/drm/i915/intel_dp.c:1729:6: error: 'dpcd' undeclared (first use in this function); did you mean 'dpll'?
      if(dpcd[DP_DPCD_REV] < DPCD_REV_14){
         ^~~~
         dpll
   drivers/gpu/drm/i915/intel_dp.c:1729:6: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/gpu/drm/i915/intel_dp.c:1729:26: error: 'DPCD_REV_14' undeclared (first use in this function); did you mean 'BPF_REG_10'?
      if(dpcd[DP_DPCD_REV] < DPCD_REV_14){
                             ^~~~~~~~~~~
                             BPF_REG_10

vim +1729 drivers/gpu/drm/i915/intel_dp.c

  1607	
  1608	bool
  1609	intel_dp_compute_config(struct intel_encoder *encoder,
  1610				struct intel_crtc_state *pipe_config,
  1611				struct drm_connector_state *conn_state)
  1612	{
  1613		struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
  1614		struct drm_display_mode *adjusted_mode = &pipe_config->base.adjusted_mode;
  1615		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
  1616		enum port port = encoder->port;
  1617		struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->base.crtc);
  1618		struct intel_connector *intel_connector = intel_dp->attached_connector;
  1619		struct intel_digital_connector_state *intel_conn_state =
  1620			to_intel_digital_connector_state(conn_state);
  1621		int lane_count, clock;
  1622		int min_lane_count = 1;
  1623		int max_lane_count = intel_dp_max_lane_count(intel_dp);
  1624		/* Conveniently, the link BW constants become indices with a shift...*/
  1625		int min_clock = 0;
  1626		int max_clock;
  1627		int bpp, mode_rate;
  1628		int link_avail, link_clock;
  1629		int common_len;
  1630		uint8_t link_bw, rate_select;
  1631		bool reduce_m_n = drm_dp_has_quirk(&intel_dp->desc,
  1632						   DP_DPCD_QUIRK_LIMITED_M_N);
  1633	
  1634		common_len = intel_dp_common_len_rate_limit(intel_dp,
  1635							    intel_dp->max_link_rate);
  1636	
  1637		/* No common link rates between source and sink */
  1638		WARN_ON(common_len <= 0);
  1639	
  1640		max_clock = common_len - 1;
  1641	
  1642		if (HAS_PCH_SPLIT(dev_priv) && !HAS_DDI(dev_priv) && port != PORT_A)
  1643			pipe_config->has_pch_encoder = true;
  1644	
  1645		pipe_config->has_drrs = false;
  1646		if (IS_G4X(dev_priv) || port == PORT_A)
  1647			pipe_config->has_audio = false;
  1648		else if (intel_conn_state->force_audio == HDMI_AUDIO_AUTO)
  1649			pipe_config->has_audio = intel_dp->has_audio;
  1650		else
  1651			pipe_config->has_audio = intel_conn_state->force_audio == HDMI_AUDIO_ON;
  1652	
  1653		if (intel_dp_is_edp(intel_dp) && intel_connector->panel.fixed_mode) {
  1654			struct drm_display_mode *panel_mode =
  1655				intel_connector->panel.alt_fixed_mode;
  1656			struct drm_display_mode *req_mode = &pipe_config->base.mode;
  1657	
  1658			if (!intel_edp_compare_alt_mode(req_mode, panel_mode))
  1659				panel_mode = intel_connector->panel.fixed_mode;
  1660	
  1661			drm_mode_debug_printmodeline(panel_mode);
  1662	
  1663			intel_fixed_panel_mode(panel_mode, adjusted_mode);
  1664	
  1665			if (INTEL_GEN(dev_priv) >= 9) {
  1666				int ret;
  1667				ret = skl_update_scaler_crtc(pipe_config);
  1668				if (ret)
  1669					return ret;
  1670			}
  1671	
  1672			if (HAS_GMCH_DISPLAY(dev_priv))
  1673				intel_gmch_panel_fitting(intel_crtc, pipe_config,
  1674							 conn_state->scaling_mode);
  1675			else
  1676				intel_pch_panel_fitting(intel_crtc, pipe_config,
  1677							conn_state->scaling_mode);
  1678		}
  1679	
  1680		if ((IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) &&
  1681		    adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE)
  1682			return false;
  1683	
  1684		if (adjusted_mode->flags & DRM_MODE_FLAG_DBLCLK)
  1685			return false;
  1686	
  1687		/* Use values requested by Compliance Test Request */
  1688		if (intel_dp->compliance.test_type == DP_TEST_LINK_TRAINING) {
  1689			int index;
  1690	
  1691			/* Validate the compliance test data since max values
  1692			 * might have changed due to link train fallback.
  1693			 */
  1694			if (intel_dp_link_params_valid(intel_dp, intel_dp->compliance.test_link_rate,
  1695						       intel_dp->compliance.test_lane_count)) {
  1696				index = intel_dp_rate_index(intel_dp->common_rates,
  1697							    intel_dp->num_common_rates,
  1698							    intel_dp->compliance.test_link_rate);
  1699				if (index >= 0)
  1700					min_clock = max_clock = index;
  1701				min_lane_count = max_lane_count = intel_dp->compliance.test_lane_count;
  1702			}
  1703		}
  1704		DRM_DEBUG_KMS("DP link computation with max lane count %i "
  1705			      "max bw %d pixel clock %iKHz\n",
  1706			      max_lane_count, intel_dp->common_rates[max_clock],
  1707			      adjusted_mode->crtc_clock);
  1708	
  1709		/* Walk through all bpp values. Luckily they're all nicely spaced with 2
  1710		 * bpc in between. */
  1711		bpp = intel_dp_compute_bpp(intel_dp, pipe_config);
  1712		if (intel_dp_is_edp(intel_dp)) {
  1713	
  1714			/* Get bpp from vbt only for panels that dont have bpp in edid */
  1715			if (intel_connector->base.display_info.bpc == 0 &&
  1716				(dev_priv->vbt.edp.bpp && dev_priv->vbt.edp.bpp < bpp)) {
  1717				DRM_DEBUG_KMS("clamping bpp for eDP panel to BIOS-provided %i\n",
  1718					      dev_priv->vbt.edp.bpp);
  1719				bpp = dev_priv->vbt.edp.bpp;
  1720			}
  1721	
  1722			/*
  1723			 * Use the maximum clock and number of lanes the eDP panel
  1724			 * advertizes being capable of. The panels are generally
  1725			 * designed to support only a single clock and lane
  1726			 * configuration, and typically these values correspond to the
  1727			 * native resolution of the panel.
  1728			 */
> 1729			if(dpcd[DP_DPCD_REV] < DPCD_REV_14){
  1730				min_lane_count = max_lane_count;
  1731				min_clock = max_clock;
  1732			}
  1733		}
  1734	
  1735		for (; bpp >= 6*3; bpp -= 2*3) {
  1736			mode_rate = intel_dp_link_required(adjusted_mode->crtc_clock,
  1737							   bpp);
  1738	
  1739			for (clock = min_clock; clock <= max_clock; clock++) {
  1740				for (lane_count = min_lane_count;
  1741					lane_count <= max_lane_count;
  1742					lane_count <<= 1) {
  1743	
  1744					link_clock = intel_dp->common_rates[clock];
  1745					link_avail = intel_dp_max_data_rate(link_clock,
  1746									    lane_count);
  1747	
  1748					if (mode_rate <= link_avail) {
  1749						goto found;
  1750					}
  1751				}
  1752			}
  1753		}
  1754	
  1755		return false;
  1756	
  1757	found:
  1758		if (intel_conn_state->broadcast_rgb == INTEL_BROADCAST_RGB_AUTO) {
  1759			/*
  1760			 * See:
  1761			 * CEA-861-E - 5.1 Default Encoding Parameters
  1762			 * VESA DisplayPort Ver.1.2a - 5.1.1.1 Video Colorimetry
  1763			 */
  1764			pipe_config->limited_color_range =
  1765				bpp != 18 &&
  1766				drm_default_rgb_quant_range(adjusted_mode) ==
  1767				HDMI_QUANTIZATION_RANGE_LIMITED;
  1768		} else {
  1769			pipe_config->limited_color_range =
  1770				intel_conn_state->broadcast_rgb == INTEL_BROADCAST_RGB_LIMITED;
  1771		}
  1772	
  1773		pipe_config->lane_count = lane_count;
  1774	
  1775		pipe_config->pipe_bpp = bpp;
  1776		pipe_config->port_clock = intel_dp->common_rates[clock];
  1777	
  1778		intel_dp_compute_rate(intel_dp, pipe_config->port_clock,
  1779				      &link_bw, &rate_select);
  1780	
  1781		DRM_DEBUG_KMS("DP link bw %02x rate select %02x lane count %d clock %d bpp %d\n",
  1782			      link_bw, rate_select, pipe_config->lane_count,
  1783			      pipe_config->port_clock, bpp);
  1784		DRM_DEBUG_KMS("DP link bw required %i available %i\n",
  1785			      mode_rate, link_avail);
  1786	
  1787		intel_link_compute_m_n(bpp, lane_count,
  1788				       adjusted_mode->crtc_clock,
  1789				       pipe_config->port_clock,
  1790				       &pipe_config->dp_m_n,
  1791				       reduce_m_n);
  1792	
  1793		if (intel_connector->panel.downclock_mode != NULL &&
  1794			dev_priv->drrs.type == SEAMLESS_DRRS_SUPPORT) {
  1795				pipe_config->has_drrs = true;
  1796				intel_link_compute_m_n(bpp, lane_count,
  1797					intel_connector->panel.downclock_mode->clock,
  1798					pipe_config->port_clock,
  1799					&pipe_config->dp_m2_n2,
  1800					reduce_m_n);
  1801		}
  1802	
  1803		/*
  1804		 * DPLL0 VCO may need to be adjusted to get the correct
  1805		 * clock for eDP. This will affect cdclk as well.
  1806		 */
  1807		if (intel_dp_is_edp(intel_dp) && IS_GEN9_BC(dev_priv)) {
  1808			int vco;
  1809	
  1810			switch (pipe_config->port_clock / 2) {
  1811			case 108000:
  1812			case 216000:
  1813				vco = 8640000;
  1814				break;
  1815			default:
  1816				vco = 8100000;
  1817				break;
  1818			}
  1819	
  1820			to_intel_atomic_state(pipe_config->base.state)->cdclk.logical.vco = vco;
  1821		}
  1822	
  1823		if (!HAS_DDI(dev_priv))
  1824			intel_dp_set_clock(encoder, pipe_config);
  1825	
  1826		intel_psr_compute_config(intel_dp, pipe_config);
  1827	
  1828		return true;
  1829	}
  1830	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 34092 bytes --]

[-- Attachment #3: Type: text/plain, Size: 160 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] drm/i915: make edp optimize config
  2018-03-16 16:54 [PATCH] drm/i915: make edp optimize config matthew.s.atwood
  2018-03-16 17:40 ` ✗ Fi.CI.BAT: failure for drm/i915: make edp optimize config (rev2) Patchwork
  2018-03-18 23:41 ` [PATCH] drm/i915: make edp optimize config kbuild test robot
@ 2018-03-19  0:06 ` kbuild test robot
  2018-03-19 19:12 ` Jani Nikula
  3 siblings, 0 replies; 10+ messages in thread
From: kbuild test robot @ 2018-03-19  0:06 UTC (permalink / raw)
  To: matthew.s.atwood; +Cc: intel-gfx, kbuild-all

[-- Attachment #1: Type: text/plain, Size: 9729 bytes --]

Hi Matt,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on v4.16-rc4]
[also build test ERROR on next-20180316]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/matthew-s-atwood-intel-com/drm-i915-make-edp-optimize-config/20180319-065307
config: i386-randconfig-a1-201811 (attached as .config)
compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

   drivers/gpu/drm/i915/intel_dp.c: In function 'intel_dp_compute_config':
>> drivers/gpu/drm/i915/intel_dp.c:1729:6: error: 'dpcd' undeclared (first use in this function)
      if(dpcd[DP_DPCD_REV] < DPCD_REV_14){
         ^
   drivers/gpu/drm/i915/intel_dp.c:1729:6: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/gpu/drm/i915/intel_dp.c:1729:26: error: 'DPCD_REV_14' undeclared (first use in this function)
      if(dpcd[DP_DPCD_REV] < DPCD_REV_14){
                             ^

vim +/dpcd +1729 drivers/gpu/drm/i915/intel_dp.c

  1607	
  1608	bool
  1609	intel_dp_compute_config(struct intel_encoder *encoder,
  1610				struct intel_crtc_state *pipe_config,
  1611				struct drm_connector_state *conn_state)
  1612	{
  1613		struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
  1614		struct drm_display_mode *adjusted_mode = &pipe_config->base.adjusted_mode;
  1615		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
  1616		enum port port = encoder->port;
  1617		struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->base.crtc);
  1618		struct intel_connector *intel_connector = intel_dp->attached_connector;
  1619		struct intel_digital_connector_state *intel_conn_state =
  1620			to_intel_digital_connector_state(conn_state);
  1621		int lane_count, clock;
  1622		int min_lane_count = 1;
  1623		int max_lane_count = intel_dp_max_lane_count(intel_dp);
  1624		/* Conveniently, the link BW constants become indices with a shift...*/
  1625		int min_clock = 0;
  1626		int max_clock;
  1627		int bpp, mode_rate;
  1628		int link_avail, link_clock;
  1629		int common_len;
  1630		uint8_t link_bw, rate_select;
  1631		bool reduce_m_n = drm_dp_has_quirk(&intel_dp->desc,
  1632						   DP_DPCD_QUIRK_LIMITED_M_N);
  1633	
  1634		common_len = intel_dp_common_len_rate_limit(intel_dp,
  1635							    intel_dp->max_link_rate);
  1636	
  1637		/* No common link rates between source and sink */
  1638		WARN_ON(common_len <= 0);
  1639	
  1640		max_clock = common_len - 1;
  1641	
  1642		if (HAS_PCH_SPLIT(dev_priv) && !HAS_DDI(dev_priv) && port != PORT_A)
  1643			pipe_config->has_pch_encoder = true;
  1644	
  1645		pipe_config->has_drrs = false;
  1646		if (IS_G4X(dev_priv) || port == PORT_A)
  1647			pipe_config->has_audio = false;
  1648		else if (intel_conn_state->force_audio == HDMI_AUDIO_AUTO)
  1649			pipe_config->has_audio = intel_dp->has_audio;
  1650		else
  1651			pipe_config->has_audio = intel_conn_state->force_audio == HDMI_AUDIO_ON;
  1652	
  1653		if (intel_dp_is_edp(intel_dp) && intel_connector->panel.fixed_mode) {
  1654			struct drm_display_mode *panel_mode =
  1655				intel_connector->panel.alt_fixed_mode;
  1656			struct drm_display_mode *req_mode = &pipe_config->base.mode;
  1657	
  1658			if (!intel_edp_compare_alt_mode(req_mode, panel_mode))
  1659				panel_mode = intel_connector->panel.fixed_mode;
  1660	
  1661			drm_mode_debug_printmodeline(panel_mode);
  1662	
  1663			intel_fixed_panel_mode(panel_mode, adjusted_mode);
  1664	
  1665			if (INTEL_GEN(dev_priv) >= 9) {
  1666				int ret;
  1667				ret = skl_update_scaler_crtc(pipe_config);
  1668				if (ret)
  1669					return ret;
  1670			}
  1671	
  1672			if (HAS_GMCH_DISPLAY(dev_priv))
  1673				intel_gmch_panel_fitting(intel_crtc, pipe_config,
  1674							 conn_state->scaling_mode);
  1675			else
  1676				intel_pch_panel_fitting(intel_crtc, pipe_config,
  1677							conn_state->scaling_mode);
  1678		}
  1679	
  1680		if ((IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) &&
  1681		    adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE)
  1682			return false;
  1683	
  1684		if (adjusted_mode->flags & DRM_MODE_FLAG_DBLCLK)
  1685			return false;
  1686	
  1687		/* Use values requested by Compliance Test Request */
  1688		if (intel_dp->compliance.test_type == DP_TEST_LINK_TRAINING) {
  1689			int index;
  1690	
  1691			/* Validate the compliance test data since max values
  1692			 * might have changed due to link train fallback.
  1693			 */
  1694			if (intel_dp_link_params_valid(intel_dp, intel_dp->compliance.test_link_rate,
  1695						       intel_dp->compliance.test_lane_count)) {
  1696				index = intel_dp_rate_index(intel_dp->common_rates,
  1697							    intel_dp->num_common_rates,
  1698							    intel_dp->compliance.test_link_rate);
  1699				if (index >= 0)
  1700					min_clock = max_clock = index;
  1701				min_lane_count = max_lane_count = intel_dp->compliance.test_lane_count;
  1702			}
  1703		}
  1704		DRM_DEBUG_KMS("DP link computation with max lane count %i "
  1705			      "max bw %d pixel clock %iKHz\n",
  1706			      max_lane_count, intel_dp->common_rates[max_clock],
  1707			      adjusted_mode->crtc_clock);
  1708	
  1709		/* Walk through all bpp values. Luckily they're all nicely spaced with 2
  1710		 * bpc in between. */
  1711		bpp = intel_dp_compute_bpp(intel_dp, pipe_config);
  1712		if (intel_dp_is_edp(intel_dp)) {
  1713	
  1714			/* Get bpp from vbt only for panels that dont have bpp in edid */
  1715			if (intel_connector->base.display_info.bpc == 0 &&
  1716				(dev_priv->vbt.edp.bpp && dev_priv->vbt.edp.bpp < bpp)) {
  1717				DRM_DEBUG_KMS("clamping bpp for eDP panel to BIOS-provided %i\n",
  1718					      dev_priv->vbt.edp.bpp);
  1719				bpp = dev_priv->vbt.edp.bpp;
  1720			}
  1721	
  1722			/*
  1723			 * Use the maximum clock and number of lanes the eDP panel
  1724			 * advertizes being capable of. The panels are generally
  1725			 * designed to support only a single clock and lane
  1726			 * configuration, and typically these values correspond to the
  1727			 * native resolution of the panel.
  1728			 */
> 1729			if(dpcd[DP_DPCD_REV] < DPCD_REV_14){
  1730				min_lane_count = max_lane_count;
  1731				min_clock = max_clock;
  1732			}
  1733		}
  1734	
  1735		for (; bpp >= 6*3; bpp -= 2*3) {
  1736			mode_rate = intel_dp_link_required(adjusted_mode->crtc_clock,
  1737							   bpp);
  1738	
  1739			for (clock = min_clock; clock <= max_clock; clock++) {
  1740				for (lane_count = min_lane_count;
  1741					lane_count <= max_lane_count;
  1742					lane_count <<= 1) {
  1743	
  1744					link_clock = intel_dp->common_rates[clock];
  1745					link_avail = intel_dp_max_data_rate(link_clock,
  1746									    lane_count);
  1747	
  1748					if (mode_rate <= link_avail) {
  1749						goto found;
  1750					}
  1751				}
  1752			}
  1753		}
  1754	
  1755		return false;
  1756	
  1757	found:
  1758		if (intel_conn_state->broadcast_rgb == INTEL_BROADCAST_RGB_AUTO) {
  1759			/*
  1760			 * See:
  1761			 * CEA-861-E - 5.1 Default Encoding Parameters
  1762			 * VESA DisplayPort Ver.1.2a - 5.1.1.1 Video Colorimetry
  1763			 */
  1764			pipe_config->limited_color_range =
  1765				bpp != 18 &&
  1766				drm_default_rgb_quant_range(adjusted_mode) ==
  1767				HDMI_QUANTIZATION_RANGE_LIMITED;
  1768		} else {
  1769			pipe_config->limited_color_range =
  1770				intel_conn_state->broadcast_rgb == INTEL_BROADCAST_RGB_LIMITED;
  1771		}
  1772	
  1773		pipe_config->lane_count = lane_count;
  1774	
  1775		pipe_config->pipe_bpp = bpp;
  1776		pipe_config->port_clock = intel_dp->common_rates[clock];
  1777	
  1778		intel_dp_compute_rate(intel_dp, pipe_config->port_clock,
  1779				      &link_bw, &rate_select);
  1780	
  1781		DRM_DEBUG_KMS("DP link bw %02x rate select %02x lane count %d clock %d bpp %d\n",
  1782			      link_bw, rate_select, pipe_config->lane_count,
  1783			      pipe_config->port_clock, bpp);
  1784		DRM_DEBUG_KMS("DP link bw required %i available %i\n",
  1785			      mode_rate, link_avail);
  1786	
  1787		intel_link_compute_m_n(bpp, lane_count,
  1788				       adjusted_mode->crtc_clock,
  1789				       pipe_config->port_clock,
  1790				       &pipe_config->dp_m_n,
  1791				       reduce_m_n);
  1792	
  1793		if (intel_connector->panel.downclock_mode != NULL &&
  1794			dev_priv->drrs.type == SEAMLESS_DRRS_SUPPORT) {
  1795				pipe_config->has_drrs = true;
  1796				intel_link_compute_m_n(bpp, lane_count,
  1797					intel_connector->panel.downclock_mode->clock,
  1798					pipe_config->port_clock,
  1799					&pipe_config->dp_m2_n2,
  1800					reduce_m_n);
  1801		}
  1802	
  1803		/*
  1804		 * DPLL0 VCO may need to be adjusted to get the correct
  1805		 * clock for eDP. This will affect cdclk as well.
  1806		 */
  1807		if (intel_dp_is_edp(intel_dp) && IS_GEN9_BC(dev_priv)) {
  1808			int vco;
  1809	
  1810			switch (pipe_config->port_clock / 2) {
  1811			case 108000:
  1812			case 216000:
  1813				vco = 8640000;
  1814				break;
  1815			default:
  1816				vco = 8100000;
  1817				break;
  1818			}
  1819	
  1820			to_intel_atomic_state(pipe_config->base.state)->cdclk.logical.vco = vco;
  1821		}
  1822	
  1823		if (!HAS_DDI(dev_priv))
  1824			intel_dp_set_clock(encoder, pipe_config);
  1825	
  1826		intel_psr_compute_config(intel_dp, pipe_config);
  1827	
  1828		return true;
  1829	}
  1830	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 28410 bytes --]

[-- Attachment #3: Type: text/plain, Size: 160 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] drm/i915: make edp optimize config
  2018-03-16 16:54 [PATCH] drm/i915: make edp optimize config matthew.s.atwood
                   ` (2 preceding siblings ...)
  2018-03-19  0:06 ` kbuild test robot
@ 2018-03-19 19:12 ` Jani Nikula
  3 siblings, 0 replies; 10+ messages in thread
From: Jani Nikula @ 2018-03-19 19:12 UTC (permalink / raw)
  To: matthew.s.atwood, intel-gfx

On Fri, 16 Mar 2018, matthew.s.atwood@intel.com wrote:
> From: Matt Atwood <matthew.s.atwood@intel.com>
>
> Previously it was assumed that eDP panels would advertise the lowest link
> rate required for their singular mode to function. With the introduction
> of more advanced features there are advantages to a panel advertising a
> higher rate then it needs for a its given mode. For panels that did, the
> driver previously used a higher rate then necessary for that mode.

Makes me wonder if the check here should be for those features (that
should be mentioned, I guess you mean DSC, perhaps rate select) instead
of the spec version.

Please do send patches that compile, though. Gives you more
credibility. ;)

BR,
Jani.

>
> Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_dp.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index a2eeede..57b309c 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -1766,8 +1766,10 @@ intel_dp_compute_config(struct intel_encoder *encoder,
>  		 * configuration, and typically these values correspond to the
>  		 * native resolution of the panel.
>  		 */
> -		min_lane_count = max_lane_count;
> -		min_clock = max_clock;
> +		if(dpcd[DP_DPCD_REV] < DPCD_REV_14){
> +			min_lane_count = max_lane_count;
> +			min_clock = max_clock;
> +		}
>  	}
>  
>  	for (; bpp >= 6*3; bpp -= 2*3) {

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] drm/i915: make edp optimize config
  2018-03-10  0:07   ` Atwood, Matthew S
@ 2018-03-12 19:25     ` Rodrigo Vivi
  0 siblings, 0 replies; 10+ messages in thread
From: Rodrigo Vivi @ 2018-03-12 19:25 UTC (permalink / raw)
  To: Atwood, Matthew S; +Cc: intel-gfx

On Sat, Mar 10, 2018 at 12:07:34AM +0000, Atwood, Matthew S wrote:
> On Fri, 2018-03-09 at 14:05 +0200, Jani Nikula wrote:
> > On Thu, 08 Mar 2018, matthew.s.atwood@intel.com wrote:
> > > 
> > > From: Matt Atwood <matthew.s.atwood@intel.com>
> > > 
> > > Previously it was assumed that eDP panels would advertise the
> > > lowest link
> > > rate required for their singular mode to function. With the
> > > introduction
> > > of more advanced features there are advantages to a panel
> > > advertising a
> > > higher rate then it needs for a its given mode. For panels that
> > > did, the
> > > driver previously used a higher rate then necessary for that mode.
> > > 
> > > Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/intel_dp.c | 10 ----------
> > >  1 file changed, 10 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/intel_dp.c
> > > b/drivers/gpu/drm/i915/intel_dp.c
> > > index a2eeede..aa6d77d 100644
> > > --- a/drivers/gpu/drm/i915/intel_dp.c
> > > +++ b/drivers/gpu/drm/i915/intel_dp.c
> > > @@ -1758,16 +1758,6 @@ intel_dp_compute_config(struct intel_encoder
> > > *encoder,
> > >  				      dev_priv->vbt.edp.bpp);
> > >  			bpp = dev_priv->vbt.edp.bpp;
> > >  		}
> > > -
> > > -		/*
> > > -		 * Use the maximum clock and number of lanes the
> > > eDP panel
> > > -		 * advertizes being capable of. The panels are
> > > generally
> > > -		 * designed to support only a single clock and
> > > lane
> > > -		 * configuration, and typically these values
> > > correspond to the
> > > -		 * native resolution of the panel.
> > > -		 */
> > > -		min_lane_count = max_lane_count;
> > > -		min_clock = max_clock;
> > Please see my reply to Manasi's identical patch [1]. If we apply this
> > as-is, it will regress and will be reverted.
> > 
> > BR,
> > Jani.
> > 
> > 
> > [1] http://patchwork.freedesktop.org/patch/msgid/1520579339-14745-1-
> > git-send-email-manasi.d.navare@intel.com
> to consolidate some of the information the bug that's referenced in
> Manasi's patch is https://bugs.freedesktop.org/show_bug.cgi?id=73539. I
> understand this bug as the following some panels may advertise a mode
> that requires less then MAX_LANE_COUNT, however those panels would fail
> if less lanes were used.
> 
> When this bug was filed the compute config inner for loop iterated on
> rate and the outer iterated on lanes; this is now flipped. It *should*
> be the case that the lowest frequency with the max amount of lanes is
> preferred. Given the opposite behavior of the alogorithm to select I
> dont think we'd come across this again. Even if I'm wrong we could
> still min_lane_count = max_lane count and let the clock optimize
> itself.
> 
> I guess my question is, is there also a bug where if MAX_RATE wasnt
> used we saw a panel fail as well?

Looking to eDP 1.4 spec I'm convinced that max link rate approach is
the ideal for eDP 1.3 and older, regardless of the issues we had on
previous attempts.

But eDP 1.4 seems to introduce the new link rates flexibility and selection
in order to provide improved system-specific link rate optimization
and power efficiency.

I believe what we want here is:

-		min_lane_count = max_lane_count;
-		min_clock = max_clock;
+		if (intel_dp->edp_dpcd[0] <= DP_EDP_13) {
+			min_lane_count = max_lane_count;
+			min_clock = max_clock;
+		}

for me it seems that eDP 1.4 brings eDP link rates handling close to
DP ones. So imho this move here should be safe.

Besides, with this difference in place,
we don't break the world and if new bugs appear we can
work on those individually to figure out if we are missing something
else and this block was only masking other issues.

Thoughts?

> 
> Matt
> > 
> > 
> > > 
> > >  	}
> > >  
> > >  	for (; bpp >= 6*3; bpp -= 2*3) {
> _______________________________________________
> 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] 10+ messages in thread

* Re: [PATCH] drm/i915: make edp optimize config
  2018-03-09 12:05 ` Jani Nikula
@ 2018-03-10  0:07   ` Atwood, Matthew S
  2018-03-12 19:25     ` Rodrigo Vivi
  0 siblings, 1 reply; 10+ messages in thread
From: Atwood, Matthew S @ 2018-03-10  0:07 UTC (permalink / raw)
  To: intel-gfx, jani.nikula

On Fri, 2018-03-09 at 14:05 +0200, Jani Nikula wrote:
> On Thu, 08 Mar 2018, matthew.s.atwood@intel.com wrote:
> > 
> > From: Matt Atwood <matthew.s.atwood@intel.com>
> > 
> > Previously it was assumed that eDP panels would advertise the
> > lowest link
> > rate required for their singular mode to function. With the
> > introduction
> > of more advanced features there are advantages to a panel
> > advertising a
> > higher rate then it needs for a its given mode. For panels that
> > did, the
> > driver previously used a higher rate then necessary for that mode.
> > 
> > Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
> > ---
> >  drivers/gpu/drm/i915/intel_dp.c | 10 ----------
> >  1 file changed, 10 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_dp.c
> > b/drivers/gpu/drm/i915/intel_dp.c
> > index a2eeede..aa6d77d 100644
> > --- a/drivers/gpu/drm/i915/intel_dp.c
> > +++ b/drivers/gpu/drm/i915/intel_dp.c
> > @@ -1758,16 +1758,6 @@ intel_dp_compute_config(struct intel_encoder
> > *encoder,
> >  				      dev_priv->vbt.edp.bpp);
> >  			bpp = dev_priv->vbt.edp.bpp;
> >  		}
> > -
> > -		/*
> > -		 * Use the maximum clock and number of lanes the
> > eDP panel
> > -		 * advertizes being capable of. The panels are
> > generally
> > -		 * designed to support only a single clock and
> > lane
> > -		 * configuration, and typically these values
> > correspond to the
> > -		 * native resolution of the panel.
> > -		 */
> > -		min_lane_count = max_lane_count;
> > -		min_clock = max_clock;
> Please see my reply to Manasi's identical patch [1]. If we apply this
> as-is, it will regress and will be reverted.
> 
> BR,
> Jani.
> 
> 
> [1] http://patchwork.freedesktop.org/patch/msgid/1520579339-14745-1-
> git-send-email-manasi.d.navare@intel.com
to consolidate some of the information the bug that's referenced in
Manasi's patch is https://bugs.freedesktop.org/show_bug.cgi?id=73539. I
understand this bug as the following some panels may advertise a mode
that requires less then MAX_LANE_COUNT, however those panels would fail
if less lanes were used.

When this bug was filed the compute config inner for loop iterated on
rate and the outer iterated on lanes; this is now flipped. It *should*
be the case that the lowest frequency with the max amount of lanes is
preferred. Given the opposite behavior of the alogorithm to select I
dont think we'd come across this again. Even if I'm wrong we could
still min_lane_count = max_lane count and let the clock optimize
itself.

I guess my question is, is there also a bug where if MAX_RATE wasnt
used we saw a panel fail as well?

Matt
> 
> 
> > 
> >  	}
> >  
> >  	for (; bpp >= 6*3; bpp -= 2*3) {
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] drm/i915: make edp optimize config
  2018-03-09  1:17 matthew.s.atwood
  2018-03-09  4:48 ` Benson Leung
@ 2018-03-09 12:05 ` Jani Nikula
  2018-03-10  0:07   ` Atwood, Matthew S
  1 sibling, 1 reply; 10+ messages in thread
From: Jani Nikula @ 2018-03-09 12:05 UTC (permalink / raw)
  To: matthew.s.atwood, intel-gfx

On Thu, 08 Mar 2018, matthew.s.atwood@intel.com wrote:
> From: Matt Atwood <matthew.s.atwood@intel.com>
>
> Previously it was assumed that eDP panels would advertise the lowest link
> rate required for their singular mode to function. With the introduction
> of more advanced features there are advantages to a panel advertising a
> higher rate then it needs for a its given mode. For panels that did, the
> driver previously used a higher rate then necessary for that mode.
>
> Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_dp.c | 10 ----------
>  1 file changed, 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index a2eeede..aa6d77d 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -1758,16 +1758,6 @@ intel_dp_compute_config(struct intel_encoder *encoder,
>  				      dev_priv->vbt.edp.bpp);
>  			bpp = dev_priv->vbt.edp.bpp;
>  		}
> -
> -		/*
> -		 * Use the maximum clock and number of lanes the eDP panel
> -		 * advertizes being capable of. The panels are generally
> -		 * designed to support only a single clock and lane
> -		 * configuration, and typically these values correspond to the
> -		 * native resolution of the panel.
> -		 */
> -		min_lane_count = max_lane_count;
> -		min_clock = max_clock;

Please see my reply to Manasi's identical patch [1]. If we apply this
as-is, it will regress and will be reverted.

BR,
Jani.


[1] http://patchwork.freedesktop.org/patch/msgid/1520579339-14745-1-git-send-email-manasi.d.navare@intel.com


>  	}
>  
>  	for (; bpp >= 6*3; bpp -= 2*3) {

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] drm/i915: make edp optimize config
  2018-03-09  1:17 matthew.s.atwood
@ 2018-03-09  4:48 ` Benson Leung
  2018-03-09 12:05 ` Jani Nikula
  1 sibling, 0 replies; 10+ messages in thread
From: Benson Leung @ 2018-03-09  4:48 UTC (permalink / raw)
  To: matthew.s.atwood; +Cc: intel-gfx, bleung


[-- Attachment #1.1: Type: text/plain, Size: 1713 bytes --]

Hi Matt,

Minor commit message nits.

On Thu, Mar 08, 2018 at 05:17:38PM -0800, matthew.s.atwood@intel.com wrote:
> From: Matt Atwood <matthew.s.atwood@intel.com>
> 
> Previously it was assumed that eDP panels would advertise the lowest link
> rate required for their singular mode to function. With the introduction
> of more advanced features there are advantages to a panel advertising a
> higher rate then
s/then/than

> it needs for a its given mode. 

Don't need "its" here.

> For panels that did, the
> driver previously used a higher rate then necessary for that mode.
>
s/then/than

 
> Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>

Tested-by: Benson Leung <bleung@chromium.org>

Tested this on a panel and system with the following source and sink rates:


[    1.623225] [drm:intel_dp_print_rates] source rates: 162000, 216000, 270000, 324000, 432000, 540000
[    1.623230] [drm:intel_dp_print_rates] sink rates: 162000, 216000, 243000, 270000, 324000, 432000, 540000
[    1.623234] [drm:intel_dp_print_rates] common rates: 162000, 216000, 270000, 324000, 432000, 540000

Prior to this patch, the driver would pick and train at 540000:
[    2.865653] [drm:intel_dp_start_link_train] [CONNECTOR:76:eDP-1] Link Training Passed at Link Rate = 540000, Lane count = 4

After this patch, the driver picks and trains at 324000, which is enough
for the panel's native mode:
[    5.359499] [drm:intel_dp_start_link_train] [CONNECTOR:76:eDP-1] Link Training Passed at Link Rate = 324000, Lane count = 4

Thanks!
Benson

-- 
Benson Leung
Staff Software Engineer
Chrome OS Kernel
Google Inc.
bleung@google.com
Chromium OS Project
bleung@chromium.org

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH] drm/i915: make edp optimize config
@ 2018-03-09  1:17 matthew.s.atwood
  2018-03-09  4:48 ` Benson Leung
  2018-03-09 12:05 ` Jani Nikula
  0 siblings, 2 replies; 10+ messages in thread
From: matthew.s.atwood @ 2018-03-09  1:17 UTC (permalink / raw)
  To: intel-gfx

From: Matt Atwood <matthew.s.atwood@intel.com>

Previously it was assumed that eDP panels would advertise the lowest link
rate required for their singular mode to function. With the introduction
of more advanced features there are advantages to a panel advertising a
higher rate then it needs for a its given mode. For panels that did, the
driver previously used a higher rate then necessary for that mode.

Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com>
---
 drivers/gpu/drm/i915/intel_dp.c | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index a2eeede..aa6d77d 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1758,16 +1758,6 @@ intel_dp_compute_config(struct intel_encoder *encoder,
 				      dev_priv->vbt.edp.bpp);
 			bpp = dev_priv->vbt.edp.bpp;
 		}
-
-		/*
-		 * Use the maximum clock and number of lanes the eDP panel
-		 * advertizes being capable of. The panels are generally
-		 * designed to support only a single clock and lane
-		 * configuration, and typically these values correspond to the
-		 * native resolution of the panel.
-		 */
-		min_lane_count = max_lane_count;
-		min_clock = max_clock;
 	}
 
 	for (; bpp >= 6*3; bpp -= 2*3) {
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2018-03-19 19:13 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-16 16:54 [PATCH] drm/i915: make edp optimize config matthew.s.atwood
2018-03-16 17:40 ` ✗ Fi.CI.BAT: failure for drm/i915: make edp optimize config (rev2) Patchwork
2018-03-18 23:41 ` [PATCH] drm/i915: make edp optimize config kbuild test robot
2018-03-19  0:06 ` kbuild test robot
2018-03-19 19:12 ` Jani Nikula
  -- strict thread matches above, loose matches on Subject: below --
2018-03-09  1:17 matthew.s.atwood
2018-03-09  4:48 ` Benson Leung
2018-03-09 12:05 ` Jani Nikula
2018-03-10  0:07   ` Atwood, Matthew S
2018-03-12 19:25     ` Rodrigo Vivi

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.