Re: [PATCH 3/4] serial: 8250: Add proper clock handling for OxSemi PCIe devices

From: kernel test robot
Date: Thu Jun 17 2021 - 07:23:50 EST


Hi "Maciej,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.13-rc6 next-20210616]
[cannot apply to tty/tty-testing]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/Maciej-W-Rozycki/serial-8250-Fixes-for-Oxford-Semiconductor-950-UARTs/20210616-201047
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 94f0b2d4a1d0c52035aef425da5e022bd2cb1c71
config: x86_64-randconfig-s021-20210617 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-341-g8af24329-dirty
# https://github.com/0day-ci/linux/commit/d3a55e8397b71f343ef931cd098d42a13faf9047
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Maciej-W-Rozycki/serial-8250-Fixes-for-Oxford-Semiconductor-950-UARTs/20210616-201047
git checkout d3a55e8397b71f343ef931cd098d42a13faf9047
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' W=1 ARCH=x86_64

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>


sparse warnings: (new ones prefixed by >>)
>> drivers/tty/serial/8250/8250_pci.c:1258:32: sparse: sparse: cast truncates bits from constant value (ffffff7f becomes 7f)

vim +1258 drivers/tty/serial/8250/8250_pci.c

1241
1242 /*
1243 * For Tornado devices we force MCR[7] set for the Divide-by-M N/8 baud rate
1244 * generator prescaler (CPR and CPR2). Otherwise no prescaler would be used.
1245 */
1246 static int pci_oxsemi_tornado_setup(struct serial_private *priv,
1247 const struct pciserial_board *board,
1248 struct uart_8250_port *up, int idx)
1249 {
1250 struct pci_dev *dev = priv->dev;
1251
1252 /* OxSemi Tornado devices are all 0xCxxx */
1253 if (dev->vendor == PCI_VENDOR_ID_OXSEMI &&
1254 (dev->device & 0xF000) == 0xC000) {
1255 up->port.get_divisor = pci_oxsemi_tornado_get_divisor;
1256 up->port.set_divisor = pci_oxsemi_tornado_set_divisor;
1257
> 1258 up->mcr_mask = ~UART_MCR_CLKSEL;
1259 up->mcr_force = UART_MCR_CLKSEL;
1260 }
1261
1262 return pci_default_setup(priv, board, up, idx);
1263 }
1264

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip