Lines Matching +full:irq +full:- +full:mirror
1 // SPDX-License-Identifier: GPL-2.0-only
3 * linux/arch/arm/mach-omap1/lcd_dma.c
5 * Extracted from arch/arm/plat-omap/dma.c
6 * Copyright (C) 2003 - 2008 Nokia Corporation
11 * OMAP2/3 support Copyright (C) 2004-2007 Texas Instruments, Inc.
13 * Some functions based on earlier dma-omap.c Copyright (C) 2001 RidgeRun, Inc.
16 * Added OMAP4 support - Santosh Shilimkar <santosh.shilimkar@ti.com>
26 #include <linux/omap-dma.h>
28 #include <linux/soc/ti/omap1-soc.h>
29 #include <linux/soc/ti/omap1-io.h>
62 int mirror;
102 void omap_set_lcd_dma_b1_mirror(int mirror)
105 printk(KERN_ERR "DMA mirror is not supported in 1510 mode\n");
108 lcd_dma.mirror = mirror;
165 #define PIXSTEP(sx, sy, dx, dy) (PIXADDR(dx, dy) - PIXADDR(sx, sy) - es + 1)
169 if (!lcd_dma.mirror) {
171 bottom = PIXADDR(lcd_dma.xres - 1, lcd_dma.yres - 1);
178 fi = PIXSTEP(lcd_dma.xres - 1, 0, 0, 1);
180 top = PIXADDR(lcd_dma.xres - 1, 0);
181 bottom = PIXADDR(0, lcd_dma.yres - 1);
183 fi = PIXSTEP(0, 0, lcd_dma.xres - 1, 1);
189 if (!lcd_dma.mirror) {
190 top = PIXADDR(0, lcd_dma.yres - 1);
191 bottom = PIXADDR(lcd_dma.xres - 1, 0);
193 fi = PIXSTEP(0, 0, 1, lcd_dma.yres - 1);
195 top = PIXADDR(lcd_dma.xres - 1, lcd_dma.yres - 1);
198 fi = PIXSTEP(1, 0, 0, lcd_dma.yres - 1);
204 if (!lcd_dma.mirror) {
205 top = PIXADDR(lcd_dma.xres - 1, lcd_dma.yres - 1);
208 fi = PIXSTEP(0, 1, lcd_dma.xres - 1, 0);
210 top = PIXADDR(0, lcd_dma.yres - 1);
211 bottom = PIXADDR(lcd_dma.xres - 1, 0);
213 fi = PIXSTEP(lcd_dma.xres - 1, 1, 0, 0);
219 if (!lcd_dma.mirror) {
220 top = PIXADDR(lcd_dma.xres - 1, 0);
221 bottom = PIXADDR(0, lcd_dma.yres - 1);
223 fi = PIXSTEP(1, lcd_dma.yres - 1, 0, 0);
226 bottom = PIXADDR(lcd_dma.xres - 1, lcd_dma.yres - 1);
228 fi = PIXSTEP(0, lcd_dma.yres - 1, 1, 0);
270 if (!(lcd_dma.rotate || lcd_dma.mirror ||
275 /* Set the double-indexed addressing mode */
284 static irqreturn_t lcd_dma_irq_handler(int irq, void *dev_id)
290 printk(KERN_WARNING "Spurious LCD DMA IRQ\n");
293 /* Ack the IRQ */
311 return -EBUSY;
321 lcd_dma.mirror = 0;
422 return -ENODEV;
438 pr_err("unable to request IRQ for LCD DMA (error %d)\n", r);