Skip to content

Commit

Permalink
serdev: Don't claim unsupported ACPI serial devices
Browse files Browse the repository at this point in the history
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: [email protected]
Signed-off-by: Punit Agrawal <[email protected]>
Acked-by: Hans de Goede <[email protected]>
Acked-by: Johan Hovold <[email protected]>
Cc: Rob Herring <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
  • Loading branch information
punitagrawal authored and gregkh committed Jan 6, 2020
1 parent 273f632 commit c5ee0b3
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions drivers/tty/serdev/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand All @@ -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;

Expand Down

0 comments on commit c5ee0b3

Please sign in to comment.