Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 29ef8295 authored by Helge Deller's avatar Helge Deller Committed by Kyle McMartin
Browse files

[PARISC] Enable ioremap functionality unconditionally



Enable CONFIG_HPPA_IOREMAP by default and remove all now unnecessary code.

Signed-off-by: default avatarHelge Deller <deller@parisc-linux.org>
Signed-off-by: default avatarKyle McMartin <kyle@parisc-linux.org>
parent 857600c7
Loading
Loading
Loading
Loading
+0 −11
Original line number Diff line number Diff line
@@ -138,17 +138,6 @@ config 64BIT
	  enable this option otherwise. The 64bit kernel is significantly bigger
	  and slower than the 32bit one.

config HPPA_IOREMAP
	bool "Enable IOREMAP functionality (EXPERIMENTAL)"
	depends on EXPERIMENTAL
	default n
	help
	  Enable this option if you want to enable real IOREMAPPING on PA-RISC.
	  Currently we just "simulate" I/O remapping, and enabling this option
	  will just crash your machine.

	  Say N here, unless you are a real PA-RISC Linux kernel hacker.

config SMP
	bool "Symmetric multi-processing support"
	---help---
+2 −14
Original line number Diff line number Diff line
@@ -72,7 +72,6 @@ remap_area_pmd(pmd_t *pmd, unsigned long address, unsigned long size,
	return 0;
}

#ifdef CONFIG_HPPA_IOREMAP
static int 
remap_area_pages(unsigned long address, unsigned long phys_addr,
		 unsigned long size, unsigned long flags)
@@ -114,7 +113,6 @@ remap_area_pages(unsigned long address, unsigned long phys_addr,

	return error;
}
#endif /* CONFIG_HPPA_IOREMAP */

#ifdef CONFIG_DEBUG_IOREMAP
static unsigned long last = 0;
@@ -154,21 +152,16 @@ EXPORT_SYMBOL(__raw_bad_addr);
 */
void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags)
{
#if !defined(CONFIG_HPPA_IOREMAP)
#ifdef CONFIG_EISA
	#error FIXME.
	unsigned long end = phys_addr + size - 1;
	/* Support EISA addresses */
	if ((phys_addr >= 0x00080000 && end < 0x000fffff)
			|| (phys_addr >= 0x00500000 && end < 0x03bfffff)) {
		phys_addr |= 0xfc000000;
	}

#ifdef CONFIG_DEBUG_IOREMAP
	return (void __iomem *)(phys_addr - (0x1UL << NYBBLE_SHIFT));
#else
	return (void __iomem *)phys_addr;
#endif

#else
	void *addr;
	struct vm_struct *area;
	unsigned long offset, last_addr;
@@ -216,15 +209,10 @@ void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned l
	}

	return (void __iomem *) (offset + (char *)addr);
#endif
}

void iounmap(void __iomem *addr)
{
#ifdef CONFIG_HPPA_IOREMAP
	if (addr > high_memory)
		return vfree((void *) (PAGE_MASK & (unsigned long __force) addr));
#else
	return;
#endif
}
+1 −57
Original line number Diff line number Diff line
@@ -176,12 +176,7 @@ extern inline void * ioremap_nocache(unsigned long offset, unsigned long size)

extern void iounmap(void __iomem *addr);

/*
 * CONFIG_HPPA_IOREMAP is the magic flag to enable or disable real ioremap()
 * functionality.  It's currently disabled because it may not work on some
 * machines.
 */
#ifdef CONFIG_HPPA_IOREMAP

static inline unsigned char __raw_readb(const volatile void __iomem *addr)
{
	return (*(volatile unsigned char __force *) (addr));
@@ -215,57 +210,6 @@ static inline void __raw_writeq(unsigned long long b, volatile void __iomem *add
{
	*(volatile unsigned long long __force *) addr = b;
}
#else /* !CONFIG_HPPA_IOREMAP */
static inline unsigned char __raw_readb(const volatile void __iomem *addr)
{
	__raw_check_addr(addr);

	return gsc_readb((unsigned long) addr);
}
static inline unsigned short __raw_readw(const volatile void __iomem *addr)
{
	__raw_check_addr(addr);

	return gsc_readw((unsigned long) addr);
}
static inline unsigned int __raw_readl(const volatile void __iomem *addr)
{
	__raw_check_addr(addr);

	return gsc_readl((unsigned long) addr);
}
static inline unsigned long long __raw_readq(const volatile void __iomem *addr)
{
	__raw_check_addr(addr);

	return gsc_readq((unsigned long) addr);
}

static inline void __raw_writeb(unsigned char b, volatile void __iomem *addr)
{
	__raw_check_addr(addr);

	gsc_writeb(b, (unsigned long) addr);
}
static inline void __raw_writew(unsigned short b, volatile void __iomem *addr)
{
	__raw_check_addr(addr);

	gsc_writew(b, (unsigned long) addr);
}
static inline void __raw_writel(unsigned int b, volatile void __iomem *addr)
{
	__raw_check_addr(addr);

	gsc_writel(b, (unsigned long) addr);
}
static inline void __raw_writeq(unsigned long long b, volatile void __iomem *addr)
{
	__raw_check_addr(addr);

	gsc_writeq(b, (unsigned long) addr);
}
#endif /* !CONFIG_HPPA_IOREMAP */

/* readb can never be const, so use __fswab instead of le*_to_cpu */
#define readb(addr) __raw_readb(addr)