[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202210072036.zwchaDrf-lkp@intel.com>
Date: Fri, 7 Oct 2022 20:47:29 +0800
From: kernel test robot <lkp@...el.com>
To: Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
Basavaraj Natikar <Basavaraj.Natikar@....com>,
linux-gpio@...r.kernel.org, linux-kernel@...r.kernel.org
Cc: kbuild-all@...ts.01.org, Linus Walleij <linus.walleij@...aro.org>
Subject: Re: [rft, PATCH v1 1/1] pinctrl: Clean up headers
Hi Andy,
I love your patch! Yet something to improve:
[auto build test ERROR on linusw-pinctrl/devel]
[also build test ERROR on linus/master v6.0 next-20221007]
[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/Andy-Shevchenko/pinctrl-Clean-up-headers/20221007-183311
base: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git devel
config: sh-allmodconfig
compiler: sh4-linux-gcc (GCC) 12.1.0
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/5b392edeea764a64953fbab65c9a06b2745ebdd7
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Andy-Shevchenko/pinctrl-Clean-up-headers/20221007-183311
git checkout 5b392edeea764a64953fbab65c9a06b2745ebdd7
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=sh SHELL=/bin/bash drivers/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@...el.com>
All error/warnings (new ones prefixed by >>):
drivers/pinctrl/pinctrl-axp209.c: In function 'axp20x_gpio_input':
>> drivers/pinctrl/pinctrl-axp209.c:122:16: error: implicit declaration of function 'pinctrl_gpio_direction_input' [-Werror=implicit-function-declaration]
122 | return pinctrl_gpio_direction_input(chip->base + offset);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
--
drivers/pinctrl/pinctrl-ocelot.c: In function 'ocelot_gpio_direction_input':
>> drivers/pinctrl/pinctrl-ocelot.c:1775:16: error: implicit declaration of function 'pinctrl_gpio_direction_input'; did you mean 'ocelot_gpio_direction_input'? [-Werror=implicit-function-declaration]
1775 | return pinctrl_gpio_direction_input(chip->base + offset);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| ocelot_gpio_direction_input
drivers/pinctrl/pinctrl-ocelot.c: In function 'ocelot_gpio_direction_output':
>> drivers/pinctrl/pinctrl-ocelot.c:1791:16: error: implicit declaration of function 'pinctrl_gpio_direction_output'; did you mean 'ocelot_gpio_direction_output'? [-Werror=implicit-function-declaration]
1791 | return pinctrl_gpio_direction_output(chip->base + offset);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| ocelot_gpio_direction_output
cc1: some warnings being treated as errors
--
drivers/pinctrl/pinctrl-single.c: In function 'pcs_pin_dbg_show':
>> drivers/pinctrl/pinctrl-single.c:313:9: error: implicit declaration of function 'seq_printf'; did you mean 'bstr_printf'? [-Werror=implicit-function-declaration]
313 | seq_printf(s, "%zx %08x %s ", pa, val, DRIVER_NAME);
| ^~~~~~~~~~
| bstr_printf
cc1: some warnings being treated as errors
--
drivers/pinctrl/pinctrl-stmfx.c: In function 'stmfx_pinconf_dbg_show':
>> drivers/pinctrl/pinctrl-stmfx.c:371:17: error: implicit declaration of function 'seq_printf'; did you mean 'bstr_printf'? [-Werror=implicit-function-declaration]
371 | seq_printf(s, "output %s ", val ? "high" : "low");
| ^~~~~~~~~~
| bstr_printf
>> drivers/pinctrl/pinctrl-stmfx.c:376:25: error: implicit declaration of function 'seq_puts' [-Werror=implicit-function-declaration]
376 | seq_puts(s, "push pull no pull ");
| ^~~~~~~~
cc1: some warnings being treated as errors
--
drivers/gpio/gpio-tegra186.c: In function 'tegra186_irq_print_chip':
>> drivers/gpio/gpio-tegra186.c:540:9: error: implicit declaration of function 'seq_printf'; did you mean 'bstr_printf'? [-Werror=implicit-function-declaration]
540 | seq_printf(p, dev_name(gc->parent));
| ^~~~~~~~~~
| bstr_printf
cc1: some warnings being treated as errors
--
drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c: In function 'configure_memdma_and_inputblock':
>> drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c:524:24: error: implicit declaration of function 'pinctrl_lookup_state' [-Werror=implicit-function-declaration]
524 | tsin->pstate = pinctrl_lookup_state(fei->pinctrl, tsin_pin_name);
| ^~~~~~~~~~~~~~~~~~~~
>> drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c:524:22: warning: assignment to 'struct pinctrl_state *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
524 | tsin->pstate = pinctrl_lookup_state(fei->pinctrl, tsin_pin_name);
| ^
>> drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c:532:15: error: implicit declaration of function 'pinctrl_select_state' [-Werror=implicit-function-declaration]
532 | ret = pinctrl_select_state(fei->pinctrl, tsin->pstate);
| ^~~~~~~~~~~~~~~~~~~~
drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c: In function 'c8sectpfe_probe':
>> drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c:742:24: error: implicit declaration of function 'devm_pinctrl_get'; did you mean 'of_pinctrl_get'? [-Werror=implicit-function-declaration]
742 | fei->pinctrl = devm_pinctrl_get(dev);
| ^~~~~~~~~~~~~~~~
| of_pinctrl_get
>> drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c:742:22: warning: assignment to 'struct pinctrl *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
742 | fei->pinctrl = devm_pinctrl_get(dev);
| ^
cc1: some warnings being treated as errors
--
drivers/pinctrl/freescale/pinctrl-imx.c: In function 'imx_pin_dbg_show':
>> drivers/pinctrl/freescale/pinctrl-imx.c:53:9: error: implicit declaration of function 'seq_printf'; did you mean 'bstr_printf'? [-Werror=implicit-function-declaration]
53 | seq_printf(s, "%s", dev_name(pctldev->dev));
| ^~~~~~~~~~
| bstr_printf
drivers/pinctrl/freescale/pinctrl-imx.c: In function 'imx_pinconf_dbg_show':
>> drivers/pinctrl/freescale/pinctrl-imx.c:448:25: error: implicit declaration of function 'seq_puts' [-Werror=implicit-function-declaration]
448 | seq_puts(s, "N/A");
| ^~~~~~~~
cc1: some warnings being treated as errors
--
drivers/pinctrl/sprd/pinctrl-sprd.c: In function 'sprd_pinctrl_shutdown':
>> drivers/pinctrl/sprd/pinctrl-sprd.c:1125:18: error: implicit declaration of function 'devm_pinctrl_get'; did you mean 'of_pinctrl_get'? [-Werror=implicit-function-declaration]
1125 | pinctl = devm_pinctrl_get(&pdev->dev);
| ^~~~~~~~~~~~~~~~
| of_pinctrl_get
>> drivers/pinctrl/sprd/pinctrl-sprd.c:1125:16: warning: assignment to 'struct pinctrl *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
1125 | pinctl = devm_pinctrl_get(&pdev->dev);
| ^
>> drivers/pinctrl/sprd/pinctrl-sprd.c:1128:17: error: implicit declaration of function 'pinctrl_lookup_state' [-Werror=implicit-function-declaration]
1128 | state = pinctrl_lookup_state(pinctl, "shutdown");
| ^~~~~~~~~~~~~~~~~~~~
>> drivers/pinctrl/sprd/pinctrl-sprd.c:1128:15: warning: assignment to 'struct pinctrl_state *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
1128 | state = pinctrl_lookup_state(pinctl, "shutdown");
| ^
>> drivers/pinctrl/sprd/pinctrl-sprd.c:1131:9: error: implicit declaration of function 'pinctrl_select_state' [-Werror=implicit-function-declaration]
1131 | pinctrl_select_state(pinctl, state);
| ^~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
--
drivers/pinctrl/ti/pinctrl-ti-iodelay.c: In function 'ti_iodelay_pin_dbg_show':
>> drivers/pinctrl/ti/pinctrl-ti-iodelay.c:676:9: error: implicit declaration of function 'seq_printf'; did you mean 'bstr_printf'? [-Werror=implicit-function-declaration]
676 | seq_printf(s, "%lx a: %i g: %i (%08x %08x %08x) %s ",
| ^~~~~~~~~~
| bstr_printf
cc1: some warnings being treated as errors
--
drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c: In function 'npcmgpio_dbg_show':
>> drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c:134:9: error: implicit declaration of function 'seq_printf'; did you mean 'bstr_printf'? [-Werror=implicit-function-declaration]
134 | seq_printf(s, "-- module %d [gpio%d - %d]\n",
| ^~~~~~~~~~
| bstr_printf
drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c: In function 'npcmgpio_direction_input':
>> drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c:172:15: error: implicit declaration of function 'pinctrl_gpio_direction_input'; did you mean 'npcmgpio_direction_input'? [-Werror=implicit-function-declaration]
172 | ret = pinctrl_gpio_direction_input(offset + chip->base);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| npcmgpio_direction_input
drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c: In function 'npcmgpio_direction_output':
>> drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c:189:15: error: implicit declaration of function 'pinctrl_gpio_direction_output'; did you mean 'npcmgpio_direction_output'? [-Werror=implicit-function-declaration]
189 | ret = pinctrl_gpio_direction_output(offset + chip->base);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| npcmgpio_direction_output
drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c: In function 'npcmgpio_gpio_request':
>> drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c:202:15: error: implicit declaration of function 'pinctrl_gpio_request'; did you mean 'npcmgpio_gpio_request'? [-Werror=implicit-function-declaration]
202 | ret = pinctrl_gpio_request(offset + chip->base);
| ^~~~~~~~~~~~~~~~~~~~
| npcmgpio_gpio_request
drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c: In function 'npcmgpio_gpio_free':
>> drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c:212:9: error: implicit declaration of function 'pinctrl_gpio_free' [-Werror=implicit-function-declaration]
212 | pinctrl_gpio_free(offset + chip->base);
| ^~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
--
drivers/pinctrl/renesas/pinctrl.c: In function 'sh_pfc_pin_dbg_show':
>> drivers/pinctrl/renesas/pinctrl.c:76:9: error: implicit declaration of function 'seq_puts' [-Werror=implicit-function-declaration]
76 | seq_puts(s, DRV_NAME);
| ^~~~~~~~
cc1: some warnings being treated as errors
..
vim +/pinctrl_lookup_state +524 drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 444
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 445 static int configure_memdma_and_inputblock(struct c8sectpfei *fei,
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 446 struct channel_info *tsin)
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 447 {
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 448 int ret;
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 449 u32 tmp;
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 450 char tsin_pin_name[MAX_NAME];
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 451
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 452 if (!fei || !tsin)
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 453 return -EINVAL;
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 454
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 455 dev_dbg(fei->dev, "%s:%d Configuring channel=%p tsin=%d\n"
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 456 , __func__, __LINE__, tsin, tsin->tsin_id);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 457
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 458 init_completion(&tsin->idle_completion);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 459
64e46b637bbafc drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c Andy Shevchenko 2022-02-09 460 tsin->back_buffer_start = kzalloc(FEI_BUFFER_SIZE + FEI_ALIGNMENT, GFP_KERNEL);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 461 if (!tsin->back_buffer_start) {
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 462 ret = -ENOMEM;
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 463 goto err_unmap;
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 464 }
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 465
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 466 /* Ensure backbuffer is 32byte aligned */
64e46b637bbafc drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c Andy Shevchenko 2022-02-09 467 tsin->back_buffer_aligned = tsin->back_buffer_start + FEI_ALIGNMENT;
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 468
64e46b637bbafc drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c Andy Shevchenko 2022-02-09 469 tsin->back_buffer_aligned = PTR_ALIGN(tsin->back_buffer_aligned, FEI_ALIGNMENT);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 470
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 471 tsin->back_buffer_busaddr = dma_map_single(fei->dev,
64e46b637bbafc drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c Andy Shevchenko 2022-02-09 472 tsin->back_buffer_aligned,
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 473 FEI_BUFFER_SIZE,
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 474 DMA_BIDIRECTIONAL);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 475
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 476 if (dma_mapping_error(fei->dev, tsin->back_buffer_busaddr)) {
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 477 dev_err(fei->dev, "failed to map back_buffer\n");
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 478 ret = -EFAULT;
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 479 goto err_unmap;
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 480 }
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 481
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 482 /*
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 483 * The pid buffer can be configured (in hw) for byte or bit
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 484 * per pid. By powers of deduction we conclude stih407 family
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 485 * is configured (at SoC design stage) for bit per pid.
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 486 */
64e46b637bbafc drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c Andy Shevchenko 2022-02-09 487 tsin->pid_buffer_start = kzalloc(PID_TABLE_SIZE + PID_TABLE_SIZE, GFP_KERNEL);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 488 if (!tsin->pid_buffer_start) {
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 489 ret = -ENOMEM;
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 490 goto err_unmap;
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 491 }
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 492
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 493 /*
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 494 * PID buffer needs to be aligned to size of the pid table
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 495 * which at bit per pid is 1024 bytes (8192 pids / 8).
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 496 * PIDF_BASE register enforces this alignment when writing
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 497 * the register.
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 498 */
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 499
64e46b637bbafc drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c Andy Shevchenko 2022-02-09 500 tsin->pid_buffer_aligned = tsin->pid_buffer_start + PID_TABLE_SIZE;
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 501
64e46b637bbafc drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c Andy Shevchenko 2022-02-09 502 tsin->pid_buffer_aligned = PTR_ALIGN(tsin->pid_buffer_aligned, PID_TABLE_SIZE);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 503
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 504 tsin->pid_buffer_busaddr = dma_map_single(fei->dev,
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 505 tsin->pid_buffer_aligned,
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 506 PID_TABLE_SIZE,
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 507 DMA_BIDIRECTIONAL);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 508
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 509 if (dma_mapping_error(fei->dev, tsin->pid_buffer_busaddr)) {
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 510 dev_err(fei->dev, "failed to map pid_bitmap\n");
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 511 ret = -EFAULT;
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 512 goto err_unmap;
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 513 }
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 514
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 515 /* manage cache so pid bitmap is visible to HW */
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 516 dma_sync_single_for_device(fei->dev,
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 517 tsin->pid_buffer_busaddr,
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 518 PID_TABLE_SIZE,
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 519 DMA_TO_DEVICE);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 520
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 521 snprintf(tsin_pin_name, MAX_NAME, "tsin%d-%s", tsin->tsin_id,
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 522 (tsin->serial_not_parallel ? "serial" : "parallel"));
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 523
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 @524 tsin->pstate = pinctrl_lookup_state(fei->pinctrl, tsin_pin_name);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 525 if (IS_ERR(tsin->pstate)) {
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 526 dev_err(fei->dev, "%s: pinctrl_lookup_state couldn't find %s state\n"
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 527 , __func__, tsin_pin_name);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 528 ret = PTR_ERR(tsin->pstate);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 529 goto err_unmap;
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 530 }
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 531
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 @532 ret = pinctrl_select_state(fei->pinctrl, tsin->pstate);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 533
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 534 if (ret) {
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 535 dev_err(fei->dev, "%s: pinctrl_select_state failed\n"
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 536 , __func__);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 537 goto err_unmap;
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 538 }
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 539
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 540 /* Enable this input block */
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 541 tmp = readl(fei->io + SYS_INPUT_CLKEN);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 542 tmp |= BIT(tsin->tsin_id);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 543 writel(tmp, fei->io + SYS_INPUT_CLKEN);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 544
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 545 if (tsin->serial_not_parallel)
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 546 tmp |= C8SECTPFE_SERIAL_NOT_PARALLEL;
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 547
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 548 if (tsin->invert_ts_clk)
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 549 tmp |= C8SECTPFE_INVERT_TSCLK;
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 550
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 551 if (tsin->async_not_sync)
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 552 tmp |= C8SECTPFE_ASYNC_NOT_SYNC;
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 553
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 554 tmp |= C8SECTPFE_ALIGN_BYTE_SOP | C8SECTPFE_BYTE_ENDIANNESS_MSB;
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 555
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 556 writel(tmp, fei->io + C8SECTPFE_IB_IP_FMT_CFG(tsin->tsin_id));
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 557
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 558 writel(C8SECTPFE_SYNC(0x9) |
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 559 C8SECTPFE_DROP(0x9) |
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 560 C8SECTPFE_TOKEN(0x47),
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 561 fei->io + C8SECTPFE_IB_SYNCLCKDRP_CFG(tsin->tsin_id));
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 562
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 563 writel(TS_PKT_SIZE, fei->io + C8SECTPFE_IB_PKT_LEN(tsin->tsin_id));
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 564
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 565 /* Place the FIFO's at the end of the irec descriptors */
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 566
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 567 tsin->fifo = (tsin->tsin_id * FIFO_LEN);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 568
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 569 writel(tsin->fifo, fei->io + C8SECTPFE_IB_BUFF_STRT(tsin->tsin_id));
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 570 writel(tsin->fifo + FIFO_LEN - 1,
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 571 fei->io + C8SECTPFE_IB_BUFF_END(tsin->tsin_id));
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 572
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 573 writel(tsin->fifo, fei->io + C8SECTPFE_IB_READ_PNT(tsin->tsin_id));
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 574 writel(tsin->fifo, fei->io + C8SECTPFE_IB_WRT_PNT(tsin->tsin_id));
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 575
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 576 writel(tsin->pid_buffer_busaddr,
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 577 fei->io + PIDF_BASE(tsin->tsin_id));
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 578
ee105cac24693c drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2016-03-24 579 dev_dbg(fei->dev, "chan=%d PIDF_BASE=0x%x pid_bus_addr=%pad\n",
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 580 tsin->tsin_id, readl(fei->io + PIDF_BASE(tsin->tsin_id)),
62e5f051c110a4 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Fabio Estevam 2015-08-18 581 &tsin->pid_buffer_busaddr);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 582
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 583 /* Configure and enable HW PID filtering */
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 584
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 585 /*
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 586 * The PID value is created by assembling the first 8 bytes of
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 587 * the TS packet into a 64-bit word in big-endian format. A
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 588 * slice of that 64-bit word is taken from
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 589 * (PID_OFFSET+PID_NUM_BITS-1) to PID_OFFSET.
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 590 */
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 591 tmp = (C8SECTPFE_PID_ENABLE | C8SECTPFE_PID_NUMBITS(13)
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 592 | C8SECTPFE_PID_OFFSET(40));
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 593
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 594 writel(tmp, fei->io + C8SECTPFE_IB_PID_SET(tsin->tsin_id));
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 595
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 596 dev_dbg(fei->dev, "chan=%d setting wp: %d, rp: %d, buf: %d-%d\n",
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 597 tsin->tsin_id,
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 598 readl(fei->io + C8SECTPFE_IB_WRT_PNT(tsin->tsin_id)),
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 599 readl(fei->io + C8SECTPFE_IB_READ_PNT(tsin->tsin_id)),
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 600 readl(fei->io + C8SECTPFE_IB_BUFF_STRT(tsin->tsin_id)),
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 601 readl(fei->io + C8SECTPFE_IB_BUFF_END(tsin->tsin_id)));
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 602
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 603 /* Get base addpress of pointer record block from DMEM */
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 604 tsin->irec = fei->io + DMA_MEMDMA_OFFSET + DMA_DMEM_OFFSET +
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 605 readl(fei->io + DMA_PTRREC_BASE);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 606
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 607 /* fill out pointer record data structure */
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 608
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 609 /* advance pointer record block to our channel */
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 610 tsin->irec += (tsin->tsin_id * DMA_PRDS_SIZE);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 611
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 612 writel(tsin->fifo, tsin->irec + DMA_PRDS_MEMBASE);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 613
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 614 writel(tsin->fifo + FIFO_LEN - 1, tsin->irec + DMA_PRDS_MEMTOP);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 615
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 616 writel((188 + 7)&~7, tsin->irec + DMA_PRDS_PKTSIZE);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 617
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 618 writel(0x1, tsin->irec + DMA_PRDS_TPENABLE);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 619
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 620 /* read/write pointers with physical bus address */
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 621
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 622 writel(tsin->back_buffer_busaddr, tsin->irec + DMA_PRDS_BUSBASE_TP(0));
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 623
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 624 tmp = tsin->back_buffer_busaddr + FEI_BUFFER_SIZE - 1;
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 625 writel(tmp, tsin->irec + DMA_PRDS_BUSTOP_TP(0));
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 626
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 627 writel(tsin->back_buffer_busaddr, tsin->irec + DMA_PRDS_BUSWP_TP(0));
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 628 writel(tsin->back_buffer_busaddr, tsin->irec + DMA_PRDS_BUSRP_TP(0));
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 629
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 630 /* initialize tasklet */
9db2f6a480021d drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Allen Pais 2020-08-17 631 tasklet_setup(&tsin->tsklet, channel_swdemux_tsklet);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 632
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 633 return 0;
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 634
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 635 err_unmap:
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 636 free_input_block(fei, tsin);
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 637 return ret;
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 638 }
c5f5d0f99794cf drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c Peter Griffin 2015-07-30 639
--
0-DAY CI Kernel Test Service
https://01.org/lkp
View attachment "config" of type "text/plain" (242051 bytes)
Powered by blists - more mailing lists