dm: core: Create a struct for device runtime info
At present when driver model needs to change a device it simply updates the struct udevice structure. But with of-platdata-inst most of the fields are not modified at runtime. In fact, typically only the flags need to change. For systems running SPL from read-only memory it is convenient to separate out the runtime information, so that the devices don't need to be copied before being used. Create a new udevice_rt table, similar to the existing driver_rt. For now it just holds the flags, although they are not used in this patch. Add a new Kconfig for the driver_rt data, since this is not needed when of-platdata-inst is used. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -215,10 +215,14 @@ struct global_data {
|
||||
* @uclass_root_s.
|
||||
*/
|
||||
struct list_head *uclass_root;
|
||||
# if CONFIG_IS_ENABLED(OF_PLATDATA)
|
||||
# if CONFIG_IS_ENABLED(OF_PLATDATA_DRIVER_RT)
|
||||
/** @dm_driver_rt: Dynamic info about the driver */
|
||||
struct driver_rt *dm_driver_rt;
|
||||
# endif
|
||||
#if CONFIG_IS_ENABLED(OF_PLATDATA_RT)
|
||||
/** @dm_udevice_rt: Dynamic info about the udevice */
|
||||
struct udevice_rt *dm_udevice_rt;
|
||||
# endif
|
||||
#endif
|
||||
#ifdef CONFIG_TIMER
|
||||
/**
|
||||
@@ -483,7 +487,7 @@ struct global_data {
|
||||
#define gd_set_of_root(_root)
|
||||
#endif
|
||||
|
||||
#if CONFIG_IS_ENABLED(OF_PLATDATA)
|
||||
#if CONFIG_IS_ENABLED(OF_PLATDATA_DRIVER_RT)
|
||||
#define gd_set_dm_driver_rt(dyn) gd->dm_driver_rt = dyn
|
||||
#define gd_dm_driver_rt() gd->dm_driver_rt
|
||||
#else
|
||||
@@ -491,6 +495,14 @@ struct global_data {
|
||||
#define gd_dm_driver_rt() NULL
|
||||
#endif
|
||||
|
||||
#if CONFIG_IS_ENABLED(OF_PLATDATA_RT)
|
||||
#define gd_set_dm_udevice_rt(dyn) gd->dm_udevice_rt = dyn
|
||||
#define gd_dm_udevice_rt() gd->dm_udevice_rt
|
||||
#else
|
||||
#define gd_set_dm_udevice_rt(dyn)
|
||||
#define gd_dm_udevice_rt() NULL
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_GENERATE_ACPI_TABLE
|
||||
#define gd_acpi_ctx() gd->acpi_ctx
|
||||
#else
|
||||
|
||||
Reference in New Issue
Block a user