ARM: omap1: move lcd_dma code into omapfb driver
authorArnd Bergmann <arnd@arndb.de>
Mon, 5 Aug 2019 21:15:37 +0000 (23:15 +0200)
committerArnd Bergmann <arnd@arndb.de>
Thu, 21 Apr 2022 13:00:45 +0000 (15:00 +0200)
The omapfb driver is split into platform specific code for omap1, and
driver code that is also specific to omap1.

Moving both parts into the driver directory simplifies the structure
and avoids the dependency on certain omap machine header files.

As mach/lcd_dma.h can not be included from include/linux/omap-dma.h
any more now, move the omap_lcd_dma_running() declaration into the
omap-dma header, which matches where it is defined.

Acked-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
arch/arm/mach-omap1/Makefile
arch/arm/mach-omap1/include/mach/lcdc.h [deleted file]
drivers/video/fbdev/Makefile
drivers/video/fbdev/omap/Makefile
drivers/video/fbdev/omap/lcd_dma.c [moved from arch/arm/mach-omap1/lcd_dma.c with 99% similarity]
drivers/video/fbdev/omap/lcd_dma.h [moved from arch/arm/mach-omap1/include/mach/lcd_dma.h with 98% similarity]
drivers/video/fbdev/omap/lcdc.c
drivers/video/fbdev/omap/lcdc.h
drivers/video/fbdev/omap/sossi.c
include/linux/omap-dma.h

index c757a52..450bbf5 100644 (file)
@@ -57,7 +57,3 @@ obj-$(CONFIG_ARCH_OMAP730)            += gpio7xx.o
 obj-$(CONFIG_ARCH_OMAP850)             += gpio7xx.o
 obj-$(CONFIG_ARCH_OMAP15XX)            += gpio15xx.o
 obj-$(CONFIG_ARCH_OMAP16XX)            += gpio16xx.o
-
-ifneq ($(CONFIG_FB_OMAP),)
-obj-y += lcd_dma.o
-endif
diff --git a/arch/arm/mach-omap1/include/mach/lcdc.h b/arch/arm/mach-omap1/include/mach/lcdc.h
deleted file mode 100644 (file)
index 7152db1..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-/*
- * arch/arm/mach-omap1/include/mach/lcdc.h
- *
- * Extracted from drivers/video/omap/lcdc.c
- * Copyright (C) 2004 Nokia Corporation
- * Author: Imre Deak <imre.deak@nokia.com>
- */
-#ifndef __MACH_LCDC_H__
-#define __MACH_LCDC_H__
-
-#define OMAP_LCDC_BASE                 0xfffec000
-#define OMAP_LCDC_SIZE                 256
-#define OMAP_LCDC_IRQ                  INT_LCD_CTRL
-
-#define OMAP_LCDC_CONTROL              (OMAP_LCDC_BASE + 0x00)
-#define OMAP_LCDC_TIMING0              (OMAP_LCDC_BASE + 0x04)
-#define OMAP_LCDC_TIMING1              (OMAP_LCDC_BASE + 0x08)
-#define OMAP_LCDC_TIMING2              (OMAP_LCDC_BASE + 0x0c)
-#define OMAP_LCDC_STATUS               (OMAP_LCDC_BASE + 0x10)
-#define OMAP_LCDC_SUBPANEL             (OMAP_LCDC_BASE + 0x14)
-#define OMAP_LCDC_LINE_INT             (OMAP_LCDC_BASE + 0x18)
-#define OMAP_LCDC_DISPLAY_STATUS       (OMAP_LCDC_BASE + 0x1c)
-
-#define OMAP_LCDC_STAT_DONE            (1 << 0)
-#define OMAP_LCDC_STAT_VSYNC           (1 << 1)
-#define OMAP_LCDC_STAT_SYNC_LOST       (1 << 2)
-#define OMAP_LCDC_STAT_ABC             (1 << 3)
-#define OMAP_LCDC_STAT_LINE_INT                (1 << 4)
-#define OMAP_LCDC_STAT_FUF             (1 << 5)
-#define OMAP_LCDC_STAT_LOADED_PALETTE  (1 << 6)
-
-#define OMAP_LCDC_CTRL_LCD_EN          (1 << 0)
-#define OMAP_LCDC_CTRL_LCD_TFT         (1 << 7)
-#define OMAP_LCDC_CTRL_LINE_IRQ_CLR_SEL        (1 << 10)
-
-#define OMAP_LCDC_IRQ_VSYNC            (1 << 2)
-#define OMAP_LCDC_IRQ_DONE             (1 << 3)
-#define OMAP_LCDC_IRQ_LOADED_PALETTE   (1 << 4)
-#define OMAP_LCDC_IRQ_LINE_NIRQ                (1 << 5)
-#define OMAP_LCDC_IRQ_LINE             (1 << 6)
-#define OMAP_LCDC_IRQ_MASK             (((1 << 5) - 1) << 2)
-
-#endif /* __MACH_LCDC_H__ */
index 477b962..7795c41 100644 (file)
@@ -110,7 +110,7 @@ obj-$(CONFIG_FB_UDL)                  += udlfb.o
 obj-$(CONFIG_FB_SMSCUFX)         += smscufx.o
 obj-$(CONFIG_FB_XILINX)           += xilinxfb.o
 obj-$(CONFIG_FB_SH_MOBILE_LCDC)          += sh_mobile_lcdcfb.o
-obj-$(CONFIG_FB_OMAP)             += omap/
+obj-y                            += omap/
 obj-y                             += omap2/
 obj-$(CONFIG_XEN_FBDEV_FRONTEND)  += xen-fbfront.o
 obj-$(CONFIG_FB_CARMINE)          += carminefb.o
