ARM: at91: change "Unknown" qualifier SoC subtype handling
authorNicolas Ferre <nicolas.ferre@atmel.com>
Tue, 9 Apr 2013 10:56:21 +0000 (12:56 +0200)
committerNicolas Ferre <nicolas.ferre@atmel.com>
Tue, 9 Apr 2013 12:26:56 +0000 (14:26 +0200)
An AT91 SoC that doesn't have a subtype is shown as "Unknown"
in the Linux log message which is not correct.
This was leading to confusion so, add a "none" qualifier to
the subtype property and set this one in the appropriate cases.

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
arch/arm/mach-at91/include/mach/cpu.h
arch/arm/mach-at91/setup.c

index 0f3379f..d3d7b99 100644 (file)
@@ -86,7 +86,7 @@ enum at91_soc_type {
        AT91_SOC_SAMA5D3,
 
        /* Unknown type */
-       AT91_SOC_NONE
+       AT91_SOC_UNKNOWN,
 };
 
 enum at91_soc_subtype {
@@ -107,8 +107,11 @@ enum at91_soc_subtype {
        AT91_SOC_SAMA5D31, AT91_SOC_SAMA5D33, AT91_SOC_SAMA5D34,
        AT91_SOC_SAMA5D35,
 
+       /* No subtype for this SoC */
+       AT91_SOC_SUBTYPE_NONE,
+
        /* Unknown subtype */
-       AT91_SOC_SUBTYPE_NONE
+       AT91_SOC_SUBTYPE_UNKNOWN,
 };
 
 struct at91_socinfo {
@@ -122,7 +125,7 @@ const char *at91_get_soc_subtype(struct at91_socinfo *c);
 
 static inline int at91_soc_is_detected(void)
 {
-       return at91_soc_initdata.type != AT91_SOC_NONE;
+       return at91_soc_initdata.type != AT91_SOC_UNKNOWN;
 }
 
 #ifdef CONFIG_SOC_AT91RM9200
index 2ecd169..fd00a09 100644 (file)
@@ -105,28 +105,32 @@ static void __init soc_detect(u32 dbgu_base)
        switch (socid) {
        case ARCH_ID_AT91RM9200:
                at91_soc_initdata.type = AT91_SOC_RM9200;
-               if (at91_soc_initdata.subtype == AT91_SOC_SUBTYPE_NONE)
+               if (at91_soc_initdata.subtype == AT91_SOC_SUBTYPE_UNKNOWN)
                        at91_soc_initdata.subtype = AT91_SOC_RM9200_BGA;
                at91_boot_soc = at91rm9200_soc;
                break;
 
        case ARCH_ID_AT91SAM9260:
                at91_soc_initdata.type = AT91_SOC_SAM9260;
+               at91_soc_initdata.subtype = AT91_SOC_SUBTYPE_NONE;
                at91_boot_soc = at91sam9260_soc;
                break;
 
        case ARCH_ID_AT91SAM9261:
                at91_soc_initdata.type = AT91_SOC_SAM9261;
+               at91_soc_initdata.subtype = AT91_SOC_SUBTYPE_NONE;
                at91_boot_soc = at91sam9261_soc;
                break;
 
        case ARCH_ID_AT91SAM9263:
                at91_soc_initdata.type = AT91_SOC_SAM9263;
+               at91_soc_initdata.subtype = AT91_SOC_SUBTYPE_NONE;
                at91_boot_soc = at91sam9263_soc;
                break;
 
        case ARCH_ID_AT91SAM9G20:
                at91_soc_initdata.type = AT91_SOC_SAM9G20;
+               at91_soc_initdata.subtype = AT91_SOC_SUBTYPE_NONE;
                at91_boot_soc = at91sam9260_soc;
                break;
 
@@ -139,6 +143,7 @@ static void __init soc_detect(u32 dbgu_base)
 
        case ARCH_ID_AT91SAM9RL64:
                at91_soc_initdata.type = AT91_SOC_SAM9RL;
+               at91_soc_initdata.subtype = AT91_SOC_SUBTYPE_NONE;
                at91_boot_soc = at91sam9rl_soc;
                break;
 
@@ -161,6 +166,7 @@ static void __init soc_detect(u32 dbgu_base)
        /* at91sam9g10 */
        if ((socid & ~AT91_CIDR_EXT) == ARCH_ID_AT91SAM9G10) {
                at91_soc_initdata.type = AT91_SOC_SAM9G10;
+               at91_soc_initdata.subtype = AT91_SOC_SUBTYPE_NONE;
                at91_boot_soc = at91sam9261_soc;
        }
        /* at91sam9xe */
@@ -242,7 +248,7 @@ static const char *soc_name[] = {
        [AT91_SOC_SAM9X5]       = "at91sam9x5",
        [AT91_SOC_SAM9N12]      = "at91sam9n12",
        [AT91_SOC_SAMA5D3]      = "sama5d3",
-       [AT91_SOC_NONE]         = "Unknown"
+       [AT91_SOC_UNKNOWN]      = "Unknown",
 };
 
 const char *at91_get_soc_type(struct at91_socinfo *c)
@@ -268,7 +274,8 @@ static const char *soc_subtype_name[] = {
        [AT91_SOC_SAMA5D33]     = "sama5d33",
        [AT91_SOC_SAMA5D34]     = "sama5d34",
        [AT91_SOC_SAMA5D35]     = "sama5d35",
-       [AT91_SOC_SUBTYPE_NONE] = "Unknown"
+       [AT91_SOC_SUBTYPE_NONE] = "None",
+       [AT91_SOC_SUBTYPE_UNKNOWN] = "Unknown",
 };
 
 const char *at91_get_soc_subtype(struct at91_socinfo *c)
@@ -282,8 +289,8 @@ void __init at91_map_io(void)
        /* Map peripherals */
        iotable_init(&at91_io_desc, 1);
 
-       at91_soc_initdata.type = AT91_SOC_NONE;
-       at91_soc_initdata.subtype = AT91_SOC_SUBTYPE_NONE;
+       at91_soc_initdata.type = AT91_SOC_UNKNOWN;
+       at91_soc_initdata.subtype = AT91_SOC_SUBTYPE_UNKNOWN;
 
        soc_detect(AT91_BASE_DBGU0);
        if (!at91_soc_is_detected())
@@ -294,8 +301,9 @@ void __init at91_map_io(void)
 
        pr_info("AT91: Detected soc type: %s\n",
                at91_get_soc_type(&at91_soc_initdata));
-       pr_info("AT91: Detected soc subtype: %s\n",
-               at91_get_soc_subtype(&at91_soc_initdata));
+       if (at91_soc_initdata.subtype != AT91_SOC_SUBTYPE_NONE)
+               pr_info("AT91: Detected soc subtype: %s\n",
+                       at91_get_soc_subtype(&at91_soc_initdata));
 
        if (!at91_soc_is_enabled())
                panic("AT91: Soc not enabled");