From: kernel test robot <lkp@intel.com>
To: Hugo Villeneuve <hugo@hugovil.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: Re: [RFC PATCH] Revert "sc16is7xx: Separate GPIOs from modem control lines"
Date: Tue, 16 May 2023 14:20:51 +0800 [thread overview]
Message-ID: <202305161450.DFSDFYLS-lkp@intel.com> (raw)
In-Reply-To: <20230515160206.2801991-1-hugo@hugovil.com>
Hi Hugo,
[This is a private test report for your RFC patch.]
kernel test robot noticed the following build errors:
[auto build test ERROR on tty/tty-testing]
[also build test ERROR on tty/tty-next tty/tty-linus linus/master v6.4-rc2 next-20230516]
[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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Hugo-Villeneuve/Revert-sc16is7xx-Separate-GPIOs-from-modem-control-lines/20230516-022330
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-testing
patch link: https://lore.kernel.org/r/20230515160206.2801991-1-hugo%40hugovil.com
patch subject: [RFC PATCH] Revert "sc16is7xx: Separate GPIOs from modem control lines"
config: i386-randconfig-i053-20230515 (https://download.01.org/0day-ci/archive/20230516/202305161450.DFSDFYLS-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/07f35c5b5f2d204418ea211f585d140c9df5506b
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Hugo-Villeneuve/Revert-sc16is7xx-Separate-GPIOs-from-modem-control-lines/20230516-022330
git checkout 07f35c5b5f2d204418ea211f585d140c9df5506b
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/tty/serial/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202305161450.DFSDFYLS-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/tty/serial/sc16is7xx.c:1454:16: error: no member named 'has_mctrl' in 'struct sc16is7xx_devtype'
if (devtype->has_mctrl)
~~~~~~~ ^
1 error generated.
vim +1454 drivers/tty/serial/sc16is7xx.c
267913ecf73745 Ilpo Järvinen 2022-06-06 1352
dfeae619d781de Jon Ringle 2014-04-24 1353 static int sc16is7xx_probe(struct device *dev,
68be64ca7e2adc Jakub Kicinski 2015-07-31 1354 const struct sc16is7xx_devtype *devtype,
37f3965d74d5b5 Daniel Mack 2020-05-21 1355 struct regmap *regmap, int irq)
dfeae619d781de Jon Ringle 2014-04-24 1356 {
24bc6e68efa00f Andy Shevchenko 2019-03-18 1357 unsigned long freq = 0, *pfreq = dev_get_platdata(dev);
2aa916e67db3e6 Daniel Mack 2020-05-21 1358 unsigned int val;
24bc6e68efa00f Andy Shevchenko 2019-03-18 1359 u32 uartclk = 0;
dfeae619d781de Jon Ringle 2014-04-24 1360 int i, ret;
dfeae619d781de Jon Ringle 2014-04-24 1361 struct sc16is7xx_port *s;
dfeae619d781de Jon Ringle 2014-04-24 1362
dfeae619d781de Jon Ringle 2014-04-24 1363 if (IS_ERR(regmap))
dfeae619d781de Jon Ringle 2014-04-24 1364 return PTR_ERR(regmap);
dfeae619d781de Jon Ringle 2014-04-24 1365
2aa916e67db3e6 Daniel Mack 2020-05-21 1366 /*
2aa916e67db3e6 Daniel Mack 2020-05-21 1367 * This device does not have an identification register that would
2aa916e67db3e6 Daniel Mack 2020-05-21 1368 * tell us if we are really connected to the correct device.
2aa916e67db3e6 Daniel Mack 2020-05-21 1369 * The best we can do is to check if communication is at all possible.
2aa916e67db3e6 Daniel Mack 2020-05-21 1370 */
2aa916e67db3e6 Daniel Mack 2020-05-21 1371 ret = regmap_read(regmap,
2aa916e67db3e6 Daniel Mack 2020-05-21 1372 SC16IS7XX_LSR_REG << SC16IS7XX_REG_SHIFT, &val);
2aa916e67db3e6 Daniel Mack 2020-05-21 1373 if (ret < 0)
158e800e0fde91 Annaliese McDermond 2021-03-29 1374 return -EPROBE_DEFER;
2aa916e67db3e6 Daniel Mack 2020-05-21 1375
dfeae619d781de Jon Ringle 2014-04-24 1376 /* Alloc port structure */
84f1c5c0174ace Gustavo A. R. Silva 2019-01-04 1377 s = devm_kzalloc(dev, struct_size(s, p, devtype->nr_uart), GFP_KERNEL);
dfeae619d781de Jon Ringle 2014-04-24 1378 if (!s) {
dfeae619d781de Jon Ringle 2014-04-24 1379 dev_err(dev, "Error allocating port structure\n");
dfeae619d781de Jon Ringle 2014-04-24 1380 return -ENOMEM;
dfeae619d781de Jon Ringle 2014-04-24 1381 }
dfeae619d781de Jon Ringle 2014-04-24 1382
24bc6e68efa00f Andy Shevchenko 2019-03-18 1383 /* Always ask for fixed clock rate from a property. */
24bc6e68efa00f Andy Shevchenko 2019-03-18 1384 device_property_read_u32(dev, "clock-frequency", &uartclk);
24bc6e68efa00f Andy Shevchenko 2019-03-18 1385
cb1b206cff461d Andy Shevchenko 2021-05-17 1386 s->clk = devm_clk_get_optional(dev, NULL);
cb1b206cff461d Andy Shevchenko 2021-05-17 1387 if (IS_ERR(s->clk))
cb1b206cff461d Andy Shevchenko 2021-05-17 1388 return PTR_ERR(s->clk);
cb1b206cff461d Andy Shevchenko 2021-05-17 1389
cb1b206cff461d Andy Shevchenko 2021-05-17 1390 ret = clk_prepare_enable(s->clk);
cb1b206cff461d Andy Shevchenko 2021-05-17 1391 if (ret)
cb1b206cff461d Andy Shevchenko 2021-05-17 1392 return ret;
cb1b206cff461d Andy Shevchenko 2021-05-17 1393
cb1b206cff461d Andy Shevchenko 2021-05-17 1394 freq = clk_get_rate(s->clk);
cb1b206cff461d Andy Shevchenko 2021-05-17 1395 if (freq == 0) {
24bc6e68efa00f Andy Shevchenko 2019-03-18 1396 if (uartclk)
24bc6e68efa00f Andy Shevchenko 2019-03-18 1397 freq = uartclk;
dfeae619d781de Jon Ringle 2014-04-24 1398 if (pfreq)
dfeae619d781de Jon Ringle 2014-04-24 1399 freq = *pfreq;
24bc6e68efa00f Andy Shevchenko 2019-03-18 1400 if (freq)
24bc6e68efa00f Andy Shevchenko 2019-03-18 1401 dev_dbg(dev, "Clock frequency: %luHz\n", freq);
dfeae619d781de Jon Ringle 2014-04-24 1402 else
cb1b206cff461d Andy Shevchenko 2021-05-17 1403 return -EINVAL;
dfeae619d781de Jon Ringle 2014-04-24 1404 }
dfeae619d781de Jon Ringle 2014-04-24 1405
dfeae619d781de Jon Ringle 2014-04-24 1406 s->regmap = regmap;
dfeae619d781de Jon Ringle 2014-04-24 1407 s->devtype = devtype;
dfeae619d781de Jon Ringle 2014-04-24 1408 dev_set_drvdata(dev, s);
30ec514d440cf2 Phil Elwell 2018-09-12 1409 mutex_init(&s->efr_lock);
dfeae619d781de Jon Ringle 2014-04-24 1410
3989144f863ac5 Petr Mladek 2016-10-11 1411 kthread_init_worker(&s->kworker);
9e6f4ca3e567d5 Jakub Kicinski 2015-05-29 1412 s->kworker_task = kthread_run(kthread_worker_fn, &s->kworker,
9e6f4ca3e567d5 Jakub Kicinski 2015-05-29 1413 "sc16is7xx");
9e6f4ca3e567d5 Jakub Kicinski 2015-05-29 1414 if (IS_ERR(s->kworker_task)) {
9e6f4ca3e567d5 Jakub Kicinski 2015-05-29 1415 ret = PTR_ERR(s->kworker_task);
c64349722d1417 Jakub Kicinski 2015-07-31 1416 goto out_clk;
9e6f4ca3e567d5 Jakub Kicinski 2015-05-29 1417 }
28d2f209cd1620 Peter Zijlstra 2020-04-21 1418 sched_set_fifo(s->kworker_task);
9e6f4ca3e567d5 Jakub Kicinski 2015-05-29 1419
43c51bb573aab6 Florian Vallee 2016-07-19 1420 /* reset device, purging any pending irq / data */
43c51bb573aab6 Florian Vallee 2016-07-19 1421 regmap_write(s->regmap, SC16IS7XX_IOCONTROL_REG << SC16IS7XX_REG_SHIFT,
43c51bb573aab6 Florian Vallee 2016-07-19 1422 SC16IS7XX_IOCONTROL_SRESET_BIT);
43c51bb573aab6 Florian Vallee 2016-07-19 1423
dfeae619d781de Jon Ringle 2014-04-24 1424 for (i = 0; i < devtype->nr_uart; ++i) {
e92a886bf7841c Jakub Kicinski 2015-07-31 1425 s->p[i].line = i;
dfeae619d781de Jon Ringle 2014-04-24 1426 /* Initialize port data */
dfeae619d781de Jon Ringle 2014-04-24 1427 s->p[i].port.dev = dev;
dfeae619d781de Jon Ringle 2014-04-24 1428 s->p[i].port.irq = irq;
dfeae619d781de Jon Ringle 2014-04-24 1429 s->p[i].port.type = PORT_SC16IS7XX;
dfeae619d781de Jon Ringle 2014-04-24 1430 s->p[i].port.fifosize = SC16IS7XX_FIFO_SIZE;
dfeae619d781de Jon Ringle 2014-04-24 1431 s->p[i].port.flags = UPF_FIXED_TYPE | UPF_LOW_LATENCY;
5da6b1c079e680 Daniel Mack 2020-09-01 1432 s->p[i].port.iobase = i;
dfeae619d781de Jon Ringle 2014-04-24 1433 s->p[i].port.iotype = UPIO_PORT;
dfeae619d781de Jon Ringle 2014-04-24 1434 s->p[i].port.uartclk = freq;
b57d15fe8b37fe Ricardo Ribalda 2014-11-06 1435 s->p[i].port.rs485_config = sc16is7xx_config_rs485;
0139da50dc53f0 Ilpo Järvinen 2022-07-04 1436 s->p[i].port.rs485_supported = sc16is7xx_rs485_supported;
dfeae619d781de Jon Ringle 2014-04-24 1437 s->p[i].port.ops = &sc16is7xx_ops;
21144bab4f1191 Tomasz Moń 2022-03-01 1438 s->p[i].old_mctrl = 0;
c64349722d1417 Jakub Kicinski 2015-07-31 1439 s->p[i].port.line = sc16is7xx_alloc_line();
21144bab4f1191 Tomasz Moń 2022-03-01 1440
c64349722d1417 Jakub Kicinski 2015-07-31 1441 if (s->p[i].port.line >= SC16IS7XX_MAX_DEVS) {
c64349722d1417 Jakub Kicinski 2015-07-31 1442 ret = -ENOMEM;
c64349722d1417 Jakub Kicinski 2015-07-31 1443 goto out_ports;
c64349722d1417 Jakub Kicinski 2015-07-31 1444 }
c64349722d1417 Jakub Kicinski 2015-07-31 1445
dfeae619d781de Jon Ringle 2014-04-24 1446 /* Disable all interrupts */
dfeae619d781de Jon Ringle 2014-04-24 1447 sc16is7xx_port_write(&s->p[i].port, SC16IS7XX_IER_REG, 0);
dfeae619d781de Jon Ringle 2014-04-24 1448 /* Disable TX/RX */
dfeae619d781de Jon Ringle 2014-04-24 1449 sc16is7xx_port_write(&s->p[i].port, SC16IS7XX_EFCR_REG,
dfeae619d781de Jon Ringle 2014-04-24 1450 SC16IS7XX_EFCR_RXDISABLE_BIT |
dfeae619d781de Jon Ringle 2014-04-24 1451 SC16IS7XX_EFCR_TXDISABLE_BIT);
21144bab4f1191 Tomasz Moń 2022-03-01 1452
21144bab4f1191 Tomasz Moń 2022-03-01 1453 /* Use GPIO lines as modem status registers */
21144bab4f1191 Tomasz Moń 2022-03-01 @1454 if (devtype->has_mctrl)
21144bab4f1191 Tomasz Moń 2022-03-01 1455 sc16is7xx_port_write(&s->p[i].port,
21144bab4f1191 Tomasz Moń 2022-03-01 1456 SC16IS7XX_IOCONTROL_REG,
21144bab4f1191 Tomasz Moń 2022-03-01 1457 SC16IS7XX_IOCONTROL_MODEM_BIT);
21144bab4f1191 Tomasz Moń 2022-03-01 1458
a0104085362ff9 Jakub Kicinski 2015-05-29 1459 /* Initialize kthread work structs */
3989144f863ac5 Petr Mladek 2016-10-11 1460 kthread_init_work(&s->p[i].tx_work, sc16is7xx_tx_proc);
3989144f863ac5 Petr Mladek 2016-10-11 1461 kthread_init_work(&s->p[i].reg_work, sc16is7xx_reg_proc);
21144bab4f1191 Tomasz Moń 2022-03-01 1462 kthread_init_delayed_work(&s->p[i].ms_work, sc16is7xx_ms_proc);
dfeae619d781de Jon Ringle 2014-04-24 1463 /* Register port */
c64349722d1417 Jakub Kicinski 2015-07-31 1464 uart_add_one_port(&sc16is7xx_uart, &s->p[i].port);
43c51bb573aab6 Florian Vallee 2016-07-19 1465
43c51bb573aab6 Florian Vallee 2016-07-19 1466 /* Enable EFR */
43c51bb573aab6 Florian Vallee 2016-07-19 1467 sc16is7xx_port_write(&s->p[i].port, SC16IS7XX_LCR_REG,
43c51bb573aab6 Florian Vallee 2016-07-19 1468 SC16IS7XX_LCR_CONF_MODE_B);
43c51bb573aab6 Florian Vallee 2016-07-19 1469
43c51bb573aab6 Florian Vallee 2016-07-19 1470 regcache_cache_bypass(s->regmap, true);
43c51bb573aab6 Florian Vallee 2016-07-19 1471
43c51bb573aab6 Florian Vallee 2016-07-19 1472 /* Enable write access to enhanced features */
43c51bb573aab6 Florian Vallee 2016-07-19 1473 sc16is7xx_port_write(&s->p[i].port, SC16IS7XX_EFR_REG,
43c51bb573aab6 Florian Vallee 2016-07-19 1474 SC16IS7XX_EFR_ENABLE_BIT);
43c51bb573aab6 Florian Vallee 2016-07-19 1475
43c51bb573aab6 Florian Vallee 2016-07-19 1476 regcache_cache_bypass(s->regmap, false);
43c51bb573aab6 Florian Vallee 2016-07-19 1477
43c51bb573aab6 Florian Vallee 2016-07-19 1478 /* Restore access to general registers */
43c51bb573aab6 Florian Vallee 2016-07-19 1479 sc16is7xx_port_write(&s->p[i].port, SC16IS7XX_LCR_REG, 0x00);
43c51bb573aab6 Florian Vallee 2016-07-19 1480
dfeae619d781de Jon Ringle 2014-04-24 1481 /* Go to suspend mode */
dfeae619d781de Jon Ringle 2014-04-24 1482 sc16is7xx_power(&s->p[i].port, 0);
dfeae619d781de Jon Ringle 2014-04-24 1483 }
dfeae619d781de Jon Ringle 2014-04-24 1484
9eb90d57b55a0a Pascal Huerst 2020-05-29 1485 if (dev->of_node) {
9eb90d57b55a0a Pascal Huerst 2020-05-29 1486 struct property *prop;
9eb90d57b55a0a Pascal Huerst 2020-05-29 1487 const __be32 *p;
9eb90d57b55a0a Pascal Huerst 2020-05-29 1488 u32 u;
9eb90d57b55a0a Pascal Huerst 2020-05-29 1489
9eb90d57b55a0a Pascal Huerst 2020-05-29 1490 of_property_for_each_u32(dev->of_node, "irda-mode-ports",
9eb90d57b55a0a Pascal Huerst 2020-05-29 1491 prop, p, u)
9eb90d57b55a0a Pascal Huerst 2020-05-29 1492 if (u < devtype->nr_uart)
9eb90d57b55a0a Pascal Huerst 2020-05-29 1493 s->p[u].irda_mode = true;
9eb90d57b55a0a Pascal Huerst 2020-05-29 1494 }
9eb90d57b55a0a Pascal Huerst 2020-05-29 1495
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
prev parent reply other threads:[~2023-05-16 6:21 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-15 16:02 [RFC PATCH] Revert "sc16is7xx: Separate GPIOs from modem control lines" Hugo Villeneuve
2023-05-15 16:20 ` Greg Kroah-Hartman
2023-05-15 16:51 ` Hugo Villeneuve
2023-05-16 8:50 ` Lech Perczak
2023-05-16 15:59 ` Hugo Villeneuve
2023-05-16 22:09 ` Hugo Villeneuve
2023-05-17 9:18 ` Lech Perczak
2023-05-17 13:58 ` Hugo Villeneuve
2023-05-16 5:18 ` kernel test robot
2023-05-16 6:20 ` kernel test robot [this message]
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=202305161450.DFSDFYLS-lkp@intel.com \
--to=lkp@intel.com \
--cc=hugo@hugovil.com \
--cc=llvm@lists.linux.dev \
--cc=oe-kbuild-all@lists.linux.dev \
/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.