diff options
| author | Tom Rini <[email protected]> | 2023-04-28 19:00:01 -0400 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2023-04-28 19:00:01 -0400 |
| commit | 076f13308c6f06e2c4feb8b408e997bc732586e1 (patch) | |
| tree | 412d95d550e2e03214f48c89db608c57886e0995 /drivers | |
| parent | c9c2c95d4cd27fe0cd41fe13a863899d268f973c (diff) | |
| parent | f43fc16812487289e98389f0f643d20c444f9c9c (diff) | |
Merge tag 'dm-pull-28apr23' of https://source.denx.de/u-boot/custodians/u-boot-dm
sandbox and fdt bug fixes / tweaks
various other minor fixes
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/block/host_dev.c | 3 | ||||
| -rw-r--r-- | drivers/core/fdtaddr.c | 6 | ||||
| -rw-r--r-- | drivers/core/of_access.c | 2 | ||||
| -rw-r--r-- | drivers/core/uclass.c | 50 | ||||
| -rw-r--r-- | drivers/mtd/spi/sandbox.c | 1 | ||||
| -rw-r--r-- | drivers/sysreset/sysreset_sandbox.c | 1 | ||||
| -rw-r--r-- | drivers/tee/sandbox.c | 15 | ||||
| -rw-r--r-- | drivers/usb/emul/sandbox_flash.c | 1 | ||||
| -rw-r--r-- | drivers/usb/emul/sandbox_hub.c | 30 |
9 files changed, 55 insertions, 54 deletions
diff --git a/drivers/block/host_dev.c b/drivers/block/host_dev.c index 5885fc358a5..64422417b74 100644 --- a/drivers/block/host_dev.c +++ b/drivers/block/host_dev.c @@ -24,7 +24,8 @@ static int host_sb_attach_file(struct udevice *dev, const char *filename) struct host_sb_plat *plat = dev_get_plat(dev); struct blk_desc *desc; struct udevice *blk; - int ret, fd, size; + int ret, fd; + off_t size; char *fname; if (!filename) diff --git a/drivers/core/fdtaddr.c b/drivers/core/fdtaddr.c index 91bcd1a2c21..b9b0c28852f 100644 --- a/drivers/core/fdtaddr.c +++ b/drivers/core/fdtaddr.c @@ -12,6 +12,7 @@ #include <dm.h> #include <fdt_support.h> #include <log.h> +#include <mapmem.h> #include <asm/global_data.h> #include <asm/io.h> #include <dm/device-internal.h> @@ -97,7 +98,10 @@ void *devfdt_get_addr_index_ptr(const struct udevice *dev, int index) { fdt_addr_t addr = devfdt_get_addr_index(dev, index); - return (addr == FDT_ADDR_T_NONE) ? NULL : (void *)(uintptr_t)addr; + if (addr == FDT_ADDR_T_NONE) + return NULL; + + return map_sysmem(addr, 0); } fdt_addr_t devfdt_get_addr_size_index(const struct udevice *dev, int index, diff --git a/drivers/core/of_access.c b/drivers/core/of_access.c index 85f7da5a499..81a307992c0 100644 --- a/drivers/core/of_access.c +++ b/drivers/core/of_access.c @@ -33,7 +33,7 @@ DECLARE_GLOBAL_DATA_PTR; /* list of struct alias_prop aliases */ -LIST_HEAD(aliases_lookup); +static LIST_HEAD(aliases_lookup); /* "/aliaes" node */ static struct device_node *of_aliases; diff --git a/drivers/core/uclass.c b/drivers/core/uclass.c index 1762a0796db..e46d5717aa6 100644 --- a/drivers/core/uclass.c +++ b/drivers/core/uclass.c @@ -411,18 +411,14 @@ done: } #if CONFIG_IS_ENABLED(OF_REAL) -int uclass_find_device_by_phandle(enum uclass_id id, struct udevice *parent, - const char *name, struct udevice **devp) +static int uclass_find_device_by_phandle_id(enum uclass_id id, + uint find_phandle, + struct udevice **devp) { struct udevice *dev; struct uclass *uc; - int find_phandle; int ret; - *devp = NULL; - find_phandle = dev_read_u32_default(parent, name, -1); - if (find_phandle <= 0) - return -ENOENT; ret = uclass_get(id, &uc); if (ret) return ret; @@ -440,6 +436,19 @@ int uclass_find_device_by_phandle(enum uclass_id id, struct udevice *parent, return -ENODEV; } + +int uclass_find_device_by_phandle(enum uclass_id id, struct udevice *parent, + const char *name, struct udevice **devp) +{ + int find_phandle; + + *devp = NULL; + find_phandle = dev_read_u32_default(parent, name, -1); + if (find_phandle <= 0) + return -ENOENT; + + return uclass_find_device_by_phandle_id(id, find_phandle, devp); +} #endif int uclass_get_device_by_driver(enum uclass_id id, @@ -535,31 +544,22 @@ int uclass_get_device_by_ofnode(enum uclass_id id, ofnode node, return uclass_get_device_tail(dev, ret, devp); } -#if CONFIG_IS_ENABLED(OF_CONTROL) +#if CONFIG_IS_ENABLED(OF_REAL) +int uclass_get_device_by_of_path(enum uclass_id id, const char *path, + struct udevice **devp) +{ + return uclass_get_device_by_ofnode(id, ofnode_path(path), devp); +} + int uclass_get_device_by_phandle_id(enum uclass_id id, uint phandle_id, struct udevice **devp) { struct udevice *dev; - struct uclass *uc; int ret; *devp = NULL; - ret = uclass_get(id, &uc); - if (ret) - return ret; - - uclass_foreach_dev(dev, uc) { - uint phandle; - - phandle = dev_read_phandle(dev); - - if (phandle == phandle_id) { - *devp = dev; - return uclass_get_device_tail(dev, ret, devp); - } - } - - return -ENODEV; + ret = uclass_find_device_by_phandle_id(id, phandle_id, &dev); + return uclass_get_device_tail(dev, ret, devp); } int uclass_get_device_by_phandle(enum uclass_id id, struct udevice *parent, diff --git a/drivers/mtd/spi/sandbox.c b/drivers/mtd/spi/sandbox.c index 3c01e3b41c8..4fe547171a5 100644 --- a/drivers/mtd/spi/sandbox.c +++ b/drivers/mtd/spi/sandbox.c @@ -248,6 +248,7 @@ static int sandbox_sf_process_cmd(struct sandbox_spi_flash *sbsf, const u8 *rx, break; case SPINOR_OP_READ_FAST: sbsf->pad_addr_bytes = 1; + fallthrough; case SPINOR_OP_READ: case SPINOR_OP_PP: sbsf->state = SF_ADDR; diff --git a/drivers/sysreset/sysreset_sandbox.c b/drivers/sysreset/sysreset_sandbox.c index 0ee286cbb34..3750c60b9b9 100644 --- a/drivers/sysreset/sysreset_sandbox.c +++ b/drivers/sysreset/sysreset_sandbox.c @@ -65,7 +65,6 @@ static int sandbox_sysreset_request(struct udevice *dev, enum sysreset_t type) if (!state->sysreset_allowed[type]) return -EACCES; sandbox_exit(); - break; case SYSRESET_POWER: if (!state->sysreset_allowed[type]) return -EACCES; diff --git a/drivers/tee/sandbox.c b/drivers/tee/sandbox.c index 35e8542fa37..86219a9bb1a 100644 --- a/drivers/tee/sandbox.c +++ b/drivers/tee/sandbox.c @@ -119,6 +119,7 @@ static u32 pta_scp03_invoke_func(struct udevice *dev, u32 func, uint num_params, { u32 res; static bool enabled; + static bool provisioned; switch (func) { case PTA_CMD_ENABLE_SCP03: @@ -130,12 +131,18 @@ static u32 pta_scp03_invoke_func(struct udevice *dev, u32 func, uint num_params, if (res) return res; - if (!enabled) { + /* If SCP03 was not enabled, enable it */ + if (!enabled) enabled = true; - } else { - } - if (params[0].u.value.a) + /* If SCP03 was not provisioned, provision new keys */ + if (params[0].u.value.a && !provisioned) + provisioned = true; + + /* + * Either way, we asume both operations succeeded and that + * the communication channel has now been stablished + */ return TEE_SUCCESS; default: diff --git a/drivers/usb/emul/sandbox_flash.c b/drivers/usb/emul/sandbox_flash.c index 01ccc4bc178..7c5c1ab3de7 100644 --- a/drivers/usb/emul/sandbox_flash.c +++ b/drivers/usb/emul/sandbox_flash.c @@ -266,6 +266,7 @@ static int sandbox_flash_bulk(struct udevice *dev, struct usb_device *udev, default: break; } + break; case SANDBOX_FLASH_EP_IN: switch (info->phase) { case SCSIPH_DATA: diff --git a/drivers/usb/emul/sandbox_hub.c b/drivers/usb/emul/sandbox_hub.c index 041ec3772aa..084cc16cc68 100644 --- a/drivers/usb/emul/sandbox_hub.c +++ b/drivers/usb/emul/sandbox_hub.c @@ -220,13 +220,9 @@ static int sandbox_hub_submit_control_msg(struct udevice *bus, udev->status = 0; udev->act_len = sizeof(*hubsts); return 0; + } } - default: - debug("%s: rx ctl requesttype=%x, request=%x\n", - __func__, setup->requesttype, - setup->request); - break; - } + break; case USB_RT_PORT | USB_DIR_IN: switch (setup->request) { case USB_REQ_GET_STATUS: { @@ -239,13 +235,12 @@ static int sandbox_hub_submit_control_msg(struct udevice *bus, udev->status = 0; udev->act_len = sizeof(*portsts); return 0; + } } - } - default: - debug("%s: rx ctl requesttype=%x, request=%x\n", - __func__, setup->requesttype, setup->request); break; } + debug("%s: rx ctl requesttype=%x, request=%x\n", + __func__, setup->requesttype, setup->request); } else if (pipe == usb_sndctrlpipe(udev, 0)) { switch (setup->requesttype) { case USB_RT_PORT: @@ -263,7 +258,7 @@ static int sandbox_hub_submit_control_msg(struct udevice *bus, debug(" ** Invalid feature\n"); } return ret; - } + } case USB_REQ_CLEAR_FEATURE: { int port; @@ -279,18 +274,11 @@ static int sandbox_hub_submit_control_msg(struct udevice *bus, } udev->status = 0; return 0; + } } - default: - debug("%s: tx ctl requesttype=%x, request=%x\n", - __func__, setup->requesttype, - setup->request); - break; - } - default: - debug("%s: tx ctl requesttype=%x, request=%x\n", - __func__, setup->requesttype, setup->request); - break; } + debug("%s: tx ctl requesttype=%x, request=%x\n", + __func__, setup->requesttype, setup->request); } debug("pipe=%lx\n", pipe); |
