blob: e963344b044902a78340be45c30e5634bfdb2566 [file] [log] [blame]
Thomas Gleixner82c73e02019-06-03 07:44:59 +02001// SPDX-License-Identifier: GPL-2.0-only
Thomas Gleixnerf7eaf6e2017-08-28 08:47:20 +02002/*
3 * EISA specific code
Thomas Gleixnerf7eaf6e2017-08-28 08:47:20 +02004 */
5#include <linux/ioport.h>
6#include <linux/eisa.h>
Thomas Gleixneref1d4de2017-08-31 20:08:16 +02007#include <linux/io.h>
Thomas Gleixnerf7eaf6e2017-08-28 08:47:20 +02008
Boris Ostrovsky6a92b112018-09-11 15:55:38 -04009#include <xen/xen.h>
10
Thomas Gleixnerf7eaf6e2017-08-28 08:47:20 +020011static __init int eisa_bus_probe(void)
12{
Boris Ostrovsky6a92b112018-09-11 15:55:38 -040013 void __iomem *p;
Thomas Gleixnerf7eaf6e2017-08-28 08:47:20 +020014
Boris Ostrovsky6a92b112018-09-11 15:55:38 -040015 if (xen_pv_domain() && !xen_initial_domain())
16 return 0;
17
18 p = ioremap(0x0FFFD9, 4);
19 if (p && readl(p) == 'E' + ('I' << 8) + ('S' << 16) + ('A' << 24))
Thomas Gleixnerf7eaf6e2017-08-28 08:47:20 +020020 EISA_bus = 1;
21 iounmap(p);
22 return 0;
23}
24subsys_initcall(eisa_bus_probe);