i2c: i801: Use standard PCI constants instead of own ones

Message ID a4b704b1-278c-20bc-854f-8e1177a530f5@gmail.com
State Accepted
Commit 0d3f1e4524bb70f528b7002803fc0737c83ddd5e
Headers show
Series
  • i2c: i801: Use standard PCI constants instead of own ones
Related show

Commit Message

Heiner Kallweit May 22, 2021, 9:46 p.m.
Layout of these registers is part of the PCI standard. Therefore use
the constants defined by the PCI subsystem.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
 drivers/i2c/busses/i2c-i801.c | 20 ++++++--------------
 1 file changed, 6 insertions(+), 14 deletions(-)

Comments

Jean Delvare May 25, 2021, 9:42 a.m. | #1
On Sat, 22 May 2021 23:46:20 +0200, Heiner Kallweit wrote:
> Layout of these registers is part of the PCI standard. Therefore use

> the constants defined by the PCI subsystem.

> 

> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>

> ---

>  drivers/i2c/busses/i2c-i801.c | 20 ++++++--------------

>  1 file changed, 6 insertions(+), 14 deletions(-)

> 

> diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c

> index 738204d77..f6d7866f1 100644

> --- a/drivers/i2c/busses/i2c-i801.c

> +++ b/drivers/i2c/busses/i2c-i801.c

> @@ -131,8 +131,6 @@

>  

>  /* PCI Address Constants */

>  #define SMBBAR		4

> -#define SMBPCICTL	0x004

> -#define SMBPCISTS	0x006

>  #define SMBHSTCFG	0x040

>  #define TCOBASE		0x050

>  #define TCOCTL		0x054

> @@ -141,12 +139,6 @@

>  #define SBREG_SMBCTRL		0xc6000c

>  #define SBREG_SMBCTRL_DNV	0xcf000c

>  

> -/* Host status bits for SMBPCISTS */

> -#define SMBPCISTS_INTS		BIT(3)

> -

> -/* Control bits for SMBPCICTL */

> -#define SMBPCICTL_INTDIS	BIT(10)

> -

>  /* Host configuration bits for SMBHSTCFG */

>  #define SMBHSTCFG_HST_EN	BIT(0)

>  #define SMBHSTCFG_SMB_SMI_EN	BIT(1)

> @@ -648,8 +640,8 @@ static irqreturn_t i801_isr(int irq, void *dev_id)

>  	u8 status;

>  

>  	/* Confirm this is our interrupt */

> -	pci_read_config_word(priv->pci_dev, SMBPCISTS, &pcists);

> -	if (!(pcists & SMBPCISTS_INTS))

> +	pci_read_config_word(priv->pci_dev, PCI_STATUS, &pcists);

> +	if (!(pcists & PCI_STATUS_INTERRUPT))

>  		return IRQ_NONE;

>  

>  	if (priv->features & FEATURE_HOST_NOTIFY) {

> @@ -1866,13 +1858,13 @@ static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id)

>  		u16 pcictl, pcists;

>  

>  		/* Complain if an interrupt is already pending */

> -		pci_read_config_word(priv->pci_dev, SMBPCISTS, &pcists);

> -		if (pcists & SMBPCISTS_INTS)

> +		pci_read_config_word(priv->pci_dev, PCI_STATUS, &pcists);

> +		if (pcists & PCI_STATUS_INTERRUPT)

>  			dev_warn(&dev->dev, "An interrupt is pending!\n");

>  

>  		/* Check if interrupts have been disabled */

> -		pci_read_config_word(priv->pci_dev, SMBPCICTL, &pcictl);

> -		if (pcictl & SMBPCICTL_INTDIS) {

> +		pci_read_config_word(priv->pci_dev, PCI_COMMAND, &pcictl);

> +		if (pcictl & PCI_COMMAND_INTX_DISABLE) {

>  			dev_info(&dev->dev, "Interrupts are disabled\n");

>  			priv->features &= ~FEATURE_IRQ;

>  		}


Nice, thanks for the clean-up.

Reviewed-by: Jean Delvare <jdelvare@suse.de>

Tested-by: Jean Delvare <jdelvare@suse.de>


-- 
Jean Delvare
SUSE L3 Support
Wolfram Sang May 27, 2021, 8:10 p.m. | #2
On Sat, May 22, 2021 at 11:46:20PM +0200, Heiner Kallweit wrote:
> Layout of these registers is part of the PCI standard. Therefore use

> the constants defined by the PCI subsystem.

> 

> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>


Applied to for-next, thanks!

Patch

diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c
index 738204d77..f6d7866f1 100644
--- a/drivers/i2c/busses/i2c-i801.c
+++ b/drivers/i2c/busses/i2c-i801.c
@@ -131,8 +131,6 @@ 
 
 /* PCI Address Constants */
 #define SMBBAR		4
-#define SMBPCICTL	0x004
-#define SMBPCISTS	0x006
 #define SMBHSTCFG	0x040
 #define TCOBASE		0x050
 #define TCOCTL		0x054
@@ -141,12 +139,6 @@ 
 #define SBREG_SMBCTRL		0xc6000c
 #define SBREG_SMBCTRL_DNV	0xcf000c
 
-/* Host status bits for SMBPCISTS */
-#define SMBPCISTS_INTS		BIT(3)
-
-/* Control bits for SMBPCICTL */
-#define SMBPCICTL_INTDIS	BIT(10)
-
 /* Host configuration bits for SMBHSTCFG */
 #define SMBHSTCFG_HST_EN	BIT(0)
 #define SMBHSTCFG_SMB_SMI_EN	BIT(1)
@@ -648,8 +640,8 @@  static irqreturn_t i801_isr(int irq, void *dev_id)
 	u8 status;
 
 	/* Confirm this is our interrupt */
-	pci_read_config_word(priv->pci_dev, SMBPCISTS, &pcists);
-	if (!(pcists & SMBPCISTS_INTS))
+	pci_read_config_word(priv->pci_dev, PCI_STATUS, &pcists);
+	if (!(pcists & PCI_STATUS_INTERRUPT))
 		return IRQ_NONE;
 
 	if (priv->features & FEATURE_HOST_NOTIFY) {
@@ -1866,13 +1858,13 @@  static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id)
 		u16 pcictl, pcists;
 
 		/* Complain if an interrupt is already pending */
-		pci_read_config_word(priv->pci_dev, SMBPCISTS, &pcists);
-		if (pcists & SMBPCISTS_INTS)
+		pci_read_config_word(priv->pci_dev, PCI_STATUS, &pcists);
+		if (pcists & PCI_STATUS_INTERRUPT)
 			dev_warn(&dev->dev, "An interrupt is pending!\n");
 
 		/* Check if interrupts have been disabled */
-		pci_read_config_word(priv->pci_dev, SMBPCICTL, &pcictl);
-		if (pcictl & SMBPCICTL_INTDIS) {
+		pci_read_config_word(priv->pci_dev, PCI_COMMAND, &pcictl);
+		if (pcictl & PCI_COMMAND_INTX_DISABLE) {
 			dev_info(&dev->dev, "Interrupts are disabled\n");
 			priv->features &= ~FEATURE_IRQ;
 		}