[Intel-gfx] [V3 7/8] drm/i915/dsi: Add TE handler for dsi cmd mode.
kbuild test robot
lkp at intel.com
Tue Nov 19 21:00:10 UTC 2019
Hi Vandita,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to v5.4-rc8 next-20191118]
[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/Vandita-Kulkarni/Add-support-for-mipi-dsi-cmd-mode/20191120-015713
base: git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 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/i915_irq.c: In function 'gen11_dsi_te_interrupt_handler':
>> drivers/gpu/drm/i915/i915_irq.c:2252:24: error: 'DSI1_TE' undeclared (first use in this function)
port = ((te_trigger & DSI1_TE && val) || (te_trigger & DSI0_TE)) ?
^~~~~~~
drivers/gpu/drm/i915/i915_irq.c:2252:24: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/gpu/drm/i915/i915_irq.c:2252:57: error: 'DSI0_TE' undeclared (first use in this function); did you mean 'DSI1_TE'?
port = ((te_trigger & DSI1_TE && val) || (te_trigger & DSI0_TE)) ?
^~~~~~~
DSI1_TE
In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
from drivers/gpu/drm/i915/i915_irq.c:39:
>> drivers/gpu/drm/i915/i915_irq.c:2283:18: error: implicit declaration of function 'DSI_INTR_IDENT_REG'; did you mean 'GEN11_INTR_IDENTITY_REG'? [-Werror=implicit-function-declaration]
tmp = I915_READ(DSI_INTR_IDENT_REG(port));
^
drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
^~~~~~~~~~~
drivers/gpu/drm/i915/i915_irq.c:2283:8: note: in expansion of macro 'I915_READ'
tmp = I915_READ(DSI_INTR_IDENT_REG(port));
^~~~~~~~~
drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
#define I915_READ(reg__) __I915_REG_OP(read, dev_priv, (reg__))
^
drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
^~~~~~~~~~~
drivers/gpu/drm/i915/i915_irq.c:2283:8: note: in expansion of macro 'I915_READ'
tmp = I915_READ(DSI_INTR_IDENT_REG(port));
^~~~~~~~~
In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
from drivers/gpu/drm/i915/i915_drv.h:81,
from drivers/gpu/drm/i915/display/intel_display_types.h:46,
from drivers/gpu/drm/i915/i915_irq.c:39:
drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
^
drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
__uncore_read(read, 32, l, true)
^~~~~~~~~~~~~
In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
from drivers/gpu/drm/i915/i915_irq.c:39:
drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'
#define I915_WRITE(reg__, val__) __I915_REG_OP(write, dev_priv, (reg__), (val__))
^
drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
^~~~~~~~~~~
drivers/gpu/drm/i915/i915_irq.c:2284:2: note: in expansion of macro 'I915_WRITE'
I915_WRITE(DSI_INTR_IDENT_REG(port), tmp);
^~~~~~~~~~
In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
from drivers/gpu/drm/i915/i915_drv.h:81,
from drivers/gpu/drm/i915/display/intel_display_types.h:46,
from drivers/gpu/drm/i915/i915_irq.c:39:
drivers/gpu/drm/i915/intel_uncore.h:294:20: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
static inline void intel_uncore_##name__(struct intel_uncore *uncore, \
^
drivers/gpu/drm/i915/intel_uncore.h:308:1: note: in expansion of macro '__uncore_write'
__uncore_write(write, 32, l, true)
^~~~~~~~~~~~~~
drivers/gpu/drm/i915/i915_irq.c: In function 'gen8_de_irq_handler':
drivers/gpu/drm/i915/i915_irq.c:2354:23: error: 'DSI0_TE' undeclared (first use in this function)
tmp_mask = iir & (DSI0_TE | DSI1_TE);
^~~~~~~
drivers/gpu/drm/i915/i915_irq.c:2354:33: error: 'DSI1_TE' undeclared (first use in this function); did you mean 'DSI0_TE'?
tmp_mask = iir & (DSI0_TE | DSI1_TE);
^~~~~~~
DSI0_TE
In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
from drivers/gpu/drm/i915/i915_irq.c:39:
drivers/gpu/drm/i915/i915_irq.c: In function 'gen11_dsi_configure_te':
drivers/gpu/drm/i915/i915_irq.c:2654:19: error: implicit declaration of function 'DSI_INTR_MASK_REG'; did you mean 'TSFS_INTR_MASK'? [-Werror=implicit-function-declaration]
tmp = I915_READ(DSI_INTR_MASK_REG(port));
^
drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
^~~~~~~~~~~
drivers/gpu/drm/i915/i915_irq.c:2654:9: note: in expansion of macro 'I915_READ'
tmp = I915_READ(DSI_INTR_MASK_REG(port));
^~~~~~~~~
drivers/gpu/drm/i915/i915_drv.h:1981:57: error: incompatible type for argument 2 of 'intel_uncore_read'
#define I915_READ(reg__) __I915_REG_OP(read, dev_priv, (reg__))
^
drivers/gpu/drm/i915/i915_drv.h:1979:45: note: in definition of macro '__I915_REG_OP'
intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
^~~~~~~~~~~
drivers/gpu/drm/i915/i915_irq.c:2654:9: note: in expansion of macro 'I915_READ'
tmp = I915_READ(DSI_INTR_MASK_REG(port));
^~~~~~~~~
In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:9:0,
from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
from drivers/gpu/drm/i915/i915_drv.h:81,
from drivers/gpu/drm/i915/display/intel_display_types.h:46,
from drivers/gpu/drm/i915/i915_irq.c:39:
drivers/gpu/drm/i915/intel_uncore.h:287:22: note: expected 'i915_reg_t {aka struct <anonymous>}' but argument is of type 'int'
static inline u##x__ intel_uncore_##name__(struct intel_uncore *uncore, \
^
drivers/gpu/drm/i915/intel_uncore.h:302:1: note: in expansion of macro '__uncore_read'
__uncore_read(read, 32, l, true)
^~~~~~~~~~~~~
drivers/gpu/drm/i915/i915_irq.c:2656:11: error: 'DSI_TE_EVENT' undeclared (first use in this function); did you mean 'DEFINE_EVENT'?
tmp &= ~DSI_TE_EVENT;
^~~~~~~~~~~~
DEFINE_EVENT
In file included from drivers/gpu/drm/i915/display/intel_display_types.h:46:0,
from drivers/gpu/drm/i915/i915_irq.c:39:
drivers/gpu/drm/i915/i915_drv.h:1982:65: error: incompatible type for argument 2 of 'intel_uncore_write'
vim +/DSI1_TE +2252 drivers/gpu/drm/i915/i915_irq.c
2232
2233 void gen11_dsi_te_interrupt_handler(struct drm_i915_private *dev_priv,
2234 u32 te_trigger)
2235 {
2236 enum pipe pipe = INVALID_PIPE;
2237 enum transcoder dsi_trans;
2238 enum port port;
2239 u32 val, tmp;
2240
2241 /*
2242 * Incase of dual link, TE comes from DSI_1
2243 * this is to check if dual link is enabled
2244 */
2245 val = I915_READ(TRANS_DDI_FUNC_CTL2(TRANSCODER_DSI_0));
2246 val &= PORT_SYNC_MODE_ENABLE;
2247
2248 /*
2249 * if dual link is enabled, then read DSI_0
2250 * transcoder registers
2251 */
> 2252 port = ((te_trigger & DSI1_TE && val) || (te_trigger & DSI0_TE)) ?
2253 PORT_A : PORT_B;
2254 dsi_trans = (port == PORT_A) ? TRANSCODER_DSI_0 : TRANSCODER_DSI_1;
2255
2256 /* Check if DSI configured in command mode */
2257 val = I915_READ(DSI_TRANS_FUNC_CONF(dsi_trans));
2258 val = (val & OP_MODE_MASK) >> 28;
2259
2260 if (val) {
2261 DRM_ERROR("DSI trancoder not configured in command mode\n");
2262 return;
2263 }
2264
2265 /* Get PIPE for handling VBLANK event */
2266 val = I915_READ(TRANS_DDI_FUNC_CTL(dsi_trans));
2267 switch (val & TRANS_DDI_EDP_INPUT_MASK) {
2268 case TRANS_DDI_EDP_INPUT_A_ON:
2269 pipe = PIPE_A;
2270 break;
2271 case TRANS_DDI_EDP_INPUT_B_ONOFF:
2272 pipe = PIPE_B;
2273 break;
2274 case TRANS_DDI_EDP_INPUT_C_ONOFF:
2275 pipe = PIPE_C;
2276 break;
2277 default:
2278 DRM_ERROR("Invalid PIPE\n");
2279 }
2280
2281 /* clear TE in dsi IIR */
2282 port = (te_trigger & DSI1_TE) ? PORT_B : PORT_A;
> 2283 tmp = I915_READ(DSI_INTR_IDENT_REG(port));
2284 I915_WRITE(DSI_INTR_IDENT_REG(port), tmp);
2285
2286 drm_handle_vblank(&dev_priv->drm, pipe);
2287 }
2288
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 28187 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/intel-gfx/attachments/20191120/c37c253c/attachment-0001.gz>
More information about the Intel-gfx
mailing list