mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 06:00:43 +00:00
Merge branch '2022-01-28-fastboot-updates'
- 3 DFU/fastboot bugfixes
This commit is contained in:
commit
2d0953c0e0
3 changed files with 13 additions and 16 deletions
|
@ -91,7 +91,7 @@ void fastboot_okay(const char *reason, char *response)
|
|||
*/
|
||||
int __weak fastboot_set_reboot_flag(enum fastboot_reboot_reason reason)
|
||||
{
|
||||
#if CONFIG_IS_ENABLED(FASTBOOT_FLASH_MMC_DEV)
|
||||
#ifdef CONFIG_FASTBOOT_FLASH_MMC_DEV
|
||||
static const char * const boot_cmds[] = {
|
||||
[FASTBOOT_REBOOT_REASON_BOOTLOADER] = "bootonce-bootloader",
|
||||
[FASTBOOT_REBOOT_REASON_FASTBOOTD] = "boot-fastboot",
|
||||
|
|
|
@ -104,23 +104,18 @@ static int part_get_info_by_name_or_alias(struct blk_desc **dev_desc,
|
|||
const char *name,
|
||||
struct disk_partition *info)
|
||||
{
|
||||
int ret;
|
||||
/* strlen("fastboot_partition_alias_") + PART_NAME_LEN + 1 */
|
||||
char env_alias_name[25 + PART_NAME_LEN + 1];
|
||||
char *aliased_part_name;
|
||||
|
||||
ret = do_get_part_info(dev_desc, name, info);
|
||||
if (ret < 0) {
|
||||
/* strlen("fastboot_partition_alias_") + PART_NAME_LEN + 1 */
|
||||
char env_alias_name[25 + PART_NAME_LEN + 1];
|
||||
char *aliased_part_name;
|
||||
/* check for alias */
|
||||
strlcpy(env_alias_name, "fastboot_partition_alias_", sizeof(env_alias_name));
|
||||
strlcat(env_alias_name, name, sizeof(env_alias_name));
|
||||
aliased_part_name = env_get(env_alias_name);
|
||||
if (aliased_part_name)
|
||||
name = aliased_part_name;
|
||||
|
||||
/* check for alias */
|
||||
strcpy(env_alias_name, "fastboot_partition_alias_");
|
||||
strlcat(env_alias_name, name, sizeof(env_alias_name));
|
||||
aliased_part_name = env_get(env_alias_name);
|
||||
if (aliased_part_name != NULL)
|
||||
ret = do_get_part_info(dev_desc, aliased_part_name,
|
||||
info);
|
||||
}
|
||||
return ret;
|
||||
return do_get_part_info(dev_desc, name, info);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -336,6 +336,8 @@ static int state_dfu_idle(struct f_dfu *f_dfu,
|
|||
f_dfu->dfu_state = DFU_STATE_dfuUPLOAD_IDLE;
|
||||
f_dfu->blk_seq_num = 0;
|
||||
value = handle_upload(req, len);
|
||||
if (value >= 0 && value < len)
|
||||
f_dfu->dfu_state = DFU_STATE_dfuIDLE;
|
||||
break;
|
||||
case USB_REQ_DFU_ABORT:
|
||||
/* no zlp? */
|
||||
|
|
Loading…
Reference in a new issue