Hi Shashank, [auto build test ERROR on drm/drm-next] [also build test ERROR on v4.9 next-20161220] [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/Shashank-Sharma/drm-Create-new-structure-for-HDMI-info/20161221-065128 base: git://people.freedesktop.org/~airlied/linux.git drm-next config: x86_64-randconfig-i0-201651 (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=x86_64 All errors (new ones prefixed by >>): In file included from include/uapi/linux/stddef.h:1:0, from include/linux/stddef.h:4, from include/uapi/linux/posix_types.h:4, from include/uapi/linux/types.h:13, from include/linux/types.h:5, from include/linux/list.h:4, from include/linux/agp_backend.h:33, from include/drm/drmP.h:35, from drivers/gpu/drm/radeon/radeon_connectors.c:26: drivers/gpu/drm/radeon/radeon_connectors.c: In function 'radeon_get_monitor_bpc': >> drivers/gpu/drm/radeon/radeon_connectors.c:213:33: error: 'struct drm_display_info' has no member named 'edid_hdmi_dc_modes' if ((connector->display_info.edid_hdmi_dc_modes & DRM_EDID_HDMI_DC_30) && ^ include/linux/compiler.h:149:30: note: in definition of macro '__trace_if' if (__builtin_constant_p(!!(cond)) ? !!(cond) : \ ^ drivers/gpu/drm/radeon/radeon_connectors.c:213:5: note: in expansion of macro 'if' if ((connector->display_info.edid_hdmi_dc_modes & DRM_EDID_HDMI_DC_30) && ^ >> drivers/gpu/drm/radeon/radeon_connectors.c:213:33: error: 'struct drm_display_info' has no member named 'edid_hdmi_dc_modes' if ((connector->display_info.edid_hdmi_dc_modes & DRM_EDID_HDMI_DC_30) && ^ include/linux/compiler.h:149:42: note: in definition of macro '__trace_if' if (__builtin_constant_p(!!(cond)) ? !!(cond) : \ ^ drivers/gpu/drm/radeon/radeon_connectors.c:213:5: note: in expansion of macro 'if' if ((connector->display_info.edid_hdmi_dc_modes & DRM_EDID_HDMI_DC_30) && ^ >> drivers/gpu/drm/radeon/radeon_connectors.c:213:33: error: 'struct drm_display_info' has no member named 'edid_hdmi_dc_modes' if ((connector->display_info.edid_hdmi_dc_modes & DRM_EDID_HDMI_DC_30) && ^ include/linux/compiler.h:160:16: note: in definition of macro '__trace_if' ______r = !!(cond); \ ^ drivers/gpu/drm/radeon/radeon_connectors.c:213:5: note: in expansion of macro 'if' if ((connector->display_info.edid_hdmi_dc_modes & DRM_EDID_HDMI_DC_30) && ^ vim +213 drivers/gpu/drm/radeon/radeon_connectors.c 771fe6b9 Jerome Glisse 2009-06-05 20 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 771fe6b9 Jerome Glisse 2009-06-05 21 * OTHER DEALINGS IN THE SOFTWARE. 771fe6b9 Jerome Glisse 2009-06-05 22 * 771fe6b9 Jerome Glisse 2009-06-05 23 * Authors: Dave Airlie 771fe6b9 Jerome Glisse 2009-06-05 24 * Alex Deucher 771fe6b9 Jerome Glisse 2009-06-05 25 */ 760285e7 David Howells 2012-10-02 @26 #include <drm/drmP.h> 760285e7 David Howells 2012-10-02 27 #include <drm/drm_edid.h> 760285e7 David Howells 2012-10-02 28 #include <drm/drm_crtc_helper.h> 760285e7 David Howells 2012-10-02 29 #include <drm/drm_fb_helper.h> 9843ead0 Dave Airlie 2015-02-24 30 #include <drm/drm_dp_mst_helper.h> 760285e7 David Howells 2012-10-02 31 #include <drm/radeon_drm.h> 771fe6b9 Jerome Glisse 2009-06-05 32 #include "radeon.h" 1a626b68 Slava Grigorev 2014-12-01 33 #include "radeon_audio.h" 923f6848 Alex Deucher 2009-09-10 34 #include "atom.h" 771fe6b9 Jerome Glisse 2009-06-05 35 10ebc0bc Dave Airlie 2012-09-17 36 #include <linux/pm_runtime.h> 47eb8f73 Lukas Wunner 2016-01-11 37 #include <linux/vga_switcheroo.h> 10ebc0bc Dave Airlie 2012-09-17 38 9843ead0 Dave Airlie 2015-02-24 39 static int radeon_dp_handle_hpd(struct drm_connector *connector) 9843ead0 Dave Airlie 2015-02-24 40 { 9843ead0 Dave Airlie 2015-02-24 41 struct radeon_connector *radeon_connector = to_radeon_connector(connector); 9843ead0 Dave Airlie 2015-02-24 42 int ret; 9843ead0 Dave Airlie 2015-02-24 43 9843ead0 Dave Airlie 2015-02-24 44 ret = radeon_dp_mst_check_status(radeon_connector); 9843ead0 Dave Airlie 2015-02-24 45 if (ret == -EINVAL) 9843ead0 Dave Airlie 2015-02-24 46 return 1; 9843ead0 Dave Airlie 2015-02-24 47 return 0; 9843ead0 Dave Airlie 2015-02-24 48 } d4877cf2 Alex Deucher 2009-12-04 49 void radeon_connector_hotplug(struct drm_connector *connector) d4877cf2 Alex Deucher 2009-12-04 50 { d4877cf2 Alex Deucher 2009-12-04 51 struct drm_device *dev = connector->dev; d4877cf2 Alex Deucher 2009-12-04 52 struct radeon_device *rdev = dev->dev_private; d4877cf2 Alex Deucher 2009-12-04 53 struct radeon_connector *radeon_connector = to_radeon_connector(connector); d4877cf2 Alex Deucher 2009-12-04 54 9843ead0 Dave Airlie 2015-02-24 55 if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) { 9843ead0 Dave Airlie 2015-02-24 56 struct radeon_connector_atom_dig *dig_connector = 9843ead0 Dave Airlie 2015-02-24 57 radeon_connector->con_priv; 9843ead0 Dave Airlie 2015-02-24 58 9843ead0 Dave Airlie 2015-02-24 59 if (radeon_connector->is_mst_connector) 9843ead0 Dave Airlie 2015-02-24 60 return; 9843ead0 Dave Airlie 2015-02-24 61 if (dig_connector->is_mst) { 9843ead0 Dave Airlie 2015-02-24 62 radeon_dp_handle_hpd(connector); 9843ead0 Dave Airlie 2015-02-24 63 return; 9843ead0 Dave Airlie 2015-02-24 64 } 9843ead0 Dave Airlie 2015-02-24 65 } cbac9543 Alex Deucher 2011-07-11 66 /* bail if the connector does not have hpd pin, e.g., cbac9543 Alex Deucher 2011-07-11 67 * VGA, TV, etc. cbac9543 Alex Deucher 2011-07-11 68 */ cbac9543 Alex Deucher 2011-07-11 69 if (radeon_connector->hpd.hpd == RADEON_HPD_NONE) cbac9543 Alex Deucher 2011-07-11 70 return; cbac9543 Alex Deucher 2011-07-11 71 d4877cf2 Alex Deucher 2009-12-04 72 radeon_hpd_set_polarity(rdev, radeon_connector->hpd.hpd); d4877cf2 Alex Deucher 2009-12-04 73 73104b5c Alex Deucher 2011-08-09 74 /* if the connector is already off, don't turn it back on */ 6e9f798d Daniel Vetter 2014-05-29 75 /* FIXME: This access isn't protected by any locks. */ 73104b5c Alex Deucher 2011-08-09 76 if (connector->dpms != DRM_MODE_DPMS_ON) 73104b5c Alex Deucher 2011-08-09 77 return; 73104b5c Alex Deucher 2011-08-09 78 d5811e87 Alex Deucher 2011-08-13 79 /* just deal with DP (not eDP) here. */ d5811e87 Alex Deucher 2011-08-13 80 if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) { 266dcba5 Jerome Glisse 2012-07-19 81 struct radeon_connector_atom_dig *dig_connector = 266dcba5 Jerome Glisse 2012-07-19 82 radeon_connector->con_priv; 266dcba5 Jerome Glisse 2012-07-19 83 266dcba5 Jerome Glisse 2012-07-19 84 /* if existing sink type was not DP no need to retrain */ 266dcba5 Jerome Glisse 2012-07-19 85 if (dig_connector->dp_sink_type != CONNECTOR_OBJECT_ID_DISPLAYPORT) 266dcba5 Jerome Glisse 2012-07-19 86 return; 7c3ed0fd Alex Deucher 2011-05-20 87 266dcba5 Jerome Glisse 2012-07-19 88 /* first get sink type as it may be reset after (un)plug */ 266dcba5 Jerome Glisse 2012-07-19 89 dig_connector->dp_sink_type = radeon_dp_getsinktype(radeon_connector); 266dcba5 Jerome Glisse 2012-07-19 90 /* don't do anything if sink is not display port, i.e., 266dcba5 Jerome Glisse 2012-07-19 91 * passive dp->(dvi|hdmi) adaptor 266dcba5 Jerome Glisse 2012-07-19 92 */ 266dcba5 Jerome Glisse 2012-07-19 93 if (dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) { 266dcba5 Jerome Glisse 2012-07-19 94 int saved_dpms = connector->dpms; 266dcba5 Jerome Glisse 2012-07-19 95 /* Only turn off the display if it's physically disconnected */ ca2ccde5 Jerome Glisse 2012-07-19 96 if (!radeon_hpd_sense(rdev, radeon_connector->hpd.hpd)) { 1e85e1d0 Alex Deucher 2011-05-20 97 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF); ca2ccde5 Jerome Glisse 2012-07-19 98 } else if (radeon_dp_needs_link_train(radeon_connector)) { 924f92bf Stephen Chandler Paul 2015-08-21 99 /* Don't try to start link training before we 924f92bf Stephen Chandler Paul 2015-08-21 100 * have the dpcd */ 924f92bf Stephen Chandler Paul 2015-08-21 101 if (!radeon_dp_getdpcd(radeon_connector)) 924f92bf Stephen Chandler Paul 2015-08-21 102 return; 924f92bf Stephen Chandler Paul 2015-08-21 103 ca2ccde5 Jerome Glisse 2012-07-19 104 /* set it to OFF so that drm_helper_connector_dpms() ca2ccde5 Jerome Glisse 2012-07-19 105 * won't return immediately since the current state ca2ccde5 Jerome Glisse 2012-07-19 106 * is ON at this point. ca2ccde5 Jerome Glisse 2012-07-19 107 */ ca2ccde5 Jerome Glisse 2012-07-19 108 connector->dpms = DRM_MODE_DPMS_OFF; 5ba7ddf8 Alex Deucher 2011-10-03 109 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON); ca2ccde5 Jerome Glisse 2012-07-19 110 } d5811e87 Alex Deucher 2011-08-13 111 connector->dpms = saved_dpms; d4877cf2 Alex Deucher 2009-12-04 112 } d4877cf2 Alex Deucher 2009-12-04 113 } 266dcba5 Jerome Glisse 2012-07-19 114 } d4877cf2 Alex Deucher 2009-12-04 115 445282db Dave Airlie 2009-09-09 116 static void radeon_property_change_mode(struct drm_encoder *encoder) 445282db Dave Airlie 2009-09-09 117 { 445282db Dave Airlie 2009-09-09 118 struct drm_crtc *crtc = encoder->crtc; 445282db Dave Airlie 2009-09-09 119 445282db Dave Airlie 2009-09-09 120 if (crtc && crtc->enabled) { 445282db Dave Airlie 2009-09-09 121 drm_crtc_helper_set_mode(crtc, &crtc->mode, f4510a27 Matt Roper 2014-04-01 122 crtc->x, crtc->y, crtc->primary->fb); 445282db Dave Airlie 2009-09-09 123 } 445282db Dave Airlie 2009-09-09 124 } eccea792 Alex Deucher 2012-03-26 125 eccea792 Alex Deucher 2012-03-26 126 int radeon_get_monitor_bpc(struct drm_connector *connector) eccea792 Alex Deucher 2012-03-26 127 { eccea792 Alex Deucher 2012-03-26 128 struct drm_device *dev = connector->dev; eccea792 Alex Deucher 2012-03-26 129 struct radeon_device *rdev = dev->dev_private; eccea792 Alex Deucher 2012-03-26 130 struct radeon_connector *radeon_connector = to_radeon_connector(connector); eccea792 Alex Deucher 2012-03-26 131 struct radeon_connector_atom_dig *dig_connector; eccea792 Alex Deucher 2012-03-26 132 int bpc = 8; ea292861 Mario Kleiner 2014-06-05 133 int mode_clock, max_tmds_clock; eccea792 Alex Deucher 2012-03-26 134 eccea792 Alex Deucher 2012-03-26 135 switch (connector->connector_type) { eccea792 Alex Deucher 2012-03-26 136 case DRM_MODE_CONNECTOR_DVII: eccea792 Alex Deucher 2012-03-26 137 case DRM_MODE_CONNECTOR_HDMIB: eccea792 Alex Deucher 2012-03-26 138 if (radeon_connector->use_digital) { 377bd8a9 Alex Deucher 2014-07-15 139 if (drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { eccea792 Alex Deucher 2012-03-26 140 if (connector->display_info.bpc) eccea792 Alex Deucher 2012-03-26 141 bpc = connector->display_info.bpc; eccea792 Alex Deucher 2012-03-26 142 } eccea792 Alex Deucher 2012-03-26 143 } eccea792 Alex Deucher 2012-03-26 144 break; eccea792 Alex Deucher 2012-03-26 145 case DRM_MODE_CONNECTOR_DVID: eccea792 Alex Deucher 2012-03-26 146 case DRM_MODE_CONNECTOR_HDMIA: 377bd8a9 Alex Deucher 2014-07-15 147 if (drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { eccea792 Alex Deucher 2012-03-26 148 if (connector->display_info.bpc) eccea792 Alex Deucher 2012-03-26 149 bpc = connector->display_info.bpc; eccea792 Alex Deucher 2012-03-26 150 } eccea792 Alex Deucher 2012-03-26 151 break; eccea792 Alex Deucher 2012-03-26 152 case DRM_MODE_CONNECTOR_DisplayPort: eccea792 Alex Deucher 2012-03-26 153 dig_connector = radeon_connector->con_priv; eccea792 Alex Deucher 2012-03-26 154 if ((dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) || eccea792 Alex Deucher 2012-03-26 155 (dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_eDP) || 377bd8a9 Alex Deucher 2014-07-15 156 drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { eccea792 Alex Deucher 2012-03-26 157 if (connector->display_info.bpc) eccea792 Alex Deucher 2012-03-26 158 bpc = connector->display_info.bpc; eccea792 Alex Deucher 2012-03-26 159 } eccea792 Alex Deucher 2012-03-26 160 break; eccea792 Alex Deucher 2012-03-26 161 case DRM_MODE_CONNECTOR_eDP: eccea792 Alex Deucher 2012-03-26 162 case DRM_MODE_CONNECTOR_LVDS: eccea792 Alex Deucher 2012-03-26 163 if (connector->display_info.bpc) eccea792 Alex Deucher 2012-03-26 164 bpc = connector->display_info.bpc; eccea792 Alex Deucher 2012-03-26 165 else if (ASIC_IS_DCE41(rdev) || ASIC_IS_DCE5(rdev)) { 319d1e14 Jani Nikula 2015-03-11 166 const struct drm_connector_helper_funcs *connector_funcs = eccea792 Alex Deucher 2012-03-26 167 connector->helper_private; eccea792 Alex Deucher 2012-03-26 168 struct drm_encoder *encoder = connector_funcs->best_encoder(connector); eccea792 Alex Deucher 2012-03-26 169 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); eccea792 Alex Deucher 2012-03-26 170 struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; eccea792 Alex Deucher 2012-03-26 171 eccea792 Alex Deucher 2012-03-26 172 if (dig->lcd_misc & ATOM_PANEL_MISC_V13_6BIT_PER_COLOR) eccea792 Alex Deucher 2012-03-26 173 bpc = 6; eccea792 Alex Deucher 2012-03-26 174 else if (dig->lcd_misc & ATOM_PANEL_MISC_V13_8BIT_PER_COLOR) eccea792 Alex Deucher 2012-03-26 175 bpc = 8; eccea792 Alex Deucher 2012-03-26 176 } eccea792 Alex Deucher 2012-03-26 177 break; eccea792 Alex Deucher 2012-03-26 178 } 89b92339 Mario Kleiner 2014-05-05 179 377bd8a9 Alex Deucher 2014-07-15 180 if (drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { 89b92339 Mario Kleiner 2014-05-05 181 /* hdmi deep color only implemented on DCE4+ */ 89b92339 Mario Kleiner 2014-05-05 182 if ((bpc > 8) && !ASIC_IS_DCE4(rdev)) { 89b92339 Mario Kleiner 2014-05-05 183 DRM_DEBUG("%s: HDMI deep color %d bpc unsupported. Using 8 bpc.\n", 72082093 Jani Nikula 2014-06-03 184 connector->name, bpc); 89b92339 Mario Kleiner 2014-05-05 185 bpc = 8; 89b92339 Mario Kleiner 2014-05-05 186 } 89b92339 Mario Kleiner 2014-05-05 187 89b92339 Mario Kleiner 2014-05-05 188 /* 89b92339 Mario Kleiner 2014-05-05 189 * Pre DCE-8 hw can't handle > 12 bpc, and more than 12 bpc doesn't make 89b92339 Mario Kleiner 2014-05-05 190 * much sense without support for > 12 bpc framebuffers. RGB 4:4:4 at 89b92339 Mario Kleiner 2014-05-05 191 * 12 bpc is always supported on hdmi deep color sinks, as this is 89b92339 Mario Kleiner 2014-05-05 192 * required by the HDMI-1.3 spec. Clamp to a safe 12 bpc maximum. 89b92339 Mario Kleiner 2014-05-05 193 */ 89b92339 Mario Kleiner 2014-05-05 194 if (bpc > 12) { 89b92339 Mario Kleiner 2014-05-05 195 DRM_DEBUG("%s: HDMI deep color %d bpc unsupported. Using 12 bpc.\n", 72082093 Jani Nikula 2014-06-03 196 connector->name, bpc); 89b92339 Mario Kleiner 2014-05-05 197 bpc = 12; 89b92339 Mario Kleiner 2014-05-05 198 } ea292861 Mario Kleiner 2014-06-05 199 ea292861 Mario Kleiner 2014-06-05 200 /* Any defined maximum tmds clock limit we must not exceed? */ 2a272ca9 Ville Syrjälä 2016-09-28 201 if (connector->display_info.max_tmds_clock > 0) { ea292861 Mario Kleiner 2014-06-05 202 /* mode_clock is clock in kHz for mode to be modeset on this connector */ ea292861 Mario Kleiner 2014-06-05 203 mode_clock = radeon_connector->pixelclock_for_modeset; ea292861 Mario Kleiner 2014-06-05 204 ea292861 Mario Kleiner 2014-06-05 205 /* Maximum allowable input clock in kHz */ 2a272ca9 Ville Syrjälä 2016-09-28 206 max_tmds_clock = connector->display_info.max_tmds_clock; ea292861 Mario Kleiner 2014-06-05 207 ea292861 Mario Kleiner 2014-06-05 208 DRM_DEBUG("%s: hdmi mode dotclock %d kHz, max tmds input clock %d kHz.\n", ea292861 Mario Kleiner 2014-06-05 209 connector->name, mode_clock, max_tmds_clock); ea292861 Mario Kleiner 2014-06-05 210 ea292861 Mario Kleiner 2014-06-05 211 /* Check if bpc is within clock limit. Try to degrade gracefully otherwise */ ea292861 Mario Kleiner 2014-06-05 212 if ((bpc == 12) && (mode_clock * 3/2 > max_tmds_clock)) { ea292861 Mario Kleiner 2014-06-05 @213 if ((connector->display_info.edid_hdmi_dc_modes & DRM_EDID_HDMI_DC_30) && ea292861 Mario Kleiner 2014-06-05 214 (mode_clock * 5/4 <= max_tmds_clock)) ea292861 Mario Kleiner 2014-06-05 215 bpc = 10; ea292861 Mario Kleiner 2014-06-05 216 else :::::: The code at line 213 was first introduced by commit :::::: ea29286146db6c72683af76bc8297cebeeec6d13 drm/radeon: hdmi deep color modes must obey clock limit of sink. :::::: TO: Mario Kleiner <mario.kleiner.de@xxxxxxxxx> :::::: CC: Alex Deucher <alexander.deucher@xxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip
_______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx