Hi David,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v4.17-rc6]
[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/David-Lechner/drm-tinydrm-new-dirver-for-ILI9341-displays/20180527-182036
config: i386-allmodconfig (attached as .config)
compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

   drivers/gpu/drm/tinydrm/ili9341.c: In function 'yx240qv29_enable':
>> drivers/gpu/drm/tinydrm/ili9341.c:128:2: error: too many arguments to 
>> function 'mipi_dbi_enable_flush'
     mipi_dbi_enable_flush(mipi, crtc_state, plane_state);
     ^~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/gpu/drm/tinydrm/ili9341.c:21:0:
   include/drm/tinydrm/mipi-dbi.h:70:6: note: declared here
    void mipi_dbi_enable_flush(struct mipi_dbi *mipi);
         ^~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/tinydrm/ili9341.c: At top level:
>> drivers/gpu/drm/tinydrm/ili9341.c:132:12: error: initialization from 
>> incompatible pointer type [-Werror=incompatible-pointer-types]
     .enable = yx240qv29_enable,
               ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/tinydrm/ili9341.c:132:12: note: (near initialization for 
'ili9341_pipe_funcs.enable')
>> drivers/gpu/drm/tinydrm/ili9341.c:135:16: error: 
>> 'drm_gem_fb_simple_display_pipe_prepare_fb' undeclared here (not in a 
>> function); did you mean 'tinydrm_display_pipe_prepare_fb'?
     .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb,
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   tinydrm_display_pipe_prepare_fb
   cc1: some warnings being treated as errors

vim +/mipi_dbi_enable_flush +128 drivers/gpu/drm/tinydrm/ili9341.c

    17  
    18  #include <drm/drm_fb_helper.h>
    19  #include <drm/drm_gem_framebuffer_helper.h>
    20  #include <drm/drm_modeset_helper.h>
  > 21  #include <drm/tinydrm/mipi-dbi.h>
    22  #include <drm/tinydrm/tinydrm-helpers.h>
    23  #include <video/mipi_display.h>
    24  
    25  #define ILI9341_FRMCTR1         0xb1
    26  #define ILI9341_DISCTRL         0xb6
    27  #define ILI9341_ETMOD           0xb7
    28  
    29  #define ILI9341_PWCTRL1         0xc0
    30  #define ILI9341_PWCTRL2         0xc1
    31  #define ILI9341_VMCTRL1         0xc5
    32  #define ILI9341_VMCTRL2         0xc7
    33  #define ILI9341_PWCTRLA         0xcb
    34  #define ILI9341_PWCTRLB         0xcf
    35  
    36  #define ILI9341_PGAMCTRL        0xe0
    37  #define ILI9341_NGAMCTRL        0xe1
    38  #define ILI9341_DTCTRLA         0xe8
    39  #define ILI9341_DTCTRLB         0xea
    40  #define ILI9341_PWRSEQ          0xed
    41  
    42  #define ILI9341_EN3GAM          0xf2
    43  #define ILI9341_PUMPCTRL        0xf7
    44  
    45  #define ILI9341_MADCTL_BGR      BIT(3)
    46  #define ILI9341_MADCTL_MV       BIT(5)
    47  #define ILI9341_MADCTL_MX       BIT(6)
    48  #define ILI9341_MADCTL_MY       BIT(7)
    49  
    50  static void yx240qv29_enable(struct drm_simple_display_pipe *pipe,
    51                               struct drm_crtc_state *crtc_state,
    52                               struct drm_plane_state *plane_state)
    53  {
    54          struct tinydrm_device *tdev = pipe_to_tinydrm(pipe);
    55          struct mipi_dbi *mipi = mipi_dbi_from_tinydrm(tdev);
    56          u8 addr_mode;
    57          int ret;
    58  
    59          DRM_DEBUG_KMS("\n");
    60  
    61          ret = mipi_dbi_poweron_conditional_reset(mipi);
    62          if (ret < 0)
    63                  return;
    64          if (ret == 1)
    65                  goto out_enable;
    66  
    67          mipi_dbi_command(mipi, MIPI_DCS_SET_DISPLAY_OFF);
    68  
    69          mipi_dbi_command(mipi, ILI9341_PWCTRLB, 0x00, 0xc1, 0x30);
    70          mipi_dbi_command(mipi, ILI9341_PWRSEQ, 0x64, 0x03, 0x12, 0x81);
    71          mipi_dbi_command(mipi, ILI9341_DTCTRLA, 0x85, 0x00, 0x78);
    72          mipi_dbi_command(mipi, ILI9341_PWCTRLA, 0x39, 0x2c, 0x00, 0x34, 
0x02);
    73          mipi_dbi_command(mipi, ILI9341_PUMPCTRL, 0x20);
    74          mipi_dbi_command(mipi, ILI9341_DTCTRLB, 0x00, 0x00);
    75  
    76          /* Power Control */
    77          mipi_dbi_command(mipi, ILI9341_PWCTRL1, 0x23);
    78          mipi_dbi_command(mipi, ILI9341_PWCTRL2, 0x10);
    79          /* VCOM */
    80          mipi_dbi_command(mipi, ILI9341_VMCTRL1, 0x3e, 0x28);
    81          mipi_dbi_command(mipi, ILI9341_VMCTRL2, 0x86);
    82  
    83          /* Memory Access Control */
    84          mipi_dbi_command(mipi, MIPI_DCS_SET_PIXEL_FORMAT, 
MIPI_DCS_PIXEL_FMT_16BIT);
    85  
    86          /* Frame Rate */
    87          mipi_dbi_command(mipi, ILI9341_FRMCTR1, 0x00, 0x1b);
    88  
    89          /* Gamma */
    90          mipi_dbi_command(mipi, ILI9341_EN3GAM, 0x00);
    91          mipi_dbi_command(mipi, MIPI_DCS_SET_GAMMA_CURVE, 0x01);
    92          mipi_dbi_command(mipi, ILI9341_PGAMCTRL,
    93                           0x0f, 0x31, 0x2b, 0x0c, 0x0e, 0x08, 0x4e, 0xf1,
    94                           0x37, 0x07, 0x10, 0x03, 0x0e, 0x09, 0x00);
    95          mipi_dbi_command(mipi, ILI9341_NGAMCTRL,
    96                           0x00, 0x0e, 0x14, 0x03, 0x11, 0x07, 0x31, 0xc1,
    97                           0x48, 0x08, 0x0f, 0x0c, 0x31, 0x36, 0x0f);
    98  
    99          /* DDRAM */
   100          mipi_dbi_command(mipi, ILI9341_ETMOD, 0x07);
   101  
   102          /* Display */
   103          mipi_dbi_command(mipi, ILI9341_DISCTRL, 0x08, 0x82, 0x27, 0x00);
   104          mipi_dbi_command(mipi, MIPI_DCS_EXIT_SLEEP_MODE);
   105          msleep(100);
   106  
   107          mipi_dbi_command(mipi, MIPI_DCS_SET_DISPLAY_ON);
   108          msleep(100);
   109  
   110  out_enable:
   111          switch (mipi->rotation) {
   112          default:
   113                  addr_mode = ILI9341_MADCTL_MX;
   114                  break;
   115          case 90:
   116                  addr_mode = ILI9341_MADCTL_MV;
   117                  break;
   118          case 180:
   119                  addr_mode = ILI9341_MADCTL_MY;
   120                  break;
   121          case 270:
   122                  addr_mode = ILI9341_MADCTL_MV | ILI9341_MADCTL_MY |
   123                              ILI9341_MADCTL_MX;
   124                  break;
   125          }
   126          addr_mode |= ILI9341_MADCTL_BGR;
   127          mipi_dbi_command(mipi, MIPI_DCS_SET_ADDRESS_MODE, addr_mode);
 > 128          mipi_dbi_enable_flush(mipi, crtc_state, plane_state);
   129  }
   130  
   131  static const struct drm_simple_display_pipe_funcs ili9341_pipe_funcs = {
 > 132          .enable = yx240qv29_enable,
   133          .disable = mipi_dbi_pipe_disable,
   134          .update = tinydrm_display_pipe_update,
 > 135          .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb,
   136  };
   137  

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

Attachment: .config.gz
Description: application/gzip

Reply via email to