arm64: dts: rk3399-box: compatible for rev2 board which cpu_b's vdd gpio is different
[firefly-linux-kernel-4.4.55.git] / block / partitions / rk.c
index 76f72002134ceab9e5731e15f9c3b0d34f510fa4..73a8f8db3be4bb4ab2527f8f2af2b757f4f1d1c4 100755 (executable)
@@ -276,17 +276,26 @@ static int parse_cmdline_partitions(sector_t n,
 
 static void rkpart_bootmode_fixup(void)
 {
-       const char mode[] = " androidboot.mode=emmc";
+       const char mode_emmc[] = " androidboot.mode=emmc";
+       const char mode_nvme[] = " androidboot.mode=nvme";
        const char charger[] = " androidboot.charger.emmc=1";
        char *new_command_line;
        size_t saved_command_line_len = strlen(saved_command_line);
 
        if (strstr(saved_command_line, "androidboot.mode=charger")) {
-               new_command_line = kzalloc(saved_command_line_len + strlen(charger) + 1, GFP_KERNEL);
-               sprintf(new_command_line, "%s%s", saved_command_line, charger);
+               new_command_line = kzalloc(saved_command_line_len +
+                               strlen(charger) + 1, GFP_KERNEL);
+               sprintf(new_command_line, "%s%s",
+                       saved_command_line, charger);
        } else {
-               new_command_line = kzalloc(saved_command_line_len + strlen(mode) + 1, GFP_KERNEL);
-               sprintf(new_command_line, "%s%s", saved_command_line, mode);
+               new_command_line = kzalloc(saved_command_line_len +
+                               strlen(mode_emmc) + 1, GFP_KERNEL);
+               if (strstr(saved_command_line, "storagemedia=nvme"))
+                       sprintf(new_command_line, "%s%s",
+                               saved_command_line, mode_nvme);
+               else
+                       sprintf(new_command_line, "%s%s",
+                               saved_command_line, mode_emmc);
        }
        saved_command_line = new_command_line;
 }
@@ -300,9 +309,8 @@ int rkpart_partition(struct parsed_partitions *state)
        if (n < SECTOR_1G)
                return 0;
 
-        /* ONLY be used by eMMC-disk */
-        if (1 != state->bdev->bd_disk->emmc_disk)
-                return 0;
+       if (!state->bdev->bd_disk->is_rk_disk)
+               return 0;
 
         /* Fixme: parameter should be coherence with part table */
        cmdline = strstr(saved_command_line, "mtdparts=");