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