cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

eisa.c (1161B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2/*
      3 * Virtual EISA root driver.
      4 * Acts as a placeholder if we don't have a proper EISA bridge.
      5 *
      6 * (C) 2003 Marc Zyngier <maz@wild-wind.fr.eu.org>
      7 * modified for SNI usage by Thomas Bogendoerfer
      8 */
      9
     10#include <linux/kernel.h>
     11#include <linux/platform_device.h>
     12#include <linux/eisa.h>
     13#include <linux/init.h>
     14
     15/* The default EISA device parent (virtual root device).
     16 * Now use a platform device, since that's the obvious choice. */
     17
     18static struct platform_device eisa_root_dev = {
     19	.name = "eisa",
     20	.id   = 0,
     21};
     22
     23static struct eisa_root_device eisa_bus_root = {
     24	.dev	       = &eisa_root_dev.dev,
     25	.bus_base_addr = 0,
     26	.res	       = &ioport_resource,
     27	.slots	       = EISA_MAX_SLOTS,
     28	.dma_mask      = 0xffffffff,
     29	.force_probe   = 1,
     30};
     31
     32int __init sni_eisa_root_init(void)
     33{
     34	int r;
     35
     36	r = platform_device_register(&eisa_root_dev);
     37	if (!r)
     38		return r;
     39
     40	dev_set_drvdata(&eisa_root_dev.dev, &eisa_bus_root);
     41
     42	if (eisa_root_register(&eisa_bus_root)) {
     43		/* A real bridge may have been registered before
     44		 * us. So quietly unregister. */
     45		platform_device_unregister(&eisa_root_dev);
     46		return -1;
     47	}
     48	return 0;
     49}