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

Commit ab6ead7d authored by Janusz Krzysztofik's avatar Janusz Krzysztofik Committed by Tony Lindgren
Browse files

ARM: OMAP1: ams-delta: Fix impossible .irq < 0



Since the very beginning, unsigned int .irq member of struct
plat_serial8250_port introduced by commit eff443df ("OMAP1:
AMS_DELTA: add modem support") was statically initialized to a negative
value -EINVAL.  Moreover, commit 0812db94 ("ARM: OMAP1: ams-delta:
assign MODEM IRQ from GPIO descriptor") has introduced some new code
which checks for that member carrying a negative value which is
impossible.

Use IRQ_NOTCONNECTED instead of -EINVAL. Also, drop the valueless check
and let the modem device be registered regardless of .irq value, and
the value handled by "serial8250" driver.

Fixes: 0812db94 ("ARM: OMAP1: ams-delta: assign MODEM IRQ from GPIO descriptor")
Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarJanusz Krzysztofik <jmkrzyszt@gmail.com>
Acked-by: default avatarAaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent 1137ceee
Loading
Loading
Loading
Loading
+2 −6
Original line number Diff line number Diff line
@@ -765,7 +765,7 @@ static struct plat_serial8250_port ams_delta_modem_ports[] = {
	{
		.membase	= IOMEM(MODEM_VIRT),
		.mapbase	= MODEM_PHYS,
		.irq		= -EINVAL, /* changed later */
		.irq		= IRQ_NOTCONNECTED, /* changed later */
		.flags		= UPF_BOOT_AUTOCONF,
		.irqflags	= IRQF_TRIGGER_RISING,
		.iotype		= UPIO_MEM,
@@ -856,8 +856,7 @@ static int __init modem_nreset_init(void)


/*
 * This function expects MODEM IRQ number already assigned to the port
 * and fails if it's not.
 * This function expects MODEM IRQ number already assigned to the port.
 * The MODEM device requires its RESET# pin kept high during probe.
 * That requirement can be fulfilled in several ways:
 * - with a descriptor of already functional modem_nreset regulator
@@ -880,9 +879,6 @@ static int __init ams_delta_modem_init(void)
	if (!machine_is_ams_delta())
		return -ENODEV;

	if (ams_delta_modem_ports[0].irq < 0)
		return ams_delta_modem_ports[0].irq;

	omap_cfg_reg(M14_1510_GPIO2);

	/* Initialize the modem_nreset regulator consumer before use */