Re: [PATCH v1 1/1] drm/panel: ili9341: Remove duplicate code

2024-09-02 Thread Maxime Ripard
On Tue, 13 Aug 2024 12:12:58 +0300, Andy Shevchenko wrote:
> Remove duplicate code that is handled by tinyDRM,
> i.e. drivers/gpu/drm/tiny/ili9341.c.
> 
> 

Applied to misc/kernel.git (drm-misc-next).

Thanks!
Maxime


[PATCH v1 1/1] drm/panel: ili9341: Remove duplicate code

2024-08-13 Thread Andy Shevchenko
Remove duplicate code that is handled by tinyDRM,
i.e. drivers/gpu/drm/tiny/ili9341.c.

Suggested-by: Maxime Ripard 
Signed-off-by: Andy Shevchenko 
---
 drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 210 +--
 1 file changed, 3 insertions(+), 207 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9341.c 
b/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
index 775d5d5e828c..ae4062bb3249 100644
--- a/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
+++ b/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
@@ -13,9 +13,6 @@
  * Derived from drivers/drm/gpu/panel/panel-ilitek-ili9322.c
  * the reuse of DBI abstraction part referred from Linus's patch
  * "drm/panel: s6e63m0: Switch to DBI abstraction for SPI"
- *
- * For only-dbi part, copy from David's code (drm/tiny/ili9341.c)
- * Copyright 2018 David Lechner 
  */
 
 #include 
@@ -486,176 +483,6 @@ static const struct drm_panel_funcs ili9341_dpi_funcs = {
.get_modes = ili9341_dpi_get_modes,
 };
 
-static void ili9341_dbi_enable(struct drm_simple_display_pipe *pipe,
-  struct drm_crtc_state *crtc_state,
-  struct drm_plane_state *plane_state)
-{
-   struct mipi_dbi_dev *dbidev = drm_to_mipi_dbi_dev(pipe->crtc.dev);
-   struct mipi_dbi *dbi = &dbidev->dbi;
-   u8 addr_mode;
-   int ret, idx;
-
-   if (!drm_dev_enter(pipe->crtc.dev, &idx))
-   return;
-
-   ret = mipi_dbi_poweron_conditional_reset(dbidev);
-   if (ret < 0)
-   goto out_exit;
-   if (ret == 1)
-   goto out_enable;
-
-   mipi_dbi_command(dbi, MIPI_DCS_SET_DISPLAY_OFF);
-
-   mipi_dbi_command(dbi, ILI9341_POWERB, 0x00, 0xc1, 0x30);
-   mipi_dbi_command(dbi, ILI9341_POWER_SEQ, 0x64, 0x03, 0x12, 0x81);
-   mipi_dbi_command(dbi, ILI9341_DTCA, 0x85, 0x00, 0x78);
-   mipi_dbi_command(dbi, ILI9341_POWERA, 0x39, 0x2c, 0x00, 0x34, 0x02);
-   mipi_dbi_command(dbi, ILI9341_PRC, ILI9341_DBI_PRC_NORMAL);
-   mipi_dbi_command(dbi, ILI9341_DTCB, 0x00, 0x00);
-
-   /* Power Control */
-   mipi_dbi_command(dbi, ILI9341_POWER1, ILI9341_DBI_VCOMH_4P6V);
-   mipi_dbi_command(dbi, ILI9341_POWER2, ILI9341_DBI_PWR_2_DEFAULT);
-   /* VCOM */
-   mipi_dbi_command(dbi, ILI9341_VCOM1, ILI9341_DBI_VCOM_1_VMH_4P25V,
-ILI9341_DBI_VCOM_1_VML_1P5V);
-   mipi_dbi_command(dbi, ILI9341_VCOM2, ILI9341_DBI_VCOM_2_DEC_58);
-
-   /* Memory Access Control */
-   mipi_dbi_command(dbi, MIPI_DCS_SET_PIXEL_FORMAT,
-MIPI_DCS_PIXEL_FMT_16BIT);
-
-   /* Frame Rate */
-   mipi_dbi_command(dbi, ILI9341_FRC, ILI9341_DBI_FRC_DIVA & 0x03,
-ILI9341_DBI_FRC_RTNA & 0x1f);
-
-   /* Gamma */
-   mipi_dbi_command(dbi, ILI9341_3GAMMA_EN, 0x00);
-   mipi_dbi_command(dbi, MIPI_DCS_SET_GAMMA_CURVE, ILI9341_GAMMA_CURVE_1);
-   mipi_dbi_command(dbi, ILI9341_PGAMMA,
-0x0f, 0x31, 0x2b, 0x0c, 0x0e, 0x08, 0x4e, 0xf1,
-0x37, 0x07, 0x10, 0x03, 0x0e, 0x09, 0x00);
-   mipi_dbi_command(dbi, ILI9341_NGAMMA,
-0x00, 0x0e, 0x14, 0x03, 0x11, 0x07, 0x31, 0xc1,
-0x48, 0x08, 0x0f, 0x0c, 0x31, 0x36, 0x0f);
-
-   /* DDRAM */
-   mipi_dbi_command(dbi, ILI9341_ETMOD, ILI9341_DBI_EMS_GAS |
-ILI9341_DBI_EMS_DTS |
-ILI9341_DBI_EMS_GON);
-
-   /* Display */
-   mipi_dbi_command(dbi, ILI9341_DFC, 0x08, 0x82, 0x27, 0x00);
-   mipi_dbi_command(dbi, MIPI_DCS_EXIT_SLEEP_MODE);
-   msleep(100);
-
-   mipi_dbi_command(dbi, MIPI_DCS_SET_DISPLAY_ON);
-   msleep(100);
-
-out_enable:
-   switch (dbidev->rotation) {
-   default:
-   addr_mode = ILI9341_MADCTL_MX;
-   break;
-   case 90:
-   addr_mode = ILI9341_MADCTL_MV;
-   break;
-   case 180:
-   addr_mode = ILI9341_MADCTL_MY;
-   break;
-   case 270:
-   addr_mode = ILI9341_MADCTL_MV | ILI9341_MADCTL_MY |
-   ILI9341_MADCTL_MX;
-   break;
-   }
-
-   addr_mode |= ILI9341_MADCTL_BGR;
-   mipi_dbi_command(dbi, MIPI_DCS_SET_ADDRESS_MODE, addr_mode);
-   mipi_dbi_enable_flush(dbidev, crtc_state, plane_state);
-   drm_info(&dbidev->drm, "Initialized display serial interface\n");
-out_exit:
-   drm_dev_exit(idx);
-}
-
-static const struct drm_simple_display_pipe_funcs ili9341_dbi_funcs = {
-   DRM_MIPI_DBI_SIMPLE_DISPLAY_PIPE_FUNCS(ili9341_dbi_enable),
-};
-
-static const struct drm_display_mode ili9341_dbi_mode = {
-   DRM_SIMPLE_MODE(240, 320, 37, 49),
-};
-
-DEFINE_DRM_GEM_DMA_FOPS(ili9341_dbi_fops);
-
-static struct drm_driver ili9341_dbi_driver = {
-   .driver_features= DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
-   .fops   = &ili9341_dbi_fops,
-   DRM_GEM_DMA_