/* No sense support partition less than 8B */
if (size < ((PAGE_SIZE) >> 9))
{
- printk(KERN_ERR ERRP "partition size too small (%llx)\n", size);
+ printk(KERN_ERR ERRP "partition size too small (%llx)\n", (u64)size);
return NULL;
}
}
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;
}
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=") + 9;
+ cmdline = strstr(saved_command_line, "mtdparts=");
+ if (!cmdline)
+ return 0;
+ cmdline += 9;
cmdline_parsed = 0;
num_parts = parse_cmdline_partitions(n, &parts, 0);
strcpy(state->parts[i+1].info.volname, parts[i].name);
printk(KERN_INFO "%10s: 0x%09llx -- 0x%09llx (%llu MB)\n",
parts[i].name,
- parts[i].from * 512,
- (parts[i].from + parts[i].size) * 512,
- parts[i].size / 2048);
+ (u64)parts[i].from * 512,
+ (u64)(parts[i].from + parts[i].size) * 512,
+ (u64)parts[i].size / 2048);
}
rkpart_bootmode_fixup();