input: touchscreen: mainstone: fix pxa2xx+pxa3xx configuration
authorArnd Bergmann <arnd@arndb.de>
Thu, 12 Sep 2019 08:56:20 +0000 (10:56 +0200)
committerArnd Bergmann <arnd@arndb.de>
Sat, 7 May 2022 20:55:48 +0000 (22:55 +0200)
There are two different ways of flushing the ac97 queue
in this driver, selected by a compile time option.

Change this to a runtime selection to make it work when both
are enabled.

Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>
Cc: linux-input@vger.kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
drivers/input/touchscreen/mainstone-wm97xx.c

index 8765510..618c808 100644 (file)
@@ -98,25 +98,20 @@ MODULE_PARM_DESC(ac97_touch_slot, "Touch screen data slot AC97 number");
 
 
 /* flush AC97 slot 5 FIFO on pxa machines */
-#ifdef CONFIG_PXA27x
-static void wm97xx_acc_pen_up(struct wm97xx *wm)
-{
-       schedule_timeout_uninterruptible(1);
-
-       while (MISR & (1 << 2))
-               MODR;
-}
-#else
 static void wm97xx_acc_pen_up(struct wm97xx *wm)
 {
        unsigned int count;
 
        schedule_timeout_uninterruptible(1);
 
-       for (count = 0; count < 16; count++)
-               MODR;
+       if (cpu_is_pxa27x()) {
+               while (MISR & (1 << 2))
+                       MODR;
+       } else if (cpu_is_pxa3xx()) {
+               for (count = 0; count < 16; count++)
+                       MODR;
+       }
 }
-#endif
 
 static int wm97xx_acc_pen_down(struct wm97xx *wm)
 {