blob: 94597a3cf3d0f14fa1e81989437cf43a485d59e0 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
H. Peter Anvin1965aae2008-10-22 22:26:29 -07002#ifndef _ASM_X86_PCI_DIRECT_H
3#define _ASM_X86_PCI_DIRECT_H
Linus Torvalds1da177e2005-04-16 15:20:36 -07004
5#include <linux/types.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -07006
7/* Direct PCI access. This is used for PCI accesses in early boot before
Joe Perches565c6402008-03-23 01:03:03 -07008 the PCI subsystem works. */
Linus Torvalds1da177e2005-04-16 15:20:36 -07009
Andi Kleen8f607742006-09-26 10:52:41 +020010extern u32 read_pci_config(u8 bus, u8 slot, u8 func, u8 offset);
11extern u8 read_pci_config_byte(u8 bus, u8 slot, u8 func, u8 offset);
12extern u16 read_pci_config_16(u8 bus, u8 slot, u8 func, u8 offset);
13extern void write_pci_config(u8 bus, u8 slot, u8 func, u8 offset, u32 val);
Siddha, Suresh B274e1bb2006-12-07 02:14:10 +010014extern void write_pci_config_byte(u8 bus, u8 slot, u8 func, u8 offset, u8 val);
Yinghai Lue7891c72008-05-22 14:35:21 -070015extern void write_pci_config_16(u8 bus, u8 slot, u8 func, u8 offset, u16 val);
Linus Torvalds1da177e2005-04-16 15:20:36 -070016
Andi Kleen0637a702006-09-26 10:52:41 +020017extern int early_pci_allowed(void);
H. Peter Anvin1965aae2008-10-22 22:26:29 -070018#endif /* _ASM_X86_PCI_DIRECT_H */