summaryrefslogtreecommitdiff
path: root/drivers/memory
diff options
context:
space:
mode:
authorJohan Hovold <johan@kernel.org>2025-11-21 19:46:24 +0300
committerKrzysztof Kozlowski <krzk@kernel.org>2025-12-16 10:21:11 +0300
commit78da7027e2a99edea0d7e97b25d75be4698a8728 (patch)
tree436674e9a365382df03f056598a4ba896b28a8d0 /drivers/memory
parent9dae65913b32d05dbc8ff4b8a6bf04a0e49a8eb6 (diff)
downloadlinux-78da7027e2a99edea0d7e97b25d75be4698a8728.tar.xz
memory: mtk-smi: clean up device link creation
Clean up device link creation by bailing out early in case the SMI platform device lookup fails. Signed-off-by: Johan Hovold <johan@kernel.org> Link: https://patch.msgid.link/20251121164624.13685-4-johan@kernel.org Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Diffstat (limited to 'drivers/memory')
-rw-r--r--drivers/memory/mtk-smi.c35
1 files changed, 19 insertions, 16 deletions
diff --git a/drivers/memory/mtk-smi.c b/drivers/memory/mtk-smi.c
index 3609bfd3c64b..aaeba8ab211e 100644
--- a/drivers/memory/mtk-smi.c
+++ b/drivers/memory/mtk-smi.c
@@ -595,25 +595,28 @@ static int mtk_smi_device_link_common(struct device *dev, struct device **com_de
smi_com_pdev = of_find_device_by_node(smi_com_node);
of_node_put(smi_com_node);
- if (smi_com_pdev) {
- /* smi common is the supplier, Make sure it is ready before */
- if (!platform_get_drvdata(smi_com_pdev)) {
- put_device(&smi_com_pdev->dev);
- return -EPROBE_DEFER;
- }
- smi_com_dev = &smi_com_pdev->dev;
- link = device_link_add(dev, smi_com_dev,
- DL_FLAG_PM_RUNTIME | DL_FLAG_STATELESS);
- if (!link) {
- dev_err(dev, "Unable to link smi-common dev\n");
- put_device(&smi_com_pdev->dev);
- return -ENODEV;
- }
- *com_dev = smi_com_dev;
- } else {
+ if (!smi_com_pdev) {
dev_err(dev, "Failed to get the smi_common device\n");
return -EINVAL;
}
+
+ /* smi common is the supplier, Make sure it is ready before */
+ if (!platform_get_drvdata(smi_com_pdev)) {
+ put_device(&smi_com_pdev->dev);
+ return -EPROBE_DEFER;
+ }
+
+ smi_com_dev = &smi_com_pdev->dev;
+ link = device_link_add(dev, smi_com_dev,
+ DL_FLAG_PM_RUNTIME | DL_FLAG_STATELESS);
+ if (!link) {
+ dev_err(dev, "Unable to link smi-common dev\n");
+ put_device(&smi_com_pdev->dev);
+ return -ENODEV;
+ }
+
+ *com_dev = smi_com_dev;
+
return 0;
}