summaryrefslogtreecommitdiff
path: root/lib/utils/i2c/fdt_i2c.c
diff options
context:
space:
mode:
authorSamuel Holland <samuel.holland@sifive.com>2024-11-12 01:02:45 +0300
committerAnup Patel <anup@brainfault.org>2024-11-28 14:39:17 +0300
commitdf1c1000014049d95d65de831f9015a2dcf9fa34 (patch)
tree09ada6ab220ee86c1169a85777c32f2f2a6a1c47 /lib/utils/i2c/fdt_i2c.c
parent23ef9c5f00b81cffbbf7ff6894f241fad07ee4b7 (diff)
downloadopensbi-df1c1000014049d95d65de831f9015a2dcf9fa34.tar.xz
treewide: Make carray arrays const and NULL-terminated
This allows the compiler to generate significantly better code, because it does not have to maintain either the loop counter or loop limit. Plus there are half as many symbols to relocate. This also simplifies passing carray arrays to helper functions. Signed-off-by: Samuel Holland <samuel.holland@sifive.com> Reviewed-by: Anup Patel <anup@brainfault.org>
Diffstat (limited to 'lib/utils/i2c/fdt_i2c.c')
-rw-r--r--lib/utils/i2c/fdt_i2c.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/utils/i2c/fdt_i2c.c b/lib/utils/i2c/fdt_i2c.c
index d23b40d..56891a0 100644
--- a/lib/utils/i2c/fdt_i2c.c
+++ b/lib/utils/i2c/fdt_i2c.c
@@ -17,8 +17,7 @@
#include <sbi_utils/i2c/fdt_i2c.h>
/* List of FDT i2c adapter drivers generated at compile time */
-extern struct fdt_i2c_adapter *fdt_i2c_adapter_drivers[];
-extern unsigned long fdt_i2c_adapter_drivers_size;
+extern struct fdt_i2c_adapter *const fdt_i2c_adapter_drivers[];
static int fdt_i2c_adapter_init(const void *fdt, int nodeoff)
{
@@ -27,7 +26,7 @@ static int fdt_i2c_adapter_init(const void *fdt, int nodeoff)
const struct fdt_match *match;
/* Try all I2C drivers one-by-one */
- for (pos = 0; pos < fdt_i2c_adapter_drivers_size; pos++) {
+ for (pos = 0; fdt_i2c_adapter_drivers[pos]; pos++) {
drv = fdt_i2c_adapter_drivers[pos];
match = fdt_match_node(fdt, nodeoff, drv->match_table);
if (match && drv->init) {