2020-07-17 03:58:49

by Vaibhav Gupta

[permalink] [raw]
Subject: [PATCH v2 0/6] [media] pci: use generic power management

Linux Kernel Mentee: Remove Legacy Power Management.

The purpose of this patch series is to upgrade power management in media
drivers. This has been done by upgrading .suspend() and .resume() callbacks.

The upgrade makes sure that the involvement of PCI Core does not change the
order of operations executed in a driver. Thus, does not change its behavior.

In general, drivers with legacy PM, .suspend() and .resume() make use of PCI
helper functions like pci_enable/disable_device_mem(), pci_set_power_state(),
pci_save/restore_state(), pci_enable/disable_device(), etc. to complete
their job.

The conversion requires the removal of those function calls, change the
callbacks' definition accordingly and make use of dev_pm_ops structure.

v2: v1 possibly broke cx23885 and cx25821.

All patches are compile-tested only.

Test tools:
- Compiler: gcc (GCC) 10.1.0
- allmodconfig build: make -j$(nproc) W=1 all

Vaibhav Gupta (6):
sta2x11: use generic power management
cx23885: use generic power management
cx25821: use generic power management
cx88: use generic power management
meye: use generic power management
tw68: use generic power management

drivers/media/pci/cx23885/cx23885-core.c | 3 --
drivers/media/pci/cx25821/cx25821-core.c | 3 --
drivers/media/pci/cx88/cx88-video.c | 52 +++++--------------
drivers/media/pci/meye/meye.c | 15 ++----
drivers/media/pci/sta2x11/sta2x11_vip.c | 63 ++++++------------------
drivers/media/pci/tw68/tw68-core.c | 30 +++++------
6 files changed, 44 insertions(+), 122 deletions(-)

--
2.27.0


2020-07-17 03:59:07

by Vaibhav Gupta

[permalink] [raw]
Subject: [PATCH v2 1/6] sta2x11: use generic power management

With legacy PM, drivers themselves were responsible for managing the
device's power states and takes care of register states.

After upgrading to the generic structure, PCI core will take care of
required tasks and drivers should do only device-specific operations.

Thus, there is no need to call the PCI helper functions like
pci_enable_device(), pci_save/restore_sate(), etc.

Compile-tested only.

Signed-off-by: Vaibhav Gupta <[email protected]>
---
drivers/media/pci/sta2x11/sta2x11_vip.c | 63 ++++++-------------------
1 file changed, 15 insertions(+), 48 deletions(-)

diff --git a/drivers/media/pci/sta2x11/sta2x11_vip.c b/drivers/media/pci/sta2x11/sta2x11_vip.c
index 798574cfad35..0fdb0fd6e764 100644
--- a/drivers/media/pci/sta2x11/sta2x11_vip.c
+++ b/drivers/media/pci/sta2x11/sta2x11_vip.c
@@ -1167,21 +1167,18 @@ static void sta2x11_vip_remove_one(struct pci_dev *pdev)
*/
}

