On 02/12/2020 22:50 PM, Christophe Leroy wrote: > -----Original Message----- > From: Christophe Leroy <christophe.le...@c-s.fr> > Sent: 2020年2月12日 22:50 > To: Rasmus Villemoes <li...@rasmusvillemoes.dk>; Leo Li > <leoyang...@nxp.com>; Qiang Zhao <qiang.z...@nxp.com>; Greg > Kroah-Hartman <gre...@linuxfoundation.org> > Cc: Scott Wood <o...@buserror.net>; linuxppc-dev@lists.ozlabs.org; LKML > <linux-ker...@vger.kernel.org>; linux-arm-ker...@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