Hi Jan,
On 21/01/2020 11:25, Jan Beulich wrote:
On 21.01.2020 12:16, Julien Grall wrote:
On 21/01/2020 11:13, Jan Beulich wrote:
+ if ( ACPI_FAILURE(status) )
+ {
+ printk("ns16550: Failed to get SPCR table\n");
Is such a message warranted? I.e. wouldn't it trigger on all
systems not having the table, which is hardly what you/we want?
+ return -EINVAL;
Also, is it really an error if there's no such table?
You can only be there if the arm-uart.c found an SPCR table. So this is
a sanity check. Therefore I think the error message is warrant here.
If so - fine. But from
ACPI_DEVICE_START(ans16550, "NS16550 UART", DEVICE_SERIAL)
.class_type = ACPI_DBG2_16550_COMPATIBLE,
.init = ns16550_acpi_uart_init,
ACPI_DEVICE_END
I can't see why this would be. Would you mind educating me?
The bits you pasted only register a driver for any serial device with
the class 16550_COMPATIBLE. This is up to an upper layer to decide how
class_type will be interpreted.
As I mentioned in v1, in the case of serial, the class_type will be
matches against the field interface_type in the SPCR table. This is done
in the function acpi_uart_init().
The function will try to retrieve the SPCR table. If there is none, then
it will bail out. Otherwise, it will call the generic device framework
to lookup for the driver.
Therefore a serial driver can only be called with the SPCR table
actually exists.
Cheers,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel