Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 20bb8095 authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Greg Kroah-Hartman
Browse files

serial/imx: let probing fail for the dt case without a valid alias



When the uart device is instantiated by dt but dt doesn't provide an
alias then better let probing fail instead of falling back to an
unrelated device id used for the line number and no platform data.

Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent a197a191
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -1302,6 +1302,10 @@ static int serial_imx_resume(struct platform_device *dev)
}

#ifdef CONFIG_OF
/*
 * This function returns 1 iff pdev isn't a device instatiated by dt, 0 iff it
 * could successfully get all information from dt or a negative errno.
 */
static int serial_imx_probe_dt(struct imx_port *sport,
		struct platform_device *pdev)
{
@@ -1311,7 +1315,8 @@ static int serial_imx_probe_dt(struct imx_port *sport,
	int ret;

	if (!np)
		return -ENODEV;
		/* no device tree device */
		return 1;

	ret = of_alias_get_id(np, "serial");
	if (ret < 0) {
@@ -1334,7 +1339,7 @@ static int serial_imx_probe_dt(struct imx_port *sport,
static inline int serial_imx_probe_dt(struct imx_port *sport,
		struct platform_device *pdev)
{
	return -ENODEV;
	return 1;
}
#endif

@@ -1369,8 +1374,10 @@ static int serial_imx_probe(struct platform_device *pdev)
		return -ENOMEM;

	ret = serial_imx_probe_dt(sport, pdev);
	if (ret == -ENODEV)
	if (ret > 0)
		serial_imx_probe_pdata(sport, pdev);
	else if (ret < 0)
		goto free;

	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
	if (!res) {