[drm-intel:drm-intel-nightly 1414/1425] drivers/gpu/drm/drm_modes.c:909:20: warning: 'adjusted.base.id' is used uninitialized in this function
kbuild test robot
fengguang.wu at intel.com
Thu Jan 26 11:33:23 UTC 2017
tree: git://anongit.freedesktop.org/drm-intel drm-intel-nightly
head: 3778ca36c6b4e894b581d4f56abe6bbafe927e96
commit: 196cd5d3758cbf587fc0254cae7132d95993461e [1414/1425] drm: s/drm_crtc_get_hv_timings/drm_mode_get_hv_timings/
config: i386-defconfig (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
git checkout 196cd5d3758cbf587fc0254cae7132d95993461e
# save the attached .config to linux build tree
make ARCH=i386
All warnings (new ones prefixed by >>):
drivers/gpu/drm/drm_modes.c: In function 'drm_mode_get_hv_timing':
>> drivers/gpu/drm/drm_modes.c:909:20: warning: 'adjusted.base.id' is used uninitialized in this function [-Wuninitialized]
int id = dst->base.id;
~~~~~~~~~^~~
drivers/gpu/drm/drm_modes.c:811:26: note: 'adjusted' was declared here
struct drm_display_mode adjusted;
^~~~~~~~
>> drivers/gpu/drm/drm_modes.c:910:19: warning: 'adjusted' is used uninitialized in this function [-Wuninitialized]
struct list_head head = dst->head;
^~~~
drivers/gpu/drm/drm_modes.c:811:26: note: 'adjusted' was declared here
struct drm_display_mode adjusted;
^~~~~~~~
>> drivers/gpu/drm/drm_modes.c:910:19: warning: '*((void *)&adjusted+4)' is used uninitialized in this function [-Wuninitialized]
struct list_head head = dst->head;
^~~~
drivers/gpu/drm/drm_modes.c:811:26: note: 'adjusted' was declared here
struct drm_display_mode adjusted;
^~~~~~~~
vim +909 drivers/gpu/drm/drm_modes.c
196cd5d3 Daniel Vetter 2017-01-25 805 * The vdisplay value will be doubled if the specified mode is a stereo mode of
196cd5d3 Daniel Vetter 2017-01-25 806 * the appropriate layout.
196cd5d3 Daniel Vetter 2017-01-25 807 */
196cd5d3 Daniel Vetter 2017-01-25 808 void drm_mode_get_hv_timing(const struct drm_display_mode *mode,
196cd5d3 Daniel Vetter 2017-01-25 809 int *hdisplay, int *vdisplay)
196cd5d3 Daniel Vetter 2017-01-25 810 {
196cd5d3 Daniel Vetter 2017-01-25 @811 struct drm_display_mode adjusted;
196cd5d3 Daniel Vetter 2017-01-25 812
196cd5d3 Daniel Vetter 2017-01-25 813 drm_mode_copy(&adjusted, mode);
196cd5d3 Daniel Vetter 2017-01-25 814 drm_mode_set_crtcinfo(&adjusted, CRTC_STEREO_DOUBLE_ONLY);
196cd5d3 Daniel Vetter 2017-01-25 815 *hdisplay = adjusted.crtc_hdisplay;
196cd5d3 Daniel Vetter 2017-01-25 816 *vdisplay = adjusted.crtc_vdisplay;
196cd5d3 Daniel Vetter 2017-01-25 817 }
196cd5d3 Daniel Vetter 2017-01-25 818 EXPORT_SYMBOL(drm_mode_get_hv_timing);
196cd5d3 Daniel Vetter 2017-01-25 819
196cd5d3 Daniel Vetter 2017-01-25 820 /**
f5aabb97 Daniel Vetter 2014-01-23 821 * drm_mode_set_crtcinfo - set CRTC modesetting timing parameters
f453ba04 Dave Airlie 2008-11-07 822 * @p: mode
448cce25 Damien Lespiau 2013-09-25 823 * @adjust_flags: a combination of adjustment flags
f453ba04 Dave Airlie 2008-11-07 824 *
f5aabb97 Daniel Vetter 2014-01-23 825 * Setup the CRTC modesetting timing parameters for @p, adjusting if necessary.
448cce25 Damien Lespiau 2013-09-25 826 *
448cce25 Damien Lespiau 2013-09-25 827 * - The CRTC_INTERLACE_HALVE_V flag can be used to halve vertical timings of
448cce25 Damien Lespiau 2013-09-25 828 * interlaced modes.
448cce25 Damien Lespiau 2013-09-25 829 * - The CRTC_STEREO_DOUBLE flag can be used to compute the timings for
448cce25 Damien Lespiau 2013-09-25 830 * buffers containing two eyes (only adjust the timings when needed, eg. for
448cce25 Damien Lespiau 2013-09-25 831 * "frame packing" or "side by side full").
ecb7e16b Gustavo Padovan 2014-12-01 832 * - The CRTC_NO_DBLSCAN and CRTC_NO_VSCAN flags request that adjustment *not*
ecb7e16b Gustavo Padovan 2014-12-01 833 * be performed for doublescan and vscan > 1 modes respectively.
f453ba04 Dave Airlie 2008-11-07 834 */
f453ba04 Dave Airlie 2008-11-07 835 void drm_mode_set_crtcinfo(struct drm_display_mode *p, int adjust_flags)
f453ba04 Dave Airlie 2008-11-07 836 {
f453ba04 Dave Airlie 2008-11-07 837 if ((p == NULL) || ((p->type & DRM_MODE_TYPE_CRTC_C) == DRM_MODE_TYPE_BUILTIN))
f453ba04 Dave Airlie 2008-11-07 838 return;
f453ba04 Dave Airlie 2008-11-07 839
bde2dcf7 Damien Lespiau 2013-09-25 840 p->crtc_clock = p->clock;
f453ba04 Dave Airlie 2008-11-07 841 p->crtc_hdisplay = p->hdisplay;
f453ba04 Dave Airlie 2008-11-07 842 p->crtc_hsync_start = p->hsync_start;
f453ba04 Dave Airlie 2008-11-07 843 p->crtc_hsync_end = p->hsync_end;
f453ba04 Dave Airlie 2008-11-07 844 p->crtc_htotal = p->htotal;
f453ba04 Dave Airlie 2008-11-07 845 p->crtc_hskew = p->hskew;
f453ba04 Dave Airlie 2008-11-07 846 p->crtc_vdisplay = p->vdisplay;
f453ba04 Dave Airlie 2008-11-07 847 p->crtc_vsync_start = p->vsync_start;
f453ba04 Dave Airlie 2008-11-07 848 p->crtc_vsync_end = p->vsync_end;
f453ba04 Dave Airlie 2008-11-07 849 p->crtc_vtotal = p->vtotal;
f453ba04 Dave Airlie 2008-11-07 850
f453ba04 Dave Airlie 2008-11-07 851 if (p->flags & DRM_MODE_FLAG_INTERLACE) {
f453ba04 Dave Airlie 2008-11-07 852 if (adjust_flags & CRTC_INTERLACE_HALVE_V) {
f453ba04 Dave Airlie 2008-11-07 853 p->crtc_vdisplay /= 2;
f453ba04 Dave Airlie 2008-11-07 854 p->crtc_vsync_start /= 2;
f453ba04 Dave Airlie 2008-11-07 855 p->crtc_vsync_end /= 2;
f453ba04 Dave Airlie 2008-11-07 856 p->crtc_vtotal /= 2;
f453ba04 Dave Airlie 2008-11-07 857 }
f453ba04 Dave Airlie 2008-11-07 858 }
f453ba04 Dave Airlie 2008-11-07 859
ecb7e16b Gustavo Padovan 2014-12-01 860 if (!(adjust_flags & CRTC_NO_DBLSCAN)) {
f453ba04 Dave Airlie 2008-11-07 861 if (p->flags & DRM_MODE_FLAG_DBLSCAN) {
f453ba04 Dave Airlie 2008-11-07 862 p->crtc_vdisplay *= 2;
f453ba04 Dave Airlie 2008-11-07 863 p->crtc_vsync_start *= 2;
f453ba04 Dave Airlie 2008-11-07 864 p->crtc_vsync_end *= 2;
f453ba04 Dave Airlie 2008-11-07 865 p->crtc_vtotal *= 2;
f453ba04 Dave Airlie 2008-11-07 866 }
ecb7e16b Gustavo Padovan 2014-12-01 867 }
f453ba04 Dave Airlie 2008-11-07 868
ecb7e16b Gustavo Padovan 2014-12-01 869 if (!(adjust_flags & CRTC_NO_VSCAN)) {
f453ba04 Dave Airlie 2008-11-07 870 if (p->vscan > 1) {
f453ba04 Dave Airlie 2008-11-07 871 p->crtc_vdisplay *= p->vscan;
f453ba04 Dave Airlie 2008-11-07 872 p->crtc_vsync_start *= p->vscan;
f453ba04 Dave Airlie 2008-11-07 873 p->crtc_vsync_end *= p->vscan;
f453ba04 Dave Airlie 2008-11-07 874 p->crtc_vtotal *= p->vscan;
f453ba04 Dave Airlie 2008-11-07 875 }
ecb7e16b Gustavo Padovan 2014-12-01 876 }
f453ba04 Dave Airlie 2008-11-07 877
448cce25 Damien Lespiau 2013-09-25 878 if (adjust_flags & CRTC_STEREO_DOUBLE) {
448cce25 Damien Lespiau 2013-09-25 879 unsigned int layout = p->flags & DRM_MODE_FLAG_3D_MASK;
448cce25 Damien Lespiau 2013-09-25 880
448cce25 Damien Lespiau 2013-09-25 881 switch (layout) {
448cce25 Damien Lespiau 2013-09-25 882 case DRM_MODE_FLAG_3D_FRAME_PACKING:
448cce25 Damien Lespiau 2013-09-25 883 p->crtc_clock *= 2;
448cce25 Damien Lespiau 2013-09-25 884 p->crtc_vdisplay += p->crtc_vtotal;
448cce25 Damien Lespiau 2013-09-25 885 p->crtc_vsync_start += p->crtc_vtotal;
448cce25 Damien Lespiau 2013-09-25 886 p->crtc_vsync_end += p->crtc_vtotal;
448cce25 Damien Lespiau 2013-09-25 887 p->crtc_vtotal += p->crtc_vtotal;
448cce25 Damien Lespiau 2013-09-25 888 break;
448cce25 Damien Lespiau 2013-09-25 889 }
448cce25 Damien Lespiau 2013-09-25 890 }
448cce25 Damien Lespiau 2013-09-25 891
f453ba04 Dave Airlie 2008-11-07 892 p->crtc_vblank_start = min(p->crtc_vsync_start, p->crtc_vdisplay);
f453ba04 Dave Airlie 2008-11-07 893 p->crtc_vblank_end = max(p->crtc_vsync_end, p->crtc_vtotal);
f453ba04 Dave Airlie 2008-11-07 894 p->crtc_hblank_start = min(p->crtc_hsync_start, p->crtc_hdisplay);
f453ba04 Dave Airlie 2008-11-07 895 p->crtc_hblank_end = max(p->crtc_hsync_end, p->crtc_htotal);
f453ba04 Dave Airlie 2008-11-07 896 }
f453ba04 Dave Airlie 2008-11-07 897 EXPORT_SYMBOL(drm_mode_set_crtcinfo);
f453ba04 Dave Airlie 2008-11-07 898
f453ba04 Dave Airlie 2008-11-07 899 /**
c3c50e8b Ville Syrjälä 2012-03-13 900 * drm_mode_copy - copy the mode
c3c50e8b Ville Syrjälä 2012-03-13 901 * @dst: mode to overwrite
c3c50e8b Ville Syrjälä 2012-03-13 902 * @src: mode to copy
c3c50e8b Ville Syrjälä 2012-03-13 903 *
72e45e92 Ville Syrjälä 2013-05-31 904 * Copy an existing mode into another mode, preserving the object id and
72e45e92 Ville Syrjälä 2013-05-31 905 * list head of the destination mode.
c3c50e8b Ville Syrjälä 2012-03-13 906 */
c3c50e8b Ville Syrjälä 2012-03-13 907 void drm_mode_copy(struct drm_display_mode *dst, const struct drm_display_mode *src)
c3c50e8b Ville Syrjälä 2012-03-13 908 {
c3c50e8b Ville Syrjälä 2012-03-13 @909 int id = dst->base.id;
72e45e92 Ville Syrjälä 2013-05-31 @910 struct list_head head = dst->head;
c3c50e8b Ville Syrjälä 2012-03-13 911
c3c50e8b Ville Syrjälä 2012-03-13 912 *dst = *src;
c3c50e8b Ville Syrjälä 2012-03-13 913 dst->base.id = id;
:::::: The code at line 909 was first introduced by commit
:::::: c3c50e8b651887bcefcc13beb3739c00b2379b5c drm: Add drm_mode_copy()
:::::: TO: Ville Syrjälä <ville.syrjala at linux.intel.com>
:::::: CC: Dave Airlie <airlied at redhat.com>
---
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: 25484 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20170126/9b1353be/attachment-0001.gz>
More information about the dri-devel
mailing list