summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/arch/arm/include/arch/pci_ops.h3
-rw-r--r--src/arch/arm64/include/arch/pci_ops.h3
-rw-r--r--src/arch/mips/include/arch/pci_ops.h3
-rw-r--r--src/arch/x86/include/arch/io.h6
-rw-r--r--src/include/device/device.h7
-rw-r--r--src/include/device/pci_ops.h46
-rw-r--r--src/include/device/smbus.h4
-rw-r--r--src/include/reg_script.h20
-rw-r--r--src/lib/reg_script.c13
9 files changed, 65 insertions, 40 deletions
diff --git a/src/arch/arm/include/arch/pci_ops.h b/src/arch/arm/include/arch/pci_ops.h
index 2e2661b744..533ad8097a 100644
--- a/src/arch/arm/include/arch/pci_ops.h
+++ b/src/arch/arm/include/arch/pci_ops.h
@@ -21,9 +21,6 @@
typedef u32 pci_devfn_t;
#ifdef __SIMPLE_DEVICE__
-// FIXME: Use of device_t is deprecated
-typedef pci_devfn_t device_t;
-
u8 pci_read_config8(pci_devfn_t dev, unsigned int where);
u16 pci_read_config16(pci_devfn_t dev, unsigned int where);
u32 pci_read_config32(pci_devfn_t dev, unsigned int where);
diff --git a/src/arch/arm64/include/arch/pci_ops.h b/src/arch/arm64/include/arch/pci_ops.h
index e6d5206955..32e7601d9c 100644
--- a/src/arch/arm64/include/arch/pci_ops.h
+++ b/src/arch/arm64/include/arch/pci_ops.h
@@ -21,9 +21,6 @@
typedef u32 pci_devfn_t;
#ifdef __SIMPLE_DEVICE__
-// FIXME: Use of device_t is deprecated
-typedef pci_devfn_t device_t;
-
u8 pci_read_config8(pci_devfn_t dev, unsigned int where);
u16 pci_read_config16(pci_devfn_t dev, unsigned int where);
u32 pci_read_config32(pci_devfn_t dev, unsigned int where);
diff --git a/src/arch/mips/include/arch/pci_ops.h b/src/arch/mips/include/arch/pci_ops.h
index 5fef126f2f..f57befa31e 100644
--- a/src/arch/mips/include/arch/pci_ops.h
+++ b/src/arch/mips/include/arch/pci_ops.h
@@ -21,9 +21,6 @@
typedef u32 pci_devfn_t;
#ifdef __SIMPLE_DEVICE__
-// FIXME: Use of device_t is deprecated
-typedef pci_devfn_t device_t;
-
u8 pci_read_config8(pci_devfn_t dev, unsigned int where);
u16 pci_read_config16(pci_devfn_t dev, unsigned int where);
u32 pci_read_config32(pci_devfn_t dev, unsigned int where);
diff --git a/src/arch/x86/include/arch/io.h b/src/arch/x86/include/arch/io.h
index 1b0fdb0515..f47973e2fb 100644
--- a/src/arch/x86/include/arch/io.h
+++ b/src/arch/x86/include/arch/io.h
@@ -18,8 +18,6 @@
#include <stdint.h>
#include <rules.h>
-/* FIXME: Sources for romstage still use device_t. */
-/* Use pci_devfn_t or pnp_devfn_t instead */
typedef u32 pci_devfn_t;
typedef u32 pnp_devfn_t;
@@ -256,10 +254,6 @@ static inline int __ffs(u32 value)
#define PNP_DEV(PORT, FUNC) (((PORT) << 8) | (FUNC))
-/* FIXME: Sources for romstage still use device_t. */
-/* Use pci_devfn_t or pnp_devfn_t instead */
-typedef u32 device_t;
-
/* FIXME: We need to make the coreboot to run at 64bit mode, So when read/write
* memory above 4G, We don't need to set %fs, and %gs anymore
* Before that We need to use %gs, and leave %fs to other RAM access
diff --git a/src/include/device/device.h b/src/include/device/device.h
index 6713c9492c..c2f8ecefd7 100644
--- a/src/include/device/device.h
+++ b/src/include/device/device.h
@@ -14,14 +14,9 @@
#include <rules.h>
#include <device/resource.h>
#include <device/path.h>
-
-struct device;
-
-#ifndef __SIMPLE_DEVICE__
-typedef struct device *device_t;
-#endif
#include <arch/io.h>
+struct device;
struct pci_operations;
struct pci_bus_operations;
struct i2c_bus_operations;
diff --git a/src/include/device/pci_ops.h b/src/include/device/pci_ops.h
index 5e60e8de2d..54284f590a 100644
--- a/src/include/device/pci_ops.h
+++ b/src/include/device/pci_ops.h
@@ -15,33 +15,49 @@ void pci_write_config32(struct device *dev, unsigned int where, u32 val);
#endif
-/*
- * Use device_t here as the functions are to be used with either
- * __SIMPLE_DEVICE__ defined or undefined.
- */
+#ifdef __SIMPLE_DEVICE__
static __always_inline
-void pci_or_config8(device_t dev, unsigned int where, u8 ormask)
+void pci_or_config8(pci_devfn_t dev, unsigned int where, u8 ormask)
+#else
+static __always_inline
+void pci_or_config8(struct device *dev, unsigned int where, u8 ormask)
+#endif
{
u8 value = pci_read_config8(dev, where);
pci_write_config8(dev, where, value | ormask);
}
+#ifdef __SIMPLE_DEVICE__
+static __always_inline
+void pci_or_config16(pci_devfn_t dev, unsigned int where, u16 ormask)
+#else
static __always_inline
-void pci_or_config16(device_t dev, unsigned int where, u16 ormask)
+void pci_or_config16(struct device *dev, unsigned int where, u16 ormask)
+#endif
{
u16 value = pci_read_config16(dev, where);
pci_write_config16(dev, where, value | ormask);
}
+#ifdef __SIMPLE_DEVICE__
+static __always_inline
+void pci_or_config32(pci_devfn_t dev, unsigned int where, u32 ormask)
+#else
static __always_inline
-void pci_or_config32(device_t dev, unsigned int where, u32 ormask)
+void pci_or_config32(struct device *dev, unsigned int where, u32 ormask)
+#endif
{
u32 value = pci_read_config32(dev, where);
pci_write_config32(dev, where, value | ormask);
}
+#ifdef __SIMPLE_DEVICE__
static __always_inline
-void pci_update_config8(device_t dev, int reg, u8 mask, u8 or)
+void pci_update_config8(pci_devfn_t dev, int reg, u8 mask, u8 or)
+#else
+static __always_inline
+void pci_update_config8(struct device *dev, int reg, u8 mask, u8 or)
+#endif
{
u8 reg8;
@@ -51,8 +67,13 @@ void pci_update_config8(device_t dev, int reg, u8 mask, u8 or)
pci_write_config8(dev, reg, reg8);
}
+#ifdef __SIMPLE_DEVICE__
+static __always_inline
+void pci_update_config16(pci_devfn_t dev, int reg, u16 mask, u16 or)
+#else
static __always_inline
-void pci_update_config16(device_t dev, int reg, u16 mask, u16 or)
+void pci_update_config16(struct device *dev, int reg, u16 mask, u16 or)
+#endif
{
u16 reg16;
@@ -62,8 +83,13 @@ void pci_update_config16(device_t dev, int reg, u16 mask, u16 or)
pci_write_config16(dev, reg, reg16);
}
+#ifdef __SIMPLE_DEVICE__
+static __always_inline
+void pci_update_config32(pci_devfn_t dev, int reg, u32 mask, u32 or)
+#else
static __always_inline
-void pci_update_config32(device_t dev, int reg, u32 mask, u32 or)
+void pci_update_config32(struct device *dev, int reg, u32 mask, u32 or)
+#endif
{
u32 reg32;
diff --git a/src/include/device/smbus.h b/src/include/device/smbus.h
index 639e9383c0..de6cf40c79 100644
--- a/src/include/device/smbus.h
+++ b/src/include/device/smbus.h
@@ -51,8 +51,8 @@ static inline int smbus_write_byte(struct device *const dev, u8 addr, u8 val)
return i2c_dev_writeb_at(dev, addr, val);
}
-int smbus_block_read(device_t dev, u8 cmd, u8 bytes, u8 *buffer);
-int smbus_block_write(device_t dev, u8 cmd, u8 bytes, const u8 *buffer);
+int smbus_block_read(struct device *dev, u8 cmd, u8 bytes, u8 *buffer);
+int smbus_block_write(struct device *dev, u8 cmd, u8 bytes, const u8 *buffer);
#if IS_ENABLED(CONFIG_SMBUS_HAS_AUX_CHANNELS)
void smbus_switch_to_channel(uint8_t channel_number);
diff --git a/src/include/reg_script.h b/src/include/reg_script.h
index 116dd9264b..28fc82db0f 100644
--- a/src/include/reg_script.h
+++ b/src/include/reg_script.h
@@ -30,8 +30,6 @@
* are employed:
* - Chaining of tables that allow runtime tables to chain to compile-time
* tables.
- * - Notion of current device (device_t) being worked on. This allows for
- * PCI config, io, and mmio on a particular device's resources.
*
* Note that when using REG_SCRIPT_COMMAND_NEXT there is an implicit push
* and pop of the context. A chained reg_script inherits the previous
@@ -87,13 +85,21 @@ struct reg_script {
union {
uint32_t id;
const struct reg_script *next;
- device_t dev;
+#ifdef __SIMPLE_DEVICE__
+ pci_devfn_t dev;
+#else
+ struct device *dev;
+#endif
unsigned int res_index;
};
};
struct reg_script_context {
- device_t dev;
+#ifdef __SIMPLE_DEVICE__
+ pci_devfn_t dev;
+#else
+ struct device *dev;
+#endif
struct resource *res;
const struct reg_script *step;
uint8_t display_state; /* Only modified by reg_script_run_step */
@@ -437,6 +443,10 @@ IS_ENABLED(CONFIG_SOC_INTEL_FSP_BAYTRAIL)
_REG_SCRIPT_ENCODE_RAW(REG_SCRIPT_COMMAND_END, 0, 0, 0, 0, 0, 0, 0)
void reg_script_run(const struct reg_script *script);
-void reg_script_run_on_dev(device_t dev, const struct reg_script *step);
+#ifdef __SIMPLE_DEVICE__
+void reg_script_run_on_dev(pci_devfn_t dev, const struct reg_script *step);
+#else
+void reg_script_run_on_dev(struct device *dev, const struct reg_script *step);
+#endif
#endif /* REG_SCRIPT_H */
diff --git a/src/lib/reg_script.c b/src/lib/reg_script.c
index e84c1379b0..926a6590dc 100644
--- a/src/lib/reg_script.c
+++ b/src/lib/reg_script.c
@@ -40,8 +40,13 @@
#define EMPTY_DEV NULL
#endif
+#ifdef __SIMPLE_DEVICE__
static inline void reg_script_set_dev(struct reg_script_context *ctx,
- device_t dev)
+ pci_devfn_t dev)
+#else
+static inline void reg_script_set_dev(struct reg_script_context *ctx,
+ struct device *dev)
+#endif
{
ctx->dev = dev;
ctx->res = NULL;
@@ -677,7 +682,11 @@ static void reg_script_run_next(struct reg_script_context *prev_ctx,
reg_script_run_with_context(&ctx);
}
-void reg_script_run_on_dev(device_t dev, const struct reg_script *step)
+#ifdef __SIMPLE_DEVICE__
+void reg_script_run_on_dev(pci_devfn_t dev, const struct reg_script *step)
+#else
+void reg_script_run_on_dev(struct device *dev, const struct reg_script *step)
+#endif
{
struct reg_script_context ctx;