Page MenuHomeFreeBSD

uart: uart_cpu_arm64: fix the build without FDT
ClosedPublic

Authored by kevans on Sep 29 2022, 6:12 AM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Nov 11, 9:24 PM
Unknown Object (File)
Fri, Oct 31, 4:13 AM
Unknown Object (File)
Fri, Oct 31, 12:50 AM
Unknown Object (File)
Wed, Oct 29, 1:29 AM
Unknown Object (File)
Oct 27 2025, 3:26 AM
Unknown Object (File)
Oct 26 2025, 1:25 PM
Unknown Object (File)
Oct 25 2025, 7:17 AM
Unknown Object (File)
Oct 24 2025, 12:50 PM
Subscribers

Details

Summary

clang 14 doesn't properly determine that we're unconditionally returning
if we have ACPI but not FDT. Workaround it for now by just returning
earlier explicitly, but drop a comment noting that it's sketchy.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

This revision is now accepted and ready to land.Sep 29 2022, 6:35 AM

Maybe we should create a new function that calls uart_cpu_fdt_probe and sets up di similar to uart_cpu_acpi_spcr. This will mean the code is

#if DEV_ACPI
if (uart_cpu_acpi_spcr(...) == 0)
    return (0);
#endif
#if FDT
if (uart_new_fdt_func(...) == 0)
   return (0);
#endif
return (ENXIO);

Switch to Andy's idea; do fdt setup in a new function entirely, just return
ENXIO if neither setup succeeds.

This revision now requires review to proceed.Sep 29 2022, 4:11 PM
This revision is now accepted and ready to land.Sep 29 2022, 4:32 PM