Hi Philippe,

I love your patch! Yet something to improve:

[auto build test ERROR on drm/drm-next]
[also build test ERROR on v4.15 next-20180205]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/Philippe-Cornu/drm-stm-ltdc-add-non-alpha-color-formats/20180201-211736
base:   git://people.freedesktop.org/~airlied/linux.git drm-next
config: arm-allmodconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=arm 

All errors (new ones prefixed by >>):

   drivers/gpu//drm/stm/ltdc.c: In function 'ltdc_plane_atomic_update':
>> drivers/gpu//drm/stm/ltdc.c:661:17: error: 'const struct drm_format_info' 
>> has no member named 'has_alpha'
     if (!fb->format->has_alpha)
                    ^~

vim +661 drivers/gpu//drm/stm/ltdc.c

   587  
   588  static void ltdc_plane_atomic_update(struct drm_plane *plane,
   589                                       struct drm_plane_state *oldstate)
   590  {
   591          struct ltdc_device *ldev = plane_to_ltdc(plane);
   592          struct drm_plane_state *state = plane->state;
   593          struct drm_framebuffer *fb = state->fb;
   594          u32 lofs = plane->index * LAY_OFS;
   595          u32 x0 = state->crtc_x;
   596          u32 x1 = state->crtc_x + state->crtc_w - 1;
   597          u32 y0 = state->crtc_y;
   598          u32 y1 = state->crtc_y + state->crtc_h - 1;
   599          u32 src_x, src_y, src_w, src_h;
   600          u32 val, pitch_in_bytes, line_length, paddr, ahbp, avbp, bpcr;
   601          enum ltdc_pix_fmt pf;
   602  
   603          if (!state->crtc || !fb) {
   604                  DRM_DEBUG_DRIVER("fb or crtc NULL");
   605                  return;
   606          }
   607  
   608          /* convert src_ from 16:16 format */
   609          src_x = state->src_x >> 16;
   610          src_y = state->src_y >> 16;
   611          src_w = state->src_w >> 16;
   612          src_h = state->src_h >> 16;
   613  
   614          DRM_DEBUG_DRIVER("plane:%d fb:%d (%dx%d)@(%d,%d) -> 
(%dx%d)@(%d,%d)\n",
   615                           plane->base.id, fb->base.id,
   616                           src_w, src_h, src_x, src_y,
   617                           state->crtc_w, state->crtc_h,
   618                           state->crtc_x, state->crtc_y);
   619  
   620          bpcr = reg_read(ldev->regs, LTDC_BPCR);
   621          ahbp = (bpcr & BPCR_AHBP) >> 16;
   622          avbp = bpcr & BPCR_AVBP;
   623  
   624          /* Configures the horizontal start and stop position */
   625          val = ((x1 + 1 + ahbp) << 16) + (x0 + 1 + ahbp);
   626          reg_update_bits(ldev->regs, LTDC_L1WHPCR + lofs,
   627                          LXWHPCR_WHSTPOS | LXWHPCR_WHSPPOS, val);
   628  
   629          /* Configures the vertical start and stop position */
   630          val = ((y1 + 1 + avbp) << 16) + (y0 + 1 + avbp);
   631          reg_update_bits(ldev->regs, LTDC_L1WVPCR + lofs,
   632                          LXWVPCR_WVSTPOS | LXWVPCR_WVSPPOS, val);
   633  
   634          /* Specifies the pixel format */
   635          pf = to_ltdc_pixelformat(fb->format->format);
   636          for (val = 0; val < NB_PF; val++)
   637                  if (ldev->caps.pix_fmt_hw[val] == pf)
   638                          break;
   639  
   640          if (val == NB_PF) {
   641                  DRM_ERROR("Pixel format %.4s not supported\n",
   642                            (char *)&fb->format->format);
   643                  val = 0;        /* set by default ARGB 32 bits */
   644          }
   645          reg_update_bits(ldev->regs, LTDC_L1PFCR + lofs, LXPFCR_PF, val);
   646  
   647          /* Configures the color frame buffer pitch in bytes & line 
length */
   648          pitch_in_bytes = fb->pitches[0];
   649          line_length = drm_format_plane_cpp(fb->format->format, 0) *
   650                        (x1 - x0 + 1) + (ldev->caps.bus_width >> 3) - 1;
   651          val = ((pitch_in_bytes << 16) | line_length);
   652          reg_update_bits(ldev->regs, LTDC_L1CFBLR + lofs,
   653                          LXCFBLR_CFBLL | LXCFBLR_CFBP, val);
   654  
   655          /* Specifies the constant alpha value */
   656          val = CONSTA_MAX;
   657          reg_update_bits(ldev->regs, LTDC_L1CACR + lofs, LXCACR_CONSTA, 
val);
   658  
   659          /* Specifies the blending factors */
   660          val = BF1_PAXCA | BF2_1PAXCA;
 > 661          if (!fb->format->has_alpha)
   662                  val = BF1_CA | BF2_1CA;
   663  
   664          reg_update_bits(ldev->regs, LTDC_L1BFCR + lofs,
   665                          LXBFCR_BF2 | LXBFCR_BF1, val);
   666  
   667          /* Configures the frame buffer line number */
   668          val = y1 - y0 + 1;
   669          reg_update_bits(ldev->regs, LTDC_L1CFBLNR + lofs, 
LXCFBLNR_CFBLN, val);
   670  
   671          /* Sets the FB address */
   672          paddr = (u32)drm_fb_cma_get_gem_addr(fb, state, 0);
   673  
   674          DRM_DEBUG_DRIVER("fb: phys 0x%08x", paddr);
   675          reg_write(ldev->regs, LTDC_L1CFBAR + lofs, paddr);
   676  
   677          /* Enable layer and CLUT if needed */
   678          val = fb->format->format == DRM_FORMAT_C8 ? LXCR_CLUTEN : 0;
   679          val |= LXCR_LEN;
   680          reg_update_bits(ldev->regs, LTDC_L1CR + lofs,
   681                          LXCR_LEN | LXCR_CLUTEN, val);
   682  
   683          mutex_lock(&ldev->err_lock);
   684          if (ldev->error_status & ISR_FUIF) {
   685                  DRM_DEBUG_DRIVER("Fifo underrun\n");
   686                  ldev->error_status &= ~ISR_FUIF;
   687          }
   688          if (ldev->error_status & ISR_TERRIF) {
   689                  DRM_DEBUG_DRIVER("Transfer error\n");
   690                  ldev->error_status &= ~ISR_TERRIF;
   691          }
   692          mutex_unlock(&ldev->err_lock);
   693  }
   694  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to