index daaa73a..b88e02f 100644 (file)
@@ -5,6 +5,11 @@
 
 obj-$(CONFIG_FB_OMAP) += omapfb.o
 
+ifdef CONFIG_FB_OMAP
+# must be built-in
+obj-y += lcd_dma.o
+endif
+
 objs-yy := omapfb_main.o lcdc.o
 
 objs-y$(CONFIG_FB_OMAP_LCDC_EXTERNAL) += sossi.o
similarity index 99%
rename from arch/arm/mach-omap1/lcd_dma.c
rename to drivers/video/fbdev/omap/lcd_dma.c
index a72ac0c..867a63c 100644 (file)
@@ -26,7 +26,9 @@
 #include <linux/omap-dma.h>
 
 #include <mach/hardware.h>
-#include <mach/lcdc.h>
+
+#include "lcdc.h"
+#include "lcd_dma.h"
 
 int omap_lcd_dma_running(void)
 {
similarity index 98%
rename from arch/arm/mach-omap1/include/mach/lcd_dma.h
rename to drivers/video/fbdev/omap/lcd_dma.h
index 1a3c0cf..1b47801 100644 (file)
@@ -60,6 +60,4 @@ extern void omap_set_lcd_dma_b1_vxres(unsigned long vxres);
 extern void omap_set_lcd_dma_b1_mirror(int mirror);
 extern void omap_set_lcd_dma_b1_scale(unsigned int xscale, unsigned int yscale);
 
-extern int omap_lcd_dma_running(void);
-
 #endif /* __MACH_OMAP1_LCD_DMA_H__ */
index 7317c9a..d9a23f6 100644 (file)
@@ -17,7 +17,6 @@
 #include <linux/clk.h>
 #include <linux/gfp.h>
 
-#include <mach/lcdc.h>
 #include <linux/omap-dma.h>
 
 #include <asm/mach-types.h>
@@ -25,6 +24,7 @@
 #include "omapfb.h"
 
 #include "lcdc.h"
+#include "lcd_dma.h"
 
 #define MODULE_NAME                    "lcdc"
 
index 8a7607d..cbbfd9b 100644 (file)
@@ -1,6 +1,41 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 #ifndef LCDC_H
 #define LCDC_H
+/*
+ * Copyright (C) 2004 Nokia Corporation
+ * Author: Imre Deak <imre.deak@nokia.com>
+ */
+#define OMAP_LCDC_BASE                 0xfffec000
+#define OMAP_LCDC_SIZE                 256
+#define OMAP_LCDC_IRQ                  INT_LCD_CTRL
+
+#define OMAP_LCDC_CONTROL              (OMAP_LCDC_BASE + 0x00)
+#define OMAP_LCDC_TIMING0              (OMAP_LCDC_BASE + 0x04)
+#define OMAP_LCDC_TIMING1              (OMAP_LCDC_BASE + 0x08)
+#define OMAP_LCDC_TIMING2              (OMAP_LCDC_BASE + 0x0c)
+#define OMAP_LCDC_STATUS               (OMAP_LCDC_BASE + 0x10)
+#define OMAP_LCDC_SUBPANEL             (OMAP_LCDC_BASE + 0x14)
+#define OMAP_LCDC_LINE_INT             (OMAP_LCDC_BASE + 0x18)
+#define OMAP_LCDC_DISPLAY_STATUS       (OMAP_LCDC_BASE + 0x1c)
+
+#define OMAP_LCDC_STAT_DONE            (1 << 0)
+#define OMAP_LCDC_STAT_VSYNC           (1 << 1)
+#define OMAP_LCDC_STAT_SYNC_LOST       (1 << 2)
+#define OMAP_LCDC_STAT_ABC             (1 << 3)
+#define OMAP_LCDC_STAT_LINE_INT                (1 << 4)
+#define OMAP_LCDC_STAT_FUF             (1 << 5)
+#define OMAP_LCDC_STAT_LOADED_PALETTE  (1 << 6)
+
+#define OMAP_LCDC_CTRL_LCD_EN          (1 << 0)
+#define OMAP_LCDC_CTRL_LCD_TFT         (1 << 7)
+#define OMAP_LCDC_CTRL_LINE_IRQ_CLR_SEL        (1 << 10)
+
+#define OMAP_LCDC_IRQ_VSYNC            (1 << 2)
+#define OMAP_LCDC_IRQ_DONE             (1 << 3)
+#define OMAP_LCDC_IRQ_LOADED_PALETTE   (1 << 4)
+#define OMAP_LCDC_IRQ_LINE_NIRQ                (1 << 5)
+#define OMAP_LCDC_IRQ_LINE             (1 << 6)
+#define OMAP_LCDC_IRQ_MASK             (((1 << 5) - 1) << 2)
 
 int omap_lcdc_set_dma_callback(void (*callback)(void *data), void *data);
 void omap_lcdc_free_dma_callback(void);
index 80ac67f..d3c755b 100644 (file)
@@ -15,6 +15,7 @@
 #include <linux/omap-dma.h>
 
 #include "omapfb.h"
+#include "lcd_dma.h"
 #include "lcdc.h"
 
 #define MODULE_NAME            "omapfb-sossi"
index 5c5c93a..441f5f0 100644 (file)
@@ -328,8 +328,8 @@ extern dma_addr_t omap_get_dma_dst_pos(int lch);
 extern int omap_get_dma_active_status(int lch);
 extern int omap_dma_running(void);
 
-#if defined(CONFIG_ARCH_OMAP1) && IS_ENABLED(CONFIG_FB_OMAP)
-#include <mach/lcd_dma.h>
+#if IS_ENABLED(CONFIG_FB_OMAP)
+extern int omap_lcd_dma_running(void);
 #else
 static inline int omap_lcd_dma_running(void)
 {