Skip to content

Commit

Permalink
sh: Provide stubbed I/O routines for NO_IOPORT case.
Browse files Browse the repository at this point in the history
Too many drivers fail at IOPORT vs IOMEM checking before blindly calling
in to the API, so we may as well just provide basic stubs to get more
build coverage. Other platforms already do this, too (tile, parisc, etc.)

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
  • Loading branch information
Paul Mundt committed May 10, 2012
1 parent 15f99cb commit c5e50fa
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 0 deletions.
5 changes: 5 additions & 0 deletions arch/sh/include/asm/io.h
Original file line number Diff line number Diff line change
Expand Up @@ -218,8 +218,13 @@ __BUILD_IOPORT_STRING(w, u16)
__BUILD_IOPORT_STRING(l, u32)
__BUILD_IOPORT_STRING(q, u64)

#else /* !CONFIG_HAS_IOPORT */

#include <asm/io_noioport.h>

#endif


#define IO_SPACE_LIMIT 0xffffffff

/* synco on SH-4A, otherwise a nop */
Expand Down
41 changes: 41 additions & 0 deletions arch/sh/include/asm/io_noioport.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#ifndef __ASM_SH_IO_NOIOPORT_H
#define __ASM_SH_IO_NOIOPORT_H

static inline u8 inb(unsigned long addr)
{
BUG();
return -1;
}

static inline u16 inw(unsigned long addr)
{
BUG();
return -1;
}

static inline u32 inl(unsigned long addr)
{
BUG();
return -1;
}

#define outb(x, y) BUG()
#define outw(x, y) BUG()
#define outl(x, y) BUG()

#define inb_p(addr) inb(addr)
#define inw_p(addr) inw(addr)
#define inl_p(addr) inl(addr)
#define outb_p(x, addr) outb((x), (addr))
#define outw_p(x, addr) outw((x), (addr))
#define outl_p(x, addr) outl((x), (addr))

#define insb(a, b, c) BUG()
#define insw(a, b, c) BUG()
#define insl(a, b, c) BUG()

#define outsb(a, b, c) BUG()
#define outsw(a, b, c) BUG()
#define outsl(a, b, c) BUG()

#endif /* __ASM_SH_IO_NOIOPORT_H */

0 comments on commit c5e50fa

Please sign in to comment.