Messages in this thread | | | Subject | Re: [PATCH] serdev: Don't claim unsupported serial devices | From | Hans de Goede <> | Date | Wed, 18 Dec 2019 11:05:40 +0100 |
| |
Hi,
On 18-12-2019 07:56, Punit Agrawal wrote: > Serdev sub-system claims all serial devices that are not already > enumerated. As a result, no device node is created for serial port 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 devices that should not be treated as > a serdev device. Add the Intel HS UART peripheral ids 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> > Cc: Rob Herring <robh@kernel.org> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > Cc: Johan Hovold <johan@kernel.org> > Cc: Hans de Goede <hdegoede@redhat.com>
Thank you for addressing this long standing issue.
The basic approach here looks good to me, once the minor comments from other reviewers are addressed you can add my:
Acked-by: Hans de Goede <hdegoede@redhat.com>
to the next version.
Regards,
Hans
> --- > > Hi, > > The patch has been updated based on feedback recieved on the RFC[0]. > > Please consider merging if there are no objections. > > Thanks, > Punit > > [0] https://www.spinics.net/lists/linux-serial/msg36646.html > > 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..0d64fb7d4f36 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_blacklist_devices[] = { > + {"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_blacklist_devices)) > + return AE_OK; > + > if (acpi_serdev_check_resources(ctrl, adev)) > return AE_OK; > >
| |