-#ifdef CONFIG_PM
-
/**
* sta2x11_vip_suspend - set device into power save mode
- * @pdev: PCI device
- * @state: new state of device
+ * @dev_d: PCI device
*
* all relevant registers are saved and an attempt to set a new state is made.
*
* return value: 0 always indicate success,
* even if device could not be disabled. (workaround for hardware problem)
*/
-static int sta2x11_vip_suspend(struct pci_dev *pdev, pm_message_t state)
+static int __maybe_unused sta2x11_vip_suspend(struct device *dev_d)
{
- struct v4l2_device *v4l2_dev = pci_get_drvdata(pdev);
+ struct v4l2_device *v4l2_dev = dev_get_drvdata(dev_d);
struct sta2x11_vip *vip =
container_of(v4l2_dev, struct sta2x11_vip, v4l2_dev);
unsigned long flags;
@@ -1198,15 +1195,8 @@ static int sta2x11_vip_suspend(struct pci_dev *pdev, pm_message_t state)
vip->register_save_area[SAVE_COUNT + IRQ_COUNT + i] =
reg_read(vip, registers_to_save[i]);
spin_unlock_irqrestore(&vip->slock, flags);
- /* save pci state */
- pci_save_state(pdev);
- if (pci_set_power_state(pdev, pci_choose_state(pdev, state))) {
- /*
- * do not call pci_disable_device on sta2x11 because it
- * break all other Bus masters on this EP
- */
- vip->disabled = 1;
- }
+
+ vip->disabled = 1;

pr_info("VIP: suspend\n");
return 0;
@@ -1214,45 +1204,23 @@ static int sta2x11_vip_suspend(struct pci_dev *pdev, pm_message_t state)

/**
* sta2x11_vip_resume - resume device operation
- * @pdev : PCI device
- *
- * re-enable device, set PCI state to powered and restore registers.
- * resume normal device operation afterwards.
+ * @dev_d : PCI device
*
* return value: 0, no error.
*
* other, could not set device to power on state.
*/
-static int sta2x11_vip_resume(struct pci_dev *pdev)
+static int __maybe_unused sta2x11_vip_resume(struct device *dev_d)
{
- struct v4l2_device *v4l2_dev = pci_get_drvdata(pdev);
+ struct v4l2_device *v4l2_dev = dev_get_drvdata(dev_d);
struct sta2x11_vip *vip =
container_of(v4l2_dev, struct sta2x11_vip, v4l2_dev);
unsigned long flags;
- int ret, i;
+ int i;

pr_info("VIP: resume\n");
- /* restore pci state */
- if (vip->disabled) {
- ret = pci_enable_device(pdev);
- if (ret) {
- pr_warn("VIP: Can't enable device.\n");
- return ret;
- }
- vip->disabled = 0;
- }
- ret = pci_set_power_state(pdev, PCI_D0);
- if (ret) {
- /*
- * do not call pci_disable_device on sta2x11 because it
- * break all other Bus masters on this EP
- */
- pr_warn("VIP: Can't enable device.\n");
- vip->disabled = 1;
- return ret;
- }

- pci_restore_state(pdev);
+ vip->disabled = 0;

spin_lock_irqsave(&vip->slock, flags);
for (i = 1; i < SAVE_COUNT; i++)
@@ -1266,22 +1234,21 @@ static int sta2x11_vip_resume(struct pci_dev *pdev)
return 0;
}

-#endif
-
static const struct pci_device_id sta2x11_vip_pci_tbl[] = {
{PCI_DEVICE(PCI_VENDOR_ID_STMICRO, PCI_DEVICE_ID_STMICRO_VIP)},
{0,}
};

+static SIMPLE_DEV_PM_OPS(sta2x11_vip_pm_ops,
+ sta2x11_vip_suspend,
+ sta2x11_vip_resume);
+
static struct pci_driver sta2x11_vip_driver = {
.name = KBUILD_MODNAME,
.probe = sta2x11_vip_init_one,
.remove = sta2x11_vip_remove_one,
.id_table = sta2x11_vip_pci_tbl,
-#ifdef CONFIG_PM
- .suspend = sta2x11_vip_suspend,
- .resume = sta2x11_vip_resume,
-#endif
+ .driver.pm = &sta2x11_vip_pm_ops,
};

static int __init sta2x11_vip_init_module(void)
--
2.27.0

2020-07-17 03:59:18

by Vaibhav Gupta

[permalink] [raw]
Subject: [PATCH v2 2/6] cx23885: use generic power management

The .suspend() and .resume() callbacks are not defined for this driver.
Still, their power management structure follows the legacy framework. To
bring it under the generic framework, simply remove the binding of
callbacks from struct "pci_driver".

Compile-tested only.

Signed-off-by: Vaibhav Gupta <[email protected]>
---
drivers/media/pci/cx23885/cx23885-core.c | 3 ---
1 file changed, 3 deletions(-)

diff --git a/drivers/media/pci/cx23885/cx23885-core.c b/drivers/media/pci/cx23885/cx23885-core.c
index 7e0b0b7cc2a3..4b0c53f61fb7 100644
--- a/drivers/media/pci/cx23885/cx23885-core.c
+++ b/drivers/media/pci/cx23885/cx23885-core.c
@@ -2235,9 +2235,6 @@ static struct pci_driver cx23885_pci_driver = {
.id_table = cx23885_pci_tbl,
.probe = cx23885_initdev,
.remove = cx23885_finidev,
- /* TODO */
- .suspend = NULL,
- .resume = NULL,
};

static int __init cx23885_init(void)
--
2.27.0

2020-07-17 03:59:29

by Vaibhav Gupta

[permalink] [raw]
Subject: [PATCH v2 3/6] cx25821: use generic power management

The .suspend() and .resume() callbacks are not defined for this driver.
Still, their power management structure follows the legacy framework. To
bring it under the generic framework, simply remove the binding of
callbacks from struct "pci_driver".

Compile-tested only.

Signed-off-by: Vaibhav Gupta <[email protected]>
---
drivers/media/pci/cx25821/cx25821-core.c | 3 ---
1 file changed, 3 deletions(-)

diff --git a/drivers/media/pci/cx25821/cx25821-core.c b/drivers/media/pci/cx25821/cx25821-core.c
index 41be22ce66f3..55018d9e439f 100644
--- a/drivers/media/pci/cx25821/cx25821-core.c
+++ b/drivers/media/pci/cx25821/cx25821-core.c
@@ -1374,9 +1374,6 @@ static struct pci_driver cx25821_pci_driver = {
.id_table = cx25821_pci_tbl,
.probe = cx25821_initdev,
.remove = cx25821_finidev,
- /* TODO */
- .suspend = NULL,
- .resume = NULL,
};

static int __init cx25821_init(void)
--
2.27.0

2020-07-17 04:00:34

by Vaibhav Gupta

[permalink] [raw]
Subject: [PATCH v2 6/6] tw68: use generic power management

With legacy PM, drivers themselves were responsible for managing the
device's power states and takes care of register states.

After upgrading to the generic structure, PCI core will take care of
required tasks and drivers should do only device-specific operations.

The driver was invoking PCI helper functions like pci_save/restore_state()
which is not recommended.

Compile-Tested only.

Signed-off-by: Vaibhav Gupta <[email protected]>
---
drivers/media/pci/tw68/tw68-core.c | 30 +++++++++++-------------------
1 file changed, 11 insertions(+), 19 deletions(-)

diff --git a/drivers/media/pci/tw68/tw68-core.c b/drivers/media/pci/tw68/tw68-core.c
index b45f3ffa3de5..065420b09250 100644
--- a/drivers/media/pci/tw68/tw68-core.c
+++ b/drivers/media/pci/tw68/tw68-core.c
@@ -359,10 +359,9 @@ static void tw68_finidev(struct pci_dev *pci_dev)
v4l2_device_unregister(&dev->v4l2_dev);
}

-#ifdef CONFIG_PM
-
-static int tw68_suspend(struct pci_dev *pci_dev , pm_message_t state)
+static int __maybe_unused tw68_suspend(struct device *dev_d)
{
+ struct pci_dev *pci_dev = to_pci_dev(dev_d);
struct v4l2_device *v4l2_dev = pci_get_drvdata(pci_dev);
struct tw68_dev *dev = container_of(v4l2_dev,
struct tw68_dev, v4l2_dev);
@@ -373,24 +372,19 @@ static int tw68_suspend(struct pci_dev *pci_dev , pm_message_t state)

synchronize_irq(pci_dev->irq);

- pci_save_state(pci_dev);
- pci_set_power_state(pci_dev, pci_choose_state(pci_dev, state));
vb2_discard_done(&dev->vidq);

return 0;
}

