All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] serdev: Don't claim unsupported ACPI serial devices
@ 2019-12-19 10:03 Punit Agrawal
       [not found] ` <20191225235531.D7BB320882@mail.kernel.org>
  0 siblings, 1 reply; 2+ messages in thread
From: Punit Agrawal @ 2019-12-19 10:03 UTC (permalink / raw)
  To: linux-serial
  Cc: Punit Agrawal, linux-acpi, linux-kernel, nobuhiro1.iwamatsu,
	shrirang.bagul, stable, Hans de Goede, Johan Hovold, Rob Herring,
	Greg Kroah-Hartman

Serdev sub-system claims all ACPI serial devices that are not already
initialised. As a result, no device node is created for serial ports
on certain boards such as the Apollo Lake based UP2. This has the
unintended consequence of not being able to raise the login prompt via
serial connection.

Introduce a blacklist to reject ACPI serial devices that should not be
claimed by serdev sub-system. Add the peripheral ids for Intel HS UART
to the blacklist to bring back serial port on SoCs carrying them.

Cc: stable@vger.kernel.org
Signed-off-by: Punit Agrawal <punit1.agrawal@toshiba.co.jp>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Johan Hovold <johan@kernel.org>
Cc: Rob Herring <robh@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---

Hi Greg,

I've updated the patch to tighten the commit log and code identifier
to be more ACPI specific.

Thanks,
Punit

Changelog

* Update commit log to refer to ACPI serial devices
* Update identifier to be ACPI specific
* Space around peripheral Ids

Previous versions

[0] https://www.spinics.net/lists/kernel/msg3348136.html
[1] https://lkml.org/lkml/2019/12/18/42

 drivers/tty/serdev/core.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/tty/serdev/core.c b/drivers/tty/serdev/core.c
index 226adeec2aed..ce5309d00280 100644
--- a/drivers/tty/serdev/core.c
+++ b/drivers/tty/serdev/core.c
@@ -663,6 +663,12 @@ static acpi_status acpi_serdev_register_device(struct serdev_controller *ctrl,
 	return AE_OK;
 }
 
+static const struct acpi_device_id serdev_acpi_devices_blacklist[] = {
+	{ "INT3511", 0 },
+	{ "INT3512", 0 },
+	{ },
+};
+
 static acpi_status acpi_serdev_add_device(acpi_handle handle, u32 level,
 					  void *data, void **return_value)
 {
@@ -675,6 +681,10 @@ static acpi_status acpi_serdev_add_device(acpi_handle handle, u32 level,
 	if (acpi_device_enumerated(adev))
 		return AE_OK;
 
+	/* Skip if black listed */
+	if (!acpi_match_device_ids(adev, serdev_acpi_devices_blacklist))
+		return AE_OK;
+
 	if (acpi_serdev_check_resources(ctrl, adev))
 		return AE_OK;
 
-- 
2.24.0


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] serdev: Don't claim unsupported ACPI serial devices
       [not found] ` <20191225235531.D7BB320882@mail.kernel.org>
@ 2020-01-06  8:10   ` Punit Agrawal
  0 siblings, 0 replies; 2+ messages in thread
From: Punit Agrawal @ 2020-01-06  8:10 UTC (permalink / raw)
  To: Sasha Levin; +Cc: linux-serial, stable, Rob Herring, Greg Kroah-Hartman

Sasha Levin <sashal@kernel.org> writes:

> Hi,
>
> [This is an automated email]
>
> This commit has been processed because it contains a -stable tag.
> The stable tag indicates that it's relevant for the following trees: all
>
> The bot has tested the following trees: v5.4.5, v5.3.18, v4.19.90, v4.14.159, v4.9.206, v4.4.206.
>
> v5.4.5: Failed to apply! Possible dependencies:
>     33364d63c75d ("serdev: Add ACPI devices by ResourceSource field")
>
> v5.3.18: Failed to apply! Possible dependencies:
>     33364d63c75d ("serdev: Add ACPI devices by ResourceSource field")
>
> v4.19.90: Failed to apply! Possible dependencies:
>     33364d63c75d ("serdev: Add ACPI devices by ResourceSource field")
>
> v4.14.159: Failed to apply! Possible dependencies:
>     33364d63c75d ("serdev: Add ACPI devices by ResourceSource field")
>     53c7626356c7 ("serdev: Add ACPI support")
>
> v4.9.206: Failed to apply! Possible dependencies:
>     0634c2958927 ("of: Add function for generating a DT modalias with a newline")
>     0a847634849c ("[media] lirc_serial: use precision ktime rather than guessing")
>     53c7626356c7 ("serdev: Add ACPI support")
>     a6f6ad4173b3 ("lirc_serial: make checkpatch happy")
>     b66db53f8d85 ("[media] lirc_serial: port to rc-core")
>     cd6484e1830b ("serdev: Introduce new bus for serial attached devices")
>     fa5dc29c1fcc ("[media] lirc_serial: move out of staging and rename to serial_ir")
>
> v4.4.206: Failed to apply! Possible dependencies:
>     0634c2958927 ("of: Add function for generating a DT modalias with a newline")
>     0a847634849c ("[media] lirc_serial: use precision ktime rather than guessing")
>     49fc9361db78 ("[media] add maintainer for stih-cec driver")
>     53c7626356c7 ("serdev: Add ACPI support")
>     8459503295d9 ("[media] staging: media: lirc: Replace timeval with ktime_t in lirc_serial.c")
>     a6f6ad4173b3 ("lirc_serial: make checkpatch happy")
>     b66db53f8d85 ("[media] lirc_serial: port to rc-core")
>     cd6484e1830b ("serdev: Introduce new bus for serial attached devices")
>     fa5dc29c1fcc ("[media] lirc_serial: move out of staging and rename to serial_ir")
>
>
> NOTE: The patch will not be queued to stable trees until it is upstream.
>
> How should we proceed with this patch?

The patch only makes sense in kernels that have ACPI support enabled for
serdev devices, i.e., v4.15+. In the applicable kernels, it has a
dependency on 33364d63c75d ("serdev: Add ACPI devices by ResourceSource
field") as detected by the bot.

The patch does not need to be backported any further back.

Likely due to the holidays, Greg's not yet picked up the patch for
upstream. I'll nudge him for feedback.

Thanks,
Punit

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-01-06  8:09 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-19 10:03 [PATCH] serdev: Don't claim unsupported ACPI serial devices Punit Agrawal
     [not found] ` <20191225235531.D7BB320882@mail.kernel.org>
2020-01-06  8:10   ` Punit Agrawal

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.