]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 8 Oct 2014 09:40:17 +0000 (05:40 -0400)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 8 Oct 2014 09:40:17 +0000 (05:40 -0400)
Pull m68k updates from Geert Uytterhoeven:
 "Summary:
  - a fix for an intermittent crash in macsonic and hilkbd, marked for
    stable,
  - build fixes for uncommon configs.

  Note: "m68k: AMIGA_BUILTIN_SERIAL should depend on TTY" was also
  picked up by GregKH for his TTY/Serial patches tree"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
  m68k: Reformat arch/m68k/mm/hwtest.c
  m68k: Disable/restore interrupts in hwreg_present()/hwreg_write()
  m68k: AMIGA_BUILTIN_SERIAL should depend on TTY
  m68k: Add missing ioport_unmap()
  m68k/atari - stram: Add missing #include <linux/ioport.h>

arch/m68k/Kconfig.devices
arch/m68k/atari/stram.c
arch/m68k/include/asm/io_mm.h
arch/m68k/mm/hwtest.c

index 2a74777667fd4871e23d8a90d61ffe33ac73f326..42b6fcfc30ef5ae7089cf76c051118957ff5ee8d 100644 (file)
@@ -95,7 +95,7 @@ config ATARI_DSP56K
 
 config AMIGA_BUILTIN_SERIAL
        tristate "Amiga builtin serial support"
-       depends on AMIGA
+       depends on AMIGA && TTY
        help
          If you want to use your Amiga's built-in serial port in Linux,
          answer Y.
index 5f8cb5a234d934fdd1f0377dbb62cd8a21475b09..c83d66442612e0747f58ebe8d12e5b07065b7e20 100644 (file)
@@ -21,6 +21,7 @@
 #include <linux/mount.h>
 #include <linux/blkdev.h>
 #include <linux/module.h>
+#include <linux/ioport.h>
 
 #include <asm/setup.h>
 #include <asm/machdep.h>
index ffdf54f44bc63e8097d0930b37e63f4d87c4c510..8955b40a5dc4304a37c6ff88b328a333f1df13cd 100644 (file)
@@ -510,6 +510,13 @@ static inline void memcpy_toio(volatile void __iomem *dst, const void *src, int
  */
 #define xlate_dev_kmem_ptr(p)  p
 
-#define ioport_map(port, nr)   ((void __iomem *)(port))
+static inline void __iomem *ioport_map(unsigned long port, unsigned int nr)
+{
+       return (void __iomem *) port;
+}
+
+static inline void ioport_unmap(void __iomem *p)
+{
+}
 
 #endif /* _IO_H */
index 2c7dde3c6430fc3bbfe1de8d812253ee90173d3c..fb8be4dd38c448d75382bf5a32daf55eff0f4a03 100644 (file)
 
 #include <linux/module.h>
 
-int hwreg_present( volatile void *regp )
+int hwreg_present(volatile void *regp)
 {
-    int        ret = 0;
-    long       save_sp, save_vbr;
-    long       tmp_vectors[3];
+       int ret = 0;
+       unsigned long flags;
+       long save_sp, save_vbr;
+       long tmp_vectors[3];
 
-    __asm__ __volatile__
-       (       "movec  %/vbr,%2\n\t"
-               "movel  #Lberr1,%4@(8)\n\t"
-                "movec %4,%/vbr\n\t"
-               "movel  %/sp,%1\n\t"
-               "moveq  #0,%0\n\t"
-               "tstb   %3@\n\t"
+       local_irq_save(flags);
+       __asm__ __volatile__ (
+               "movec %/vbr,%2\n\t"
+               "movel #Lberr1,%4@(8)\n\t"
+               "movec %4,%/vbr\n\t"
+               "movel %/sp,%1\n\t"
+               "moveq #0,%0\n\t"
+               "tstb %3@\n\t"
                "nop\n\t"
-               "moveq  #1,%0\n"
-                "Lberr1:\n\t"
-               "movel  %1,%/sp\n\t"
-               "movec  %2,%/vbr"
+               "moveq #1,%0\n"
+       "Lberr1:\n\t"
+               "movel %1,%/sp\n\t"
+               "movec %2,%/vbr"
                : "=&d" (ret), "=&r" (save_sp), "=&r" (save_vbr)
                : "a" (regp), "a" (tmp_vectors)
-                );
+       );
+       local_irq_restore(flags);
 
-    return( ret );
+       return ret;
 }
 EXPORT_SYMBOL(hwreg_present);
 
@@ -55,31 +58,36 @@ EXPORT_SYMBOL(hwreg_present);
  * by a bus error handler. Returns 1 if successful, 0 otherwise.
  */
 
-int hwreg_write( volatile void *regp, unsigned short val )
+int hwreg_write(volatile void *regp, unsigned short val)
 {
-       int             ret;
-       long    save_sp, save_vbr;
-       long    tmp_vectors[3];
+       int ret;
+       unsigned long flags;
+       long save_sp, save_vbr;
+       long tmp_vectors[3];
 
-       __asm__ __volatile__
-       (       "movec  %/vbr,%2\n\t"
-               "movel  #Lberr2,%4@(8)\n\t"
-               "movec  %4,%/vbr\n\t"
-               "movel  %/sp,%1\n\t"
-               "moveq  #0,%0\n\t"
-               "movew  %5,%3@\n\t"
-               "nop    \n\t"   /* If this nop isn't present, 'ret' may already be
-                                * loaded with 1 at the time the bus error
-                                * happens! */
-               "moveq  #1,%0\n"
+       local_irq_save(flags);
+       __asm__ __volatile__ (
+               "movec %/vbr,%2\n\t"
+               "movel #Lberr2,%4@(8)\n\t"
+               "movec %4,%/vbr\n\t"
+               "movel %/sp,%1\n\t"
+               "moveq #0,%0\n\t"
+               "movew %5,%3@\n\t"
+               "nop\n\t"
+               /*
+                * If this nop isn't present, 'ret' may already be loaded
+                * with 1 at the time the bus error happens!
+                */
+               "moveq #1,%0\n"
        "Lberr2:\n\t"
-               "movel  %1,%/sp\n\t"
-               "movec  %2,%/vbr"
+               "movel %1,%/sp\n\t"
+               "movec %2,%/vbr"
                : "=&d" (ret), "=&r" (save_sp), "=&r" (save_vbr)
                : "a" (regp), "a" (tmp_vectors), "g" (val)
        );
+       local_irq_restore(flags);
 
-       return( ret );
+       return ret;
 }
 EXPORT_SYMBOL(hwreg_write);