-static int tw68_resume(struct pci_dev *pci_dev)
+static int __maybe_unused tw68_resume(struct device *dev_d)
{
- struct v4l2_device *v4l2_dev = pci_get_drvdata(pci_dev);
+ struct v4l2_device *v4l2_dev = dev_get_drvdata(dev_d);
struct tw68_dev *dev = container_of(v4l2_dev,
struct tw68_dev, v4l2_dev);
struct tw68_buf *buf;
unsigned long flags;

- pci_set_power_state(pci_dev, PCI_D0);
- pci_restore_state(pci_dev);
-
/* Do things that are done in tw68_initdev ,
except of initializing memory structures.*/

@@ -408,19 +402,17 @@ static int tw68_resume(struct pci_dev *pci_dev)

return 0;
}
-#endif

/* ----------------------------------------------------------- */

+static SIMPLE_DEV_PM_OPS(tw68_pm_ops, tw68_suspend, tw68_resume);
+
static struct pci_driver tw68_pci_driver = {
- .name = "tw68",
- .id_table = tw68_pci_tbl,
- .probe = tw68_initdev,
- .remove = tw68_finidev,
-#ifdef CONFIG_PM
- .suspend = tw68_suspend,
- .resume = tw68_resume
-#endif
+ .name = "tw68",
+ .id_table = tw68_pci_tbl,
+ .probe = tw68_initdev,
+ .remove = tw68_finidev,
+ .driver.pm = &tw68_pm_ops,
};

module_pci_driver(tw68_pci_driver);
--
2.27.0

2020-07-17 04:01:04

by Vaibhav Gupta

[permalink] [raw]
Subject: [PATCH v2 5/6] meye: use generic power management

With legacy PM, drivers themselves were responsible for managing the
device's power states and takes care of register states.

After upgrading to the generic structure, PCI core will take care of
required tasks and drivers should do only device-specific operations.

The driver was invoking PCI helper functions like pci_save/restore_state()
which is not recommended.

Compile-tested only.

Signed-off-by: Vaibhav Gupta <[email protected]>
---
drivers/media/pci/meye/meye.c | 15 +++++----------
1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/drivers/media/pci/meye/meye.c b/drivers/media/pci/meye/meye.c
index 73e064e6f56d..7fb3b1853b87 100644
--- a/drivers/media/pci/meye/meye.c
+++ b/drivers/media/pci/meye/meye.c
@@ -1528,19 +1528,16 @@ static const struct v4l2_ctrl_ops meye_ctrl_ops = {
.s_ctrl = meye_s_ctrl,
};

-#ifdef CONFIG_PM
-static int meye_suspend(struct pci_dev *pdev, pm_message_t state)
+static int __maybe_unused meye_suspend(struct device *dev)
{
- pci_save_state(pdev);
meye.pm_mchip_mode = meye.mchip_mode;
mchip_hic_stop();
mchip_set(MCHIP_MM_INTA, 0x0);
return 0;
}

-static int meye_resume(struct pci_dev *pdev)
+static int __maybe_unused meye_resume(struct device *dev)
{
- pci_restore_state(pdev);
pci_write_config_word(meye.mchip_dev, MCHIP_PCI_SOFTRESET_SET, 1);

mchip_delay(MCHIP_HIC_CMD, 0);
@@ -1562,7 +1559,6 @@ static int meye_resume(struct pci_dev *pdev)
}
return 0;
}
-#endif

