Message ID | 20200612230444.10121-4-manasi.d.navare@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | VRR capable attach prop in i915, DPCD helper, VRR debugfs | expand |
Hi Manasi, Thank you for the patch! Yet something to improve: [auto build test ERROR on drm-intel/for-linux-next] [also build test ERROR on drm-tip/drm-tip drm-exynos/exynos-drm-next linus/master next-20200612] [cannot apply to tegra-drm/drm/tegra/for-next drm/drm-next v5.7] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Manasi-Navare/VRR-capable-attach-prop-in-i915-DPCD-helper-VRR-debugfs/20200613-070517 base: git://anongit.freedesktop.org/drm-intel for-linux-next config: x86_64-rhel (attached as .config) compiler: gcc-9 (Debian 9.3.0-13) 9.3.0 reproduce (this is a W=1 build): # save the attached .config to linux build tree make W=1 ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All error/warnings (new ones prefixed by >>, old ones prefixed by <<): drivers/gpu/drm/i915/display/intel_display_debugfs.c: In function 'intel_connector_debugfs_add': >> drivers/gpu/drm/i915/display/intel_display_debugfs.c:2235:2: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 2235 | if (INTEL_GEN(dev_priv) >= 10 && | ^~ drivers/gpu/drm/i915/display/intel_display_debugfs.c:2241:3: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 2241 | if (INTEL_GEN(dev_priv) >= 12) | ^~ drivers/gpu/drm/i915/display/intel_display_debugfs.c: At top level: >> drivers/gpu/drm/i915/display/intel_display_debugfs.c:2247:2: error: expected identifier or '(' before 'if' 2247 | if ((INTEL_GEN(dev_priv) >= 9 || IS_HASWELL(dev_priv) || | ^~ >> drivers/gpu/drm/i915/display/intel_display_debugfs.c:2257:2: error: expected identifier or '(' before 'return' 2257 | return 0; | ^~~~~~ >> drivers/gpu/drm/i915/display/intel_display_debugfs.c:2258:1: error: expected identifier or '(' before '}' token 2258 | } | ^ drivers/gpu/drm/i915/display/intel_display_debugfs.c: In function 'intel_connector_debugfs_add': >> drivers/gpu/drm/i915/display/intel_display_debugfs.c:2244:2: warning: control reaches end of non-void function [-Wreturn-type] 2244 | } | ^ In file included from include/drm/drm_debugfs.h:36, from drivers/gpu/drm/i915/display/intel_display_debugfs.c:6: At top level: drivers/gpu/drm/i915/display/intel_display_debugfs.c:2081:23: warning: 'i915_lpsp_capability_fops' defined but not used [-Wunused-const-variable=] 2081 | DEFINE_SHOW_ATTRIBUTE(i915_lpsp_capability); | ^~~~~~~~~~~~~~~~~~~~ include/linux/seq_file.h:154:37: note: in definition of macro 'DEFINE_SHOW_ATTRIBUTE' 154 | static const struct file_operations __name ## _fops = { | ^~~~~~ vim +2247 drivers/gpu/drm/i915/display/intel_display_debugfs.c 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2202 926b005cd8c4e3 Jani Nikula 2020-02-11 2203 /** 926b005cd8c4e3 Jani Nikula 2020-02-11 2204 * intel_connector_debugfs_add - add i915 specific connector debugfs files 926b005cd8c4e3 Jani Nikula 2020-02-11 2205 * @connector: pointer to a registered drm_connector 926b005cd8c4e3 Jani Nikula 2020-02-11 2206 * 926b005cd8c4e3 Jani Nikula 2020-02-11 2207 * Cleanup will be done by drm_connector_unregister() through a call to 926b005cd8c4e3 Jani Nikula 2020-02-11 2208 * drm_debugfs_connector_remove(). 926b005cd8c4e3 Jani Nikula 2020-02-11 2209 * 926b005cd8c4e3 Jani Nikula 2020-02-11 2210 * Returns 0 on success, negative error codes on error. 926b005cd8c4e3 Jani Nikula 2020-02-11 2211 */ 926b005cd8c4e3 Jani Nikula 2020-02-11 2212 int intel_connector_debugfs_add(struct drm_connector *connector) 926b005cd8c4e3 Jani Nikula 2020-02-11 2213 { 926b005cd8c4e3 Jani Nikula 2020-02-11 2214 struct dentry *root = connector->debugfs_entry; 926b005cd8c4e3 Jani Nikula 2020-02-11 2215 struct drm_i915_private *dev_priv = to_i915(connector->dev); 926b005cd8c4e3 Jani Nikula 2020-02-11 2216 926b005cd8c4e3 Jani Nikula 2020-02-11 2217 /* The connector must have been registered beforehands. */ 926b005cd8c4e3 Jani Nikula 2020-02-11 2218 if (!root) 926b005cd8c4e3 Jani Nikula 2020-02-11 2219 return -ENODEV; 926b005cd8c4e3 Jani Nikula 2020-02-11 2220 926b005cd8c4e3 Jani Nikula 2020-02-11 2221 if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) { 926b005cd8c4e3 Jani Nikula 2020-02-11 2222 debugfs_create_file("i915_panel_timings", S_IRUGO, root, 926b005cd8c4e3 Jani Nikula 2020-02-11 2223 connector, &i915_panel_fops); 926b005cd8c4e3 Jani Nikula 2020-02-11 2224 debugfs_create_file("i915_psr_sink_status", S_IRUGO, root, 926b005cd8c4e3 Jani Nikula 2020-02-11 2225 connector, &i915_psr_sink_status_fops); 926b005cd8c4e3 Jani Nikula 2020-02-11 2226 } 926b005cd8c4e3 Jani Nikula 2020-02-11 2227 926b005cd8c4e3 Jani Nikula 2020-02-11 2228 if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort || 926b005cd8c4e3 Jani Nikula 2020-02-11 2229 connector->connector_type == DRM_MODE_CONNECTOR_HDMIA || 926b005cd8c4e3 Jani Nikula 2020-02-11 2230 connector->connector_type == DRM_MODE_CONNECTOR_HDMIB) { 926b005cd8c4e3 Jani Nikula 2020-02-11 2231 debugfs_create_file("i915_hdcp_sink_capability", S_IRUGO, root, 926b005cd8c4e3 Jani Nikula 2020-02-11 2232 connector, &i915_hdcp_sink_capability_fops); 926b005cd8c4e3 Jani Nikula 2020-02-11 2233 } 926b005cd8c4e3 Jani Nikula 2020-02-11 2234 926b005cd8c4e3 Jani Nikula 2020-02-11 @2235 if (INTEL_GEN(dev_priv) >= 10 && 926b005cd8c4e3 Jani Nikula 2020-02-11 2236 (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort || 926b005cd8c4e3 Jani Nikula 2020-02-11 2237 connector->connector_type == DRM_MODE_CONNECTOR_eDP)) 926b005cd8c4e3 Jani Nikula 2020-02-11 2238 debugfs_create_file("i915_dsc_fec_support", S_IRUGO, root, 926b005cd8c4e3 Jani Nikula 2020-02-11 2239 connector, &i915_dsc_fec_support_fops); 926b005cd8c4e3 Jani Nikula 2020-02-11 2240 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 @2241 if (INTEL_GEN(dev_priv) >= 12) 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2242 debugfs_create_file("vrr_range", S_IRUGO, 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2243 root, connector, &vrr_range_fops); 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 @2244 } 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2245 8806211fe7b306 Anshuman Gupta 2020-04-15 2246 /* Legacy panels doesn't lpsp on any platform */ 8806211fe7b306 Anshuman Gupta 2020-04-15 @2247 if ((INTEL_GEN(dev_priv) >= 9 || IS_HASWELL(dev_priv) || 8806211fe7b306 Anshuman Gupta 2020-04-15 2248 IS_BROADWELL(dev_priv)) && 8806211fe7b306 Anshuman Gupta 2020-04-15 2249 (connector->connector_type == DRM_MODE_CONNECTOR_DSI || 8806211fe7b306 Anshuman Gupta 2020-04-15 2250 connector->connector_type == DRM_MODE_CONNECTOR_eDP || 8806211fe7b306 Anshuman Gupta 2020-04-15 2251 connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort || 8806211fe7b306 Anshuman Gupta 2020-04-15 2252 connector->connector_type == DRM_MODE_CONNECTOR_HDMIA || 8806211fe7b306 Anshuman Gupta 2020-04-15 2253 connector->connector_type == DRM_MODE_CONNECTOR_HDMIB)) 8806211fe7b306 Anshuman Gupta 2020-04-15 2254 debugfs_create_file("i915_lpsp_capability", 0444, root, 8806211fe7b306 Anshuman Gupta 2020-04-15 2255 connector, &i915_lpsp_capability_fops); 8806211fe7b306 Anshuman Gupta 2020-04-15 2256 926b005cd8c4e3 Jani Nikula 2020-02-11 @2257 return 0; 926b005cd8c4e3 Jani Nikula 2020-02-11 @2258 } :::::: The code at line 2247 was first introduced by commit :::::: 8806211fe7b30696c1fcae54b73c94abfdf55893 drm/i915: Add i915_lpsp_capability debugfs :::::: TO: Anshuman Gupta <anshuman.gupta@intel.com> :::::: CC: Uma Shankar <uma.shankar@intel.com> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Hi Manasi, Thank you for the patch! Yet something to improve: [auto build test ERROR on drm-intel/for-linux-next] [also build test ERROR on drm-tip/drm-tip drm-exynos/exynos-drm-next linus/master next-20200612] [cannot apply to tegra-drm/drm/tegra/for-next drm/drm-next v5.7] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Manasi-Navare/VRR-capable-attach-prop-in-i915-DPCD-helper-VRR-debugfs/20200613-070517 base: git://anongit.freedesktop.org/drm-intel for-linux-next config: x86_64-randconfig-a014-20200613 (attached as .config) compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0 reproduce (this is a W=1 build): # save the attached .config to linux build tree make W=1 ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>, old ones prefixed by <<): drivers/gpu/drm/i915/display/intel_display_debugfs.c: In function 'intel_connector_debugfs_add': >> drivers/gpu/drm/i915/display/intel_display_debugfs.c:2235:2: error: this 'if' clause does not guard... [-Werror=misleading-indentation] if (INTEL_GEN(dev_priv) >= 10 && ^~ drivers/gpu/drm/i915/display/intel_display_debugfs.c:2241:3: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' if (INTEL_GEN(dev_priv) >= 12) ^~ drivers/gpu/drm/i915/display/intel_display_debugfs.c: At top level: drivers/gpu/drm/i915/display/intel_display_debugfs.c:2247:2: error: expected identifier or '(' before 'if' if ((INTEL_GEN(dev_priv) >= 9 || IS_HASWELL(dev_priv) || ^~ drivers/gpu/drm/i915/display/intel_display_debugfs.c:2257:2: error: expected identifier or '(' before 'return' return 0; ^~~~~~ drivers/gpu/drm/i915/display/intel_display_debugfs.c:2258:1: error: expected identifier or '(' before '}' token } ^ drivers/gpu/drm/i915/display/intel_display_debugfs.c: In function 'intel_connector_debugfs_add': drivers/gpu/drm/i915/display/intel_display_debugfs.c:2244:2: error: control reaches end of non-void function [-Werror=return-type] } ^ In file included from include/drm/drm_debugfs.h:36:0, from drivers/gpu/drm/i915/display/intel_display_debugfs.c:6: At top level: >> drivers/gpu/drm/i915/display/intel_display_debugfs.c:2081:23: error: 'i915_lpsp_capability_fops' defined but not used [-Werror=unused-const-variable=] DEFINE_SHOW_ATTRIBUTE(i915_lpsp_capability); ^ include/linux/seq_file.h:154:37: note: in definition of macro 'DEFINE_SHOW_ATTRIBUTE' static const struct file_operations __name ## _fops = { ^~~~~~ cc1: all warnings being treated as errors vim +/if +2235 drivers/gpu/drm/i915/display/intel_display_debugfs.c 926b005cd8c4e3 Jani Nikula 2020-02-11 2040 8806211fe7b306 Anshuman Gupta 2020-04-15 2041 #define LPSP_CAPABLE(COND) (COND ? seq_puts(m, "LPSP: capable\n") : \ 8806211fe7b306 Anshuman Gupta 2020-04-15 2042 seq_puts(m, "LPSP: incapable\n")) 8806211fe7b306 Anshuman Gupta 2020-04-15 2043 8806211fe7b306 Anshuman Gupta 2020-04-15 2044 static int i915_lpsp_capability_show(struct seq_file *m, void *data) 8806211fe7b306 Anshuman Gupta 2020-04-15 2045 { 8806211fe7b306 Anshuman Gupta 2020-04-15 2046 struct drm_connector *connector = m->private; 8806211fe7b306 Anshuman Gupta 2020-04-15 2047 struct intel_encoder *encoder = 8806211fe7b306 Anshuman Gupta 2020-04-15 2048 intel_attached_encoder(to_intel_connector(connector)); 8806211fe7b306 Anshuman Gupta 2020-04-15 2049 struct drm_i915_private *i915 = to_i915(connector->dev); 8806211fe7b306 Anshuman Gupta 2020-04-15 2050 8806211fe7b306 Anshuman Gupta 2020-04-15 2051 if (connector->status != connector_status_connected) 8806211fe7b306 Anshuman Gupta 2020-04-15 2052 return -ENODEV; 8806211fe7b306 Anshuman Gupta 2020-04-15 2053 8806211fe7b306 Anshuman Gupta 2020-04-15 2054 switch (INTEL_GEN(i915)) { 8806211fe7b306 Anshuman Gupta 2020-04-15 2055 case 12: 8806211fe7b306 Anshuman Gupta 2020-04-15 2056 /* 8806211fe7b306 Anshuman Gupta 2020-04-15 2057 * Actually TGL can drive LPSP on port till DDI_C 8806211fe7b306 Anshuman Gupta 2020-04-15 2058 * but there is no physical connected DDI_C on TGL sku's, 8806211fe7b306 Anshuman Gupta 2020-04-15 2059 * even driver is not initilizing DDI_C port for gen12. 8806211fe7b306 Anshuman Gupta 2020-04-15 2060 */ 8806211fe7b306 Anshuman Gupta 2020-04-15 2061 LPSP_CAPABLE(encoder->port <= PORT_B); 8806211fe7b306 Anshuman Gupta 2020-04-15 2062 break; 8806211fe7b306 Anshuman Gupta 2020-04-15 2063 case 11: 8806211fe7b306 Anshuman Gupta 2020-04-15 2064 LPSP_CAPABLE(connector->connector_type == DRM_MODE_CONNECTOR_DSI || 8806211fe7b306 Anshuman Gupta 2020-04-15 2065 connector->connector_type == DRM_MODE_CONNECTOR_eDP); 8806211fe7b306 Anshuman Gupta 2020-04-15 2066 break; 8806211fe7b306 Anshuman Gupta 2020-04-15 2067 case 10: 8806211fe7b306 Anshuman Gupta 2020-04-15 2068 case 9: 8806211fe7b306 Anshuman Gupta 2020-04-15 2069 LPSP_CAPABLE(encoder->port == PORT_A && 8806211fe7b306 Anshuman Gupta 2020-04-15 2070 (connector->connector_type == DRM_MODE_CONNECTOR_DSI || 8806211fe7b306 Anshuman Gupta 2020-04-15 2071 connector->connector_type == DRM_MODE_CONNECTOR_eDP || 8806211fe7b306 Anshuman Gupta 2020-04-15 2072 connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort)); 8806211fe7b306 Anshuman Gupta 2020-04-15 2073 break; 8806211fe7b306 Anshuman Gupta 2020-04-15 2074 default: 8806211fe7b306 Anshuman Gupta 2020-04-15 2075 if (IS_HASWELL(i915) || IS_BROADWELL(i915)) 8806211fe7b306 Anshuman Gupta 2020-04-15 2076 LPSP_CAPABLE(connector->connector_type == DRM_MODE_CONNECTOR_eDP); 8806211fe7b306 Anshuman Gupta 2020-04-15 2077 } 8806211fe7b306 Anshuman Gupta 2020-04-15 2078 8806211fe7b306 Anshuman Gupta 2020-04-15 2079 return 0; 8806211fe7b306 Anshuman Gupta 2020-04-15 2080 } 8806211fe7b306 Anshuman Gupta 2020-04-15 @2081 DEFINE_SHOW_ATTRIBUTE(i915_lpsp_capability); 8806211fe7b306 Anshuman Gupta 2020-04-15 2082 926b005cd8c4e3 Jani Nikula 2020-02-11 2083 static int i915_dsc_fec_support_show(struct seq_file *m, void *data) 926b005cd8c4e3 Jani Nikula 2020-02-11 2084 { 926b005cd8c4e3 Jani Nikula 2020-02-11 2085 struct drm_connector *connector = m->private; 926b005cd8c4e3 Jani Nikula 2020-02-11 2086 struct drm_device *dev = connector->dev; 926b005cd8c4e3 Jani Nikula 2020-02-11 2087 struct drm_crtc *crtc; 926b005cd8c4e3 Jani Nikula 2020-02-11 2088 struct intel_dp *intel_dp; 926b005cd8c4e3 Jani Nikula 2020-02-11 2089 struct drm_modeset_acquire_ctx ctx; 926b005cd8c4e3 Jani Nikula 2020-02-11 2090 struct intel_crtc_state *crtc_state = NULL; 926b005cd8c4e3 Jani Nikula 2020-02-11 2091 int ret = 0; 926b005cd8c4e3 Jani Nikula 2020-02-11 2092 bool try_again = false; 926b005cd8c4e3 Jani Nikula 2020-02-11 2093 926b005cd8c4e3 Jani Nikula 2020-02-11 2094 drm_modeset_acquire_init(&ctx, DRM_MODESET_ACQUIRE_INTERRUPTIBLE); 926b005cd8c4e3 Jani Nikula 2020-02-11 2095 926b005cd8c4e3 Jani Nikula 2020-02-11 2096 do { 926b005cd8c4e3 Jani Nikula 2020-02-11 2097 try_again = false; 926b005cd8c4e3 Jani Nikula 2020-02-11 2098 ret = drm_modeset_lock(&dev->mode_config.connection_mutex, 926b005cd8c4e3 Jani Nikula 2020-02-11 2099 &ctx); 926b005cd8c4e3 Jani Nikula 2020-02-11 2100 if (ret) { 926b005cd8c4e3 Jani Nikula 2020-02-11 2101 if (ret == -EDEADLK && !drm_modeset_backoff(&ctx)) { 926b005cd8c4e3 Jani Nikula 2020-02-11 2102 try_again = true; 926b005cd8c4e3 Jani Nikula 2020-02-11 2103 continue; 926b005cd8c4e3 Jani Nikula 2020-02-11 2104 } 926b005cd8c4e3 Jani Nikula 2020-02-11 2105 break; 926b005cd8c4e3 Jani Nikula 2020-02-11 2106 } 926b005cd8c4e3 Jani Nikula 2020-02-11 2107 crtc = connector->state->crtc; 926b005cd8c4e3 Jani Nikula 2020-02-11 2108 if (connector->status != connector_status_connected || !crtc) { 926b005cd8c4e3 Jani Nikula 2020-02-11 2109 ret = -ENODEV; 926b005cd8c4e3 Jani Nikula 2020-02-11 2110 break; 926b005cd8c4e3 Jani Nikula 2020-02-11 2111 } 926b005cd8c4e3 Jani Nikula 2020-02-11 2112 ret = drm_modeset_lock(&crtc->mutex, &ctx); 926b005cd8c4e3 Jani Nikula 2020-02-11 2113 if (ret == -EDEADLK) { 926b005cd8c4e3 Jani Nikula 2020-02-11 2114 ret = drm_modeset_backoff(&ctx); 926b005cd8c4e3 Jani Nikula 2020-02-11 2115 if (!ret) { 926b005cd8c4e3 Jani Nikula 2020-02-11 2116 try_again = true; 926b005cd8c4e3 Jani Nikula 2020-02-11 2117 continue; 926b005cd8c4e3 Jani Nikula 2020-02-11 2118 } 926b005cd8c4e3 Jani Nikula 2020-02-11 2119 break; 926b005cd8c4e3 Jani Nikula 2020-02-11 2120 } else if (ret) { 926b005cd8c4e3 Jani Nikula 2020-02-11 2121 break; 926b005cd8c4e3 Jani Nikula 2020-02-11 2122 } 926b005cd8c4e3 Jani Nikula 2020-02-11 2123 intel_dp = intel_attached_dp(to_intel_connector(connector)); 926b005cd8c4e3 Jani Nikula 2020-02-11 2124 crtc_state = to_intel_crtc_state(crtc->state); 926b005cd8c4e3 Jani Nikula 2020-02-11 2125 seq_printf(m, "DSC_Enabled: %s\n", 926b005cd8c4e3 Jani Nikula 2020-02-11 2126 yesno(crtc_state->dsc.compression_enable)); 926b005cd8c4e3 Jani Nikula 2020-02-11 2127 seq_printf(m, "DSC_Sink_Support: %s\n", 926b005cd8c4e3 Jani Nikula 2020-02-11 2128 yesno(drm_dp_sink_supports_dsc(intel_dp->dsc_dpcd))); 926b005cd8c4e3 Jani Nikula 2020-02-11 2129 seq_printf(m, "Force_DSC_Enable: %s\n", 926b005cd8c4e3 Jani Nikula 2020-02-11 2130 yesno(intel_dp->force_dsc_en)); 926b005cd8c4e3 Jani Nikula 2020-02-11 2131 if (!intel_dp_is_edp(intel_dp)) 926b005cd8c4e3 Jani Nikula 2020-02-11 2132 seq_printf(m, "FEC_Sink_Support: %s\n", 926b005cd8c4e3 Jani Nikula 2020-02-11 2133 yesno(drm_dp_sink_supports_fec(intel_dp->fec_capable))); 926b005cd8c4e3 Jani Nikula 2020-02-11 2134 } while (try_again); 926b005cd8c4e3 Jani Nikula 2020-02-11 2135 926b005cd8c4e3 Jani Nikula 2020-02-11 2136 drm_modeset_drop_locks(&ctx); 926b005cd8c4e3 Jani Nikula 2020-02-11 2137 drm_modeset_acquire_fini(&ctx); 926b005cd8c4e3 Jani Nikula 2020-02-11 2138 926b005cd8c4e3 Jani Nikula 2020-02-11 2139 return ret; 926b005cd8c4e3 Jani Nikula 2020-02-11 2140 } 926b005cd8c4e3 Jani Nikula 2020-02-11 2141 926b005cd8c4e3 Jani Nikula 2020-02-11 2142 static ssize_t i915_dsc_fec_support_write(struct file *file, 926b005cd8c4e3 Jani Nikula 2020-02-11 2143 const char __user *ubuf, 926b005cd8c4e3 Jani Nikula 2020-02-11 2144 size_t len, loff_t *offp) 926b005cd8c4e3 Jani Nikula 2020-02-11 2145 { 926b005cd8c4e3 Jani Nikula 2020-02-11 2146 bool dsc_enable = false; 926b005cd8c4e3 Jani Nikula 2020-02-11 2147 int ret; 926b005cd8c4e3 Jani Nikula 2020-02-11 2148 struct drm_connector *connector = 926b005cd8c4e3 Jani Nikula 2020-02-11 2149 ((struct seq_file *)file->private_data)->private; 926b005cd8c4e3 Jani Nikula 2020-02-11 2150 struct intel_encoder *encoder = intel_attached_encoder(to_intel_connector(connector)); 926b005cd8c4e3 Jani Nikula 2020-02-11 2151 struct drm_i915_private *i915 = to_i915(encoder->base.dev); 926b005cd8c4e3 Jani Nikula 2020-02-11 2152 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); 926b005cd8c4e3 Jani Nikula 2020-02-11 2153 926b005cd8c4e3 Jani Nikula 2020-02-11 2154 if (len == 0) 926b005cd8c4e3 Jani Nikula 2020-02-11 2155 return 0; 926b005cd8c4e3 Jani Nikula 2020-02-11 2156 926b005cd8c4e3 Jani Nikula 2020-02-11 2157 drm_dbg(&i915->drm, 926b005cd8c4e3 Jani Nikula 2020-02-11 2158 "Copied %zu bytes from user to force DSC\n", len); 926b005cd8c4e3 Jani Nikula 2020-02-11 2159 926b005cd8c4e3 Jani Nikula 2020-02-11 2160 ret = kstrtobool_from_user(ubuf, len, &dsc_enable); 926b005cd8c4e3 Jani Nikula 2020-02-11 2161 if (ret < 0) 926b005cd8c4e3 Jani Nikula 2020-02-11 2162 return ret; 926b005cd8c4e3 Jani Nikula 2020-02-11 2163 926b005cd8c4e3 Jani Nikula 2020-02-11 2164 drm_dbg(&i915->drm, "Got %s for DSC Enable\n", 926b005cd8c4e3 Jani Nikula 2020-02-11 2165 (dsc_enable) ? "true" : "false"); 926b005cd8c4e3 Jani Nikula 2020-02-11 2166 intel_dp->force_dsc_en = dsc_enable; 926b005cd8c4e3 Jani Nikula 2020-02-11 2167 926b005cd8c4e3 Jani Nikula 2020-02-11 2168 *offp += len; 926b005cd8c4e3 Jani Nikula 2020-02-11 2169 return len; 926b005cd8c4e3 Jani Nikula 2020-02-11 2170 } 926b005cd8c4e3 Jani Nikula 2020-02-11 2171 926b005cd8c4e3 Jani Nikula 2020-02-11 2172 static int i915_dsc_fec_support_open(struct inode *inode, 926b005cd8c4e3 Jani Nikula 2020-02-11 2173 struct file *file) 926b005cd8c4e3 Jani Nikula 2020-02-11 2174 { 926b005cd8c4e3 Jani Nikula 2020-02-11 2175 return single_open(file, i915_dsc_fec_support_show, 926b005cd8c4e3 Jani Nikula 2020-02-11 2176 inode->i_private); 926b005cd8c4e3 Jani Nikula 2020-02-11 2177 } 926b005cd8c4e3 Jani Nikula 2020-02-11 2178 926b005cd8c4e3 Jani Nikula 2020-02-11 2179 static const struct file_operations i915_dsc_fec_support_fops = { 926b005cd8c4e3 Jani Nikula 2020-02-11 2180 .owner = THIS_MODULE, 926b005cd8c4e3 Jani Nikula 2020-02-11 2181 .open = i915_dsc_fec_support_open, 926b005cd8c4e3 Jani Nikula 2020-02-11 2182 .read = seq_read, 926b005cd8c4e3 Jani Nikula 2020-02-11 2183 .llseek = seq_lseek, 926b005cd8c4e3 Jani Nikula 2020-02-11 2184 .release = single_release, 926b005cd8c4e3 Jani Nikula 2020-02-11 2185 .write = i915_dsc_fec_support_write 926b005cd8c4e3 Jani Nikula 2020-02-11 2186 }; 926b005cd8c4e3 Jani Nikula 2020-02-11 2187 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2188 static int vrr_range_show(struct seq_file *m, void *data) 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2189 { 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2190 struct drm_connector *connector = m->private; 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2191 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2192 if (connector->status != connector_status_connected) 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2193 return -ENODEV; 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2194 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2195 seq_printf(m, "Vrr_capable: %s\n", yesno(intel_dp_is_vrr_capable(connector))); 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2196 seq_printf(m, "Min: %u\n", (u8)connector->display_info.monitor_range.min_vfreq); 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2197 seq_printf(m, "Max: %u\n", (u8)connector->display_info.monitor_range.max_vfreq); 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2198 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2199 return 0; 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2200 } 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2201 DEFINE_SHOW_ATTRIBUTE(vrr_range); 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2202 926b005cd8c4e3 Jani Nikula 2020-02-11 2203 /** 926b005cd8c4e3 Jani Nikula 2020-02-11 2204 * intel_connector_debugfs_add - add i915 specific connector debugfs files 926b005cd8c4e3 Jani Nikula 2020-02-11 2205 * @connector: pointer to a registered drm_connector 926b005cd8c4e3 Jani Nikula 2020-02-11 2206 * 926b005cd8c4e3 Jani Nikula 2020-02-11 2207 * Cleanup will be done by drm_connector_unregister() through a call to 926b005cd8c4e3 Jani Nikula 2020-02-11 2208 * drm_debugfs_connector_remove(). 926b005cd8c4e3 Jani Nikula 2020-02-11 2209 * 926b005cd8c4e3 Jani Nikula 2020-02-11 2210 * Returns 0 on success, negative error codes on error. 926b005cd8c4e3 Jani Nikula 2020-02-11 2211 */ 926b005cd8c4e3 Jani Nikula 2020-02-11 2212 int intel_connector_debugfs_add(struct drm_connector *connector) 926b005cd8c4e3 Jani Nikula 2020-02-11 2213 { 926b005cd8c4e3 Jani Nikula 2020-02-11 2214 struct dentry *root = connector->debugfs_entry; 926b005cd8c4e3 Jani Nikula 2020-02-11 2215 struct drm_i915_private *dev_priv = to_i915(connector->dev); 926b005cd8c4e3 Jani Nikula 2020-02-11 2216 926b005cd8c4e3 Jani Nikula 2020-02-11 2217 /* The connector must have been registered beforehands. */ 926b005cd8c4e3 Jani Nikula 2020-02-11 2218 if (!root) 926b005cd8c4e3 Jani Nikula 2020-02-11 2219 return -ENODEV; 926b005cd8c4e3 Jani Nikula 2020-02-11 2220 926b005cd8c4e3 Jani Nikula 2020-02-11 2221 if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) { 926b005cd8c4e3 Jani Nikula 2020-02-11 2222 debugfs_create_file("i915_panel_timings", S_IRUGO, root, 926b005cd8c4e3 Jani Nikula 2020-02-11 2223 connector, &i915_panel_fops); 926b005cd8c4e3 Jani Nikula 2020-02-11 2224 debugfs_create_file("i915_psr_sink_status", S_IRUGO, root, 926b005cd8c4e3 Jani Nikula 2020-02-11 2225 connector, &i915_psr_sink_status_fops); 926b005cd8c4e3 Jani Nikula 2020-02-11 2226 } 926b005cd8c4e3 Jani Nikula 2020-02-11 2227 926b005cd8c4e3 Jani Nikula 2020-02-11 2228 if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort || 926b005cd8c4e3 Jani Nikula 2020-02-11 2229 connector->connector_type == DRM_MODE_CONNECTOR_HDMIA || 926b005cd8c4e3 Jani Nikula 2020-02-11 2230 connector->connector_type == DRM_MODE_CONNECTOR_HDMIB) { 926b005cd8c4e3 Jani Nikula 2020-02-11 2231 debugfs_create_file("i915_hdcp_sink_capability", S_IRUGO, root, 926b005cd8c4e3 Jani Nikula 2020-02-11 2232 connector, &i915_hdcp_sink_capability_fops); 926b005cd8c4e3 Jani Nikula 2020-02-11 2233 } 926b005cd8c4e3 Jani Nikula 2020-02-11 2234 926b005cd8c4e3 Jani Nikula 2020-02-11 @2235 if (INTEL_GEN(dev_priv) >= 10 && :::::: The code at line 2235 was first introduced by commit :::::: 926b005cd8c4e325ab918edea0fbdd1d25d1ba28 drm/i915: split out display debugfs to a separate file :::::: TO: Jani Nikula <jani.nikula@intel.com> :::::: CC: Jani Nikula <jani.nikula@intel.com> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Hi Manasi, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on drm-intel/for-linux-next] [also build test WARNING on drm-tip/drm-tip drm-exynos/exynos-drm-next linus/master next-20200613] [cannot apply to tegra-drm/drm/tegra/for-next drm/drm-next v5.7] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Manasi-Navare/VRR-capable-attach-prop-in-i915-DPCD-helper-VRR-debugfs/20200613-070517 base: git://anongit.freedesktop.org/drm-intel for-linux-next :::::: branch date: 2 days ago :::::: commit date: 2 days ago compiler: gcc-9 (Debian 9.3.0-13) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> cppcheck warnings: (new ones prefixed by >>) >> drivers/gpu/drm/i915/display/intel_display_debugfs.c:2258:0: warning: Invalid number of character '{' when no macros are defined. [syntaxError] ^ >> drivers/gpu/drm/i915/display/intel_display_debugfs.c:2258:0: warning: Invalid number of character '{' when these macros are defined: 'CONFIG_DEBUG_FS'. [syntaxError] ^ >> drivers/gpu/drm/i915/display/intel_display_debugfs.c:2258:0: warning: Invalid number of character '{' when these macros are defined: 'CONFIG_DRM_FBDEV_EMULATION'. [syntaxError] ^ # https://github.com/0day-ci/linux/commit/670af3cf7a3a36bb87776fbfd7f913cd33681bbc git remote add linux-review https://github.com/0day-ci/linux git remote update linux-review git checkout 670af3cf7a3a36bb87776fbfd7f913cd33681bbc vim +2258 drivers/gpu/drm/i915/display/intel_display_debugfs.c 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2202 926b005cd8c4e3 Jani Nikula 2020-02-11 2203 /** 926b005cd8c4e3 Jani Nikula 2020-02-11 2204 * intel_connector_debugfs_add - add i915 specific connector debugfs files 926b005cd8c4e3 Jani Nikula 2020-02-11 2205 * @connector: pointer to a registered drm_connector 926b005cd8c4e3 Jani Nikula 2020-02-11 2206 * 926b005cd8c4e3 Jani Nikula 2020-02-11 2207 * Cleanup will be done by drm_connector_unregister() through a call to 926b005cd8c4e3 Jani Nikula 2020-02-11 2208 * drm_debugfs_connector_remove(). 926b005cd8c4e3 Jani Nikula 2020-02-11 2209 * 926b005cd8c4e3 Jani Nikula 2020-02-11 2210 * Returns 0 on success, negative error codes on error. 926b005cd8c4e3 Jani Nikula 2020-02-11 2211 */ 926b005cd8c4e3 Jani Nikula 2020-02-11 2212 int intel_connector_debugfs_add(struct drm_connector *connector) 926b005cd8c4e3 Jani Nikula 2020-02-11 2213 { 926b005cd8c4e3 Jani Nikula 2020-02-11 2214 struct dentry *root = connector->debugfs_entry; 926b005cd8c4e3 Jani Nikula 2020-02-11 2215 struct drm_i915_private *dev_priv = to_i915(connector->dev); 926b005cd8c4e3 Jani Nikula 2020-02-11 2216 926b005cd8c4e3 Jani Nikula 2020-02-11 2217 /* The connector must have been registered beforehands. */ 926b005cd8c4e3 Jani Nikula 2020-02-11 2218 if (!root) 926b005cd8c4e3 Jani Nikula 2020-02-11 2219 return -ENODEV; 926b005cd8c4e3 Jani Nikula 2020-02-11 2220 926b005cd8c4e3 Jani Nikula 2020-02-11 2221 if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) { 926b005cd8c4e3 Jani Nikula 2020-02-11 2222 debugfs_create_file("i915_panel_timings", S_IRUGO, root, 926b005cd8c4e3 Jani Nikula 2020-02-11 2223 connector, &i915_panel_fops); 926b005cd8c4e3 Jani Nikula 2020-02-11 2224 debugfs_create_file("i915_psr_sink_status", S_IRUGO, root, 926b005cd8c4e3 Jani Nikula 2020-02-11 2225 connector, &i915_psr_sink_status_fops); 926b005cd8c4e3 Jani Nikula 2020-02-11 2226 } 926b005cd8c4e3 Jani Nikula 2020-02-11 2227 926b005cd8c4e3 Jani Nikula 2020-02-11 2228 if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort || 926b005cd8c4e3 Jani Nikula 2020-02-11 2229 connector->connector_type == DRM_MODE_CONNECTOR_HDMIA || 926b005cd8c4e3 Jani Nikula 2020-02-11 2230 connector->connector_type == DRM_MODE_CONNECTOR_HDMIB) { 926b005cd8c4e3 Jani Nikula 2020-02-11 2231 debugfs_create_file("i915_hdcp_sink_capability", S_IRUGO, root, 926b005cd8c4e3 Jani Nikula 2020-02-11 2232 connector, &i915_hdcp_sink_capability_fops); 926b005cd8c4e3 Jani Nikula 2020-02-11 2233 } 926b005cd8c4e3 Jani Nikula 2020-02-11 2234 926b005cd8c4e3 Jani Nikula 2020-02-11 2235 if (INTEL_GEN(dev_priv) >= 10 && 926b005cd8c4e3 Jani Nikula 2020-02-11 2236 (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort || 926b005cd8c4e3 Jani Nikula 2020-02-11 2237 connector->connector_type == DRM_MODE_CONNECTOR_eDP)) 926b005cd8c4e3 Jani Nikula 2020-02-11 2238 debugfs_create_file("i915_dsc_fec_support", S_IRUGO, root, 926b005cd8c4e3 Jani Nikula 2020-02-11 2239 connector, &i915_dsc_fec_support_fops); 926b005cd8c4e3 Jani Nikula 2020-02-11 2240 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2241 if (INTEL_GEN(dev_priv) >= 12) 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2242 debugfs_create_file("vrr_range", S_IRUGO, 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2243 root, connector, &vrr_range_fops); 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2244 } 670af3cf7a3a36 Bhanuprakash Modem 2020-06-12 2245 8806211fe7b306 Anshuman Gupta 2020-04-15 2246 /* Legacy panels doesn't lpsp on any platform */ 8806211fe7b306 Anshuman Gupta 2020-04-15 2247 if ((INTEL_GEN(dev_priv) >= 9 || IS_HASWELL(dev_priv) || 8806211fe7b306 Anshuman Gupta 2020-04-15 2248 IS_BROADWELL(dev_priv)) && 8806211fe7b306 Anshuman Gupta 2020-04-15 2249 (connector->connector_type == DRM_MODE_CONNECTOR_DSI || 8806211fe7b306 Anshuman Gupta 2020-04-15 2250 connector->connector_type == DRM_MODE_CONNECTOR_eDP || 8806211fe7b306 Anshuman Gupta 2020-04-15 2251 connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort || 8806211fe7b306 Anshuman Gupta 2020-04-15 2252 connector->connector_type == DRM_MODE_CONNECTOR_HDMIA || 8806211fe7b306 Anshuman Gupta 2020-04-15 2253 connector->connector_type == DRM_MODE_CONNECTOR_HDMIB)) 8806211fe7b306 Anshuman Gupta 2020-04-15 2254 debugfs_create_file("i915_lpsp_capability", 0444, root, 8806211fe7b306 Anshuman Gupta 2020-04-15 2255 connector, &i915_lpsp_capability_fops); 8806211fe7b306 Anshuman Gupta 2020-04-15 2256 926b005cd8c4e3 Jani Nikula 2020-02-11 2257 return 0; 926b005cd8c4e3 Jani Nikula 2020-02-11 @2258 } :::::: The code at line 2258 was first introduced by commit :::::: 926b005cd8c4e325ab918edea0fbdd1d25d1ba28 drm/i915: split out display debugfs to a separate file :::::: TO: Jani Nikula <jani.nikula@intel.com> :::::: CC: Jani Nikula <jani.nikula@intel.com> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers/gpu/drm/i915/display/intel_display_debugfs.c index 28dd717e943a..fc05d3468a7b 100644 --- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c +++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c @@ -2185,6 +2185,21 @@ static const struct file_operations i915_dsc_fec_support_fops = { .write = i915_dsc_fec_support_write }; +static int vrr_range_show(struct seq_file *m, void *data) +{ + struct drm_connector *connector = m->private; + + if (connector->status != connector_status_connected) + return -ENODEV; + + seq_printf(m, "Vrr_capable: %s\n", yesno(intel_dp_is_vrr_capable(connector))); + seq_printf(m, "Min: %u\n", (u8)connector->display_info.monitor_range.min_vfreq); + seq_printf(m, "Max: %u\n", (u8)connector->display_info.monitor_range.max_vfreq); + + return 0; +} +DEFINE_SHOW_ATTRIBUTE(vrr_range); + /** * intel_connector_debugfs_add - add i915 specific connector debugfs files * @connector: pointer to a registered drm_connector @@ -2224,6 +2239,11 @@ int intel_connector_debugfs_add(struct drm_connector *connector) debugfs_create_file("i915_dsc_fec_support", S_IRUGO, root, connector, &i915_dsc_fec_support_fops); + if (INTEL_GEN(dev_priv) >= 12) + debugfs_create_file("vrr_range", S_IRUGO, + root, connector, &vrr_range_fops); + } + /* Legacy panels doesn't lpsp on any platform */ if ((INTEL_GEN(dev_priv) >= 9 || IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) &&