[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