[Intel-gfx] [PATCH] drm/i915/dp: Fix dsc bpp calculations, v3.
kbuild test robot
lkp at intel.com
Mon Sep 23 14:22:27 UTC 2019
Hi Maarten,
I love your patch! Yet something to improve:
[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to v5.3 next-20190920]
[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/Maarten-Lankhorst/drm-i915-dp-Fix-dsc-bpp-calculations-v3/20190923-205540
base: git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-13) 7.4.0
reproduce:
# save the attached .config to linux build tree
make ARCH=i386
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp at intel.com>
All errors (new ones prefixed by >>):
drivers/gpu/drm/i915/display/intel_ddi.c: In function 'intel_ddi_get_config':
>> drivers/gpu/drm/i915/display/intel_ddi.c:3905:17: error: implicit declaration of function 'TGL_DP_TP_CTL'; did you mean 'DP_TP_CTL'? [-Werror=implicit-function-declaration]
dp_tp_ctl = TGL_DP_TP_CTL(pipe_config->cpu_transcoder);
^~~~~~~~~~~~~
DP_TP_CTL
>> drivers/gpu/drm/i915/display/intel_ddi.c:3905:15: error: incompatible types when assigning to type 'i915_reg_t {aka struct <anonymous>}' from type 'int'
dp_tp_ctl = TGL_DP_TP_CTL(pipe_config->cpu_transcoder);
^
cc1: some warnings being treated as errors
vim +3905 drivers/gpu/drm/i915/display/intel_ddi.c
3826
3827 void intel_ddi_get_config(struct intel_encoder *encoder,
3828 struct intel_crtc_state *pipe_config)
3829 {
3830 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
3831 struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->base.crtc);
3832 enum transcoder cpu_transcoder = pipe_config->cpu_transcoder;
3833 u32 temp, flags = 0;
3834
3835 /* XXX: DSI transcoder paranoia */
3836 if (WARN_ON(transcoder_is_dsi(cpu_transcoder)))
3837 return;
3838
3839 temp = I915_READ(TRANS_DDI_FUNC_CTL(cpu_transcoder));
3840 if (temp & TRANS_DDI_PHSYNC)
3841 flags |= DRM_MODE_FLAG_PHSYNC;
3842 else
3843 flags |= DRM_MODE_FLAG_NHSYNC;
3844 if (temp & TRANS_DDI_PVSYNC)
3845 flags |= DRM_MODE_FLAG_PVSYNC;
3846 else
3847 flags |= DRM_MODE_FLAG_NVSYNC;
3848
3849 pipe_config->base.adjusted_mode.flags |= flags;
3850
3851 switch (temp & TRANS_DDI_BPC_MASK) {
3852 case TRANS_DDI_BPC_6:
3853 pipe_config->pipe_bpp = 18;
3854 break;
3855 case TRANS_DDI_BPC_8:
3856 pipe_config->pipe_bpp = 24;
3857 break;
3858 case TRANS_DDI_BPC_10:
3859 pipe_config->pipe_bpp = 30;
3860 break;
3861 case TRANS_DDI_BPC_12:
3862 pipe_config->pipe_bpp = 36;
3863 break;
3864 default:
3865 break;
3866 }
3867
3868 switch (temp & TRANS_DDI_MODE_SELECT_MASK) {
3869 case TRANS_DDI_MODE_SELECT_HDMI:
3870 pipe_config->has_hdmi_sink = true;
3871
3872 pipe_config->infoframes.enable |=
3873 intel_hdmi_infoframes_enabled(encoder, pipe_config);
3874
3875 if (pipe_config->infoframes.enable)
3876 pipe_config->has_infoframe = true;
3877
3878 if (temp & TRANS_DDI_HDMI_SCRAMBLING)
3879 pipe_config->hdmi_scrambling = true;
3880 if (temp & TRANS_DDI_HIGH_TMDS_CHAR_RATE)
3881 pipe_config->hdmi_high_tmds_clock_ratio = true;
3882 /* fall through */
3883 case TRANS_DDI_MODE_SELECT_DVI:
3884 pipe_config->output_types |= BIT(INTEL_OUTPUT_HDMI);
3885 pipe_config->lane_count = 4;
3886 break;
3887 case TRANS_DDI_MODE_SELECT_FDI:
3888 pipe_config->output_types |= BIT(INTEL_OUTPUT_ANALOG);
3889 break;
3890 case TRANS_DDI_MODE_SELECT_DP_SST:
3891 if (encoder->type == INTEL_OUTPUT_EDP)
3892 pipe_config->output_types |= BIT(INTEL_OUTPUT_EDP);
3893 else
3894 pipe_config->output_types |= BIT(INTEL_OUTPUT_DP);
3895 pipe_config->lane_count =
3896 ((temp & DDI_PORT_WIDTH_MASK) >> DDI_PORT_WIDTH_SHIFT) + 1;
3897 intel_dp_get_m_n(intel_crtc, pipe_config);
3898
3899 if (INTEL_GEN(dev_priv) >= 11) {
3900 i915_reg_t dp_tp_ctl;
3901
3902 if (IS_GEN(dev_priv, 11))
3903 dp_tp_ctl = DP_TP_CTL(pipe_config->cpu_transcoder);
3904 else
> 3905 dp_tp_ctl = TGL_DP_TP_CTL(pipe_config->cpu_transcoder);
3906
3907 pipe_config->fec_enable =
3908 I915_READ(dp_tp_ctl) & DP_TP_CTL_FEC_ENABLE;
3909
3910 DRM_DEBUG_KMS("[ENCODER:%d:%s] Fec status: %u\n",
3911 encoder->base.base.id, encoder->base.name,
3912 pipe_config->fec_enable);
3913 }
3914
3915 break;
3916 case TRANS_DDI_MODE_SELECT_DP_MST:
3917 pipe_config->output_types |= BIT(INTEL_OUTPUT_DP_MST);
3918 pipe_config->lane_count =
3919 ((temp & DDI_PORT_WIDTH_MASK) >> DDI_PORT_WIDTH_SHIFT) + 1;
3920 intel_dp_get_m_n(intel_crtc, pipe_config);
3921 break;
3922 default:
3923 break;
3924 }
3925
3926 pipe_config->has_audio =
3927 intel_ddi_is_audio_enabled(dev_priv, cpu_transcoder);
3928
3929 if (encoder->type == INTEL_OUTPUT_EDP && dev_priv->vbt.edp.bpp &&
3930 pipe_config->pipe_bpp > dev_priv->vbt.edp.bpp) {
3931 /*
3932 * This is a big fat ugly hack.
3933 *
3934 * Some machines in UEFI boot mode provide us a VBT that has 18
3935 * bpp and 1.62 GHz link bandwidth for eDP, which for reasons
3936 * unknown we fail to light up. Yet the same BIOS boots up with
3937 * 24 bpp and 2.7 GHz link. Use the same bpp as the BIOS uses as
3938 * max, not what it tells us to use.
3939 *
3940 * Note: This will still be broken if the eDP panel is not lit
3941 * up by the BIOS, and thus we can't get the mode at module
3942 * load.
3943 */
3944 DRM_DEBUG_KMS("pipe has %d bpp for eDP panel, overriding BIOS-provided max %d bpp\n",
3945 pipe_config->pipe_bpp, dev_priv->vbt.edp.bpp);
3946 dev_priv->vbt.edp.bpp = pipe_config->pipe_bpp;
3947 }
3948
3949 intel_ddi_clock_get(encoder, pipe_config);
3950
3951 if (IS_GEN9_LP(dev_priv))
3952 pipe_config->lane_lat_optim_mask =
3953 bxt_ddi_phy_get_lane_lat_optim_mask(encoder);
3954
3955 intel_ddi_compute_min_voltage_level(dev_priv, pipe_config);
3956
3957 intel_hdmi_read_gcp_infoframe(encoder, pipe_config);
3958
3959 intel_read_infoframe(encoder, pipe_config,
3960 HDMI_INFOFRAME_TYPE_AVI,
3961 &pipe_config->infoframes.avi);
3962 intel_read_infoframe(encoder, pipe_config,
3963 HDMI_INFOFRAME_TYPE_SPD,
3964 &pipe_config->infoframes.spd);
3965 intel_read_infoframe(encoder, pipe_config,
3966 HDMI_INFOFRAME_TYPE_VENDOR,
3967 &pipe_config->infoframes.hdmi);
3968 intel_read_infoframe(encoder, pipe_config,
3969 HDMI_INFOFRAME_TYPE_DRM,
3970 &pipe_config->infoframes.drm);
3971 }
3972
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 28068 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/intel-gfx/attachments/20190923/a0849e9f/attachment-0001.gz>
More information about the Intel-gfx
mailing list