1 | // SPDX-License-Identifier: GPL-2.0-only |
---|---|
2 | /* |
3 | * EISA specific code |
4 | */ |
5 | #include <linux/cc_platform.h> |
6 | #include <linux/ioport.h> |
7 | #include <linux/eisa.h> |
8 | #include <linux/io.h> |
9 | |
10 | #include <xen/xen.h> |
11 | |
12 | static __init int eisa_bus_probe(void) |
13 | { |
14 | void __iomem *p; |
15 | |
16 | if ((xen_pv_domain() && !xen_initial_domain()) || cc_platform_has(attr: CC_ATTR_GUEST_SEV_SNP)) |
17 | return 0; |
18 | |
19 | p = ioremap(offset: 0x0FFFD9, size: 4); |
20 | if (p && readl(addr: p) == 'E' + ('I' << 8) + ('S' << 16) + ('A' << 24)) |
21 | EISA_bus = 1; |
22 | iounmap(addr: p); |
23 | return 0; |
24 | } |
25 | subsys_initcall(eisa_bus_probe); |
26 |