Set the io width when using an ACPI uart. Previously it would only ever be
set when finding the uart from the device tree. Sponsored by: DARPA, AFRL
This commit is contained in:
parent
94a9d7c3b9
commit
fb006e46e7
@ -100,7 +100,8 @@ uart_cpu_acpi_scan(uint8_t interface_type)
|
|||||||
|
|
||||||
static int
|
static int
|
||||||
uart_cpu_acpi_probe(struct uart_class **classp, bus_space_tag_t *bst,
|
uart_cpu_acpi_probe(struct uart_class **classp, bus_space_tag_t *bst,
|
||||||
bus_space_handle_t *bsh, int *baud, u_int *rclk, u_int *shiftp)
|
bus_space_handle_t *bsh, int *baud, u_int *rclk, u_int *shiftp,
|
||||||
|
u_int *iowidthp)
|
||||||
{
|
{
|
||||||
struct acpi_uart_compat_data *cd;
|
struct acpi_uart_compat_data *cd;
|
||||||
ACPI_TABLE_SPCR *spcr;
|
ACPI_TABLE_SPCR *spcr;
|
||||||
@ -142,6 +143,7 @@ uart_cpu_acpi_probe(struct uart_class **classp, bus_space_tag_t *bst,
|
|||||||
*classp = cd->clas;
|
*classp = cd->clas;
|
||||||
*rclk = 0;
|
*rclk = 0;
|
||||||
*shiftp = 2;
|
*shiftp = 2;
|
||||||
|
*iowidthp = spcr->SerialPort.BitWidth / 8;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
acpi_unmap_table(spcr);
|
acpi_unmap_table(spcr);
|
||||||
@ -169,7 +171,8 @@ uart_cpu_getdev(int devtype, struct uart_devinfo *di)
|
|||||||
|
|
||||||
err = ENXIO;
|
err = ENXIO;
|
||||||
#ifdef DEV_ACPI
|
#ifdef DEV_ACPI
|
||||||
err = uart_cpu_acpi_probe(&class, &bst, &bsh, &br, &rclk, &shift);
|
err = uart_cpu_acpi_probe(&class, &bst, &bsh, &br, &rclk, &shift,
|
||||||
|
&iowidth);
|
||||||
#endif
|
#endif
|
||||||
#ifdef FDT
|
#ifdef FDT
|
||||||
if (err != 0) {
|
if (err != 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user