static int meye_probe(struct pci_dev *pcidev, const struct pci_device_id *ent)
{
@@ -1788,15 +1784,14 @@ static const struct pci_device_id meye_pci_tbl[] = {

MODULE_DEVICE_TABLE(pci, meye_pci_tbl);

+static SIMPLE_DEV_PM_OPS(meye_pm_ops, meye_suspend, meye_resume);
+
static struct pci_driver meye_driver = {
.name = "meye",
.id_table = meye_pci_tbl,
.probe = meye_probe,
.remove = meye_remove,
-#ifdef CONFIG_PM
- .suspend = meye_suspend,
- .resume = meye_resume,
-#endif
+ .driver.pm = &meye_pm_ops,
};

static int __init meye_init(void)
--
2.27.0

2020-07-17 04:01:53

by Vaibhav Gupta

[permalink] [raw]
Subject: [PATCH v2 4/6] cx88: use generic power management

With legacy PM, drivers themselves were responsible for managing the
device's power states and takes care of register states.

After upgrading to the generic structure, PCI core will take care of
required tasks and drivers should do only device-specific operations.

The driver was invoking PCI helper functions like pci_save/restore_state(),
pci_enable/disable_device() and pci_set_power_state(), which is not
recommended.

Compile-tested only.

Signed-off-by: Vaibhav Gupta <[email protected]>
---
drivers/media/pci/cx88/cx88-video.c | 52 ++++++++---------------------
1 file changed, 13 insertions(+), 39 deletions(-)

diff --git a/drivers/media/pci/cx88/cx88-video.c b/drivers/media/pci/cx88/cx88-video.c
index ba0e9660a047..a06d5b8f31b9 100644
--- a/drivers/media/pci/cx88/cx88-video.c
+++ b/drivers/media/pci/cx88/cx88-video.c
@@ -1551,10 +1551,9 @@ static void cx8800_finidev(struct pci_dev *pci_dev)
kfree(dev);
}

-#ifdef CONFIG_PM
-static int cx8800_suspend(struct pci_dev *pci_dev, pm_message_t state)
+static int __maybe_unused cx8800_suspend(struct device *dev_d)
{
- struct cx8800_dev *dev = pci_get_drvdata(pci_dev);
+ struct cx8800_dev *dev = dev_get_drvdata(dev_d);
struct cx88_core *core = dev->core;
unsigned long flags;

@@ -1575,40 +1574,17 @@ static int cx8800_suspend(struct pci_dev *pci_dev, pm_message_t state)
/* FIXME -- shutdown device */
cx88_shutdown(core);

- pci_save_state(pci_dev);
- if (pci_set_power_state(pci_dev,
- pci_choose_state(pci_dev, state)) != 0) {
- pci_disable_device(pci_dev);
- dev->state.disabled = 1;
- }
+ dev->state.disabled = 1;
return 0;
}

-static int cx8800_resume(struct pci_dev *pci_dev)
+static int __maybe_unused cx8800_resume(struct device *dev_d)
{
- struct cx8800_dev *dev = pci_get_drvdata(pci_dev);
+ struct cx8800_dev *dev = dev_get_drvdata(dev_d);
struct cx88_core *core = dev->core;
unsigned long flags;
- int err;
-
- if (dev->state.disabled) {
- err = pci_enable_device(pci_dev);
- if (err) {
- pr_err("can't enable device\n");
- return err;
- }
-
- dev->state.disabled = 0;
- }
- err = pci_set_power_state(pci_dev, PCI_D0);
- if (err) {
- pr_err("can't set power state\n");
- pci_disable_device(pci_dev);
- dev->state.disabled = 1;

- return err;
- }
- pci_restore_state(pci_dev);
+ dev->state.disabled = 0;

/* FIXME: re-initialize hardware */
cx88_reset(core);
@@ -1631,7 +1607,6 @@ static int cx8800_resume(struct pci_dev *pci_dev)

return 0;
}
-#endif

/* ----------------------------------------------------------- */

@@ -1647,15 +1622,14 @@ static const struct pci_device_id cx8800_pci_tbl[] = {
};
MODULE_DEVICE_TABLE(pci, cx8800_pci_tbl);

+static SIMPLE_DEV_PM_OPS(cx8800_pm_ops, cx8800_suspend, cx8800_resume);
+
static struct pci_driver cx8800_pci_driver = {
- .name = "cx8800",
- .id_table = cx8800_pci_tbl,
- .probe = cx8800_initdev,
- .remove = cx8800_finidev,
-#ifdef CONFIG_PM
- .suspend = cx8800_suspend,
- .resume = cx8800_resume,
-#endif
+ .name = "cx8800",
+ .id_table = cx8800_pci_tbl,
+ .probe = cx8800_initdev,
+ .remove = cx8800_finidev,
+ .driver.pm = &cx8800_pm_ops,
};

module_pci_driver(cx8800_pci_driver);
--
2.27.0

2020-07-17 05:01:16

by Vaibhav Gupta

[permalink] [raw]
Subject: Re: [PATCH v2 0/6] [media] pci: use generic power management

On Fri, Jul 17, 2020 at 09:26:02AM +0530, Vaibhav Gupta wrote:
> Linux Kernel Mentee: Remove Legacy Power Management.
>
> The purpose of this patch series is to upgrade power management in media
> drivers. This has been done by upgrading .suspend() and .resume() callbacks.
>
> The upgrade makes sure that the involvement of PCI Core does not change the
> order of operations executed in a driver. Thus, does not change its behavior.
>
> In general, drivers with legacy PM, .suspend() and .resume() make use of PCI
> helper functions like pci_enable/disable_device_mem(), pci_set_power_state(),
> pci_save/restore_state(), pci_enable/disable_device(), etc. to complete
> their job.
>
> The conversion requires the removal of those function calls, change the
> callbacks' definition accordingly and make use of dev_pm_ops structure.
>
> v2: v1 possibly broke cx23885 and cx25821.
v1 didn't break anything in real as patch was not applied. But it could have.
>
> All patches are compile-tested only.
>
> Test tools:
> - Compiler: gcc (GCC) 10.1.0
> - allmodconfig build: make -j$(nproc) W=1 all
>
> Vaibhav Gupta (6):
> sta2x11: use generic power management
> cx23885: use generic power management
> cx25821: use generic power management
> cx88: use generic power management
> meye: use generic power management
> tw68: use generic power management
>
> drivers/media/pci/cx23885/cx23885-core.c | 3 --
> drivers/media/pci/cx25821/cx25821-core.c | 3 --
> drivers/media/pci/cx88/cx88-video.c | 52 +++++--------------
> drivers/media/pci/meye/meye.c | 15 ++----
> drivers/media/pci/sta2x11/sta2x11_vip.c | 63 ++++++------------------
> drivers/media/pci/tw68/tw68-core.c | 30 +++++------
> 6 files changed, 44 insertions(+), 122 deletions(-)
>
> --
> 2.27.0
>

2020-07-17 07:21:28

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH v2 4/6] cx88: use generic power management

