Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/arm/mach-ixp23xx/include/mach/io.h
15157 views
1
/*
2
* arch/arm/mach-ixp23xx/include/mach/io.h
3
*
4
* Original Author: Naeem M Afzal <[email protected]>
5
* Maintainer: Deepak Saxena <[email protected]>
6
*
7
* Copyright (C) 2003-2005 Intel Corp.
8
* Copyright (C) 2005 MontaVista Software, Inc
9
*
10
* This program is free software; you can redistribute it and/or modify
11
* it under the terms of the GNU General Public License version 2 as
12
* published by the Free Software Foundation.
13
*/
14
15
#ifndef __ASM_ARCH_IO_H
16
#define __ASM_ARCH_IO_H
17
18
#define IO_SPACE_LIMIT 0xffffffff
19
20
#define __io(p) ((void __iomem*)((p) + IXP23XX_PCI_IO_VIRT))
21
#define __mem_pci(a) (a)
22
23
static inline void __iomem *
24
ixp23xx_ioremap(unsigned long addr, unsigned long size, unsigned int mtype)
25
{
26
if (addr >= IXP23XX_PCI_MEM_START &&
27
addr <= IXP23XX_PCI_MEM_START + IXP23XX_PCI_MEM_SIZE) {
28
if (addr + size > IXP23XX_PCI_MEM_START + IXP23XX_PCI_MEM_SIZE)
29
return NULL;
30
31
return (void __iomem *)
32
((addr - IXP23XX_PCI_MEM_START) + IXP23XX_PCI_MEM_VIRT);
33
}
34
35
return __arm_ioremap(addr, size, mtype);
36
}
37
38
static inline void
39
ixp23xx_iounmap(void __iomem *addr)
40
{
41
if ((((u32)addr) >= IXP23XX_PCI_MEM_VIRT) &&
42
(((u32)addr) < IXP23XX_PCI_MEM_VIRT + IXP23XX_PCI_MEM_SIZE))
43
return;
44
45
__iounmap(addr);
46
}
47
48
#define __arch_ioremap ixp23xx_ioremap
49
#define __arch_iounmap ixp23xx_iounmap
50
51
52
#endif
53
54