qe: disable qe when qe-ucode fails to be uploaded for "deep sleep"
PATCH v4 1/1 qe: disable qe when qe-ucode fails to be uploaded for "deep sleep"
when qe-ucode fails to be uploaded, "deep sleep" will hang. if there is no qe-ucode, disable qe module for platforms which support "deep sleep"
---
Changes for v2:
- add "#ifdef CONFIG_MPC85xx"
Changes for v3:
- modify commit msg
Changes for v4:
- modify "#ifdef CONFIG_MPC85xx" to "#ifdef CONFIG_DEEP_SLEEP"
drivers/qe/qe.c +8 -1
@@ -14,6 +14,8 @@#include "asm/immap_qe.h" #include "qe.h" +#define MPC85xx_DEVDISR_QE_DISABLE 0x1 +qe_map_t *qe_immr =NULL ;static qe_snum_t snums[QE_NUM_OF_SNUM ];
@@ -317,7 +319,9 @@ int qe_upload_firmware(const struct qe_firmware *firmware)size_t calc_size =sizeof (struct qe_firmware );size_t length;const struct qe_header *hdr; - +#ifdef CONFIG_DEEP_SLEEP +ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR); +#endif if (!firmware) {printf ("Invalid address\n" );return -EINVAL ;
@@ -330,6 +334,9 @@ int qe_upload_firmware(const struct qe_firmware *firmware)if ((hdr->magic[0 ] !='Q' ) || (hdr->magic[1 ] !='E' ) || (hdr->magic[2 ] !='F' )) {printf ("Not a microcode\n" ); +#ifdef CONFIG_DEEP_SLEEP +setbits_be32 (&gur->devdisr, MPC85xx_DEVDISR_QE_DISABLE); +#endif return -EPERM ; }
Signature · 1 line
1.8.5
PATCH v4 1/1 qe: disable qe when qe-ucode fails to be uploaded for "deep sleep"
Quoted 4 lines · Zhao Qiang
when qe-ucode fails to be uploaded, "deep sleep" will hang. if there is no qe-ucode, disable qe module for platforms which support "deep sleep"
Quoted 9 lines
Signed-off-by Zhao Qiang <[email protected]>---
Changes for v2:
- add "#ifdefCONFIG_MPC85xx"
Changes for v3:
- modify commit msg
Changes for v4:
- modify "#ifdefCONFIG_MPC85xx" to "#ifdefCONFIG_DEEP_SLEEP"
Applied to u-boot-mpc85xx/master.
Thanks,
York