pci_ops.h: Turn and/or ops into update wrappers

Tested with BUILD_TIMELESS=1, Asus P8Z77-V LX2 does not change.

Change-Id: I2d3779967f357dd380928869c630a1996fdd60ec
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/42147
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
Angel Pons 2020-06-07 18:31:33 +02:00 committed by Felix Held
parent af36b29735
commit 2f3456a873
1 changed files with 66 additions and 72 deletions

View File

@ -80,78 +80,6 @@ void pci_write_config32(const struct device *dev, u16 reg, u32 val)
#endif #endif
#if ENV_PCI_SIMPLE_DEVICE
static __always_inline
void pci_and_config8(pci_devfn_t dev, u16 reg, u8 andmask)
#else
static __always_inline
void pci_and_config8(const struct device *dev, u16 reg, u8 andmask)
#endif
{
u8 value = pci_read_config8(dev, reg);
pci_write_config8(dev, reg, value & andmask);
}
#if ENV_PCI_SIMPLE_DEVICE
static __always_inline
void pci_and_config16(pci_devfn_t dev, u16 reg, u16 andmask)
#else
static __always_inline
void pci_and_config16(const struct device *dev, u16 reg, u16 andmask)
#endif
{
u16 value = pci_read_config16(dev, reg);
pci_write_config16(dev, reg, value & andmask);
}
#if ENV_PCI_SIMPLE_DEVICE
static __always_inline
void pci_and_config32(pci_devfn_t dev, u16 reg, u32 andmask)
#else
static __always_inline
void pci_and_config32(const struct device *dev, u16 reg, u32 andmask)
#endif
{
u32 value = pci_read_config32(dev, reg);
pci_write_config32(dev, reg, value & andmask);
}
#if ENV_PCI_SIMPLE_DEVICE
static __always_inline
void pci_or_config8(pci_devfn_t dev, u16 reg, u8 ormask)
#else
static __always_inline
void pci_or_config8(const struct device *dev, u16 reg, u8 ormask)
#endif
{
u8 value = pci_read_config8(dev, reg);
pci_write_config8(dev, reg, value | ormask);
}
#if ENV_PCI_SIMPLE_DEVICE
static __always_inline
void pci_or_config16(pci_devfn_t dev, u16 reg, u16 ormask)
#else
static __always_inline
void pci_or_config16(const struct device *dev, u16 reg, u16 ormask)
#endif
{
u16 value = pci_read_config16(dev, reg);
pci_write_config16(dev, reg, value | ormask);
}
#if ENV_PCI_SIMPLE_DEVICE
static __always_inline
void pci_or_config32(pci_devfn_t dev, u16 reg, u32 ormask)
#else
static __always_inline
void pci_or_config32(const struct device *dev, u16 reg, u32 ormask)
#endif
{
u32 value = pci_read_config32(dev, reg);
pci_write_config32(dev, reg, value | ormask);
}
#if ENV_PCI_SIMPLE_DEVICE #if ENV_PCI_SIMPLE_DEVICE
static __always_inline static __always_inline
void pci_update_config8(pci_devfn_t dev, u16 reg, u8 mask, u8 or) void pci_update_config8(pci_devfn_t dev, u16 reg, u8 mask, u8 or)
@ -200,6 +128,72 @@ void pci_update_config32(const struct device *dev, u16 reg, u32 mask, u32 or)
pci_write_config32(dev, reg, reg32); pci_write_config32(dev, reg, reg32);
} }
#if ENV_PCI_SIMPLE_DEVICE
static __always_inline
void pci_and_config8(pci_devfn_t dev, u16 reg, u8 andmask)
#else
static __always_inline
void pci_and_config8(const struct device *dev, u16 reg, u8 andmask)
#endif
{
pci_update_config8(dev, reg, andmask, 0);
}
#if ENV_PCI_SIMPLE_DEVICE
static __always_inline
void pci_and_config16(pci_devfn_t dev, u16 reg, u16 andmask)
#else
static __always_inline
void pci_and_config16(const struct device *dev, u16 reg, u16 andmask)
#endif
{
pci_update_config16(dev, reg, andmask, 0);
}
#if ENV_PCI_SIMPLE_DEVICE
static __always_inline
void pci_and_config32(pci_devfn_t dev, u16 reg, u32 andmask)
#else
static __always_inline
void pci_and_config32(const struct device *dev, u16 reg, u32 andmask)
#endif
{
pci_update_config32(dev, reg, andmask, 0);
}
#if ENV_PCI_SIMPLE_DEVICE
static __always_inline
void pci_or_config8(pci_devfn_t dev, u16 reg, u8 ormask)
#else
static __always_inline
void pci_or_config8(const struct device *dev, u16 reg, u8 ormask)
#endif
{
pci_update_config8(dev, reg, 0xff, ormask);
}
#if ENV_PCI_SIMPLE_DEVICE
static __always_inline
void pci_or_config16(pci_devfn_t dev, u16 reg, u16 ormask)
#else
static __always_inline
void pci_or_config16(const struct device *dev, u16 reg, u16 ormask)
#endif
{
pci_update_config16(dev, reg, 0xffff, ormask);
}
#if ENV_PCI_SIMPLE_DEVICE
static __always_inline
void pci_or_config32(pci_devfn_t dev, u16 reg, u32 ormask)
#else
static __always_inline
void pci_or_config32(const struct device *dev, u16 reg, u32 ormask)
#endif
{
pci_update_config32(dev, reg, 0xffffffff, ormask);
}
u16 pci_s_find_next_capability(pci_devfn_t dev, u16 cap, u16 last); u16 pci_s_find_next_capability(pci_devfn_t dev, u16 cap, u16 last);
u16 pci_s_find_capability(pci_devfn_t dev, u16 cap); u16 pci_s_find_capability(pci_devfn_t dev, u16 cap);