From 77b053502f396e83f6a0ea38d747d6836dc501f0 Mon Sep 17 00:00:00 2001 From: Padmarao Begari Date: Fri, 11 Apr 2025 07:55:38 +0200 Subject: usb: onboard-hub: Fix return type for regulator APIs Apart from ENOENT observing return value as ENOSYS when !DM_REGULATOR that's why cover both configurations. Changed code is not working as operation should be "&&" not "||" (ret != -ENOENT && ret != -ENOSYS). Also fix the remove function where the regulator_set_enable_if_allowed() function is returning an error. Signed-off-by: Padmarao Begari Reviewed-by: Marek Vasut Signed-off-by: Michal Simek Link: https://lore.kernel.org/r/a2d520f14efc30fc28ec59881205e156dabbfcd9.1744350937.git.michal.simek@amd.com --- common/usb_onboard_hub.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'common') diff --git a/common/usb_onboard_hub.c b/common/usb_onboard_hub.c index 7fe62b043e6..d17c85dd622 100644 --- a/common/usb_onboard_hub.c +++ b/common/usb_onboard_hub.c @@ -146,7 +146,7 @@ static int usb_onboard_hub_probe(struct udevice *dev) int ret; ret = device_get_supply_regulator(dev, "vdd-supply", &hub->vdd); - if (ret && ret != -ENOENT) { + if (ret && ret != -ENOENT && ret != -ENOSYS) { dev_err(dev, "can't get vdd-supply: %d\n", ret); return ret; } @@ -204,14 +204,16 @@ static int usb_onboard_hub_bind(struct udevice *dev) static int usb_onboard_hub_remove(struct udevice *dev) { struct onboard_hub *hub = dev_get_priv(dev); - int ret; + int ret = 0; if (hub->reset_gpio) dm_gpio_free(hub->reset_gpio->dev, hub->reset_gpio); - ret = regulator_set_enable_if_allowed(hub->vdd, false); - if (ret) - dev_err(dev, "can't disable vdd-supply: %d\n", ret); + if (hub->vdd) { + ret = regulator_set_enable_if_allowed(hub->vdd, false); + if (ret) + dev_err(dev, "can't disable vdd-supply: %d\n", ret); + } return ret; } -- cgit v1.2.3 From 4ef863f2d69417df2bd88358bd79a51995ac5bc5 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Wed, 4 Jun 2025 07:09:02 -0600 Subject: x86: Correct condition for init_cache_f_r() The condition here is reversed, which makes link and coral very slow, leading to lab failures. Fixes 6c171f7a184 ("common: board: make initcalls static") Signed-off-by: Simon Glass Reviewed-by: Jerome Forissier --- common/board_f.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'common') diff --git a/common/board_f.c b/common/board_f.c index bff465d9cb2..c8a612d6070 100644 --- a/common/board_f.c +++ b/common/board_f.c @@ -1079,7 +1079,7 @@ void board_init_f(ulong boot_flags) */ static void initcall_run_f_r(void) { -#if CONFIG_IS_ENABLED(X86_64) +#if !CONFIG_IS_ENABLED(X86_64) INITCALL(init_cache_f_r); #endif } -- cgit v1.2.3