Hi Vaibhav,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linuxtv-media/master]
[also build test ERROR on pci/next v5.8-rc5 next-20200716]
[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/Vaibhav-Gupta/pci-use-generic-power-management/20200717-120145
base: git://linuxtv.org/media_tree.git master
config: s390-allmodconfig (attached as .config)
compiler: s390-linux-gcc (GCC) 9.3.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
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=s390

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

All errors (new ones prefixed by >>):

drivers/media/pci/cx88/cx88-video.c: In function 'cx8800_suspend':
>> drivers/media/pci/cx88/cx88-video.c:1564:3: error: implicit declaration of function 'stop_video_dma'; did you mean 'start_video_dma'? [-Werror=implicit-function-declaration]
1564 | stop_video_dma(dev);
| ^~~~~~~~~~~~~~
| start_video_dma
drivers/media/pci/cx88/cx88-video.c: In function 'cx8800_resume':
>> drivers/media/pci/cx88/cx88-video.c:1600:3: error: implicit declaration of function 'restart_video_queue'; did you mean 'start_video_dma'? [-Werror=implicit-function-declaration]
1600 | restart_video_queue(dev, &dev->vidq);
| ^~~~~~~~~~~~~~~~~~~
| start_video_dma
cc1: some warnings being treated as errors

vim +1564 drivers/media/pci/cx88/cx88-video.c

^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1553
3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1554 static int __maybe_unused cx8800_suspend(struct device *dev_d)
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1555 {
3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1556 struct cx8800_dev *dev = dev_get_drvdata(dev_d);
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1557 struct cx88_core *core = dev->core;
5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1558 unsigned long flags;
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1559
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1560 /* stop video+vbi capture */
5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1561 spin_lock_irqsave(&dev->slock, flags);
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1562 if (!list_empty(&dev->vidq.active)) {
65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1563 pr_info("suspend video\n");
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 @1564 stop_video_dma(dev);
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1565 }
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1566 if (!list_empty(&dev->vbiq.active)) {
65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1567 pr_info("suspend vbi\n");
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1568 cx8800_stop_vbi_dma(dev);
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1569 }
5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1570 spin_unlock_irqrestore(&dev->slock, flags);
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1571
13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1572 if (core->ir)
92f4fc10d7ba01 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2010-03-31 1573 cx88_ir_stop(core);
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1574 /* FIXME -- shutdown device */
e52e98a7eccfb0 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2005-09-09 1575 cx88_shutdown(core);
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1576
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1577 dev->state.disabled = 1;
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1578 return 0;
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1579 }
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1580
3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1581 static int __maybe_unused cx8800_resume(struct device *dev_d)
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1582 {
3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1583 struct cx8800_dev *dev = dev_get_drvdata(dev_d);
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1584 struct cx88_core *core = dev->core;
5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1585 unsigned long flags;
08adb9e20be83b drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2005-09-09 1586
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1587 dev->state.disabled = 0;
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1588
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1589 /* FIXME: re-initialize hardware */
e52e98a7eccfb0 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2005-09-09 1590 cx88_reset(core);
13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1591 if (core->ir)
92f4fc10d7ba01 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2010-03-31 1592 cx88_ir_start(core);
13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1593
13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1594 cx_set(MO_PCI_INTMSK, core->pci_irqmask);
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1595
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1596 /* restart video+vbi capture */
5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1597 spin_lock_irqsave(&dev->slock, flags);
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1598 if (!list_empty(&dev->vidq.active)) {
65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1599 pr_info("resume video\n");
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 @1600 restart_video_queue(dev, &dev->vidq);
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1601 }
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1602 if (!list_empty(&dev->vbiq.active)) {
65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1603 pr_info("resume vbi\n");
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1604 cx8800_restart_vbi_queue(dev, &dev->vbiq);
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1605 }
5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1606 spin_unlock_irqrestore(&dev->slock, flags);
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1607
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1608 return 0;
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1609 }
^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1610

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]


Attachments:
(No filename) (8.58 kB)
.config.gz (60.99 kB)
Download all attachments

2020-07-17 07:26:51

by Vaibhav Gupta

[permalink] [raw]
Subject: Re: [PATCH v2 4/6] cx88: use generic power management

