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)
Sun, Jul 6, 8:04 PM
Unknown Object (File)
Wed, Jul 2, 3:54 PM
Unknown Object (File)
Tue, Jul 1, 6:51 AM
Unknown Object (File)
Mon, Jun 30, 4:00 PM
Unknown Object (File)
Sat, Jun 28, 8:57 AM
Unknown Object (File)
Fri, Jun 20, 12:33 PM
Unknown Object (File)
Tue, Jun 17, 8:29 PM
Unknown Object (File)
Sun, Jun 15, 1:12 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