ARM: rpi: consolidate board rev error checking
authorStephen Warren <swarren@wwwdotorg.org>
Wed, 24 Dec 2014 03:01:44 +0000 (20:01 -0700)
committerTom Rini <trini@ti.com>
Mon, 29 Dec 2014 21:31:22 +0000 (16:31 -0500)
Create a fake model table entry with default values, so we can error
check the board rev value once when querying it from the firmware, rather
than error-checking for invalid board rev values every time the model
table is used.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
board/raspberrypi/rpi/rpi.c

index 6227e9bc12bd378600680ed3aadad1107b02c61f..c18271fce823f7523a8958352701bfe3ea7086c7 100644 (file)
@@ -84,6 +84,11 @@ static const struct {
        const char *fdtfile;
        bool has_onboard_eth;
 } models[] = {
+       [0] = {
+               "Unknown model",
+               "bcm2835-rpi-other.dtb",
+               false,
+       },
        [BCM2835_BOARD_REV_B_I2C0_2] = {
                "Model B (no P5)",
                "bcm2835-rpi-b-i2c0.dtb",
@@ -185,9 +190,6 @@ static void set_fdtfile(void)
                return;
 
        fdtfile = models[rpi_board_rev].fdtfile;
-       if (!fdtfile)
-               fdtfile = "bcm2835-rpi-other.dtb";
-
        setenv("fdtfile", fdtfile);
 }
 
@@ -270,12 +272,12 @@ static void get_board_rev(void)
                       rpi_board_rev);
                rpi_board_rev = 0;
        }
-
-       name = models[rpi_board_rev].name;
-       if (!name) {
+       if (!models[rpi_board_rev].name) {
                printf("RPI: Board rev %u unknown\n", rpi_board_rev);
-               name = "Unknown model";
+               rpi_board_rev = 0;
        }
+
+       name = models[rpi_board_rev].name;
        printf("RPI model: %s\n", name);
 }