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: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Link: https://patch.msgid.link/20260326-pci-m2-e-v7-3-43324a7866e6@oss.qualcomm.com Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
This commit is contained in:
parent
a2b4814190
commit
92fa16ecad
1 changed files with 8 additions and 1 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue