drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c:147:5: warning: no previous prototype for 'tinydrm_display_pipe_init'

From: kernel test robot
Date: Sun Aug 07 2022 - 05:40:57 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 1612c382ffbdf1f673caec76502b1c00e6d35363
commit: 96f2a9aef5987340d367ab7497ae972a55e6f71c drm/tinydrm: tinydrm_display_pipe_init() don't use tinydrm_device
date: 3 years, 6 months ago
config: parisc-randconfig-r022-20220805 (https://download.01.org/0day-ci/archive/20220807/202208071706.bgRl6mce-lkp@xxxxxxxxx/config)
compiler: hppa64-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=96f2a9aef5987340d367ab7497ae972a55e6f71c
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 96f2a9aef5987340d367ab7497ae972a55e6f71c
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=parisc SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All error/warnings (new ones prefixed by >>):

hppa64-linux-ld: drivers/tty/serial/8250/8250_gsc.o: in function `.LC4':
>> (.data.rel.ro+0x8): undefined reference to `iosapic_serial_irq'
--
In file included from arch/parisc/include/asm/io.h:6,
from include/linux/fb.h:17,
from include/drm/drm_crtc.h:31,
from include/drm/drm_atomic_helper.h:31,
from drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c:10:
include/asm-generic/pgtable.h: In function 'pte_clear_not_present_full':
arch/parisc/include/asm/pgtable.h:60:23: warning: variable 'old_pte' set but not used [-Wunused-but-set-variable]
60 | pte_t old_pte; \
| ^~~~~~~
arch/parisc/include/asm/pgtable.h:289:34: note: in expansion of macro 'set_pte_at'
289 | #define pte_clear(mm, addr, xp) set_pte_at(mm, addr, xp, __pte(0))
| ^~~~~~~~~~
include/asm-generic/pgtable.h:201:9: note: in expansion of macro 'pte_clear'
201 | pte_clear(mm, address, ptep);
| ^~~~~~~~~
include/asm-generic/pgtable.h: In function '__ptep_modify_prot_commit':
arch/parisc/include/asm/pgtable.h:60:23: warning: variable 'old_pte' set but not used [-Wunused-but-set-variable]
60 | pte_t old_pte; \
| ^~~~~~~
include/asm-generic/pgtable.h:629:9: note: in expansion of macro 'set_pte_at'
629 | set_pte_at(mm, addr, ptep, pte);
| ^~~~~~~~~~
drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c: At top level:
drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c:85:1: warning: no previous prototype for 'tinydrm_connector_create' [-Wmissing-prototypes]
85 | tinydrm_connector_create(struct drm_device *drm,
| ^~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c:147:5: warning: no previous prototype for 'tinydrm_display_pipe_init' [-Wmissing-prototypes]
147 | int tinydrm_display_pipe_init(struct drm_device *drm,
| ^~~~~~~~~~~~~~~~~~~~~~~~~


vim +/tinydrm_display_pipe_init +147 drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c

83
84 struct drm_connector *
> 85 tinydrm_connector_create(struct drm_device *drm,
86 const struct drm_display_mode *mode,
87 int connector_type)
88 {
89 struct tinydrm_connector *tconn;
90 struct drm_connector *connector;
91 int ret;
92
93 tconn = kzalloc(sizeof(*tconn), GFP_KERNEL);
94 if (!tconn)
95 return ERR_PTR(-ENOMEM);
96
97 drm_mode_copy(&tconn->mode, mode);
98 connector = &tconn->base;
99
100 drm_connector_helper_add(connector, &tinydrm_connector_hfuncs);
101 ret = drm_connector_init(drm, connector, &tinydrm_connector_funcs,
102 connector_type);
103 if (ret) {
104 kfree(tconn);
105 return ERR_PTR(ret);
106 }
107
108 connector->status = connector_status_connected;
109
110 return connector;
111 }
112
113 static int tinydrm_rotate_mode(struct drm_display_mode *mode,
114 unsigned int rotation)
115 {
116 if (rotation == 0 || rotation == 180) {
117 return 0;
118 } else if (rotation == 90 || rotation == 270) {
119 swap(mode->hdisplay, mode->vdisplay);
120 swap(mode->hsync_start, mode->vsync_start);
121 swap(mode->hsync_end, mode->vsync_end);
122 swap(mode->htotal, mode->vtotal);
123 swap(mode->width_mm, mode->height_mm);
124 return 0;
125 } else {
126 return -EINVAL;
127 }
128 }
129
130 /**
131 * tinydrm_display_pipe_init - Initialize display pipe
132 * @drm: DRM device
133 * @pipe: Display pipe
134 * @funcs: Display pipe functions
135 * @connector_type: Connector type
136 * @formats: Array of supported formats (DRM_FORMAT\_\*)
137 * @format_count: Number of elements in @formats
138 * @mode: Supported mode
139 * @rotation: Initial @mode rotation in degrees Counter Clock Wise
140 *
141 * This function sets up a &drm_simple_display_pipe with a &drm_connector that
142 * has one fixed &drm_display_mode which is rotated according to @rotation.
143 *
144 * Returns:
145 * Zero on success, negative error code on failure.
146 */
> 147 int tinydrm_display_pipe_init(struct drm_device *drm,

--
0-DAY CI Kernel Test Service
https://01.org/lkp