Commit 92fa16ec authored by Manivannan Sadhasivam's avatar Manivannan Sadhasivam Committed by Bartosz Golaszewski
Browse files

serdev: Do not return -ENODEV from of_serdev_register_devices() if external connector is used



If an external connector like M.2 is connected to the serdev controller
in DT, then the serdev devices may be created dynamically by the connector
driver. So do not return -ENODEV from of_serdev_register_devices() if the
static nodes are not found and the graph node is used.

Tested-by: Hans de Goede <johannes.goede@oss.qualcomm.com> # ThinkPad T14s gen6 (arm64)
Reviewed-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Signed-off-by: default avatarManivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Reviewed-by: default avatarRob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20260326-pci-m2-e-v7-3-43324a7866e6@oss.qualcomm.com


Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
parent a2b48141
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_graph.h>
#include <linux/of_device.h>
#include <linux/pm_domain.h>
#include <linux/pm_runtime.h>
@@ -561,7 +562,13 @@ static int of_serdev_register_devices(struct serdev_controller *ctrl)
		} else
			found = true;
	}
	if (!found)

	/*
	 * When the serdev controller is connected to an external connector like
	 * M.2 in DT, then the serdev devices may be created dynamically by the
	 * connector driver.
	 */
	if (!found && !of_graph_is_present(dev_of_node(&ctrl->dev)))
		return -ENODEV;

	return 0;