Introduce pcim_alloc_irq_vectors(), a device-managed version of
pci_alloc_irq_vectors(), In some i2c drivers, If pcim_enable_device()
has been called before, then pci_alloc_irq_vectors() is actually a
device-managed function. It is used as a device-managed function, So
replace it with pcim_alloc_irq_vectors().
Changelog
---------
v4 -> v5:
- Remove the check of enable device in pcim_alloc_irq_vectors()
and make it as a static line function.
- Modify the subject name in patch 3 and patch 4.
v3 -> v4:
- add some commit comments for patch 3
v2 -> v3:
- Add some commit comments for replace some codes in
pcim_release() by pci_free_irq_vectors().
- Simplify the error handling path in i2c designware
driver.
v1 -> v2:
- Use pci_free_irq_vectors() to replace some code in
pcim_release().
- Modify some commit messages.
Dejin Zheng (4):
PCI: Introduce pcim_alloc_irq_vectors()
Documentation: devres: Add pcim_alloc_irq_vectors()
i2c: designware: Use pcim_alloc_irq_vectors() to allocate IRQ vectors
i2c: thunderx: Use pcim_alloc_irq_vectors() to allocate IRQ vectors
.../driver-api/driver-model/devres.rst | 1 +
drivers/i2c/busses/i2c-designware-pcidrv.c | 15 ++++--------
drivers/i2c/busses/i2c-thunderx-pcidrv.c | 2 +-
drivers/pci/pci.c | 5 +---
include/linux/pci.h | 24 +++++++++++++++++++
5 files changed, 31 insertions(+), 16 deletions(-)
--
2.25.0
Introduce pcim_alloc_irq_vectors(), a device-managed version of
pci_alloc_irq_vectors(). Introducing this function can simplify
the error handling path in many drivers.
And use pci_free_irq_vectors() to replace some code in pcim_release(),
they are equivalent, and no functional change. It is more explicit
that pcim_alloc_irq_vectors() is a device-managed function.
Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Dejin Zheng <redacted>
---
v4 -> v5:
- Remove the check of enable device in pcim_alloc_irq_vectors()
and make it as a static line function.
v3 -> v4:
- No change
v2 -> v3:
- Add some commit comments for replace some codes in
pcim_release() by pci_free_irq_vectors().
v1 -> v2:
- Use pci_free_irq_vectors() to replace some code in
pcim_release().
- Modify some commit messages.
drivers/pci/pci.c | 5 +----
include/linux/pci.h | 24 ++++++++++++++++++++++++
2 files changed, 25 insertions(+), 4 deletions(-)
Add pcim_alloc_irq_vectors(), a device-managed version of
pci_alloc_irq_vectors(). introducing this function can simplify
the error handling path in many drivers.
Signed-off-by: Dejin Zheng <redacted>
---
v4 -> v5:
- No change
v3 -> v4:
- No change
v2 -> v3:
- No change
v1 -> v2:
- Modify some commit messages.
Documentation/driver-api/driver-model/devres.rst | 1 +
1 file changed, 1 insertion(+)
The pcim_alloc_irq_vectors() function, an explicit device-managed version
of pci_alloc_irq_vectors(). If pcim_enable_device() has been called
before, then pci_alloc_irq_vectors() is actually a device-managed
function. It is used here as a device-managed function, So replace it
with pcim_alloc_irq_vectors(). At the same time, Remove the
pci_free_irq_vectors() function to simplify the error handling path.
the freeing resources will take automatically when device is gone.
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Dejin Zheng <redacted>
---
v4 -> v5:
- Modify the subject name.
v3 -> v4:
- add some commit comments.
v2 -> v3:
- simplify the error handling path.
v1 -> v2:
- Modify some commit messages.
drivers/i2c/busses/i2c-designware-pcidrv.c | 15 ++++-----------
1 file changed, 4 insertions(+), 11 deletions(-)
@@ -219,7 +219,7 @@ static int i2c_dw_pci_probe(struct pci_dev *pdev,if(!dev)return-ENOMEM;-r=pci_alloc_irq_vectors(pdev,1,1,PCI_IRQ_ALL_TYPES);+r=pcim_alloc_irq_vectors(pdev,1,1,PCI_IRQ_ALL_TYPES);if(r<0)returnr;
@@ -234,10 +234,8 @@ static int i2c_dw_pci_probe(struct pci_dev *pdev,if(controller->setup){r=controller->setup(pdev,controller);-if(r){-pci_free_irq_vectors(pdev);+if(r)returnr;-}}i2c_dw_adjust_bus_speed(dev);
@@ -246,10 +244,8 @@ static int i2c_dw_pci_probe(struct pci_dev *pdev,i2c_dw_acpi_configure(&pdev->dev);r=i2c_dw_validate_speed(dev);-if(r){-pci_free_irq_vectors(pdev);+if(r)returnr;-}i2c_dw_configure(dev);
@@ -269,10 +265,8 @@ static int i2c_dw_pci_probe(struct pci_dev *pdev,adap->nr=controller->bus_num;r=i2c_dw_probe(dev);-if(r){-pci_free_irq_vectors(pdev);+if(r)returnr;-}pm_runtime_set_autosuspend_delay(&pdev->dev,1000);pm_runtime_use_autosuspend(&pdev->dev);
@@ -292,7 +286,6 @@ static void i2c_dw_pci_remove(struct pci_dev *pdev)i2c_del_adapter(&dev->adapter);devm_free_irq(&pdev->dev,dev->irq,dev);-pci_free_irq_vectors(pdev);}/* work with hotplug and coldplug */
The pcim_alloc_irq_vectors() function, an explicit device-managed version
of pci_alloc_irq_vectors(). If pcim_enable_device() has been called
before, then pci_alloc_irq_vectors() is actually a device-managed
function. It is used here as a device-managed function, So replace it
with pcim_alloc_irq_vectors().
Signed-off-by: Dejin Zheng <redacted>
---
v4 -> v5:
- Modify the subject name.
v3 -> v4:
- No change.
v2 -> v3:
- No change.
v1 -> v2:
- Modify some commit messages.
drivers/i2c/busses/i2c-thunderx-pcidrv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Date: 2021-02-26 16:25:27
On Fri, Feb 26, 2021 at 11:50:53PM +0800, Dejin Zheng wrote:
Introduce pcim_alloc_irq_vectors(), a device-managed version of
pci_alloc_irq_vectors(). Introducing this function can simplify
the error handling path in many drivers.
And use pci_free_irq_vectors() to replace some code in pcim_release(),
they are equivalent, and no functional change. It is more explicit
that pcim_alloc_irq_vectors() is a device-managed function.
Thanks!
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
quoted hunk
Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Dejin Zheng <redacted>
---
v4 -> v5:
- Remove the check of enable device in pcim_alloc_irq_vectors()
and make it as a static line function.
v3 -> v4:
- No change
v2 -> v3:
- Add some commit comments for replace some codes in
pcim_release() by pci_free_irq_vectors().
v1 -> v2:
- Use pci_free_irq_vectors() to replace some code in
pcim_release().
- Modify some commit messages.
drivers/pci/pci.c | 5 +----
include/linux/pci.h | 24 ++++++++++++++++++++++++
2 files changed, 25 insertions(+), 4 deletions(-)
From: Robert Richter <rric@kernel.org> Date: 2021-02-26 19:20:41
On 26.02.21 23:50:56, Dejin Zheng wrote:
The pcim_alloc_irq_vectors() function, an explicit device-managed version
of pci_alloc_irq_vectors(). If pcim_enable_device() has been called
before, then pci_alloc_irq_vectors() is actually a device-managed
function. It is used here as a device-managed function, So replace it
with pcim_alloc_irq_vectors().
Signed-off-by: Dejin Zheng <redacted>
From: Robert Richter <rric@kernel.org> Date: 2021-02-26 19:21:55
On 26.02.21 23:50:52, Dejin Zheng wrote:
Introduce pcim_alloc_irq_vectors(), a device-managed version of
pci_alloc_irq_vectors(), In some i2c drivers, If pcim_enable_device()
has been called before, then pci_alloc_irq_vectors() is actually a
device-managed function. It is used as a device-managed function, So
replace it with pcim_alloc_irq_vectors().
For the whole series:
Reviewed-by: Robert Richter <rric@kernel.org>
Thanks.
On Fri, Feb 26, 2021 at 06:23:02PM +0200, Andy Shevchenko wrote:
On Fri, Feb 26, 2021 at 11:50:53PM +0800, Dejin Zheng wrote:
quoted
Introduce pcim_alloc_irq_vectors(), a device-managed version of
pci_alloc_irq_vectors(). Introducing this function can simplify
the error handling path in many drivers.
And use pci_free_irq_vectors() to replace some code in pcim_release(),
they are equivalent, and no functional change. It is more explicit
that pcim_alloc_irq_vectors() is a device-managed function.
Thanks!
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Andy, Thanks!
quoted
Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Dejin Zheng <redacted>
---
v4 -> v5:
- Remove the check of enable device in pcim_alloc_irq_vectors()
and make it as a static line function.
v3 -> v4:
- No change
v2 -> v3:
- Add some commit comments for replace some codes in
pcim_release() by pci_free_irq_vectors().
v1 -> v2:
- Use pci_free_irq_vectors() to replace some code in
pcim_release().
- Modify some commit messages.
drivers/pci/pci.c | 5 +----
include/linux/pci.h | 24 ++++++++++++++++++++++++
2 files changed, 25 insertions(+), 4 deletions(-)
On Fri, Feb 26, 2021 at 08:20:55PM +0100, Robert Richter wrote:
On 26.02.21 23:50:52, Dejin Zheng wrote:
quoted
Introduce pcim_alloc_irq_vectors(), a device-managed version of
pci_alloc_irq_vectors(), In some i2c drivers, If pcim_enable_device()
has been called before, then pci_alloc_irq_vectors() is actually a
device-managed function. It is used as a device-managed function, So
replace it with pcim_alloc_irq_vectors().
For the whole series:
Reviewed-by: Robert Richter <rric@kernel.org>
From: Jarkko Nikula <hidden> Date: 2021-03-03 15:38:47
On 2/26/21 5:50 PM, Dejin Zheng wrote:
The pcim_alloc_irq_vectors() function, an explicit device-managed version
of pci_alloc_irq_vectors(). If pcim_enable_device() has been called
before, then pci_alloc_irq_vectors() is actually a device-managed
function. It is used here as a device-managed function, So replace it
with pcim_alloc_irq_vectors(). At the same time, Remove the
pci_free_irq_vectors() function to simplify the error handling path.
the freeing resources will take automatically when device is gone.
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Dejin Zheng <redacted>
---
[+cc Christoph, Thomas, Alexander, in case you're interested]
[+cc Jonathan, Kurt, Logan: vmd.c and switchtec.c use managed resources
and pci_alloc_irq_vectors()]
On Fri, Feb 26, 2021 at 11:50:53PM +0800, Dejin Zheng wrote:
Introduce pcim_alloc_irq_vectors(), a device-managed version of
pci_alloc_irq_vectors(). Introducing this function can simplify
the error handling path in many drivers.
And use pci_free_irq_vectors() to replace some code in pcim_release(),
they are equivalent, and no functional change. It is more explicit
that pcim_alloc_irq_vectors() is a device-managed function.
Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Dejin Zheng <redacted>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Let me know if you'd like me to take the series.
quoted hunk
---
v4 -> v5:
- Remove the check of enable device in pcim_alloc_irq_vectors()
and make it as a static line function.
v3 -> v4:
- No change
v2 -> v3:
- Add some commit comments for replace some codes in
pcim_release() by pci_free_irq_vectors().
v1 -> v2:
- Use pci_free_irq_vectors() to replace some code in
pcim_release().
- Modify some commit messages.
drivers/pci/pci.c | 5 +----
include/linux/pci.h | 24 ++++++++++++++++++++++++
2 files changed, 25 insertions(+), 4 deletions(-)
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Date: 2021-04-21 15:24:18
On Fri, Feb 26, 2021 at 11:50:52PM +0800, Dejin Zheng wrote:
Introduce pcim_alloc_irq_vectors(), a device-managed version of
pci_alloc_irq_vectors(), In some i2c drivers, If pcim_enable_device()
has been called before, then pci_alloc_irq_vectors() is actually a
device-managed function. It is used as a device-managed function, So
replace it with pcim_alloc_irq_vectors().
Bjorn, I don't see this anywhere, except mailing list. Neither your opinion.
What is the plan?
Changelog
---------
v4 -> v5:
- Remove the check of enable device in pcim_alloc_irq_vectors()
and make it as a static line function.
- Modify the subject name in patch 3 and patch 4.
v3 -> v4:
- add some commit comments for patch 3
v2 -> v3:
- Add some commit comments for replace some codes in
pcim_release() by pci_free_irq_vectors().
- Simplify the error handling path in i2c designware
driver.
v1 -> v2:
- Use pci_free_irq_vectors() to replace some code in
pcim_release().
- Modify some commit messages.
Dejin Zheng (4):
PCI: Introduce pcim_alloc_irq_vectors()
Documentation: devres: Add pcim_alloc_irq_vectors()
i2c: designware: Use pcim_alloc_irq_vectors() to allocate IRQ vectors
i2c: thunderx: Use pcim_alloc_irq_vectors() to allocate IRQ vectors
.../driver-api/driver-model/devres.rst | 1 +
drivers/i2c/busses/i2c-designware-pcidrv.c | 15 ++++--------
drivers/i2c/busses/i2c-thunderx-pcidrv.c | 2 +-
drivers/pci/pci.c | 5 +---
include/linux/pci.h | 24 +++++++++++++++++++
5 files changed, 31 insertions(+), 16 deletions(-)
--
2.25.0
On Tue, Mar 23, 2021 at 05:47:10PM -0500, Bjorn Helgaas wrote:
[+cc Christoph, Thomas, Alexander, in case you're interested]
[+cc Jonathan, Kurt, Logan: vmd.c and switchtec.c use managed resources
and pci_alloc_irq_vectors()]
On Fri, Feb 26, 2021 at 11:50:53PM +0800, Dejin Zheng wrote:
quoted
Introduce pcim_alloc_irq_vectors(), a device-managed version of
pci_alloc_irq_vectors(). Introducing this function can simplify
the error handling path in many drivers.
And use pci_free_irq_vectors() to replace some code in pcim_release(),
they are equivalent, and no functional change. It is more explicit
that pcim_alloc_irq_vectors() is a device-managed function.
Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Dejin Zheng <redacted>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Let me know if you'd like me to take the series.
Hi Bjorn,
These patches are still invisible on the mainline, could you help me to
take it? Thanks very much!
BR,
Dejin
quoted
---
v4 -> v5:
- Remove the check of enable device in pcim_alloc_irq_vectors()
and make it as a static line function.
v3 -> v4:
- No change
v2 -> v3:
- Add some commit comments for replace some codes in
pcim_release() by pci_free_irq_vectors().
v1 -> v2:
- Use pci_free_irq_vectors() to replace some code in
pcim_release().
- Modify some commit messages.
drivers/pci/pci.c | 5 +----
include/linux/pci.h | 24 ++++++++++++++++++++++++
2 files changed, 25 insertions(+), 4 deletions(-)
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Date: 2021-06-02 08:51:22
On Thu, May 06, 2021 at 12:27:16AM +0800, Dejin Zheng wrote:
On Tue, Mar 23, 2021 at 05:47:10PM -0500, Bjorn Helgaas wrote:
quoted
[+cc Christoph, Thomas, Alexander, in case you're interested]
[+cc Jonathan, Kurt, Logan: vmd.c and switchtec.c use managed resources
and pci_alloc_irq_vectors()]
quoted
On Fri, Feb 26, 2021 at 11:50:53PM +0800, Dejin Zheng wrote:
quoted
Introduce pcim_alloc_irq_vectors(), a device-managed version of
pci_alloc_irq_vectors(). Introducing this function can simplify
the error handling path in many drivers.
And use pci_free_irq_vectors() to replace some code in pcim_release(),
they are equivalent, and no functional change. It is more explicit
that pcim_alloc_irq_vectors() is a device-managed function.
Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Dejin Zheng <redacted>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Let me know if you'd like me to take the series.
Hi Bjorn,
These patches are still invisible on the mainline, could you help me to
take it? Thanks very much!
I guess you have to rebase them on top of the latest rc (or PCI for-next) and
send with a cover letter.
--
With Best Regards,
Andy Shevchenko
On Wed, Jun 02, 2021 at 11:51:10AM +0300, Andy Shevchenko wrote:
On Thu, May 06, 2021 at 12:27:16AM +0800, Dejin Zheng wrote:
quoted
On Tue, Mar 23, 2021 at 05:47:10PM -0500, Bjorn Helgaas wrote:
quoted
[+cc Christoph, Thomas, Alexander, in case you're interested]
[+cc Jonathan, Kurt, Logan: vmd.c and switchtec.c use managed resources
and pci_alloc_irq_vectors()]
quoted
quoted
On Fri, Feb 26, 2021 at 11:50:53PM +0800, Dejin Zheng wrote:
quoted
Introduce pcim_alloc_irq_vectors(), a device-managed version of
pci_alloc_irq_vectors(). Introducing this function can simplify
the error handling path in many drivers.
And use pci_free_irq_vectors() to replace some code in pcim_release(),
they are equivalent, and no functional change. It is more explicit
that pcim_alloc_irq_vectors() is a device-managed function.
Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Dejin Zheng <redacted>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Let me know if you'd like me to take the series.
Hi Bjorn,
These patches are still invisible on the mainline, could you help me to
take it? Thanks very much!
I guess you have to rebase them on top of the latest rc (or PCI for-next) and
send with a cover letter.
On Wed, Jun 02, 2021 at 11:51:10AM +0300, Andy Shevchenko wrote:
On Thu, May 06, 2021 at 12:27:16AM +0800, Dejin Zheng wrote:
quoted
On Tue, Mar 23, 2021 at 05:47:10PM -0500, Bjorn Helgaas wrote:
quoted
[+cc Christoph, Thomas, Alexander, in case you're interested]
[+cc Jonathan, Kurt, Logan: vmd.c and switchtec.c use managed resources
and pci_alloc_irq_vectors()]
quoted
quoted
On Fri, Feb 26, 2021 at 11:50:53PM +0800, Dejin Zheng wrote:
quoted
Introduce pcim_alloc_irq_vectors(), a device-managed version of
pci_alloc_irq_vectors(). Introducing this function can simplify
the error handling path in many drivers.
And use pci_free_irq_vectors() to replace some code in pcim_release(),
they are equivalent, and no functional change. It is more explicit
that pcim_alloc_irq_vectors() is a device-managed function.
Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Dejin Zheng <redacted>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Let me know if you'd like me to take the series.
Hi Bjorn,
These patches are still invisible on the mainline, could you help me to
take it? Thanks very much!
I guess you have to rebase them on top of the latest rc (or PCI for-next) and
send with a cover letter.
No need to rebase them. The ideal is to base them on the "main" branch
from https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git/
(currently v5.13-rc) because that's what I base topic branches on.
But I can deal with whatever your current base is.
Thanks for the reminder; I'll take a look at your v7 posting.
Bjorn