All of lore.kernel.org
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: kbuild-all@lists.01.org,
	Rasmus Villemoes <linux@rasmusvillemoes.dk>,
	linux-kernel@vger.kernel.org, Li Yang <leoyang.li@nxp.com>,
	Scott Wood <oss@buserror.net>,
	linuxppc-dev@lists.ozlabs.org,
	linux-arm-kernel@lists.infradead.org,
	Qiang Zhao <qiang.zhao@nxp.com>
Subject: Re: [PATCH v3 36/36] soc: fsl: qe: remove PPC32 dependency from CONFIG_QUICC_ENGINE
Date: Fri, 15 Nov 2019 07:26:54 +0800	[thread overview]
Message-ID: <201911150740.bQIrPteW%lkp@intel.com> (raw)
In-Reply-To: <20191101124210.14510-37-linux@rasmusvillemoes.dk>

Hi Rasmus,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.4-rc7 next-20191114]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Rasmus-Villemoes/QUICC-Engine-support-on-ARM/20191102-234436
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 1204c70d9dcba31164f78ad5d8c88c42335d51f8
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-31-gfd3528a-dirty
        make ARCH=x86_64 allmodconfig
        make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)

>> drivers/soc/fsl/qe/ucc_slow.c:78:17: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct ucc_slow *us_regs @@    got struct ucc_slow [nstruct ucc_slow *us_regs @@
>> drivers/soc/fsl/qe/ucc_slow.c:78:17: sparse:    expected struct ucc_slow *us_regs
>> drivers/soc/fsl/qe/ucc_slow.c:78:17: sparse:    got struct ucc_slow [noderef] <asn:2> *us_regs
>> drivers/soc/fsl/qe/ucc_slow.c:81:18: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
>> drivers/soc/fsl/qe/ucc_slow.c:81:18: sparse:    expected void [noderef] <asn:2> *
>> drivers/soc/fsl/qe/ucc_slow.c:81:18: sparse:    got restricted __be32 *
   drivers/soc/fsl/qe/ucc_slow.c:90:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:90:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:90:9: sparse:    got restricted __be32 *
   drivers/soc/fsl/qe/ucc_slow.c:99:17: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct ucc_slow *us_regs @@    got struct ucc_slow [nstruct ucc_slow *us_regs @@
   drivers/soc/fsl/qe/ucc_slow.c:99:17: sparse:    expected struct ucc_slow *us_regs
   drivers/soc/fsl/qe/ucc_slow.c:99:17: sparse:    got struct ucc_slow [noderef] <asn:2> *us_regs
   drivers/soc/fsl/qe/ucc_slow.c:102:18: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:102:18: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:102:18: sparse:    got restricted __be32 *
   drivers/soc/fsl/qe/ucc_slow.c:111:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:111:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:111:9: sparse:    got restricted __be32 *
>> drivers/soc/fsl/qe/ucc_slow.c:169:28: sparse: sparse: Using plain integer as NULL pointer
>> drivers/soc/fsl/qe/ucc_slow.c:171:25: sparse: sparse: cast removes address space '<asn:2>' of expression
   drivers/soc/fsl/qe/ucc_slow.c:172:25: sparse: sparse: cast removes address space '<asn:2>' of expression
>> drivers/soc/fsl/qe/ucc_slow.c:191:23: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct ucc_slow_pram *us_pram @@    got vostruct ucc_slow_pram *us_pram @@
>> drivers/soc/fsl/qe/ucc_slow.c:191:23: sparse:    expected struct ucc_slow_pram *us_pram
>> drivers/soc/fsl/qe/ucc_slow.c:191:23: sparse:    got void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:201:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:201:9: sparse:    expected void [noderef] <asn:2> *
>> drivers/soc/fsl/qe/ucc_slow.c:201:9: sparse:    got restricted __be16 *
>> drivers/soc/fsl/qe/ucc_slow.c:228:41: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct qe_bd *tx_bd @@    got void [nodestruct qe_bd *tx_bd @@
>> drivers/soc/fsl/qe/ucc_slow.c:228:41: sparse:    expected struct qe_bd *tx_bd
   drivers/soc/fsl/qe/ucc_slow.c:228:41: sparse:    got void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:231:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:231:17: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:231:17: sparse:    got restricted __be32 *
>> drivers/soc/fsl/qe/ucc_slow.c:233:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got uvoid [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:233:17: sparse:    expected void [noderef] <asn:2> *
>> drivers/soc/fsl/qe/ucc_slow.c:233:17: sparse:    got unsigned int [usertype] *
   drivers/soc/fsl/qe/ucc_slow.c:237:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:237:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:237:9: sparse:    got restricted __be32 *
>> drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse: sparse: incorrect type in argument 1 (different base types) @@    expected unsigned int [usertype] @@    got restrunsigned int [usertype] @@
>> drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse:    expected unsigned int [usertype]
>> drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse:    got restricted __be32 [usertype]
   drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got uvoid [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse:    got unsigned int [usertype] *
>> drivers/soc/fsl/qe/ucc_slow.c:241:26: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct qe_bd *rx_bd @@    got void [nodestruct qe_bd *rx_bd @@
>> drivers/soc/fsl/qe/ucc_slow.c:241:26: sparse:    expected struct qe_bd *rx_bd
   drivers/soc/fsl/qe/ucc_slow.c:241:26: sparse:    got void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:244:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got uvoid [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:244:17: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:244:17: sparse:    got unsigned int [usertype] *
   drivers/soc/fsl/qe/ucc_slow.c:246:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:246:17: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:246:17: sparse:    got restricted __be32 *
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse: sparse: incorrect type in argument 1 (different base types) @@    expected unsigned int [usertype] @@    got restrunsigned int [usertype] @@
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse:    expected unsigned int [usertype]
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse:    got restricted __be32 [usertype]
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got uvoid [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse:    got unsigned int [usertype] *
   drivers/soc/fsl/qe/ucc_slow.c:251:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:251:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:251:9: sparse:    got restricted __be32 *
>> drivers/soc/fsl/qe/ucc_slow.c:275:39: sparse: sparse: mixing different enum types:
>> drivers/soc/fsl/qe/ucc_slow.c:275:39: sparse:    unsigned int enum ucc_slow_tx_oversampling_rate
>> drivers/soc/fsl/qe/ucc_slow.c:275:39: sparse:    unsigned int enum ucc_slow_rx_oversampling_rate
   drivers/soc/fsl/qe/ucc_slow.c:295:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:295:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:295:9: sparse:    got restricted __be16 *
   drivers/soc/fsl/qe/ucc_slow.c:296:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:296:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:296:9: sparse:    got restricted __be16 *
--
>> drivers/tty/serial/ucc_uart.c:264:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
>> drivers/tty/serial/ucc_uart.c:264:21: sparse:    expected void [noderef] <asn:2> *
>> drivers/tty/serial/ucc_uart.c:264:21: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:268:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:268:21: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:268:21: sparse:    got restricted __be16 *
>> drivers/tty/serial/ucc_uart.c:286:6: sparse: sparse: symbol 'qe_uart_set_mctrl' was not declared. Should it be static?
   drivers/tty/serial/ucc_uart.c:349:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:349:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:349:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:350:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:350:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:350:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:350:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:350:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:350:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:352:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:352:21: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:352:21: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:371:18: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:371:18: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:371:18: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:384:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:384:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:384:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:385:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:385:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:385:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:385:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:385:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:385:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:388:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:388:21: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:388:21: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:476:26: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:476:26: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:476:26: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:483:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:483:21: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:483:21: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:514:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:514:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:514:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:514:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:514:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:514:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:517:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:517:21: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:517:21: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:608:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:608:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:608:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:609:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:609:17: sparse:    expected void [noderef] <asn:2> *
>> drivers/tty/serial/ucc_uart.c:609:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:610:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:610:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:610:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:616:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:616:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:616:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:617:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:617:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:617:9: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:618:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:618:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:618:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:629:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:629:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:629:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:630:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:630:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:630:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:631:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:631:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:631:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:641:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:641:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:641:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:642:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:642:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:642:9: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:643:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:643:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:643:9: sparse:    got restricted __be16 *
>> drivers/tty/serial/ucc_uart.c:657:46: sparse: sparse: incorrect type in initializer (different address spaces) @@    expected struct ucc_uart_pram *uccup @@    got struct ucc_uart_prstruct ucc_uart_pram *uccup @@
>> drivers/tty/serial/ucc_uart.c:657:46: sparse:    expected struct ucc_uart_pram *uccup
>> drivers/tty/serial/ucc_uart.c:657:46: sparse:    got struct ucc_uart_pram [noderef] <asn:2> *uccup
>> drivers/tty/serial/ucc_uart.c:665:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:665:9: sparse:    expected void [noderef] <asn:2> *
>> drivers/tty/serial/ucc_uart.c:665:9: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:666:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:666:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:666:9: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:667:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:667:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:667:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:668:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:668:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:668:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:669:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:669:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:669:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:670:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:670:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:670:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:671:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:671:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:671:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:672:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:672:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:672:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:673:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:673:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:673:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:674:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:674:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:674:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:675:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:675:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:675:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:676:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:676:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:676:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:678:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:678:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:678:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:679:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:679:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:679:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:717:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:717:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:717:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:718:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:718:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:718:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:719:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:719:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:719:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:720:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:720:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:720:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:721:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:721:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:721:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:722:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:722:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:722:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:723:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:723:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:723:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:724:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:724:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:724:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:725:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:725:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:725:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:726:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:726:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:726:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:728:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:728:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:728:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:730:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:730:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:730:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:731:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:731:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:731:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:732:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:732:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:732:17: sparse:    got restricted __be16 *
>> drivers/tty/serial/ucc_uart.c:1004:24: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct ucc_uart_pram [noderef] <asn:2> *uccup @@    got am [noderef] <asn:2> *uccup @@
>> drivers/tty/serial/ucc_uart.c:1004:24: sparse:    expected struct ucc_uart_pram [noderef] <asn:2> *uccup
>> drivers/tty/serial/ucc_uart.c:1004:24: sparse:    got struct ucc_uart_pram *

Please review and possibly fold the followup patch.

vim +78 drivers/soc/fsl/qe/ucc_slow.c

9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   72  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   73  void ucc_slow_enable(struct ucc_slow_private * uccs, enum comm_dir mode)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   74  {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   75  	struct ucc_slow *us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   76  	u32 gumr_l;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   77  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  @78  	us_regs = uccs->us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   79  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   80  	/* Enable reception and/or transmission on this UCC. */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  @81  	gumr_l = qe_ioread32be(&us_regs->gumr_l);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   82  	if (mode & COMM_DIR_TX) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   83  		gumr_l |= UCC_SLOW_GUMR_L_ENT;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   84  		uccs->enabled_tx = 1;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   85  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   86  	if (mode & COMM_DIR_RX) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   87  		gumr_l |= UCC_SLOW_GUMR_L_ENR;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   88  		uccs->enabled_rx = 1;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   89  	}
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01   90  	qe_iowrite32be(gumr_l, &us_regs->gumr_l);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   91  }
845cf505cebd15 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2008-01-09   92  EXPORT_SYMBOL(ucc_slow_enable);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   93  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   94  void ucc_slow_disable(struct ucc_slow_private * uccs, enum comm_dir mode)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   95  {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   96  	struct ucc_slow *us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   97  	u32 gumr_l;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   98  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  @99  	us_regs = uccs->us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  100  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  101  	/* Disable reception and/or transmission on this UCC. */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @102  	gumr_l = qe_ioread32be(&us_regs->gumr_l);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  103  	if (mode & COMM_DIR_TX) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  104  		gumr_l &= ~UCC_SLOW_GUMR_L_ENT;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  105  		uccs->enabled_tx = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  106  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  107  	if (mode & COMM_DIR_RX) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  108  		gumr_l &= ~UCC_SLOW_GUMR_L_ENR;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  109  		uccs->enabled_rx = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  110  	}
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @111  	qe_iowrite32be(gumr_l, &us_regs->gumr_l);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  112  }
845cf505cebd15 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2008-01-09  113  EXPORT_SYMBOL(ucc_slow_disable);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  114  
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  115  /* Initialize the UCC for Slow operations
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  116   *
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  117   * The caller should initialize the following us_info
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  118   */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  119  int ucc_slow_init(struct ucc_slow_info * us_info, struct ucc_slow_private ** uccs_ret)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  120  {
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  121  	struct ucc_slow_private *uccs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  122  	u32 i;
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  123  	struct ucc_slow __iomem *us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  124  	u32 gumr;
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  125  	struct qe_bd *bd;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  126  	u32 id;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  127  	u32 command;
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  128  	int ret = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  129  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  130  	if (!us_info)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  131  		return -EINVAL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  132  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  133  	/* check if the UCC port number is in range. */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  134  	if ((us_info->ucc_num < 0) || (us_info->ucc_num > UCC_MAX_NUM - 1)) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  135  		printk(KERN_ERR "%s: illegal UCC number\n", __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  136  		return -EINVAL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  137  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  138  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  139  	/*
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  140  	 * Set mrblr
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  141  	 * Check that 'max_rx_buf_length' is properly aligned (4), unless
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  142  	 * rfw is 1, meaning that QE accepts one byte at a time, unlike normal
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  143  	 * case when QE accepts 32 bits at a time.
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  144  	 */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  145  	if ((!us_info->rfw) &&
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  146  		(us_info->max_rx_buf_length & (UCC_SLOW_MRBLR_ALIGNMENT - 1))) {
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  147  		printk(KERN_ERR "max_rx_buf_length not aligned.\n");
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  148  		return -EINVAL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  149  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  150  
f8485350c22b25 arch/powerpc/sysdev/qe_lib/ucc_slow.c Yan Burman       2006-12-02  151  	uccs = kzalloc(sizeof(struct ucc_slow_private), GFP_KERNEL);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  152  	if (!uccs) {
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  153  		printk(KERN_ERR "%s: Cannot allocate private data\n",
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  154  			__func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  155  		return -ENOMEM;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  156  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  157  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  158  	/* Fill slow UCC structure */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  159  	uccs->us_info = us_info;
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  160  	/* Set the PHY base address */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  161  	uccs->us_regs = ioremap(us_info->regs, sizeof(struct ucc_slow));
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  162  	if (uccs->us_regs == NULL) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  163  		printk(KERN_ERR "%s: Cannot map UCC registers\n", __func__);
61a4e9e91dd391 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2008-08-20  164  		kfree(uccs);
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  165  		return -ENOMEM;
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  166  	}
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  167  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  168  	uccs->saved_uccm = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03 @169  	uccs->p_rx_frame = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  170  	us_regs = uccs->us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03 @171  	uccs->p_ucce = (u16 *) & (us_regs->ucce);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  172  	uccs->p_uccm = (u16 *) & (us_regs->uccm);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  173  #ifdef STATISTICS
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  174  	uccs->rx_frames = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  175  	uccs->tx_frames = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  176  	uccs->rx_discarded = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  177  #endif				/* STATISTICS */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  178  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  179  	/* Get PRAM base */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  180  	uccs->us_pram_offset =
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  181  		qe_muram_alloc(UCC_SLOW_PRAM_SIZE, ALIGNMENT_OF_UCC_SLOW_PRAM);
4c35630ccda56e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-05-08  182  	if (IS_ERR_VALUE(uccs->us_pram_offset)) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  183  		printk(KERN_ERR "%s: cannot allocate MURAM for PRAM", __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  184  		ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  185  		return -ENOMEM;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  186  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  187  	id = ucc_slow_get_qe_cr_subblock(us_info->ucc_num);
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  188  	qe_issue_cmd(QE_ASSIGN_PAGE_TO_DEVICE, id, us_info->protocol,
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  189  		     uccs->us_pram_offset);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  190  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03 @191  	uccs->us_pram = qe_muram_addr(uccs->us_pram_offset);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  192  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  193  	/* Set UCC to slow type */
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  194  	ret = ucc_set_type(us_info->ucc_num, UCC_SPEED_TYPE_SLOW);
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  195  	if (ret) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  196  		printk(KERN_ERR "%s: cannot set UCC type", __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  197  		ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  198  		return ret;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  199  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  200  
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @201  	qe_iowrite16be(us_info->max_rx_buf_length, &uccs->us_pram->mrblr);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  202  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  203  	INIT_LIST_HEAD(&uccs->confQ);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  204  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  205  	/* Allocate BDs. */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  206  	uccs->rx_base_offset =
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  207  		qe_muram_alloc(us_info->rx_bd_ring_len * sizeof(struct qe_bd),
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  208  				QE_ALIGNMENT_OF_BD);
4c35630ccda56e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-05-08  209  	if (IS_ERR_VALUE(uccs->rx_base_offset)) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  210  		printk(KERN_ERR "%s: cannot allocate %u RX BDs\n", __func__,
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  211  			us_info->rx_bd_ring_len);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  212  		uccs->rx_base_offset = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  213  		ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  214  		return -ENOMEM;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  215  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  216  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  217  	uccs->tx_base_offset =
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  218  		qe_muram_alloc(us_info->tx_bd_ring_len * sizeof(struct qe_bd),
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  219  			QE_ALIGNMENT_OF_BD);
4c35630ccda56e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-05-08  220  	if (IS_ERR_VALUE(uccs->tx_base_offset)) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  221  		printk(KERN_ERR "%s: cannot allocate TX BDs", __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  222  		uccs->tx_base_offset = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  223  		ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  224  		return -ENOMEM;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  225  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  226  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  227  	/* Init Tx bds */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03 @228  	bd = uccs->confBd = uccs->tx_bd = qe_muram_addr(uccs->tx_base_offset);
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  229  	for (i = 0; i < us_info->tx_bd_ring_len - 1; i++) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  230  		/* clear bd buffer */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @231  		qe_iowrite32be(0, &bd->buf);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  232  		/* set bd status and length */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @233  		qe_iowrite32be(0, (u32 *)bd);
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  234  		bd++;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  235  	}
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  236  	/* for last BD set Wrap bit */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @237  	qe_iowrite32be(0, &bd->buf);
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @238  	qe_iowrite32be(cpu_to_be32(T_W), (u32 *)bd);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  239  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  240  	/* Init Rx bds */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03 @241  	bd = uccs->rx_bd = qe_muram_addr(uccs->rx_base_offset);
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  242  	for (i = 0; i < us_info->rx_bd_ring_len - 1; i++) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  243  		/* set bd status and length */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  244  		qe_iowrite32be(0, (u32 *)bd);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  245  		/* clear bd buffer */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  246  		qe_iowrite32be(0, &bd->buf);
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  247  		bd++;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  248  	}
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  249  	/* for last BD set Wrap bit */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @250  	qe_iowrite32be(cpu_to_be32(R_W), (u32 *)bd);
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  251  	qe_iowrite32be(0, &bd->buf);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  252  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  253  	/* Set GUMR (For more details see the hardware spec.). */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  254  	/* gumr_h */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  255  	gumr = us_info->tcrc;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  256  	if (us_info->cdp)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  257  		gumr |= UCC_SLOW_GUMR_H_CDP;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  258  	if (us_info->ctsp)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  259  		gumr |= UCC_SLOW_GUMR_H_CTSP;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  260  	if (us_info->cds)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  261  		gumr |= UCC_SLOW_GUMR_H_CDS;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  262  	if (us_info->ctss)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  263  		gumr |= UCC_SLOW_GUMR_H_CTSS;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  264  	if (us_info->tfl)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  265  		gumr |= UCC_SLOW_GUMR_H_TFL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  266  	if (us_info->rfw)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  267  		gumr |= UCC_SLOW_GUMR_H_RFW;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  268  	if (us_info->txsy)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  269  		gumr |= UCC_SLOW_GUMR_H_TXSY;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  270  	if (us_info->rtsm)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  271  		gumr |= UCC_SLOW_GUMR_H_RTSM;
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  272  	qe_iowrite32be(gumr, &us_regs->gumr_h);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  273  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  274  	/* gumr_l */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16 @275  	gumr = us_info->tdcr | us_info->rdcr | us_info->tenc | us_info->renc |
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  276  		us_info->diag | us_info->mode;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  277  	if (us_info->tci)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  278  		gumr |= UCC_SLOW_GUMR_L_TCI;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  279  	if (us_info->rinv)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  280  		gumr |= UCC_SLOW_GUMR_L_RINV;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  281  	if (us_info->tinv)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  282  		gumr |= UCC_SLOW_GUMR_L_TINV;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  283  	if (us_info->tend)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  284  		gumr |= UCC_SLOW_GUMR_L_TEND;
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  285  	qe_iowrite32be(gumr, &us_regs->gumr_l);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  286  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  287  	/* Function code registers */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  288  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  289  	/* if the data is in cachable memory, the 'global' */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  290  	/* in the function code should be set. */
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  291  	uccs->us_pram->tbmr = UCC_BMR_BO_BE;
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  292  	uccs->us_pram->rbmr = UCC_BMR_BO_BE;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  293  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  294  	/* rbase, tbase are offsets from MURAM base */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  295  	qe_iowrite16be(uccs->rx_base_offset, &uccs->us_pram->rbase);
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  296  	qe_iowrite16be(uccs->tx_base_offset, &uccs->us_pram->tbase);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  297  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  298  	/* Mux clocking */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  299  	/* Grant Support */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  300  	ucc_set_qe_mux_grant(us_info->ucc_num, us_info->grant_support);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  301  	/* Breakpoint Support */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  302  	ucc_set_qe_mux_bkpt(us_info->ucc_num, us_info->brkpt_support);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  303  	/* Set Tsa or NMSI mode. */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  304  	ucc_set_qe_mux_tsa(us_info->ucc_num, us_info->tsa);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  305  	/* If NMSI (not Tsa), set Tx and Rx clock. */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  306  	if (!us_info->tsa) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  307  		/* Rx clock routing */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  308  		if (ucc_set_qe_mux_rxtx(us_info->ucc_num, us_info->rx_clock,
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  309  					COMM_DIR_RX)) {
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  310  			printk(KERN_ERR "%s: illegal value for RX clock\n",
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  311  			       __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  312  			ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  313  			return -EINVAL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  314  		}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  315  		/* Tx clock routing */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  316  		if (ucc_set_qe_mux_rxtx(us_info->ucc_num, us_info->tx_clock,
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  317  					COMM_DIR_TX)) {
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  318  			printk(KERN_ERR "%s: illegal value for TX clock\n",
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  319  			       __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  320  			ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  321  			return -EINVAL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  322  		}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  323  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  324  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  325  	/* Set interrupt mask register at UCC level. */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  326  	qe_iowrite16be(us_info->uccm_mask, &us_regs->uccm);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  327  
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  328  	/* First, clear anything pending at UCC level,
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  329  	 * otherwise, old garbage may come through
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  330  	 * as soon as the dam is opened. */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  331  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  332  	/* Writing '1' clears */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  333  	qe_iowrite16be(0xffff, &us_regs->ucce);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  334  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  335  	/* Issue QE Init command */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  336  	if (us_info->init_tx && us_info->init_rx)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  337  		command = QE_INIT_TX_RX;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  338  	else if (us_info->init_tx)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  339  		command = QE_INIT_TX;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  340  	else
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  341  		command = QE_INIT_RX;	/* We know at least one is TRUE */
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  342  
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  343  	qe_issue_cmd(command, id, us_info->protocol, 0);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  344  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  345  	*uccs_ret = uccs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  346  	return 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  347  }
845cf505cebd15 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2008-01-09  348  EXPORT_SYMBOL(ucc_slow_init);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  349  

:::::: The code at line 78 was first introduced by commit
:::::: 9865853851313e0d94a4acde42d6f9d8070bb376 [POWERPC] Add QUICC Engine (QE) infrastructure

:::::: TO: Li Yang <leoli@freescale.com>
:::::: CC: Paul Mackerras <paulus@samba.org>

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

WARNING: multiple messages have this Message-ID (diff)
From: kbuild test robot <lkp@intel.com>
To: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Christophe Leroy <christophe.leroy@c-s.fr>,
	kbuild-all@lists.01.org,
	Rasmus Villemoes <linux@rasmusvillemoes.dk>,
	linux-kernel@vger.kernel.org, Li Yang <leoyang.li@nxp.com>,
	Scott Wood <oss@buserror.net>,
	linuxppc-dev@lists.ozlabs.org,
	linux-arm-kernel@lists.infradead.org,
	Qiang Zhao <qiang.zhao@nxp.com>
Subject: Re: [PATCH v3 36/36] soc: fsl: qe: remove PPC32 dependency from CONFIG_QUICC_ENGINE
Date: Fri, 15 Nov 2019 07:26:54 +0800	[thread overview]
Message-ID: <201911150740.bQIrPteW%lkp@intel.com> (raw)
In-Reply-To: <20191101124210.14510-37-linux@rasmusvillemoes.dk>

Hi Rasmus,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.4-rc7 next-20191114]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Rasmus-Villemoes/QUICC-Engine-support-on-ARM/20191102-234436
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 1204c70d9dcba31164f78ad5d8c88c42335d51f8
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-31-gfd3528a-dirty
        make ARCH=x86_64 allmodconfig
        make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)

>> drivers/soc/fsl/qe/ucc_slow.c:78:17: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct ucc_slow *us_regs @@    got struct ucc_slow [nstruct ucc_slow *us_regs @@
>> drivers/soc/fsl/qe/ucc_slow.c:78:17: sparse:    expected struct ucc_slow *us_regs
>> drivers/soc/fsl/qe/ucc_slow.c:78:17: sparse:    got struct ucc_slow [noderef] <asn:2> *us_regs
>> drivers/soc/fsl/qe/ucc_slow.c:81:18: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
>> drivers/soc/fsl/qe/ucc_slow.c:81:18: sparse:    expected void [noderef] <asn:2> *
>> drivers/soc/fsl/qe/ucc_slow.c:81:18: sparse:    got restricted __be32 *
   drivers/soc/fsl/qe/ucc_slow.c:90:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:90:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:90:9: sparse:    got restricted __be32 *
   drivers/soc/fsl/qe/ucc_slow.c:99:17: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct ucc_slow *us_regs @@    got struct ucc_slow [nstruct ucc_slow *us_regs @@
   drivers/soc/fsl/qe/ucc_slow.c:99:17: sparse:    expected struct ucc_slow *us_regs
   drivers/soc/fsl/qe/ucc_slow.c:99:17: sparse:    got struct ucc_slow [noderef] <asn:2> *us_regs
   drivers/soc/fsl/qe/ucc_slow.c:102:18: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:102:18: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:102:18: sparse:    got restricted __be32 *
   drivers/soc/fsl/qe/ucc_slow.c:111:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:111:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:111:9: sparse:    got restricted __be32 *
>> drivers/soc/fsl/qe/ucc_slow.c:169:28: sparse: sparse: Using plain integer as NULL pointer
>> drivers/soc/fsl/qe/ucc_slow.c:171:25: sparse: sparse: cast removes address space '<asn:2>' of expression
   drivers/soc/fsl/qe/ucc_slow.c:172:25: sparse: sparse: cast removes address space '<asn:2>' of expression
>> drivers/soc/fsl/qe/ucc_slow.c:191:23: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct ucc_slow_pram *us_pram @@    got vostruct ucc_slow_pram *us_pram @@
>> drivers/soc/fsl/qe/ucc_slow.c:191:23: sparse:    expected struct ucc_slow_pram *us_pram
>> drivers/soc/fsl/qe/ucc_slow.c:191:23: sparse:    got void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:201:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:201:9: sparse:    expected void [noderef] <asn:2> *
>> drivers/soc/fsl/qe/ucc_slow.c:201:9: sparse:    got restricted __be16 *
>> drivers/soc/fsl/qe/ucc_slow.c:228:41: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct qe_bd *tx_bd @@    got void [nodestruct qe_bd *tx_bd @@
>> drivers/soc/fsl/qe/ucc_slow.c:228:41: sparse:    expected struct qe_bd *tx_bd
   drivers/soc/fsl/qe/ucc_slow.c:228:41: sparse:    got void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:231:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:231:17: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:231:17: sparse:    got restricted __be32 *
>> drivers/soc/fsl/qe/ucc_slow.c:233:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got uvoid [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:233:17: sparse:    expected void [noderef] <asn:2> *
>> drivers/soc/fsl/qe/ucc_slow.c:233:17: sparse:    got unsigned int [usertype] *
   drivers/soc/fsl/qe/ucc_slow.c:237:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:237:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:237:9: sparse:    got restricted __be32 *
>> drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse: sparse: incorrect type in argument 1 (different base types) @@    expected unsigned int [usertype] @@    got restrunsigned int [usertype] @@
>> drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse:    expected unsigned int [usertype]
>> drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse:    got restricted __be32 [usertype]
   drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got uvoid [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse:    got unsigned int [usertype] *
>> drivers/soc/fsl/qe/ucc_slow.c:241:26: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct qe_bd *rx_bd @@    got void [nodestruct qe_bd *rx_bd @@
>> drivers/soc/fsl/qe/ucc_slow.c:241:26: sparse:    expected struct qe_bd *rx_bd
   drivers/soc/fsl/qe/ucc_slow.c:241:26: sparse:    got void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:244:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got uvoid [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:244:17: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:244:17: sparse:    got unsigned int [usertype] *
   drivers/soc/fsl/qe/ucc_slow.c:246:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:246:17: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:246:17: sparse:    got restricted __be32 *
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse: sparse: incorrect type in argument 1 (different base types) @@    expected unsigned int [usertype] @@    got restrunsigned int [usertype] @@
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse:    expected unsigned int [usertype]
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse:    got restricted __be32 [usertype]
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got uvoid [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse:    got unsigned int [usertype] *
   drivers/soc/fsl/qe/ucc_slow.c:251:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:251:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:251:9: sparse:    got restricted __be32 *
>> drivers/soc/fsl/qe/ucc_slow.c:275:39: sparse: sparse: mixing different enum types:
>> drivers/soc/fsl/qe/ucc_slow.c:275:39: sparse:    unsigned int enum ucc_slow_tx_oversampling_rate
>> drivers/soc/fsl/qe/ucc_slow.c:275:39: sparse:    unsigned int enum ucc_slow_rx_oversampling_rate
   drivers/soc/fsl/qe/ucc_slow.c:295:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:295:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:295:9: sparse:    got restricted __be16 *
   drivers/soc/fsl/qe/ucc_slow.c:296:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:296:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:296:9: sparse:    got restricted __be16 *
--
>> drivers/tty/serial/ucc_uart.c:264:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
>> drivers/tty/serial/ucc_uart.c:264:21: sparse:    expected void [noderef] <asn:2> *
>> drivers/tty/serial/ucc_uart.c:264:21: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:268:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:268:21: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:268:21: sparse:    got restricted __be16 *
>> drivers/tty/serial/ucc_uart.c:286:6: sparse: sparse: symbol 'qe_uart_set_mctrl' was not declared. Should it be static?
   drivers/tty/serial/ucc_uart.c:349:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:349:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:349:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:350:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:350:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:350:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:350:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:350:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:350:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:352:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:352:21: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:352:21: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:371:18: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:371:18: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:371:18: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:384:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:384:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:384:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:385:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:385:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:385:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:385:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:385:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:385:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:388:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:388:21: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:388:21: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:476:26: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:476:26: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:476:26: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:483:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:483:21: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:483:21: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:514:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:514:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:514:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:514:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:514:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:514:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:517:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:517:21: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:517:21: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:608:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:608:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:608:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:609:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:609:17: sparse:    expected void [noderef] <asn:2> *
>> drivers/tty/serial/ucc_uart.c:609:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:610:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:610:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:610:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:616:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:616:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:616:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:617:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:617:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:617:9: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:618:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:618:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:618:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:629:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:629:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:629:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:630:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:630:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:630:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:631:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:631:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:631:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:641:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:641:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:641:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:642:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:642:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:642:9: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:643:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:643:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:643:9: sparse:    got restricted __be16 *
>> drivers/tty/serial/ucc_uart.c:657:46: sparse: sparse: incorrect type in initializer (different address spaces) @@    expected struct ucc_uart_pram *uccup @@    got struct ucc_uart_prstruct ucc_uart_pram *uccup @@
>> drivers/tty/serial/ucc_uart.c:657:46: sparse:    expected struct ucc_uart_pram *uccup
>> drivers/tty/serial/ucc_uart.c:657:46: sparse:    got struct ucc_uart_pram [noderef] <asn:2> *uccup
>> drivers/tty/serial/ucc_uart.c:665:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:665:9: sparse:    expected void [noderef] <asn:2> *
>> drivers/tty/serial/ucc_uart.c:665:9: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:666:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:666:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:666:9: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:667:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:667:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:667:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:668:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:668:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:668:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:669:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:669:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:669:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:670:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:670:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:670:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:671:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:671:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:671:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:672:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:672:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:672:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:673:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:673:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:673:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:674:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:674:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:674:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:675:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:675:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:675:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:676:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:676:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:676:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:678:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:678:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:678:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:679:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:679:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:679:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:717:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:717:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:717:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:718:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:718:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:718:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:719:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:719:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:719:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:720:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:720:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:720:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:721:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:721:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:721:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:722:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:722:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:722:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:723:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:723:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:723:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:724:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:724:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:724:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:725:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:725:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:725:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:726:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:726:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:726:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:728:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:728:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:728:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:730:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:730:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:730:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:731:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:731:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:731:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:732:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:732:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:732:17: sparse:    got restricted __be16 *
>> drivers/tty/serial/ucc_uart.c:1004:24: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct ucc_uart_pram [noderef] <asn:2> *uccup @@    got am [noderef] <asn:2> *uccup @@
>> drivers/tty/serial/ucc_uart.c:1004:24: sparse:    expected struct ucc_uart_pram [noderef] <asn:2> *uccup
>> drivers/tty/serial/ucc_uart.c:1004:24: sparse:    got struct ucc_uart_pram *

Please review and possibly fold the followup patch.

vim +78 drivers/soc/fsl/qe/ucc_slow.c

9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   72  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   73  void ucc_slow_enable(struct ucc_slow_private * uccs, enum comm_dir mode)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   74  {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   75  	struct ucc_slow *us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   76  	u32 gumr_l;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   77  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  @78  	us_regs = uccs->us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   79  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   80  	/* Enable reception and/or transmission on this UCC. */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  @81  	gumr_l = qe_ioread32be(&us_regs->gumr_l);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   82  	if (mode & COMM_DIR_TX) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   83  		gumr_l |= UCC_SLOW_GUMR_L_ENT;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   84  		uccs->enabled_tx = 1;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   85  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   86  	if (mode & COMM_DIR_RX) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   87  		gumr_l |= UCC_SLOW_GUMR_L_ENR;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   88  		uccs->enabled_rx = 1;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   89  	}
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01   90  	qe_iowrite32be(gumr_l, &us_regs->gumr_l);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   91  }
845cf505cebd15 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2008-01-09   92  EXPORT_SYMBOL(ucc_slow_enable);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   93  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   94  void ucc_slow_disable(struct ucc_slow_private * uccs, enum comm_dir mode)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   95  {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   96  	struct ucc_slow *us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   97  	u32 gumr_l;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   98  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  @99  	us_regs = uccs->us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  100  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  101  	/* Disable reception and/or transmission on this UCC. */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @102  	gumr_l = qe_ioread32be(&us_regs->gumr_l);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  103  	if (mode & COMM_DIR_TX) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  104  		gumr_l &= ~UCC_SLOW_GUMR_L_ENT;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  105  		uccs->enabled_tx = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  106  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  107  	if (mode & COMM_DIR_RX) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  108  		gumr_l &= ~UCC_SLOW_GUMR_L_ENR;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  109  		uccs->enabled_rx = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  110  	}
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @111  	qe_iowrite32be(gumr_l, &us_regs->gumr_l);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  112  }
845cf505cebd15 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2008-01-09  113  EXPORT_SYMBOL(ucc_slow_disable);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  114  
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  115  /* Initialize the UCC for Slow operations
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  116   *
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  117   * The caller should initialize the following us_info
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  118   */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  119  int ucc_slow_init(struct ucc_slow_info * us_info, struct ucc_slow_private ** uccs_ret)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  120  {
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  121  	struct ucc_slow_private *uccs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  122  	u32 i;
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  123  	struct ucc_slow __iomem *us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  124  	u32 gumr;
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  125  	struct qe_bd *bd;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  126  	u32 id;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  127  	u32 command;
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  128  	int ret = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  129  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  130  	if (!us_info)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  131  		return -EINVAL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  132  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  133  	/* check if the UCC port number is in range. */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  134  	if ((us_info->ucc_num < 0) || (us_info->ucc_num > UCC_MAX_NUM - 1)) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  135  		printk(KERN_ERR "%s: illegal UCC number\n", __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  136  		return -EINVAL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  137  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  138  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  139  	/*
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  140  	 * Set mrblr
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  141  	 * Check that 'max_rx_buf_length' is properly aligned (4), unless
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  142  	 * rfw is 1, meaning that QE accepts one byte at a time, unlike normal
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  143  	 * case when QE accepts 32 bits at a time.
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  144  	 */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  145  	if ((!us_info->rfw) &&
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  146  		(us_info->max_rx_buf_length & (UCC_SLOW_MRBLR_ALIGNMENT - 1))) {
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  147  		printk(KERN_ERR "max_rx_buf_length not aligned.\n");
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  148  		return -EINVAL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  149  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  150  
f8485350c22b25 arch/powerpc/sysdev/qe_lib/ucc_slow.c Yan Burman       2006-12-02  151  	uccs = kzalloc(sizeof(struct ucc_slow_private), GFP_KERNEL);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  152  	if (!uccs) {
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  153  		printk(KERN_ERR "%s: Cannot allocate private data\n",
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  154  			__func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  155  		return -ENOMEM;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  156  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  157  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  158  	/* Fill slow UCC structure */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  159  	uccs->us_info = us_info;
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  160  	/* Set the PHY base address */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  161  	uccs->us_regs = ioremap(us_info->regs, sizeof(struct ucc_slow));
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  162  	if (uccs->us_regs == NULL) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  163  		printk(KERN_ERR "%s: Cannot map UCC registers\n", __func__);
61a4e9e91dd391 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2008-08-20  164  		kfree(uccs);
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  165  		return -ENOMEM;
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  166  	}
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  167  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  168  	uccs->saved_uccm = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03 @169  	uccs->p_rx_frame = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  170  	us_regs = uccs->us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03 @171  	uccs->p_ucce = (u16 *) & (us_regs->ucce);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  172  	uccs->p_uccm = (u16 *) & (us_regs->uccm);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  173  #ifdef STATISTICS
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  174  	uccs->rx_frames = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  175  	uccs->tx_frames = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  176  	uccs->rx_discarded = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  177  #endif				/* STATISTICS */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  178  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  179  	/* Get PRAM base */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  180  	uccs->us_pram_offset =
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  181  		qe_muram_alloc(UCC_SLOW_PRAM_SIZE, ALIGNMENT_OF_UCC_SLOW_PRAM);
4c35630ccda56e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-05-08  182  	if (IS_ERR_VALUE(uccs->us_pram_offset)) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  183  		printk(KERN_ERR "%s: cannot allocate MURAM for PRAM", __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  184  		ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  185  		return -ENOMEM;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  186  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  187  	id = ucc_slow_get_qe_cr_subblock(us_info->ucc_num);
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  188  	qe_issue_cmd(QE_ASSIGN_PAGE_TO_DEVICE, id, us_info->protocol,
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  189  		     uccs->us_pram_offset);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  190  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03 @191  	uccs->us_pram = qe_muram_addr(uccs->us_pram_offset);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  192  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  193  	/* Set UCC to slow type */
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  194  	ret = ucc_set_type(us_info->ucc_num, UCC_SPEED_TYPE_SLOW);
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  195  	if (ret) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  196  		printk(KERN_ERR "%s: cannot set UCC type", __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  197  		ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  198  		return ret;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  199  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  200  
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @201  	qe_iowrite16be(us_info->max_rx_buf_length, &uccs->us_pram->mrblr);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  202  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  203  	INIT_LIST_HEAD(&uccs->confQ);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  204  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  205  	/* Allocate BDs. */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  206  	uccs->rx_base_offset =
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  207  		qe_muram_alloc(us_info->rx_bd_ring_len * sizeof(struct qe_bd),
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  208  				QE_ALIGNMENT_OF_BD);
4c35630ccda56e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-05-08  209  	if (IS_ERR_VALUE(uccs->rx_base_offset)) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  210  		printk(KERN_ERR "%s: cannot allocate %u RX BDs\n", __func__,
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  211  			us_info->rx_bd_ring_len);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  212  		uccs->rx_base_offset = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  213  		ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  214  		return -ENOMEM;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  215  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  216  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  217  	uccs->tx_base_offset =
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  218  		qe_muram_alloc(us_info->tx_bd_ring_len * sizeof(struct qe_bd),
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  219  			QE_ALIGNMENT_OF_BD);
4c35630ccda56e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-05-08  220  	if (IS_ERR_VALUE(uccs->tx_base_offset)) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  221  		printk(KERN_ERR "%s: cannot allocate TX BDs", __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  222  		uccs->tx_base_offset = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  223  		ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  224  		return -ENOMEM;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  225  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  226  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  227  	/* Init Tx bds */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03 @228  	bd = uccs->confBd = uccs->tx_bd = qe_muram_addr(uccs->tx_base_offset);
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  229  	for (i = 0; i < us_info->tx_bd_ring_len - 1; i++) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  230  		/* clear bd buffer */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @231  		qe_iowrite32be(0, &bd->buf);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  232  		/* set bd status and length */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @233  		qe_iowrite32be(0, (u32 *)bd);
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  234  		bd++;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  235  	}
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  236  	/* for last BD set Wrap bit */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @237  	qe_iowrite32be(0, &bd->buf);
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @238  	qe_iowrite32be(cpu_to_be32(T_W), (u32 *)bd);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  239  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  240  	/* Init Rx bds */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03 @241  	bd = uccs->rx_bd = qe_muram_addr(uccs->rx_base_offset);
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  242  	for (i = 0; i < us_info->rx_bd_ring_len - 1; i++) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  243  		/* set bd status and length */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  244  		qe_iowrite32be(0, (u32 *)bd);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  245  		/* clear bd buffer */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  246  		qe_iowrite32be(0, &bd->buf);
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  247  		bd++;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  248  	}
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  249  	/* for last BD set Wrap bit */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @250  	qe_iowrite32be(cpu_to_be32(R_W), (u32 *)bd);
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  251  	qe_iowrite32be(0, &bd->buf);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  252  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  253  	/* Set GUMR (For more details see the hardware spec.). */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  254  	/* gumr_h */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  255  	gumr = us_info->tcrc;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  256  	if (us_info->cdp)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  257  		gumr |= UCC_SLOW_GUMR_H_CDP;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  258  	if (us_info->ctsp)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  259  		gumr |= UCC_SLOW_GUMR_H_CTSP;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  260  	if (us_info->cds)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  261  		gumr |= UCC_SLOW_GUMR_H_CDS;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  262  	if (us_info->ctss)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  263  		gumr |= UCC_SLOW_GUMR_H_CTSS;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  264  	if (us_info->tfl)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  265  		gumr |= UCC_SLOW_GUMR_H_TFL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  266  	if (us_info->rfw)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  267  		gumr |= UCC_SLOW_GUMR_H_RFW;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  268  	if (us_info->txsy)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  269  		gumr |= UCC_SLOW_GUMR_H_TXSY;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  270  	if (us_info->rtsm)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  271  		gumr |= UCC_SLOW_GUMR_H_RTSM;
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  272  	qe_iowrite32be(gumr, &us_regs->gumr_h);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  273  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  274  	/* gumr_l */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16 @275  	gumr = us_info->tdcr | us_info->rdcr | us_info->tenc | us_info->renc |
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  276  		us_info->diag | us_info->mode;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  277  	if (us_info->tci)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  278  		gumr |= UCC_SLOW_GUMR_L_TCI;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  279  	if (us_info->rinv)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  280  		gumr |= UCC_SLOW_GUMR_L_RINV;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  281  	if (us_info->tinv)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  282  		gumr |= UCC_SLOW_GUMR_L_TINV;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  283  	if (us_info->tend)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  284  		gumr |= UCC_SLOW_GUMR_L_TEND;
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  285  	qe_iowrite32be(gumr, &us_regs->gumr_l);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  286  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  287  	/* Function code registers */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  288  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  289  	/* if the data is in cachable memory, the 'global' */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  290  	/* in the function code should be set. */
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  291  	uccs->us_pram->tbmr = UCC_BMR_BO_BE;
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  292  	uccs->us_pram->rbmr = UCC_BMR_BO_BE;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  293  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  294  	/* rbase, tbase are offsets from MURAM base */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  295  	qe_iowrite16be(uccs->rx_base_offset, &uccs->us_pram->rbase);
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  296  	qe_iowrite16be(uccs->tx_base_offset, &uccs->us_pram->tbase);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  297  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  298  	/* Mux clocking */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  299  	/* Grant Support */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  300  	ucc_set_qe_mux_grant(us_info->ucc_num, us_info->grant_support);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  301  	/* Breakpoint Support */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  302  	ucc_set_qe_mux_bkpt(us_info->ucc_num, us_info->brkpt_support);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  303  	/* Set Tsa or NMSI mode. */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  304  	ucc_set_qe_mux_tsa(us_info->ucc_num, us_info->tsa);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  305  	/* If NMSI (not Tsa), set Tx and Rx clock. */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  306  	if (!us_info->tsa) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  307  		/* Rx clock routing */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  308  		if (ucc_set_qe_mux_rxtx(us_info->ucc_num, us_info->rx_clock,
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  309  					COMM_DIR_RX)) {
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  310  			printk(KERN_ERR "%s: illegal value for RX clock\n",
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  311  			       __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  312  			ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  313  			return -EINVAL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  314  		}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  315  		/* Tx clock routing */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  316  		if (ucc_set_qe_mux_rxtx(us_info->ucc_num, us_info->tx_clock,
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  317  					COMM_DIR_TX)) {
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  318  			printk(KERN_ERR "%s: illegal value for TX clock\n",
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  319  			       __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  320  			ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  321  			return -EINVAL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  322  		}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  323  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  324  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  325  	/* Set interrupt mask register at UCC level. */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  326  	qe_iowrite16be(us_info->uccm_mask, &us_regs->uccm);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  327  
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  328  	/* First, clear anything pending at UCC level,
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  329  	 * otherwise, old garbage may come through
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  330  	 * as soon as the dam is opened. */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  331  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  332  	/* Writing '1' clears */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  333  	qe_iowrite16be(0xffff, &us_regs->ucce);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  334  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  335  	/* Issue QE Init command */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  336  	if (us_info->init_tx && us_info->init_rx)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  337  		command = QE_INIT_TX_RX;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  338  	else if (us_info->init_tx)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  339  		command = QE_INIT_TX;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  340  	else
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  341  		command = QE_INIT_RX;	/* We know at least one is TRUE */
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  342  
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  343  	qe_issue_cmd(command, id, us_info->protocol, 0);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  344  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  345  	*uccs_ret = uccs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  346  	return 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  347  }
845cf505cebd15 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2008-01-09  348  EXPORT_SYMBOL(ucc_slow_init);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  349  

:::::: The code at line 78 was first introduced by commit
:::::: 9865853851313e0d94a4acde42d6f9d8070bb376 [POWERPC] Add QUICC Engine (QE) infrastructure

:::::: TO: Li Yang <leoli@freescale.com>
:::::: CC: Paul Mackerras <paulus@samba.org>

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: kbuild test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v3 36/36] soc: fsl: qe: remove PPC32 dependency from CONFIG_QUICC_ENGINE
Date: Fri, 15 Nov 2019 07:26:54 +0800	[thread overview]
Message-ID: <201911150740.bQIrPteW%lkp@intel.com> (raw)
In-Reply-To: <20191101124210.14510-37-linux@rasmusvillemoes.dk>

[-- Attachment #1: Type: text/plain, Size: 62473 bytes --]

Hi Rasmus,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.4-rc7 next-20191114]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Rasmus-Villemoes/QUICC-Engine-support-on-ARM/20191102-234436
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 1204c70d9dcba31164f78ad5d8c88c42335d51f8
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-31-gfd3528a-dirty
        make ARCH=x86_64 allmodconfig
        make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)

>> drivers/soc/fsl/qe/ucc_slow.c:78:17: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct ucc_slow *us_regs @@    got struct ucc_slow [nstruct ucc_slow *us_regs @@
>> drivers/soc/fsl/qe/ucc_slow.c:78:17: sparse:    expected struct ucc_slow *us_regs
>> drivers/soc/fsl/qe/ucc_slow.c:78:17: sparse:    got struct ucc_slow [noderef] <asn:2> *us_regs
>> drivers/soc/fsl/qe/ucc_slow.c:81:18: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
>> drivers/soc/fsl/qe/ucc_slow.c:81:18: sparse:    expected void [noderef] <asn:2> *
>> drivers/soc/fsl/qe/ucc_slow.c:81:18: sparse:    got restricted __be32 *
   drivers/soc/fsl/qe/ucc_slow.c:90:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:90:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:90:9: sparse:    got restricted __be32 *
   drivers/soc/fsl/qe/ucc_slow.c:99:17: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct ucc_slow *us_regs @@    got struct ucc_slow [nstruct ucc_slow *us_regs @@
   drivers/soc/fsl/qe/ucc_slow.c:99:17: sparse:    expected struct ucc_slow *us_regs
   drivers/soc/fsl/qe/ucc_slow.c:99:17: sparse:    got struct ucc_slow [noderef] <asn:2> *us_regs
   drivers/soc/fsl/qe/ucc_slow.c:102:18: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:102:18: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:102:18: sparse:    got restricted __be32 *
   drivers/soc/fsl/qe/ucc_slow.c:111:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:111:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:111:9: sparse:    got restricted __be32 *
>> drivers/soc/fsl/qe/ucc_slow.c:169:28: sparse: sparse: Using plain integer as NULL pointer
>> drivers/soc/fsl/qe/ucc_slow.c:171:25: sparse: sparse: cast removes address space '<asn:2>' of expression
   drivers/soc/fsl/qe/ucc_slow.c:172:25: sparse: sparse: cast removes address space '<asn:2>' of expression
>> drivers/soc/fsl/qe/ucc_slow.c:191:23: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct ucc_slow_pram *us_pram @@    got vostruct ucc_slow_pram *us_pram @@
>> drivers/soc/fsl/qe/ucc_slow.c:191:23: sparse:    expected struct ucc_slow_pram *us_pram
>> drivers/soc/fsl/qe/ucc_slow.c:191:23: sparse:    got void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:201:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:201:9: sparse:    expected void [noderef] <asn:2> *
>> drivers/soc/fsl/qe/ucc_slow.c:201:9: sparse:    got restricted __be16 *
>> drivers/soc/fsl/qe/ucc_slow.c:228:41: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct qe_bd *tx_bd @@    got void [nodestruct qe_bd *tx_bd @@
>> drivers/soc/fsl/qe/ucc_slow.c:228:41: sparse:    expected struct qe_bd *tx_bd
   drivers/soc/fsl/qe/ucc_slow.c:228:41: sparse:    got void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:231:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:231:17: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:231:17: sparse:    got restricted __be32 *
>> drivers/soc/fsl/qe/ucc_slow.c:233:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got uvoid [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:233:17: sparse:    expected void [noderef] <asn:2> *
>> drivers/soc/fsl/qe/ucc_slow.c:233:17: sparse:    got unsigned int [usertype] *
   drivers/soc/fsl/qe/ucc_slow.c:237:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:237:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:237:9: sparse:    got restricted __be32 *
>> drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse: sparse: incorrect type in argument 1 (different base types) @@    expected unsigned int [usertype] @@    got restrunsigned int [usertype] @@
>> drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse:    expected unsigned int [usertype]
>> drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse:    got restricted __be32 [usertype]
   drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got uvoid [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse:    got unsigned int [usertype] *
>> drivers/soc/fsl/qe/ucc_slow.c:241:26: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct qe_bd *rx_bd @@    got void [nodestruct qe_bd *rx_bd @@
>> drivers/soc/fsl/qe/ucc_slow.c:241:26: sparse:    expected struct qe_bd *rx_bd
   drivers/soc/fsl/qe/ucc_slow.c:241:26: sparse:    got void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:244:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got uvoid [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:244:17: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:244:17: sparse:    got unsigned int [usertype] *
   drivers/soc/fsl/qe/ucc_slow.c:246:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:246:17: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:246:17: sparse:    got restricted __be32 *
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse: sparse: incorrect type in argument 1 (different base types) @@    expected unsigned int [usertype] @@    got restrunsigned int [usertype] @@
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse:    expected unsigned int [usertype]
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse:    got restricted __be32 [usertype]
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got uvoid [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse:    got unsigned int [usertype] *
   drivers/soc/fsl/qe/ucc_slow.c:251:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:251:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:251:9: sparse:    got restricted __be32 *
>> drivers/soc/fsl/qe/ucc_slow.c:275:39: sparse: sparse: mixing different enum types:
>> drivers/soc/fsl/qe/ucc_slow.c:275:39: sparse:    unsigned int enum ucc_slow_tx_oversampling_rate
>> drivers/soc/fsl/qe/ucc_slow.c:275:39: sparse:    unsigned int enum ucc_slow_rx_oversampling_rate
   drivers/soc/fsl/qe/ucc_slow.c:295:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:295:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:295:9: sparse:    got restricted __be16 *
   drivers/soc/fsl/qe/ucc_slow.c:296:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:296:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:296:9: sparse:    got restricted __be16 *
--
>> drivers/tty/serial/ucc_uart.c:264:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
>> drivers/tty/serial/ucc_uart.c:264:21: sparse:    expected void [noderef] <asn:2> *
>> drivers/tty/serial/ucc_uart.c:264:21: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:268:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:268:21: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:268:21: sparse:    got restricted __be16 *
>> drivers/tty/serial/ucc_uart.c:286:6: sparse: sparse: symbol 'qe_uart_set_mctrl' was not declared. Should it be static?
   drivers/tty/serial/ucc_uart.c:349:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:349:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:349:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:350:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:350:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:350:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:350:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:350:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:350:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:352:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:352:21: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:352:21: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:371:18: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:371:18: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:371:18: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:384:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:384:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:384:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:385:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:385:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:385:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:385:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:385:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:385:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:388:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:388:21: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:388:21: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:476:26: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:476:26: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:476:26: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:483:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:483:21: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:483:21: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:514:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:514:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:514:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:514:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:514:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:514:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:517:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:517:21: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:517:21: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:608:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:608:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:608:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:609:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:609:17: sparse:    expected void [noderef] <asn:2> *
>> drivers/tty/serial/ucc_uart.c:609:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:610:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:610:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:610:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:616:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:616:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:616:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:617:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:617:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:617:9: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:618:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:618:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:618:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:629:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:629:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:629:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:630:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:630:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:630:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:631:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:631:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:631:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:641:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:641:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:641:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:642:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:642:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:642:9: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:643:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:643:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:643:9: sparse:    got restricted __be16 *
>> drivers/tty/serial/ucc_uart.c:657:46: sparse: sparse: incorrect type in initializer (different address spaces) @@    expected struct ucc_uart_pram *uccup @@    got struct ucc_uart_prstruct ucc_uart_pram *uccup @@
>> drivers/tty/serial/ucc_uart.c:657:46: sparse:    expected struct ucc_uart_pram *uccup
>> drivers/tty/serial/ucc_uart.c:657:46: sparse:    got struct ucc_uart_pram [noderef] <asn:2> *uccup
>> drivers/tty/serial/ucc_uart.c:665:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:665:9: sparse:    expected void [noderef] <asn:2> *
>> drivers/tty/serial/ucc_uart.c:665:9: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:666:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:666:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:666:9: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:667:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:667:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:667:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:668:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:668:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:668:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:669:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:669:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:669:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:670:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:670:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:670:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:671:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:671:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:671:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:672:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:672:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:672:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:673:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:673:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:673:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:674:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:674:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:674:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:675:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:675:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:675:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:676:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:676:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:676:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:678:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:678:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:678:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:679:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:679:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:679:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:717:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:717:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:717:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:718:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:718:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:718:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:719:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:719:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:719:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:720:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:720:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:720:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:721:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:721:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:721:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:722:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:722:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:722:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:723:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:723:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:723:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:724:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:724:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:724:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:725:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:725:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:725:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:726:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:726:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:726:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:728:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:728:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:728:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:730:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:730:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:730:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:731:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:731:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:731:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:732:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:732:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:732:17: sparse:    got restricted __be16 *
>> drivers/tty/serial/ucc_uart.c:1004:24: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct ucc_uart_pram [noderef] <asn:2> *uccup @@    got am [noderef] <asn:2> *uccup @@
>> drivers/tty/serial/ucc_uart.c:1004:24: sparse:    expected struct ucc_uart_pram [noderef] <asn:2> *uccup
>> drivers/tty/serial/ucc_uart.c:1004:24: sparse:    got struct ucc_uart_pram *

Please review and possibly fold the followup patch.

vim +78 drivers/soc/fsl/qe/ucc_slow.c

9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   72  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   73  void ucc_slow_enable(struct ucc_slow_private * uccs, enum comm_dir mode)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   74  {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   75  	struct ucc_slow *us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   76  	u32 gumr_l;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   77  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  @78  	us_regs = uccs->us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   79  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   80  	/* Enable reception and/or transmission on this UCC. */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  @81  	gumr_l = qe_ioread32be(&us_regs->gumr_l);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   82  	if (mode & COMM_DIR_TX) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   83  		gumr_l |= UCC_SLOW_GUMR_L_ENT;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   84  		uccs->enabled_tx = 1;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   85  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   86  	if (mode & COMM_DIR_RX) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   87  		gumr_l |= UCC_SLOW_GUMR_L_ENR;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   88  		uccs->enabled_rx = 1;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   89  	}
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01   90  	qe_iowrite32be(gumr_l, &us_regs->gumr_l);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   91  }
845cf505cebd15 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2008-01-09   92  EXPORT_SYMBOL(ucc_slow_enable);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   93  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   94  void ucc_slow_disable(struct ucc_slow_private * uccs, enum comm_dir mode)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   95  {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   96  	struct ucc_slow *us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   97  	u32 gumr_l;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   98  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  @99  	us_regs = uccs->us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  100  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  101  	/* Disable reception and/or transmission on this UCC. */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @102  	gumr_l = qe_ioread32be(&us_regs->gumr_l);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  103  	if (mode & COMM_DIR_TX) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  104  		gumr_l &= ~UCC_SLOW_GUMR_L_ENT;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  105  		uccs->enabled_tx = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  106  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  107  	if (mode & COMM_DIR_RX) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  108  		gumr_l &= ~UCC_SLOW_GUMR_L_ENR;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  109  		uccs->enabled_rx = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  110  	}
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @111  	qe_iowrite32be(gumr_l, &us_regs->gumr_l);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  112  }
845cf505cebd15 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2008-01-09  113  EXPORT_SYMBOL(ucc_slow_disable);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  114  
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  115  /* Initialize the UCC for Slow operations
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  116   *
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  117   * The caller should initialize the following us_info
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  118   */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  119  int ucc_slow_init(struct ucc_slow_info * us_info, struct ucc_slow_private ** uccs_ret)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  120  {
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  121  	struct ucc_slow_private *uccs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  122  	u32 i;
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  123  	struct ucc_slow __iomem *us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  124  	u32 gumr;
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  125  	struct qe_bd *bd;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  126  	u32 id;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  127  	u32 command;
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  128  	int ret = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  129  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  130  	if (!us_info)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  131  		return -EINVAL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  132  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  133  	/* check if the UCC port number is in range. */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  134  	if ((us_info->ucc_num < 0) || (us_info->ucc_num > UCC_MAX_NUM - 1)) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  135  		printk(KERN_ERR "%s: illegal UCC number\n", __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  136  		return -EINVAL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  137  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  138  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  139  	/*
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  140  	 * Set mrblr
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  141  	 * Check that 'max_rx_buf_length' is properly aligned (4), unless
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  142  	 * rfw is 1, meaning that QE accepts one byte at a time, unlike normal
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  143  	 * case when QE accepts 32 bits at a time.
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  144  	 */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  145  	if ((!us_info->rfw) &&
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  146  		(us_info->max_rx_buf_length & (UCC_SLOW_MRBLR_ALIGNMENT - 1))) {
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  147  		printk(KERN_ERR "max_rx_buf_length not aligned.\n");
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  148  		return -EINVAL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  149  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  150  
f8485350c22b25 arch/powerpc/sysdev/qe_lib/ucc_slow.c Yan Burman       2006-12-02  151  	uccs = kzalloc(sizeof(struct ucc_slow_private), GFP_KERNEL);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  152  	if (!uccs) {
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  153  		printk(KERN_ERR "%s: Cannot allocate private data\n",
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  154  			__func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  155  		return -ENOMEM;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  156  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  157  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  158  	/* Fill slow UCC structure */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  159  	uccs->us_info = us_info;
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  160  	/* Set the PHY base address */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  161  	uccs->us_regs = ioremap(us_info->regs, sizeof(struct ucc_slow));
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  162  	if (uccs->us_regs == NULL) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  163  		printk(KERN_ERR "%s: Cannot map UCC registers\n", __func__);
61a4e9e91dd391 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2008-08-20  164  		kfree(uccs);
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  165  		return -ENOMEM;
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  166  	}
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  167  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  168  	uccs->saved_uccm = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03 @169  	uccs->p_rx_frame = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  170  	us_regs = uccs->us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03 @171  	uccs->p_ucce = (u16 *) & (us_regs->ucce);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  172  	uccs->p_uccm = (u16 *) & (us_regs->uccm);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  173  #ifdef STATISTICS
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  174  	uccs->rx_frames = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  175  	uccs->tx_frames = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  176  	uccs->rx_discarded = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  177  #endif				/* STATISTICS */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  178  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  179  	/* Get PRAM base */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  180  	uccs->us_pram_offset =
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  181  		qe_muram_alloc(UCC_SLOW_PRAM_SIZE, ALIGNMENT_OF_UCC_SLOW_PRAM);
4c35630ccda56e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-05-08  182  	if (IS_ERR_VALUE(uccs->us_pram_offset)) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  183  		printk(KERN_ERR "%s: cannot allocate MURAM for PRAM", __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  184  		ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  185  		return -ENOMEM;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  186  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  187  	id = ucc_slow_get_qe_cr_subblock(us_info->ucc_num);
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  188  	qe_issue_cmd(QE_ASSIGN_PAGE_TO_DEVICE, id, us_info->protocol,
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  189  		     uccs->us_pram_offset);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  190  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03 @191  	uccs->us_pram = qe_muram_addr(uccs->us_pram_offset);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  192  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  193  	/* Set UCC to slow type */
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  194  	ret = ucc_set_type(us_info->ucc_num, UCC_SPEED_TYPE_SLOW);
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  195  	if (ret) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  196  		printk(KERN_ERR "%s: cannot set UCC type", __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  197  		ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  198  		return ret;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  199  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  200  
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @201  	qe_iowrite16be(us_info->max_rx_buf_length, &uccs->us_pram->mrblr);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  202  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  203  	INIT_LIST_HEAD(&uccs->confQ);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  204  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  205  	/* Allocate BDs. */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  206  	uccs->rx_base_offset =
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  207  		qe_muram_alloc(us_info->rx_bd_ring_len * sizeof(struct qe_bd),
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  208  				QE_ALIGNMENT_OF_BD);
4c35630ccda56e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-05-08  209  	if (IS_ERR_VALUE(uccs->rx_base_offset)) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  210  		printk(KERN_ERR "%s: cannot allocate %u RX BDs\n", __func__,
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  211  			us_info->rx_bd_ring_len);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  212  		uccs->rx_base_offset = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  213  		ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  214  		return -ENOMEM;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  215  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  216  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  217  	uccs->tx_base_offset =
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  218  		qe_muram_alloc(us_info->tx_bd_ring_len * sizeof(struct qe_bd),
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  219  			QE_ALIGNMENT_OF_BD);
4c35630ccda56e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-05-08  220  	if (IS_ERR_VALUE(uccs->tx_base_offset)) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  221  		printk(KERN_ERR "%s: cannot allocate TX BDs", __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  222  		uccs->tx_base_offset = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  223  		ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  224  		return -ENOMEM;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  225  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  226  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  227  	/* Init Tx bds */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03 @228  	bd = uccs->confBd = uccs->tx_bd = qe_muram_addr(uccs->tx_base_offset);
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  229  	for (i = 0; i < us_info->tx_bd_ring_len - 1; i++) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  230  		/* clear bd buffer */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @231  		qe_iowrite32be(0, &bd->buf);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  232  		/* set bd status and length */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @233  		qe_iowrite32be(0, (u32 *)bd);
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  234  		bd++;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  235  	}
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  236  	/* for last BD set Wrap bit */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @237  	qe_iowrite32be(0, &bd->buf);
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @238  	qe_iowrite32be(cpu_to_be32(T_W), (u32 *)bd);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  239  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  240  	/* Init Rx bds */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03 @241  	bd = uccs->rx_bd = qe_muram_addr(uccs->rx_base_offset);
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  242  	for (i = 0; i < us_info->rx_bd_ring_len - 1; i++) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  243  		/* set bd status and length */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  244  		qe_iowrite32be(0, (u32 *)bd);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  245  		/* clear bd buffer */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  246  		qe_iowrite32be(0, &bd->buf);
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  247  		bd++;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  248  	}
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  249  	/* for last BD set Wrap bit */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @250  	qe_iowrite32be(cpu_to_be32(R_W), (u32 *)bd);
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  251  	qe_iowrite32be(0, &bd->buf);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  252  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  253  	/* Set GUMR (For more details see the hardware spec.). */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  254  	/* gumr_h */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  255  	gumr = us_info->tcrc;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  256  	if (us_info->cdp)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  257  		gumr |= UCC_SLOW_GUMR_H_CDP;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  258  	if (us_info->ctsp)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  259  		gumr |= UCC_SLOW_GUMR_H_CTSP;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  260  	if (us_info->cds)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  261  		gumr |= UCC_SLOW_GUMR_H_CDS;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  262  	if (us_info->ctss)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  263  		gumr |= UCC_SLOW_GUMR_H_CTSS;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  264  	if (us_info->tfl)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  265  		gumr |= UCC_SLOW_GUMR_H_TFL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  266  	if (us_info->rfw)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  267  		gumr |= UCC_SLOW_GUMR_H_RFW;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  268  	if (us_info->txsy)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  269  		gumr |= UCC_SLOW_GUMR_H_TXSY;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  270  	if (us_info->rtsm)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  271  		gumr |= UCC_SLOW_GUMR_H_RTSM;
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  272  	qe_iowrite32be(gumr, &us_regs->gumr_h);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  273  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  274  	/* gumr_l */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16 @275  	gumr = us_info->tdcr | us_info->rdcr | us_info->tenc | us_info->renc |
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  276  		us_info->diag | us_info->mode;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  277  	if (us_info->tci)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  278  		gumr |= UCC_SLOW_GUMR_L_TCI;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  279  	if (us_info->rinv)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  280  		gumr |= UCC_SLOW_GUMR_L_RINV;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  281  	if (us_info->tinv)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  282  		gumr |= UCC_SLOW_GUMR_L_TINV;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  283  	if (us_info->tend)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  284  		gumr |= UCC_SLOW_GUMR_L_TEND;
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  285  	qe_iowrite32be(gumr, &us_regs->gumr_l);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  286  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  287  	/* Function code registers */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  288  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  289  	/* if the data is in cachable memory, the 'global' */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  290  	/* in the function code should be set. */
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  291  	uccs->us_pram->tbmr = UCC_BMR_BO_BE;
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  292  	uccs->us_pram->rbmr = UCC_BMR_BO_BE;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  293  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  294  	/* rbase, tbase are offsets from MURAM base */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  295  	qe_iowrite16be(uccs->rx_base_offset, &uccs->us_pram->rbase);
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  296  	qe_iowrite16be(uccs->tx_base_offset, &uccs->us_pram->tbase);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  297  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  298  	/* Mux clocking */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  299  	/* Grant Support */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  300  	ucc_set_qe_mux_grant(us_info->ucc_num, us_info->grant_support);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  301  	/* Breakpoint Support */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  302  	ucc_set_qe_mux_bkpt(us_info->ucc_num, us_info->brkpt_support);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  303  	/* Set Tsa or NMSI mode. */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  304  	ucc_set_qe_mux_tsa(us_info->ucc_num, us_info->tsa);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  305  	/* If NMSI (not Tsa), set Tx and Rx clock. */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  306  	if (!us_info->tsa) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  307  		/* Rx clock routing */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  308  		if (ucc_set_qe_mux_rxtx(us_info->ucc_num, us_info->rx_clock,
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  309  					COMM_DIR_RX)) {
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  310  			printk(KERN_ERR "%s: illegal value for RX clock\n",
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  311  			       __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  312  			ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  313  			return -EINVAL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  314  		}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  315  		/* Tx clock routing */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  316  		if (ucc_set_qe_mux_rxtx(us_info->ucc_num, us_info->tx_clock,
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  317  					COMM_DIR_TX)) {
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  318  			printk(KERN_ERR "%s: illegal value for TX clock\n",
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  319  			       __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  320  			ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  321  			return -EINVAL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  322  		}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  323  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  324  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  325  	/* Set interrupt mask register at UCC level. */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  326  	qe_iowrite16be(us_info->uccm_mask, &us_regs->uccm);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  327  
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  328  	/* First, clear anything pending at UCC level,
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  329  	 * otherwise, old garbage may come through
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  330  	 * as soon as the dam is opened. */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  331  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  332  	/* Writing '1' clears */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  333  	qe_iowrite16be(0xffff, &us_regs->ucce);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  334  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  335  	/* Issue QE Init command */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  336  	if (us_info->init_tx && us_info->init_rx)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  337  		command = QE_INIT_TX_RX;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  338  	else if (us_info->init_tx)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  339  		command = QE_INIT_TX;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  340  	else
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  341  		command = QE_INIT_RX;	/* We know at least one is TRUE */
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  342  
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  343  	qe_issue_cmd(command, id, us_info->protocol, 0);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  344  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  345  	*uccs_ret = uccs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  346  	return 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  347  }
845cf505cebd15 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2008-01-09  348  EXPORT_SYMBOL(ucc_slow_init);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  349  

:::::: The code at line 78 was first introduced by commit
:::::: 9865853851313e0d94a4acde42d6f9d8070bb376 [POWERPC] Add QUICC Engine (QE) infrastructure

:::::: TO: Li Yang <leoli@freescale.com>
:::::: CC: Paul Mackerras <paulus@samba.org>

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation

WARNING: multiple messages have this Message-ID (diff)
From: kbuild test robot <lkp@intel.com>
To: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: kbuild-all@lists.01.org, Qiang Zhao <qiang.zhao@nxp.com>,
	Li Yang <leoyang.li@nxp.com>,
	Christophe Leroy <christophe.leroy@c-s.fr>,
	linuxppc-dev@lists.ozlabs.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, Scott Wood <oss@buserror.net>,
	Rasmus Villemoes <linux@rasmusvillemoes.dk>
Subject: Re: [PATCH v3 36/36] soc: fsl: qe: remove PPC32 dependency from CONFIG_QUICC_ENGINE
Date: Fri, 15 Nov 2019 07:26:54 +0800	[thread overview]
Message-ID: <201911150740.bQIrPteW%lkp@intel.com> (raw)
In-Reply-To: <20191101124210.14510-37-linux@rasmusvillemoes.dk>

Hi Rasmus,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.4-rc7 next-20191114]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Rasmus-Villemoes/QUICC-Engine-support-on-ARM/20191102-234436
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 1204c70d9dcba31164f78ad5d8c88c42335d51f8
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-31-gfd3528a-dirty
        make ARCH=x86_64 allmodconfig
        make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)

>> drivers/soc/fsl/qe/ucc_slow.c:78:17: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct ucc_slow *us_regs @@    got struct ucc_slow [nstruct ucc_slow *us_regs @@
>> drivers/soc/fsl/qe/ucc_slow.c:78:17: sparse:    expected struct ucc_slow *us_regs
>> drivers/soc/fsl/qe/ucc_slow.c:78:17: sparse:    got struct ucc_slow [noderef] <asn:2> *us_regs
>> drivers/soc/fsl/qe/ucc_slow.c:81:18: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
>> drivers/soc/fsl/qe/ucc_slow.c:81:18: sparse:    expected void [noderef] <asn:2> *
>> drivers/soc/fsl/qe/ucc_slow.c:81:18: sparse:    got restricted __be32 *
   drivers/soc/fsl/qe/ucc_slow.c:90:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:90:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:90:9: sparse:    got restricted __be32 *
   drivers/soc/fsl/qe/ucc_slow.c:99:17: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct ucc_slow *us_regs @@    got struct ucc_slow [nstruct ucc_slow *us_regs @@
   drivers/soc/fsl/qe/ucc_slow.c:99:17: sparse:    expected struct ucc_slow *us_regs
   drivers/soc/fsl/qe/ucc_slow.c:99:17: sparse:    got struct ucc_slow [noderef] <asn:2> *us_regs
   drivers/soc/fsl/qe/ucc_slow.c:102:18: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:102:18: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:102:18: sparse:    got restricted __be32 *
   drivers/soc/fsl/qe/ucc_slow.c:111:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:111:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:111:9: sparse:    got restricted __be32 *
>> drivers/soc/fsl/qe/ucc_slow.c:169:28: sparse: sparse: Using plain integer as NULL pointer
>> drivers/soc/fsl/qe/ucc_slow.c:171:25: sparse: sparse: cast removes address space '<asn:2>' of expression
   drivers/soc/fsl/qe/ucc_slow.c:172:25: sparse: sparse: cast removes address space '<asn:2>' of expression
>> drivers/soc/fsl/qe/ucc_slow.c:191:23: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct ucc_slow_pram *us_pram @@    got vostruct ucc_slow_pram *us_pram @@
>> drivers/soc/fsl/qe/ucc_slow.c:191:23: sparse:    expected struct ucc_slow_pram *us_pram
>> drivers/soc/fsl/qe/ucc_slow.c:191:23: sparse:    got void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:201:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:201:9: sparse:    expected void [noderef] <asn:2> *
>> drivers/soc/fsl/qe/ucc_slow.c:201:9: sparse:    got restricted __be16 *
>> drivers/soc/fsl/qe/ucc_slow.c:228:41: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct qe_bd *tx_bd @@    got void [nodestruct qe_bd *tx_bd @@
>> drivers/soc/fsl/qe/ucc_slow.c:228:41: sparse:    expected struct qe_bd *tx_bd
   drivers/soc/fsl/qe/ucc_slow.c:228:41: sparse:    got void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:231:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:231:17: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:231:17: sparse:    got restricted __be32 *
>> drivers/soc/fsl/qe/ucc_slow.c:233:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got uvoid [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:233:17: sparse:    expected void [noderef] <asn:2> *
>> drivers/soc/fsl/qe/ucc_slow.c:233:17: sparse:    got unsigned int [usertype] *
   drivers/soc/fsl/qe/ucc_slow.c:237:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:237:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:237:9: sparse:    got restricted __be32 *
>> drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse: sparse: incorrect type in argument 1 (different base types) @@    expected unsigned int [usertype] @@    got restrunsigned int [usertype] @@
>> drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse:    expected unsigned int [usertype]
>> drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse:    got restricted __be32 [usertype]
   drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got uvoid [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:238:9: sparse:    got unsigned int [usertype] *
>> drivers/soc/fsl/qe/ucc_slow.c:241:26: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct qe_bd *rx_bd @@    got void [nodestruct qe_bd *rx_bd @@
>> drivers/soc/fsl/qe/ucc_slow.c:241:26: sparse:    expected struct qe_bd *rx_bd
   drivers/soc/fsl/qe/ucc_slow.c:241:26: sparse:    got void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:244:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got uvoid [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:244:17: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:244:17: sparse:    got unsigned int [usertype] *
   drivers/soc/fsl/qe/ucc_slow.c:246:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:246:17: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:246:17: sparse:    got restricted __be32 *
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse: sparse: incorrect type in argument 1 (different base types) @@    expected unsigned int [usertype] @@    got restrunsigned int [usertype] @@
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse:    expected unsigned int [usertype]
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse:    got restricted __be32 [usertype]
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got uvoid [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:250:9: sparse:    got unsigned int [usertype] *
   drivers/soc/fsl/qe/ucc_slow.c:251:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:251:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:251:9: sparse:    got restricted __be32 *
>> drivers/soc/fsl/qe/ucc_slow.c:275:39: sparse: sparse: mixing different enum types:
>> drivers/soc/fsl/qe/ucc_slow.c:275:39: sparse:    unsigned int enum ucc_slow_tx_oversampling_rate
>> drivers/soc/fsl/qe/ucc_slow.c:275:39: sparse:    unsigned int enum ucc_slow_rx_oversampling_rate
   drivers/soc/fsl/qe/ucc_slow.c:295:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:295:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:295:9: sparse:    got restricted __be16 *
   drivers/soc/fsl/qe/ucc_slow.c:296:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/soc/fsl/qe/ucc_slow.c:296:9: sparse:    expected void [noderef] <asn:2> *
   drivers/soc/fsl/qe/ucc_slow.c:296:9: sparse:    got restricted __be16 *
--
>> drivers/tty/serial/ucc_uart.c:264:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
>> drivers/tty/serial/ucc_uart.c:264:21: sparse:    expected void [noderef] <asn:2> *
>> drivers/tty/serial/ucc_uart.c:264:21: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:268:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:268:21: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:268:21: sparse:    got restricted __be16 *
>> drivers/tty/serial/ucc_uart.c:286:6: sparse: sparse: symbol 'qe_uart_set_mctrl' was not declared. Should it be static?
   drivers/tty/serial/ucc_uart.c:349:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:349:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:349:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:350:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:350:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:350:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:350:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:350:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:350:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:352:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:352:21: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:352:21: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:371:18: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:371:18: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:371:18: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:384:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:384:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:384:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:385:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:385:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:385:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:385:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:385:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:385:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:388:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:388:21: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:388:21: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:476:26: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:476:26: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:476:26: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:483:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:483:21: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:483:21: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:514:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:514:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:514:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:514:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:514:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:514:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:517:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:517:21: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:517:21: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:608:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:608:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:608:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:609:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:609:17: sparse:    expected void [noderef] <asn:2> *
>> drivers/tty/serial/ucc_uart.c:609:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:610:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:610:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:610:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:616:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:616:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:616:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:617:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:617:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:617:9: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:618:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:618:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:618:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:629:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:629:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:629:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:630:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:630:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:630:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:631:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:631:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:631:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:641:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:641:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:641:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:642:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:642:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:642:9: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:643:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:643:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:643:9: sparse:    got restricted __be16 *
>> drivers/tty/serial/ucc_uart.c:657:46: sparse: sparse: incorrect type in initializer (different address spaces) @@    expected struct ucc_uart_pram *uccup @@    got struct ucc_uart_prstruct ucc_uart_pram *uccup @@
>> drivers/tty/serial/ucc_uart.c:657:46: sparse:    expected struct ucc_uart_pram *uccup
>> drivers/tty/serial/ucc_uart.c:657:46: sparse:    got struct ucc_uart_pram [noderef] <asn:2> *uccup
>> drivers/tty/serial/ucc_uart.c:665:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:665:9: sparse:    expected void [noderef] <asn:2> *
>> drivers/tty/serial/ucc_uart.c:665:9: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:666:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:666:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:666:9: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:667:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:667:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:667:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:668:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:668:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:668:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:669:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:669:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:669:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:670:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:670:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:670:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:671:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:671:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:671:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:672:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:672:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:672:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:673:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:673:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:673:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:674:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:674:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:674:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:675:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:675:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:675:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:676:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:676:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:676:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:678:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:678:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:678:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:679:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:679:9: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:679:9: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:717:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:717:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:717:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:718:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:718:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:718:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:719:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:719:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:719:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:720:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:720:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:720:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:721:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:721:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:721:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:722:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:722:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:722:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:723:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:723:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:723:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:724:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:724:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:724:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:725:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:725:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:725:17: sparse:    got restricted __be32 *
   drivers/tty/serial/ucc_uart.c:726:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:726:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:726:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:728:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:728:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:728:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:730:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:730:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:730:17: sparse:    got restricted __be16 *
   drivers/tty/serial/ucc_uart.c:731:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got eref] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:731:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:731:17: sparse:    got unsigned char *
   drivers/tty/serial/ucc_uart.c:732:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@    expected void [noderef] <asn:2> * @@    got [noderef] <asn:2> * @@
   drivers/tty/serial/ucc_uart.c:732:17: sparse:    expected void [noderef] <asn:2> *
   drivers/tty/serial/ucc_uart.c:732:17: sparse:    got restricted __be16 *
>> drivers/tty/serial/ucc_uart.c:1004:24: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct ucc_uart_pram [noderef] <asn:2> *uccup @@    got am [noderef] <asn:2> *uccup @@
>> drivers/tty/serial/ucc_uart.c:1004:24: sparse:    expected struct ucc_uart_pram [noderef] <asn:2> *uccup
>> drivers/tty/serial/ucc_uart.c:1004:24: sparse:    got struct ucc_uart_pram *

Please review and possibly fold the followup patch.

vim +78 drivers/soc/fsl/qe/ucc_slow.c

9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   72  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   73  void ucc_slow_enable(struct ucc_slow_private * uccs, enum comm_dir mode)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   74  {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   75  	struct ucc_slow *us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   76  	u32 gumr_l;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   77  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  @78  	us_regs = uccs->us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   79  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   80  	/* Enable reception and/or transmission on this UCC. */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  @81  	gumr_l = qe_ioread32be(&us_regs->gumr_l);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   82  	if (mode & COMM_DIR_TX) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   83  		gumr_l |= UCC_SLOW_GUMR_L_ENT;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   84  		uccs->enabled_tx = 1;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   85  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   86  	if (mode & COMM_DIR_RX) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   87  		gumr_l |= UCC_SLOW_GUMR_L_ENR;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   88  		uccs->enabled_rx = 1;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   89  	}
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01   90  	qe_iowrite32be(gumr_l, &us_regs->gumr_l);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   91  }
845cf505cebd15 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2008-01-09   92  EXPORT_SYMBOL(ucc_slow_enable);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   93  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   94  void ucc_slow_disable(struct ucc_slow_private * uccs, enum comm_dir mode)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   95  {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   96  	struct ucc_slow *us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   97  	u32 gumr_l;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03   98  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  @99  	us_regs = uccs->us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  100  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  101  	/* Disable reception and/or transmission on this UCC. */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @102  	gumr_l = qe_ioread32be(&us_regs->gumr_l);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  103  	if (mode & COMM_DIR_TX) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  104  		gumr_l &= ~UCC_SLOW_GUMR_L_ENT;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  105  		uccs->enabled_tx = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  106  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  107  	if (mode & COMM_DIR_RX) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  108  		gumr_l &= ~UCC_SLOW_GUMR_L_ENR;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  109  		uccs->enabled_rx = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  110  	}
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @111  	qe_iowrite32be(gumr_l, &us_regs->gumr_l);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  112  }
845cf505cebd15 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2008-01-09  113  EXPORT_SYMBOL(ucc_slow_disable);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  114  
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  115  /* Initialize the UCC for Slow operations
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  116   *
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  117   * The caller should initialize the following us_info
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  118   */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  119  int ucc_slow_init(struct ucc_slow_info * us_info, struct ucc_slow_private ** uccs_ret)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  120  {
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  121  	struct ucc_slow_private *uccs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  122  	u32 i;
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  123  	struct ucc_slow __iomem *us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  124  	u32 gumr;
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  125  	struct qe_bd *bd;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  126  	u32 id;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  127  	u32 command;
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  128  	int ret = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  129  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  130  	if (!us_info)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  131  		return -EINVAL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  132  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  133  	/* check if the UCC port number is in range. */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  134  	if ((us_info->ucc_num < 0) || (us_info->ucc_num > UCC_MAX_NUM - 1)) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  135  		printk(KERN_ERR "%s: illegal UCC number\n", __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  136  		return -EINVAL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  137  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  138  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  139  	/*
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  140  	 * Set mrblr
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  141  	 * Check that 'max_rx_buf_length' is properly aligned (4), unless
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  142  	 * rfw is 1, meaning that QE accepts one byte at a time, unlike normal
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  143  	 * case when QE accepts 32 bits at a time.
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  144  	 */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  145  	if ((!us_info->rfw) &&
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  146  		(us_info->max_rx_buf_length & (UCC_SLOW_MRBLR_ALIGNMENT - 1))) {
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  147  		printk(KERN_ERR "max_rx_buf_length not aligned.\n");
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  148  		return -EINVAL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  149  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  150  
f8485350c22b25 arch/powerpc/sysdev/qe_lib/ucc_slow.c Yan Burman       2006-12-02  151  	uccs = kzalloc(sizeof(struct ucc_slow_private), GFP_KERNEL);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  152  	if (!uccs) {
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  153  		printk(KERN_ERR "%s: Cannot allocate private data\n",
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  154  			__func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  155  		return -ENOMEM;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  156  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  157  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  158  	/* Fill slow UCC structure */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  159  	uccs->us_info = us_info;
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  160  	/* Set the PHY base address */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  161  	uccs->us_regs = ioremap(us_info->regs, sizeof(struct ucc_slow));
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  162  	if (uccs->us_regs == NULL) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  163  		printk(KERN_ERR "%s: Cannot map UCC registers\n", __func__);
61a4e9e91dd391 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2008-08-20  164  		kfree(uccs);
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  165  		return -ENOMEM;
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  166  	}
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  167  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  168  	uccs->saved_uccm = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03 @169  	uccs->p_rx_frame = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  170  	us_regs = uccs->us_regs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03 @171  	uccs->p_ucce = (u16 *) & (us_regs->ucce);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  172  	uccs->p_uccm = (u16 *) & (us_regs->uccm);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  173  #ifdef STATISTICS
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  174  	uccs->rx_frames = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  175  	uccs->tx_frames = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  176  	uccs->rx_discarded = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  177  #endif				/* STATISTICS */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  178  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  179  	/* Get PRAM base */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  180  	uccs->us_pram_offset =
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  181  		qe_muram_alloc(UCC_SLOW_PRAM_SIZE, ALIGNMENT_OF_UCC_SLOW_PRAM);
4c35630ccda56e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-05-08  182  	if (IS_ERR_VALUE(uccs->us_pram_offset)) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  183  		printk(KERN_ERR "%s: cannot allocate MURAM for PRAM", __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  184  		ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  185  		return -ENOMEM;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  186  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  187  	id = ucc_slow_get_qe_cr_subblock(us_info->ucc_num);
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  188  	qe_issue_cmd(QE_ASSIGN_PAGE_TO_DEVICE, id, us_info->protocol,
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  189  		     uccs->us_pram_offset);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  190  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03 @191  	uccs->us_pram = qe_muram_addr(uccs->us_pram_offset);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  192  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  193  	/* Set UCC to slow type */
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  194  	ret = ucc_set_type(us_info->ucc_num, UCC_SPEED_TYPE_SLOW);
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  195  	if (ret) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  196  		printk(KERN_ERR "%s: cannot set UCC type", __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  197  		ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  198  		return ret;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  199  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  200  
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @201  	qe_iowrite16be(us_info->max_rx_buf_length, &uccs->us_pram->mrblr);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  202  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  203  	INIT_LIST_HEAD(&uccs->confQ);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  204  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  205  	/* Allocate BDs. */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  206  	uccs->rx_base_offset =
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  207  		qe_muram_alloc(us_info->rx_bd_ring_len * sizeof(struct qe_bd),
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  208  				QE_ALIGNMENT_OF_BD);
4c35630ccda56e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-05-08  209  	if (IS_ERR_VALUE(uccs->rx_base_offset)) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  210  		printk(KERN_ERR "%s: cannot allocate %u RX BDs\n", __func__,
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  211  			us_info->rx_bd_ring_len);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  212  		uccs->rx_base_offset = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  213  		ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  214  		return -ENOMEM;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  215  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  216  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  217  	uccs->tx_base_offset =
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  218  		qe_muram_alloc(us_info->tx_bd_ring_len * sizeof(struct qe_bd),
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  219  			QE_ALIGNMENT_OF_BD);
4c35630ccda56e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-05-08  220  	if (IS_ERR_VALUE(uccs->tx_base_offset)) {
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  221  		printk(KERN_ERR "%s: cannot allocate TX BDs", __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  222  		uccs->tx_base_offset = 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  223  		ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  224  		return -ENOMEM;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  225  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  226  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  227  	/* Init Tx bds */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03 @228  	bd = uccs->confBd = uccs->tx_bd = qe_muram_addr(uccs->tx_base_offset);
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  229  	for (i = 0; i < us_info->tx_bd_ring_len - 1; i++) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  230  		/* clear bd buffer */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @231  		qe_iowrite32be(0, &bd->buf);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  232  		/* set bd status and length */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @233  		qe_iowrite32be(0, (u32 *)bd);
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  234  		bd++;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  235  	}
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  236  	/* for last BD set Wrap bit */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @237  	qe_iowrite32be(0, &bd->buf);
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @238  	qe_iowrite32be(cpu_to_be32(T_W), (u32 *)bd);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  239  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  240  	/* Init Rx bds */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03 @241  	bd = uccs->rx_bd = qe_muram_addr(uccs->rx_base_offset);
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  242  	for (i = 0; i < us_info->rx_bd_ring_len - 1; i++) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  243  		/* set bd status and length */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  244  		qe_iowrite32be(0, (u32 *)bd);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  245  		/* clear bd buffer */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  246  		qe_iowrite32be(0, &bd->buf);
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  247  		bd++;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  248  	}
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  249  	/* for last BD set Wrap bit */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01 @250  	qe_iowrite32be(cpu_to_be32(R_W), (u32 *)bd);
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  251  	qe_iowrite32be(0, &bd->buf);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  252  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  253  	/* Set GUMR (For more details see the hardware spec.). */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  254  	/* gumr_h */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  255  	gumr = us_info->tcrc;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  256  	if (us_info->cdp)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  257  		gumr |= UCC_SLOW_GUMR_H_CDP;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  258  	if (us_info->ctsp)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  259  		gumr |= UCC_SLOW_GUMR_H_CTSP;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  260  	if (us_info->cds)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  261  		gumr |= UCC_SLOW_GUMR_H_CDS;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  262  	if (us_info->ctss)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  263  		gumr |= UCC_SLOW_GUMR_H_CTSS;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  264  	if (us_info->tfl)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  265  		gumr |= UCC_SLOW_GUMR_H_TFL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  266  	if (us_info->rfw)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  267  		gumr |= UCC_SLOW_GUMR_H_RFW;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  268  	if (us_info->txsy)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  269  		gumr |= UCC_SLOW_GUMR_H_TXSY;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  270  	if (us_info->rtsm)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  271  		gumr |= UCC_SLOW_GUMR_H_RTSM;
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  272  	qe_iowrite32be(gumr, &us_regs->gumr_h);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  273  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  274  	/* gumr_l */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16 @275  	gumr = us_info->tdcr | us_info->rdcr | us_info->tenc | us_info->renc |
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  276  		us_info->diag | us_info->mode;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  277  	if (us_info->tci)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  278  		gumr |= UCC_SLOW_GUMR_L_TCI;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  279  	if (us_info->rinv)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  280  		gumr |= UCC_SLOW_GUMR_L_RINV;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  281  	if (us_info->tinv)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  282  		gumr |= UCC_SLOW_GUMR_L_TINV;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  283  	if (us_info->tend)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  284  		gumr |= UCC_SLOW_GUMR_L_TEND;
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  285  	qe_iowrite32be(gumr, &us_regs->gumr_l);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  286  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  287  	/* Function code registers */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  288  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  289  	/* if the data is in cachable memory, the 'global' */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  290  	/* in the function code should be set. */
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  291  	uccs->us_pram->tbmr = UCC_BMR_BO_BE;
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  292  	uccs->us_pram->rbmr = UCC_BMR_BO_BE;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  293  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  294  	/* rbase, tbase are offsets from MURAM base */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  295  	qe_iowrite16be(uccs->rx_base_offset, &uccs->us_pram->rbase);
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  296  	qe_iowrite16be(uccs->tx_base_offset, &uccs->us_pram->tbase);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  297  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  298  	/* Mux clocking */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  299  	/* Grant Support */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  300  	ucc_set_qe_mux_grant(us_info->ucc_num, us_info->grant_support);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  301  	/* Breakpoint Support */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  302  	ucc_set_qe_mux_bkpt(us_info->ucc_num, us_info->brkpt_support);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  303  	/* Set Tsa or NMSI mode. */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  304  	ucc_set_qe_mux_tsa(us_info->ucc_num, us_info->tsa);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  305  	/* If NMSI (not Tsa), set Tx and Rx clock. */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  306  	if (!us_info->tsa) {
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  307  		/* Rx clock routing */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  308  		if (ucc_set_qe_mux_rxtx(us_info->ucc_num, us_info->rx_clock,
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  309  					COMM_DIR_RX)) {
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  310  			printk(KERN_ERR "%s: illegal value for RX clock\n",
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  311  			       __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  312  			ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  313  			return -EINVAL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  314  		}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  315  		/* Tx clock routing */
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  316  		if (ucc_set_qe_mux_rxtx(us_info->ucc_num, us_info->tx_clock,
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  317  					COMM_DIR_TX)) {
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  318  			printk(KERN_ERR "%s: illegal value for TX clock\n",
e48b1b452ff630 arch/powerpc/sysdev/qe_lib/ucc_slow.c Harvey Harrison  2008-03-29  319  			       __func__);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  320  			ucc_slow_free(uccs);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  321  			return -EINVAL;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  322  		}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  323  	}
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  324  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  325  	/* Set interrupt mask register at UCC level. */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  326  	qe_iowrite16be(us_info->uccm_mask, &us_regs->uccm);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  327  
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  328  	/* First, clear anything pending at UCC level,
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  329  	 * otherwise, old garbage may come through
5af68af5bcd34e arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-02-16  330  	 * as soon as the dam is opened. */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  331  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  332  	/* Writing '1' clears */
eb63c63b289d28 drivers/soc/fsl/qe/ucc_slow.c         Rasmus Villemoes 2019-11-01  333  	qe_iowrite16be(0xffff, &us_regs->ucce);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  334  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  335  	/* Issue QE Init command */
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  336  	if (us_info->init_tx && us_info->init_rx)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  337  		command = QE_INIT_TX_RX;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  338  	else if (us_info->init_tx)
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  339  		command = QE_INIT_TX;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  340  	else
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  341  		command = QE_INIT_RX;	/* We know at least one is TRUE */
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  342  
6b0b594bb81f86 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2007-10-03  343  	qe_issue_cmd(command, id, us_info->protocol, 0);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  344  
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  345  	*uccs_ret = uccs;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  346  	return 0;
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  347  }
845cf505cebd15 arch/powerpc/sysdev/qe_lib/ucc_slow.c Timur Tabi       2008-01-09  348  EXPORT_SYMBOL(ucc_slow_init);
9865853851313e arch/powerpc/sysdev/qe_lib/ucc_slow.c Li Yang          2006-10-03  349  

:::::: The code at line 78 was first introduced by commit
:::::: 9865853851313e0d94a4acde42d6f9d8070bb376 [POWERPC] Add QUICC Engine (QE) infrastructure

:::::: TO: Li Yang <leoli@freescale.com>
:::::: CC: Paul Mackerras <paulus@samba.org>

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

  parent reply	other threads:[~2019-11-14 23:29 UTC|newest]

Thread overview: 349+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-18 12:52 [PATCH 0/7] towards QE support on ARM Rasmus Villemoes
2019-10-18 12:52 ` Rasmus Villemoes
2019-10-18 12:52 ` [PATCH 1/7] soc: fsl: qe: remove space-before-tab Rasmus Villemoes
2019-10-18 12:52   ` Rasmus Villemoes
2019-10-18 12:52   ` Rasmus Villemoes
2019-10-18 12:57   ` Christophe Leroy
2019-10-18 12:57     ` Christophe Leroy
2019-10-18 12:52 ` [PATCH 2/7] soc: fsl: qe: drop volatile qualifier of struct qe_ic::regs Rasmus Villemoes
2019-10-18 12:52   ` Rasmus Villemoes
2019-10-18 12:52   ` Rasmus Villemoes
2019-10-18 13:01   ` Christophe Leroy
2019-10-18 13:01     ` Christophe Leroy
2019-10-18 12:52 ` [PATCH 3/7] soc: fsl: qe: avoid ppc-specific io accessors Rasmus Villemoes
2019-10-18 12:52   ` Rasmus Villemoes
2019-10-18 12:52   ` Rasmus Villemoes
2019-10-22 15:01   ` Christophe Leroy
2019-10-22 15:01     ` Christophe Leroy
2019-10-23  7:08     ` Rasmus Villemoes
2019-10-23  7:08       ` Rasmus Villemoes
2019-10-18 12:52 ` [PATCH 4/7] soc: fsl: qe: replace spin_event_timeout by readx_poll_timeout_atomic Rasmus Villemoes
2019-10-18 12:52   ` Rasmus Villemoes
2019-10-18 12:52   ` Rasmus Villemoes
2019-10-18 16:08   ` Christoph Hellwig
2019-10-18 16:08     ` Christoph Hellwig
2019-10-18 16:08     ` Christoph Hellwig
2019-10-24  8:32     ` Rasmus Villemoes
2019-10-24  8:32       ` Rasmus Villemoes
2019-10-24  8:32       ` Rasmus Villemoes
2019-10-30  0:36       ` Michael Ellerman
2019-10-30  0:36         ` Michael Ellerman
2019-10-30  0:36         ` Michael Ellerman
2019-10-18 12:52 ` [PATCH 5/7] serial: make SERIAL_QE depend on PPC32 Rasmus Villemoes
2019-10-18 12:52 ` [PATCH 6/7] serial: ucc_uart.c: explicitly include asm/cpm.h Rasmus Villemoes
2019-10-18 12:52   ` Rasmus Villemoes
2019-10-18 12:52 ` [PATCH 7/7] soc/fsl/qe/qe.h: remove include of asm/cpm.h Rasmus Villemoes
2019-10-18 20:16 ` [PATCH 0/7] towards QE support on ARM Leo Li
2019-10-18 20:16   ` Leo Li
2019-10-18 20:52   ` Rasmus Villemoes
2019-10-18 20:52     ` Rasmus Villemoes
2019-10-18 21:52     ` Li Yang
2019-10-18 21:52       ` Li Yang
2019-10-18 21:52       ` Li Yang
2019-10-21  8:44       ` Rasmus Villemoes
2019-10-21  8:44         ` Rasmus Villemoes
2019-10-21  8:44         ` Rasmus Villemoes
2019-10-21 22:11         ` Li Yang
2019-10-21 22:11           ` Li Yang
2019-10-22  2:24           ` Qiang Zhao
2019-10-22  2:24             ` Qiang Zhao
2019-10-22 10:17             ` Rasmus Villemoes
2019-10-22 10:17               ` Rasmus Villemoes
2019-10-23  2:52               ` Qiang Zhao
2019-10-23  2:52                 ` Qiang Zhao
2019-10-24 20:02                 ` Li Yang
2019-10-24 20:02                   ` Li Yang
2019-10-24 20:02                   ` Li Yang
2019-10-22 10:12           ` Rasmus Villemoes
2019-10-22 10:12             ` Rasmus Villemoes
2019-10-22 15:06 ` Christophe Leroy
2019-10-22 15:06   ` Christophe Leroy
2019-10-25 12:40 ` [PATCH v2 00/23] QUICC Engine " Rasmus Villemoes
2019-10-25 12:40   ` Rasmus Villemoes
2019-10-25 12:40   ` Rasmus Villemoes
2019-10-25 12:40   ` [PATCH v2 01/23] soc: fsl: qe: remove space-before-tab Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40   ` [PATCH v2 02/23] soc: fsl: qe: drop volatile qualifier of struct qe_ic::regs Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40   ` [PATCH v2 03/23] soc: fsl: qe: avoid ppc-specific io accessors Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-29  7:43     ` Christophe Leroy
2019-10-29  7:43       ` Christophe Leroy
2019-10-29  7:43       ` Christophe Leroy
2019-10-29  8:43       ` ppc: inlining iowrite32be and friends (was: Re: [PATCH v2 03/23] soc: fsl: qe: avoid ppc-specific io accessors) Rasmus Villemoes
2019-10-29  8:43         ` Rasmus Villemoes
2019-10-29  8:43         ` Rasmus Villemoes
2019-10-25 12:40   ` [PATCH v2 04/23] soc: fsl: qe: replace spin_event_timeout by readx_poll_timeout_atomic Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40   ` [PATCH v2 05/23] soc: fsl: qe: qe.c: guard use of pvr_version_is() with CONFIG_PPC32 Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40   ` [PATCH v2 06/23] soc: fsl: qe: avoid tail comments in qe_ic.h Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40   ` [PATCH v2 07/23] soc: fsl: qe: merge qe_ic.h into qe_ic.c Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-30 10:24     ` Christophe Leroy
2019-10-30 10:24       ` Christophe Leroy
2019-10-30 10:24       ` Christophe Leroy
2019-10-25 12:40   ` [PATCH v2 08/23] soc: fsl: qe: drop unneeded #includes Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40   ` [PATCH v2 09/23] soc: fsl: qe: move qe_ic_cascade_* functions to qe_ic.c Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-30 10:45     ` Christophe Leroy
2019-10-30 10:45       ` Christophe Leroy
2019-10-30 10:45       ` Christophe Leroy
2019-10-25 12:40   ` [PATCH v2 10/23] soc: fsl: qe: use qe_ic_cascade_{low, high}_mpic also on 83xx Rasmus Villemoes
2019-10-25 12:40     ` [PATCH v2 10/23] soc: fsl: qe: use qe_ic_cascade_{low,high}_mpic " Rasmus Villemoes
2019-10-25 12:40     ` [PATCH v2 10/23] soc: fsl: qe: use qe_ic_cascade_{low, high}_mpic " Rasmus Villemoes
2019-10-25 12:40   ` [PATCH v2 11/23] soc: fsl: qe: rename qe_ic_cascade_low_mpic -> qe_ic_cascade_low Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-30 10:47     ` Christophe Leroy
2019-10-30 10:47       ` Christophe Leroy
2019-10-30 10:47       ` Christophe Leroy
2019-10-25 12:40   ` [PATCH v2 12/23] soc: fsl: qe: drop assign-only high_active in qe_ic_init Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40   ` [PATCH v2 13/23] soc: fsl: qe: remove pointless sysfs registration in qe_ic.c Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40   ` [PATCH v2 14/23] soc: fsl: qe: move calls of qe_ic_init out of arch/powerpc/ Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40   ` [PATCH v2 15/23] powerpc/83xx: remove mpc83xx_ipic_and_qe_init_IRQ Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40   ` [PATCH v2 16/23] powerpc/85xx: remove mostly pointless mpc85xx_qe_init() Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40   ` [PATCH v2 17/23] soc: fsl: qe: make qe_ic_cascade_* static Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-30 10:50     ` Christophe Leroy
2019-10-30 10:50       ` Christophe Leroy
2019-10-30 10:50       ` Christophe Leroy
2019-10-30 12:52       ` Rasmus Villemoes
2019-10-30 12:52         ` Rasmus Villemoes
2019-10-30 12:52         ` Rasmus Villemoes
2019-10-25 12:40   ` [PATCH v2 18/23] soc: fsl: qe: remove unused qe_ic_set_* functions Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40   ` [PATCH v2 19/23] net: ethernet: freescale: make UCC_GETH explicitly depend on PPC32 Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-30 10:55     ` Christophe Leroy
2019-10-30 10:55       ` Christophe Leroy
2019-10-30 10:55       ` Christophe Leroy
2019-10-25 12:40   ` [PATCH v2 20/23] serial: make SERIAL_QE " Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-29 22:44     ` Leo Li
2019-10-29 22:44       ` Leo Li
2019-10-29 22:44       ` Leo Li
2019-10-29 22:50       ` Rasmus Villemoes
2019-10-29 22:50         ` Rasmus Villemoes
2019-10-29 22:50         ` Rasmus Villemoes
2019-10-30 10:56     ` Christophe Leroy
2019-10-30 10:56       ` Christophe Leroy
2019-10-30 10:56       ` Christophe Leroy
2019-10-25 12:40   ` [PATCH v2 21/23] serial: ucc_uart.c: explicitly include asm/cpm.h Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40   ` [PATCH v2 22/23] soc/fsl/qe/qe.h: remove include of asm/cpm.h Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40   ` [PATCH v2 23/23] soc: fsl: qe: remove PPC32 dependency from CONFIG_QUICC_ENGINE Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-25 12:40     ` Rasmus Villemoes
2019-10-28 14:17     ` kbuild test robot
2019-10-28 14:17       ` kbuild test robot
2019-10-28 14:17       ` kbuild test robot
2019-10-28 14:17       ` kbuild test robot
2019-10-28 14:49     ` kbuild test robot
2019-10-28 14:49       ` kbuild test robot
2019-10-28 14:49       ` kbuild test robot
2019-10-28 14:49       ` kbuild test robot
2019-10-29  0:50     ` kbuild test robot
2019-10-29  0:50       ` kbuild test robot
2019-10-29  0:50       ` kbuild test robot
2019-10-29  0:50       ` kbuild test robot
2019-11-01 12:41 ` [PATCH v3 00/36] QUICC Engine support on ARM Rasmus Villemoes
2019-11-01 12:41   ` Rasmus Villemoes
2019-11-01 12:41   ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 01/36] soc: fsl: qe: remove space-before-tab Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 02/36] soc: fsl: qe: drop volatile qualifier of struct qe_ic::regs Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 03/36] soc: fsl: qe: rename qe_(clr/set/clrset)bit* helpers Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 04/36] soc: fsl: qe: introduce qe_io{read,write}* wrappers Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 05/36] soc: fsl: qe: avoid ppc-specific io accessors Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 06/36] soc: fsl: qe: replace spin_event_timeout by readx_poll_timeout_atomic Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 07/36] soc: fsl: qe: qe.c: guard use of pvr_version_is() with CONFIG_PPC32 Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 08/36] soc: fsl: qe: drop unneeded #includes Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 09/36] soc: fsl: qe: drop assign-only high_active in qe_ic_init Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 10/36] soc: fsl: qe: remove pointless sysfs registration in qe_ic.c Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 11/36] soc: fsl: qe: use qe_ic_cascade_{low, high}_mpic also on 83xx Rasmus Villemoes
2019-11-01 12:41     ` [PATCH v3 11/36] soc: fsl: qe: use qe_ic_cascade_{low,high}_mpic " Rasmus Villemoes
2019-11-01 12:41     ` [PATCH v3 11/36] soc: fsl: qe: use qe_ic_cascade_{low, high}_mpic " Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 12/36] soc: fsl: qe: move calls of qe_ic_init out of arch/powerpc/ Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 13/36] powerpc/83xx: remove mpc83xx_ipic_and_qe_init_IRQ Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 14/36] powerpc/85xx: remove mostly pointless mpc85xx_qe_init() Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 15/36] soc: fsl: qe: move qe_ic_cascade_* functions to qe_ic.c Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 16/36] soc: fsl: qe: rename qe_ic_cascade_low_mpic -> qe_ic_cascade_low Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 17/36] soc: fsl: qe: remove unused qe_ic_set_* functions Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 18/36] soc: fsl: qe: don't use NO_IRQ in qe_ic.c Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 19/36] soc: fsl: qe: make qe_ic_get_{low,high}_irq static Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 20/36] soc: fsl: qe: simplify qe_ic_init() Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 21/36] soc: fsl: qe: merge qe_ic.h headers into qe_ic.c Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 22/36] soc: fsl: qe: qe.c: use of_property_read_* helpers Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 23/36] soc: fsl: qe: qe_io.c: don't open-code of_parse_phandle() Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 24/36] soc: fsl: qe: qe_io.c: access device tree property using be32_to_cpu Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41   ` [PATCH v3 25/36] soc: fsl: qe: qe_io.c: use of_property_read_u32() in par_io_init() Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:41     ` Rasmus Villemoes
2019-11-01 12:42   ` [PATCH v3 26/36] soc: fsl: move cpm.h from powerpc/include/asm to include/soc/fsl Rasmus Villemoes
2019-11-01 12:42     ` Rasmus Villemoes
2019-11-01 12:42     ` Rasmus Villemoes
2019-11-01 16:18     ` Christophe Leroy
2019-11-01 16:18       ` Christophe Leroy
2019-11-01 16:18       ` Christophe Leroy
2019-11-01 16:59       ` Scott Wood
2019-11-01 16:59         ` Scott Wood
2019-11-01 16:59         ` Scott Wood
2019-11-01 12:42   ` [PATCH v3 27/36] soc/fsl/qe/qe.h: update include path for cpm.h Rasmus Villemoes
2019-11-01 12:42     ` Rasmus Villemoes
2019-11-01 12:42     ` Rasmus Villemoes
2019-11-01 12:42   ` [PATCH v3 28/36] serial: ucc_uart: explicitly include soc/fsl/cpm.h Rasmus Villemoes
2019-11-01 12:42     ` Rasmus Villemoes
2019-11-01 12:42     ` Rasmus Villemoes
2019-11-01 16:19     ` Christophe Leroy
2019-11-01 16:19       ` Christophe Leroy
2019-11-01 16:19       ` Christophe Leroy
2019-11-04  7:38       ` Rasmus Villemoes
2019-11-04  7:38         ` Rasmus Villemoes
2019-11-04  7:38         ` Rasmus Villemoes
2019-11-01 12:42   ` [PATCH v3 29/36] serial: ucc_uart: replace ppc-specific IO accessors Rasmus Villemoes
2019-11-01 12:42     ` Rasmus Villemoes
2019-11-01 12:42     ` Rasmus Villemoes
2019-11-01 12:42   ` [PATCH v3 30/36] serial: ucc_uart: factor out soft_uart initialization Rasmus Villemoes
2019-11-01 12:42     ` Rasmus Villemoes
2019-11-01 12:42     ` Rasmus Villemoes
2019-11-01 12:42   ` [PATCH v3 31/36] serial: ucc_uart: stub out soft_uart_init for !CONFIG_PPC32 Rasmus Villemoes
2019-11-01 12:42     ` Rasmus Villemoes
2019-11-01 12:42     ` Rasmus Villemoes
2019-11-01 16:27     ` Christophe Leroy
2019-11-01 16:27       ` Christophe Leroy
2019-11-01 16:27       ` Christophe Leroy
2019-11-04  8:03       ` Rasmus Villemoes
2019-11-04  8:03         ` Rasmus Villemoes
2019-11-04  8:03         ` Rasmus Villemoes
2019-11-01 12:42   ` [PATCH v3 32/36] serial: ucc_uart: use of_property_read_u32() in ucc_uart_probe() Rasmus Villemoes
2019-11-01 12:42     ` Rasmus Villemoes
2019-11-01 12:42     ` Rasmus Villemoes
2019-11-01 12:42   ` [PATCH v3 33/36] serial: ucc_uart: access __be32 field using be32_to_cpu Rasmus Villemoes
2019-11-01 12:42     ` Rasmus Villemoes
2019-11-01 12:42     ` Rasmus Villemoes
2019-11-01 12:42   ` [PATCH v3 34/36] net: ethernet: freescale: make UCC_GETH explicitly depend on PPC32 Rasmus Villemoes
2019-11-01 12:42     ` Rasmus Villemoes
2019-11-01 12:42     ` Rasmus Villemoes
2019-11-01 12:42   ` [PATCH v3 35/36] net/wan: make FSL_UCC_HDLC " Rasmus Villemoes
2019-11-01 12:42     ` Rasmus Villemoes
2019-11-01 12:42     ` Rasmus Villemoes
2019-11-01 16:29     ` Christophe Leroy
2019-11-01 16:29       ` Christophe Leroy
2019-11-01 16:29       ` Christophe Leroy
2019-11-01 22:31       ` Leo Li
2019-11-01 22:31         ` Leo Li
2019-11-01 22:31         ` Leo Li
2019-11-04  8:38         ` Rasmus Villemoes
2019-11-04  8:38           ` Rasmus Villemoes
2019-11-04  8:38           ` Rasmus Villemoes
2019-11-04 20:56           ` Li Yang
2019-11-04 20:56             ` Li Yang
2019-11-04 20:56             ` Li Yang
2019-11-05 22:46             ` Rasmus Villemoes
2019-11-05 22:46               ` Rasmus Villemoes
2019-11-05 22:46               ` Rasmus Villemoes
2019-11-05 23:46               ` Li Yang
2019-11-05 23:46                 ` Li Yang
2019-11-05 23:46                 ` Li Yang
2019-11-05  6:16           ` Qiang Zhao
2019-11-05  6:16             ` Qiang Zhao
2019-11-05  6:16             ` Qiang Zhao
2019-11-06  7:56             ` Rasmus Villemoes
2019-11-06  7:56               ` Rasmus Villemoes
2019-11-06  7:56               ` Rasmus Villemoes
2019-11-01 12:42   ` [PATCH v3 36/36] soc: fsl: qe: remove PPC32 dependency from CONFIG_QUICC_ENGINE Rasmus Villemoes
2019-11-01 12:42     ` Rasmus Villemoes
2019-11-01 12:42     ` Rasmus Villemoes
2019-11-02 17:39     ` kbuild test robot
2019-11-02 17:39       ` kbuild test robot
2019-11-02 17:39       ` kbuild test robot
2019-11-14 23:26     ` kbuild test robot [this message]
2019-11-14 23:26       ` kbuild test robot
2019-11-14 23:26       ` kbuild test robot
2019-11-14 23:26       ` kbuild test robot
2019-11-14 23:26     ` [RFC PATCH] soc: fsl: qe: qe_uart_set_mctrl() can be static kbuild test robot
2019-11-14 23:26       ` kbuild test robot
2019-11-14 23:26       ` kbuild test robot
2019-11-14 23:26       ` kbuild test robot
2019-11-15 13:31     ` [PATCH v3 36/36] soc: fsl: qe: remove PPC32 dependency from CONFIG_QUICC_ENGINE kbuild test robot
2019-11-15 13:31       ` kbuild test robot
2019-11-15 13:31       ` kbuild test robot
2019-11-15 13:31       ` kbuild test robot
2019-11-15 13:42       ` Rasmus Villemoes
2019-11-15 13:42         ` Rasmus Villemoes
2019-11-15 13:42         ` Rasmus Villemoes
2019-11-15 13:42         ` Rasmus Villemoes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201911150740.bQIrPteW%lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    --cc=leoyang.li@nxp.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@rasmusvillemoes.dk \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=oss@buserror.net \
    --cc=qiang.zhao@nxp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.