From f9e47cc4c2ddefaaa91ddae25449803cdd5243b8 Mon Sep 17 00:00:00 2001 From: Elyes HAOUAS Date: Wed, 5 Dec 2018 11:03:36 +0100 Subject: [PATCH] src: Get rid of device_t Use of device_t is deprecated. Change-Id: Ie05869901ac33d7089e21110f46c1241f7ee731f Signed-off-by: Elyes HAOUAS Reviewed-on: https://review.coreboot.org/c/30047 Reviewed-by: Patrick Georgi Reviewed-by: Patrick Rudolph Tested-by: build bot (Jenkins) --- src/arch/arm/include/arch/pci_ops.h | 3 -- src/arch/arm64/include/arch/pci_ops.h | 3 -- src/arch/mips/include/arch/pci_ops.h | 3 -- src/arch/x86/include/arch/io.h | 6 ---- src/include/device/device.h | 7 +--- src/include/device/pci_ops.h | 46 +++++++++++++++++++++------ src/include/device/smbus.h | 4 +-- src/include/reg_script.h | 20 +++++++++--- src/lib/reg_script.c | 13 ++++++-- 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 #include -/* 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 #include #include - -struct device; - -#ifndef __SIMPLE_DEVICE__ -typedef struct device *device_t; -#endif #include +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(device_t dev, unsigned int where, u16 ormask) +void pci_or_config16(pci_devfn_t dev, unsigned int where, u16 ormask) +#else +static __always_inline +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(device_t dev, unsigned int where, u32 ormask) +void pci_or_config32(pci_devfn_t dev, unsigned int where, u32 ormask) +#else +static __always_inline +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(device_t dev, int reg, u16 mask, u16 or) +void pci_update_config16(pci_devfn_t dev, int reg, u16 mask, u16 or) +#else +static __always_inline +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(device_t dev, int reg, u32 mask, u32 or) +void pci_update_config32(pci_devfn_t dev, int reg, u32 mask, u32 or) +#else +static __always_inline +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;