On Fri, Jul 17, 2020 at 03:14:28PM +0800, kernel test robot wrote:
> Hi Vaibhav,
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on linuxtv-media/master]
> [also build test ERROR on pci/next v5.8-rc5 next-20200716]
> [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/Vaibhav-Gupta/pci-use-generic-power-management/20200717-120145
> base: git://linuxtv.org/media_tree.git master
> config: s390-allmodconfig (attached as .config)
> compiler: s390-linux-gcc (GCC) 9.3.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
> # save the attached .config to linux build tree
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=s390
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <[email protected]>
>
> All errors (new ones prefixed by >>):
>
> drivers/media/pci/cx88/cx88-video.c: In function 'cx8800_suspend':
> >> drivers/media/pci/cx88/cx88-video.c:1564:3: error: implicit declaration of function 'stop_video_dma'; did you mean 'start_video_dma'? [-Werror=implicit-function-declaration]
> 1564 | stop_video_dma(dev);
> | ^~~~~~~~~~~~~~
> | start_video_dma
> drivers/media/pci/cx88/cx88-video.c: In function 'cx8800_resume':
> >> drivers/media/pci/cx88/cx88-video.c:1600:3: error: implicit declaration of function 'restart_video_queue'; did you mean 'start_video_dma'? [-Werror=implicit-function-declaration]
> 1600 | restart_video_queue(dev, &dev->vidq);
> | ^~~~~~~~~~~~~~~~~~~
> | start_video_dma
> cc1: some warnings being treated as errors
>
> vim +1564 drivers/media/pci/cx88/cx88-video.c
>
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1553
> 3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1554 static int __maybe_unused cx8800_suspend(struct device *dev_d)
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1555 {
> 3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1556 struct cx8800_dev *dev = dev_get_drvdata(dev_d);
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1557 struct cx88_core *core = dev->core;
> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1558 unsigned long flags;
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1559
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1560 /* stop video+vbi capture */
> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1561 spin_lock_irqsave(&dev->slock, flags);
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1562 if (!list_empty(&dev->vidq.active)) {
> 65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1563 pr_info("suspend video\n");
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 @1564 stop_video_dma(dev);
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1565 }
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1566 if (!list_empty(&dev->vbiq.active)) {
> 65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1567 pr_info("suspend vbi\n");
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1568 cx8800_stop_vbi_dma(dev);
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1569 }
> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1570 spin_unlock_irqrestore(&dev->slock, flags);
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1571
> 13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1572 if (core->ir)
> 92f4fc10d7ba01 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2010-03-31 1573 cx88_ir_stop(core);
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1574 /* FIXME -- shutdown device */
> e52e98a7eccfb0 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2005-09-09 1575 cx88_shutdown(core);
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1576
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1577 dev->state.disabled = 1;
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1578 return 0;
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1579 }
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1580
> 3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1581 static int __maybe_unused cx8800_resume(struct device *dev_d)
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1582 {
> 3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1583 struct cx8800_dev *dev = dev_get_drvdata(dev_d);
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1584 struct cx88_core *core = dev->core;
> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1585 unsigned long flags;
> 08adb9e20be83b drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2005-09-09 1586
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1587 dev->state.disabled = 0;
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1588
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1589 /* FIXME: re-initialize hardware */
> e52e98a7eccfb0 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2005-09-09 1590 cx88_reset(core);
> 13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1591 if (core->ir)
> 92f4fc10d7ba01 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2010-03-31 1592 cx88_ir_start(core);
> 13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1593
> 13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1594 cx_set(MO_PCI_INTMSK, core->pci_irqmask);
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1595
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1596 /* restart video+vbi capture */
> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1597 spin_lock_irqsave(&dev->slock, flags);
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1598 if (!list_empty(&dev->vidq.active)) {
> 65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1599 pr_info("resume video\n");
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 @1600 restart_video_queue(dev, &dev->vidq);
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1601 }
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1602 if (!list_empty(&dev->vbiq.active)) {
> 65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1603 pr_info("resume vbi\n");
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1604 cx8800_restart_vbi_queue(dev, &dev->vbiq);
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1605 }
> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1606 spin_unlock_irqrestore(&dev->slock, flags);
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1607
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1608 return 0;
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1609 }
> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1610
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/[email protected]

Got it. Thanks!
Fixed in v3.

--Vaibhav Gupta

2020-07-17 10:35:00

by Vaibhav Gupta

[permalink] [raw]
Subject: Re: [PATCH v2 4/6] cx88: use generic power management

On Fri, Jul 17, 2020 at 12:54:40PM +0530, Vaibhav Gupta wrote:
> On Fri, Jul 17, 2020 at 03:14:28PM +0800, kernel test robot wrote:
> > Hi Vaibhav,
> >
> > Thank you for the patch! Yet something to improve:
> >
> > [auto build test ERROR on linuxtv-media/master]
> > [also build test ERROR on pci/next v5.8-rc5 next-20200716]
> > [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/Vaibhav-Gupta/pci-use-generic-power-management/20200717-120145
> > base: git://linuxtv.org/media_tree.git master
> > config: s390-allmodconfig (attached as .config)
> > compiler: s390-linux-gcc (GCC) 9.3.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
> > # save the attached .config to linux build tree
> > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=s390
> >
> > If you fix the issue, kindly add following tag as appropriate
> > Reported-by: kernel test robot <[email protected]>
> >
> > All errors (new ones prefixed by >>):
> >
> > drivers/media/pci/cx88/cx88-video.c: In function 'cx8800_suspend':
> > >> drivers/media/pci/cx88/cx88-video.c:1564:3: error: implicit declaration of function 'stop_video_dma'; did you mean 'start_video_dma'? [-Werror=implicit-function-declaration]
> > 1564 | stop_video_dma(dev);
> > | ^~~~~~~~~~~~~~
> > | start_video_dma
> > drivers/media/pci/cx88/cx88-video.c: In function 'cx8800_resume':
> > >> drivers/media/pci/cx88/cx88-video.c:1600:3: error: implicit declaration of function 'restart_video_queue'; did you mean 'start_video_dma'? [-Werror=implicit-function-declaration]
> > 1600 | restart_video_queue(dev, &dev->vidq);
> > | ^~~~~~~~~~~~~~~~~~~
> > | start_video_dma
> > cc1: some warnings being treated as errors
> >
> > vim +1564 drivers/media/pci/cx88/cx88-video.c
> >
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1553
> > 3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1554 static int __maybe_unused cx8800_suspend(struct device *dev_d)
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1555 {
> > 3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1556 struct cx8800_dev *dev = dev_get_drvdata(dev_d);
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1557 struct cx88_core *core = dev->core;
> > 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1558 unsigned long flags;
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1559
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1560 /* stop video+vbi capture */
> > 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1561 spin_lock_irqsave(&dev->slock, flags);
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1562 if (!list_empty(&dev->vidq.active)) {
> > 65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1563 pr_info("suspend video\n");
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 @1564 stop_video_dma(dev);
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1565 }
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1566 if (!list_empty(&dev->vbiq.active)) {
> > 65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1567 pr_info("suspend vbi\n");
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1568 cx8800_stop_vbi_dma(dev);
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1569 }
> > 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1570 spin_unlock_irqrestore(&dev->slock, flags);
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1571
> > 13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1572 if (core->ir)
> > 92f4fc10d7ba01 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2010-03-31 1573 cx88_ir_stop(core);
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1574 /* FIXME -- shutdown device */
> > e52e98a7eccfb0 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2005-09-09 1575 cx88_shutdown(core);
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1576
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1577 dev->state.disabled = 1;
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1578 return 0;
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1579 }
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1580
> > 3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1581 static int __maybe_unused cx8800_resume(struct device *dev_d)
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1582 {
> > 3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1583 struct cx8800_dev *dev = dev_get_drvdata(dev_d);
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1584 struct cx88_core *core = dev->core;
> > 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1585 unsigned long flags;
> > 08adb9e20be83b drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2005-09-09 1586
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1587 dev->state.disabled = 0;
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1588
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1589 /* FIXME: re-initialize hardware */
> > e52e98a7eccfb0 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2005-09-09 1590 cx88_reset(core);
> > 13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1591 if (core->ir)
> > 92f4fc10d7ba01 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2010-03-31 1592 cx88_ir_start(core);
> > 13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1593
> > 13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1594 cx_set(MO_PCI_INTMSK, core->pci_irqmask);
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1595
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1596 /* restart video+vbi capture */
> > 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1597 spin_lock_irqsave(&dev->slock, flags);
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1598 if (!list_empty(&dev->vidq.active)) {
> > 65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1599 pr_info("resume video\n");
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 @1600 restart_video_queue(dev, &dev->vidq);
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1601 }
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1602 if (!list_empty(&dev->vbiq.active)) {
> > 65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1603 pr_info("resume vbi\n");
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1604 cx8800_restart_vbi_queue(dev, &dev->vbiq);
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1605 }
> > 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1606 spin_unlock_irqrestore(&dev->slock, flags);
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1607
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1608 return 0;
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1609 }
> > ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1610
> >
> > ---
> > 0-DAY CI Kernel Test Service, Intel Corporation
> > https://lists.01.org/hyperkitty/list/[email protected]
>
> Got it. Thanks!
> Fixed in v3.
>
> --Vaibhav Gupta

I fixed the error reported, in this v2 patch-series, by Kbuild and floated v3
in the mailing list.
But then I got notification from "[linux-media] Patchwork". It has applied my
v2 patch series. Please use v3.

--Vaibhav Gupta

2020-07-17 10:50:40

by Hans Verkuil

[permalink] [raw]
Subject: Re: [PATCH v2 4/6] cx88: use generic power management

On 17/07/2020 12:31, Vaibhav Gupta wrote:
> On Fri, Jul 17, 2020 at 12:54:40PM +0530, Vaibhav Gupta wrote:
>> On Fri, Jul 17, 2020 at 03:14:28PM +0800, kernel test robot wrote:
>>> Hi Vaibhav,
>>>
>>> Thank you for the patch! Yet something to improve:
>>>
>>> [auto build test ERROR on linuxtv-media/master]
>>> [also build test ERROR on pci/next v5.8-rc5 next-20200716]
>>> [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/Vaibhav-Gupta/pci-use-generic-power-management/20200717-120145
>>> base: git://linuxtv.org/media_tree.git master
>>> config: s390-allmodconfig (attached as .config)
>>> compiler: s390-linux-gcc (GCC) 9.3.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
>>> # save the attached .config to linux build tree
>>> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=s390
>>>
>>> If you fix the issue, kindly add following tag as appropriate
>>> Reported-by: kernel test robot <[email protected]>
>>>
>>> All errors (new ones prefixed by >>):
>>>
>>> drivers/media/pci/cx88/cx88-video.c: In function 'cx8800_suspend':
>>>>> drivers/media/pci/cx88/cx88-video.c:1564:3: error: implicit declaration of function 'stop_video_dma'; did you mean 'start_video_dma'? [-Werror=implicit-function-declaration]
>>> 1564 | stop_video_dma(dev);
>>> | ^~~~~~~~~~~~~~
>>> | start_video_dma
>>> drivers/media/pci/cx88/cx88-video.c: In function 'cx8800_resume':
>>>>> drivers/media/pci/cx88/cx88-video.c:1600:3: error: implicit declaration of function 'restart_video_queue'; did you mean 'start_video_dma'? [-Werror=implicit-function-declaration]
>>> 1600 | restart_video_queue(dev, &dev->vidq);
>>> | ^~~~~~~~~~~~~~~~~~~
>>> | start_video_dma
>>> cc1: some warnings being treated as errors
>>>
>>> vim +1564 drivers/media/pci/cx88/cx88-video.c
>>>
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1553
>>> 3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1554 static int __maybe_unused cx8800_suspend(struct device *dev_d)
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1555 {
>>> 3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1556 struct cx8800_dev *dev = dev_get_drvdata(dev_d);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1557 struct cx88_core *core = dev->core;
>>> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1558 unsigned long flags;
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1559
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1560 /* stop video+vbi capture */
>>> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1561 spin_lock_irqsave(&dev->slock, flags);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1562 if (!list_empty(&dev->vidq.active)) {
>>> 65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1563 pr_info("suspend video\n");
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 @1564 stop_video_dma(dev);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1565 }
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1566 if (!list_empty(&dev->vbiq.active)) {
>>> 65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1567 pr_info("suspend vbi\n");
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1568 cx8800_stop_vbi_dma(dev);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1569 }
>>> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1570 spin_unlock_irqrestore(&dev->slock, flags);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1571
>>> 13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1572 if (core->ir)
>>> 92f4fc10d7ba01 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2010-03-31 1573 cx88_ir_stop(core);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1574 /* FIXME -- shutdown device */
>>> e52e98a7eccfb0 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2005-09-09 1575 cx88_shutdown(core);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1576
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1577 dev->state.disabled = 1;
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1578 return 0;
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1579 }
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1580
>>> 3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1581 static int __maybe_unused cx8800_resume(struct device *dev_d)
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1582 {
>>> 3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1583 struct cx8800_dev *dev = dev_get_drvdata(dev_d);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1584 struct cx88_core *core = dev->core;
>>> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1585 unsigned long flags;
>>> 08adb9e20be83b drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2005-09-09 1586
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1587 dev->state.disabled = 0;
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1588
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1589 /* FIXME: re-initialize hardware */
>>> e52e98a7eccfb0 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2005-09-09 1590 cx88_reset(core);
>>> 13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1591 if (core->ir)
>>> 92f4fc10d7ba01 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2010-03-31 1592 cx88_ir_start(core);
>>> 13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1593
>>> 13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1594 cx_set(MO_PCI_INTMSK, core->pci_irqmask);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1595
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1596 /* restart video+vbi capture */
>>> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1597 spin_lock_irqsave(&dev->slock, flags);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1598 if (!list_empty(&dev->vidq.active)) {
>>> 65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1599 pr_info("resume video\n");
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 @1600 restart_video_queue(dev, &dev->vidq);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1601 }
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1602 if (!list_empty(&dev->vbiq.active)) {
>>> 65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1603 pr_info("resume vbi\n");
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1604 cx8800_restart_vbi_queue(dev, &dev->vbiq);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1605 }
>>> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1606 spin_unlock_irqrestore(&dev->slock, flags);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1607
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1608 return 0;
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1609 }
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1610
>>>
>>> ---
>>> 0-DAY CI Kernel Test Service, Intel Corporation
>>> https://lists.01.org/hyperkitty/list/[email protected]
>>
>> Got it. Thanks!
>> Fixed in v3.
>>
>> --Vaibhav Gupta
>
> I fixed the error reported, in this v2 patch-series, by Kbuild and floated v3
> in the mailing list.
> But then I got notification from "[linux-media] Patchwork". It has applied my
> v2 patch series. Please use v3.

The message you got should say that is was superseded, not accepted.

I only marked v2 as Superseded, it wasn't applied.

Regards,

Hans

>
> --Vaibhav Gupta
>

2020-07-17 10:54:18

by Vaibhav Gupta

[permalink] [raw]
Subject: Re: [PATCH v2 4/6] cx88: use generic power management

On Fri, Jul 17, 2020 at 12:49:43PM +0200, Hans Verkuil wrote:
> On 17/07/2020 12:31, Vaibhav Gupta wrote:
> > On Fri, Jul 17, 2020 at 12:54:40PM +0530, Vaibhav Gupta wrote:
> >> On Fri, Jul 17, 2020 at 03:14:28PM +0800, kernel test robot wrote:
> >>> Hi Vaibhav,
> >>>
> >>> Thank you for the patch! Yet something to improve:
> >>>
> >>> [auto build test ERROR on linuxtv-media/master]
> >>> [also build test ERROR on pci/next v5.8-rc5 next-20200716]
> >>> [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/Vaibhav-Gupta/pci-use-generic-power-management/20200717-120145
> >>> base: git://linuxtv.org/media_tree.git master
> >>> config: s390-allmodconfig (attached as .config)
> >>> compiler: s390-linux-gcc (GCC) 9.3.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
> >>> # save the attached .config to linux build tree
> >>> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=s390
> >>>
> >>> If you fix the issue, kindly add following tag as appropriate
> >>> Reported-by: kernel test robot <[email protected]>
> >>>
> >>> All errors (new ones prefixed by >>):
> >>>
> >>> drivers/media/pci/cx88/cx88-video.c: In function 'cx8800_suspend':
> >>>>> drivers/media/pci/cx88/cx88-video.c:1564:3: error: implicit declaration of function 'stop_video_dma'; did you mean 'start_video_dma'? [-Werror=implicit-function-declaration]
> >>> 1564 | stop_video_dma(dev);
> >>> | ^~~~~~~~~~~~~~
> >>> | start_video_dma
> >>> drivers/media/pci/cx88/cx88-video.c: In function 'cx8800_resume':
> >>>>> drivers/media/pci/cx88/cx88-video.c:1600:3: error: implicit declaration of function 'restart_video_queue'; did you mean 'start_video_dma'? [-Werror=implicit-function-declaration]
> >>> 1600 | restart_video_queue(dev, &dev->vidq);
> >>> | ^~~~~~~~~~~~~~~~~~~
> >>> | start_video_dma
> >>> cc1: some warnings being treated as errors
> >>>
> >>> vim +1564 drivers/media/pci/cx88/cx88-video.c
> >>>
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1553
> >>> 3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1554 static int __maybe_unused cx8800_suspend(struct device *dev_d)
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1555 {
> >>> 3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1556 struct cx8800_dev *dev = dev_get_drvdata(dev_d);
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1557 struct cx88_core *core = dev->core;
> >>> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1558 unsigned long flags;
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1559
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1560 /* stop video+vbi capture */
> >>> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1561 spin_lock_irqsave(&dev->slock, flags);
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1562 if (!list_empty(&dev->vidq.active)) {
> >>> 65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1563 pr_info("suspend video\n");
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 @1564 stop_video_dma(dev);
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1565 }
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1566 if (!list_empty(&dev->vbiq.active)) {
> >>> 65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1567 pr_info("suspend vbi\n");
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1568 cx8800_stop_vbi_dma(dev);
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1569 }
> >>> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1570 spin_unlock_irqrestore(&dev->slock, flags);
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1571
> >>> 13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1572 if (core->ir)
> >>> 92f4fc10d7ba01 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2010-03-31 1573 cx88_ir_stop(core);
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1574 /* FIXME -- shutdown device */
> >>> e52e98a7eccfb0 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2005-09-09 1575 cx88_shutdown(core);
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1576
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1577 dev->state.disabled = 1;
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1578 return 0;
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1579 }
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1580
> >>> 3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1581 static int __maybe_unused cx8800_resume(struct device *dev_d)
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1582 {
> >>> 3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1583 struct cx8800_dev *dev = dev_get_drvdata(dev_d);
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1584 struct cx88_core *core = dev->core;
> >>> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1585 unsigned long flags;
> >>> 08adb9e20be83b drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2005-09-09 1586
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1587 dev->state.disabled = 0;
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1588
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1589 /* FIXME: re-initialize hardware */
> >>> e52e98a7eccfb0 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2005-09-09 1590 cx88_reset(core);
> >>> 13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1591 if (core->ir)
> >>> 92f4fc10d7ba01 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2010-03-31 1592 cx88_ir_start(core);
> >>> 13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1593
> >>> 13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1594 cx_set(MO_PCI_INTMSK, core->pci_irqmask);
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1595
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1596 /* restart video+vbi capture */
> >>> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1597 spin_lock_irqsave(&dev->slock, flags);
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1598 if (!list_empty(&dev->vidq.active)) {
> >>> 65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1599 pr_info("resume video\n");
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 @1600 restart_video_queue(dev, &dev->vidq);
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1601 }
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1602 if (!list_empty(&dev->vbiq.active)) {
> >>> 65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1603 pr_info("resume vbi\n");
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1604 cx8800_restart_vbi_queue(dev, &dev->vbiq);
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1605 }
> >>> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1606 spin_unlock_irqrestore(&dev->slock, flags);
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1607
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1608 return 0;
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1609 }
> >>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1610
> >>>
> >>> ---
> >>> 0-DAY CI Kernel Test Service, Intel Corporation
> >>> https://lists.01.org/hyperkitty/list/[email protected]
> >>
> >> Got it. Thanks!
> >> Fixed in v3.
> >>
> >> --Vaibhav Gupta
> >
> > I fixed the error reported, in this v2 patch-series, by Kbuild and floated v3
> > in the mailing list.
> > But then I got notification from "[linux-media] Patchwork". It has applied my
> > v2 patch series. Please use v3.
>
> The message you got should say that is was superseded, not accepted.
yes.
>
> I only marked v2 as Superseded, it wasn't applied.
Okay.

Thanks for clarification! :)
--Vaibhav Gupta
>
> Regards,
>
> Hans
>
> >
> > --Vaibhav Gupta
> >
>