[Regression 5.6-rc1][Bisected b6231ea2b3c6] Powerpc 8xx doesn't boot anymore
Qiang Zhao
qiang.zhao at nxp.com
Thu Feb 13 14:35:25 AEDT 2020
On 02/12/2020 22:50 PM, Christophe Leroy wrote:
> -----Original Message-----
> From: Christophe Leroy <christophe.leroy at c-s.fr>
> Sent: 2020年2月12日 22:50
> To: Rasmus Villemoes <linux at rasmusvillemoes.dk>; Leo Li
> <leoyang.li at nxp.com>; Qiang Zhao <qiang.zhao at nxp.com>; Greg
> Kroah-Hartman <gregkh at linuxfoundation.org>
> Cc: Scott Wood <oss at buserror.net>; linuxppc-dev at lists.ozlabs.org; LKML
> <linux-kernel at vger.kernel.org>; linux-arm-kernel at lists.infradead.org
> Subject: Re: [Regression 5.6-rc1][Bisected b6231ea2b3c6] Powerpc 8xx doesn't
> boot anymore
>
> ---
> diff --git a/drivers/tty/serial/cpm_uart/cpm_uart_core.c
> b/drivers/tty/serial/cpm_uart/cpm_uart_core.c
> index 4cabded8390b..341d682ec6eb 100644
> --- a/drivers/tty/serial/cpm_uart/cpm_uart_core.c
> +++ b/drivers/tty/serial/cpm_uart/cpm_uart_core.c
> @@ -1351,6 +1351,7 @@ static int __init cpm_uart_console_setup(struct
> console *co, char *options)
> clrbits32(&pinfo->sccp->scc_gsmrl, SCC_GSMRL_ENR |
> SCC_GSMRL_ENT);
> }
>
> + cpm_muram_init();
> ret = cpm_uart_allocbuf(pinfo, 1);
>
> if (ret)
>
How about the patch like below? Just a draft.
diff --git a/drivers/soc/fsl/qe/qe.c b/drivers/soc/fsl/qe/qe.c
index 96c2057..c5c2464 100644
--- a/drivers/soc/fsl/qe/qe.c
+++ b/drivers/soc/fsl/qe/qe.c
@@ -29,6 +29,8 @@
#include <soc/fsl/qe/immap_qe.h>
#include <soc/fsl/qe/qe.h>
+static int qe_inited;
+
static void qe_snums_init(void);
static int qe_sdma_init(void);
@@ -637,15 +639,19 @@ unsigned int qe_get_num_of_snums(void)
}
EXPORT_SYMBOL(qe_get_num_of_snums);
-static int __init qe_init(void)
+int __init qe_init(void)
{
struct device_node *np;
+ if(qe_inited)
+ return 0;
+
np = of_find_compatible_node(NULL, NULL, "fsl,qe");
if (!np)
return -ENODEV;
qe_reset();
of_node_put(np);
+ qe_inited = 1
return 0;
}
subsys_initcall(qe_init);
diff --git a/drivers/tty/serial/cpm_uart/cpm_uart_core.c b/drivers/tty/serial/cpm_uart/cpm_uart_core.c
index 19d5a4c..cbf2c32 100644
--- a/drivers/tty/serial/cpm_uart/cpm_uart_core.c
+++ b/drivers/tty/serial/cpm_uart/cpm_uart_core.c
@@ -1373,6 +1373,7 @@ static struct console cpm_scc_uart_console = {
static int __init cpm_uart_console_init(void)
{
+ qe_init();
register_console(&cpm_scc_uart_console);
return 0;
}
diff --git a/include/soc/fsl/qe/qe.h b/include/soc/fsl/qe/qe.h
index e282ac0..531ba05 100644
--- a/include/soc/fsl/qe/qe.h
+++ b/include/soc/fsl/qe/qe.h
@@ -88,6 +88,7 @@ static inline bool qe_clock_is_brg(enum qe_clock clk)
extern spinlock_t cmxgcr_lock;
+int __init qe_init(void);
/* Export QE common operations */
#ifdef CONFIG_QUICC_ENGINE
extern void qe_reset(void);
Best Regards
Qiang Zhao
More information about the Linuxppc-dev
mailing list