i2c: piix4: Add second SMBus for X370/X470/X570
diff mbox series

Message ID 20200413150634.474842-1-sebastian.reichel@collabora.com
State New
Headers show
Series
  • i2c: piix4: Add second SMBus for X370/X470/X570
Related show

Commit Message

Sebastian Reichel April 13, 2020, 3:06 p.m. UTC
The second interface can be found on X370, X470 and X570 according
to the bugzilla entry. I only tested with X570 on an ASRock X570
Taichi:

$ lspci -nnv -d 1022:790b
00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller [1022:790b] (rev 61)
	Subsystem: ASRock Incorporation FCH SMBus Controller [1849:ffff]
	Flags: 66MHz, medium devsel
	Kernel driver in use: piix4_smbus
	Kernel modules: i2c_piix4, sp5100_tco

Before the patch:

$ i2cdetect -l | grep PIIX4
i2c-1	unknown   	SMBus PIIX4 adapter port 2 at 0b00	N/A
i2c-0	unknown   	SMBus PIIX4 adapter port 0 at 0b00	N/A

After the patch:

$ i2cdetect -l | grep PIIX4
i2c-1	unknown   	SMBus PIIX4 adapter port 2 at 0b00	N/A
i2c-2	unknown   	SMBus PIIX4 adapter port 1 at 0b20	N/A
i2c-0	unknown   	SMBus PIIX4 adapter port 0 at 0b00	N/A

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=202587
Reported-by: Adam Honse <calcprogrammer1@gmail.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
---
Hi,

The Bugzilla entry contains a second change, which reduces the timeouts
for quicker operation. I did not include that change, since I do not know
if this is a good idea for all devices supported by this driver. In any
case it should be a separate patch. Let's get the interface working for
now.

-- Sebastian
---
 drivers/i2c/busses/i2c-piix4.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

Comments

Jean Delvare April 14, 2020, 7:41 a.m. UTC | #1
Hi Sebastian,

On Mon, 13 Apr 2020 17:06:34 +0200, Sebastian Reichel wrote:
> The second interface can be found on X370, X470 and X570 according
> to the bugzilla entry. I only tested with X570 on an ASRock X570
> Taichi:
> 
> $ lspci -nnv -d 1022:790b
> 00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller [1022:790b] (rev 61)
> 	Subsystem: ASRock Incorporation FCH SMBus Controller [1849:ffff]
> 	Flags: 66MHz, medium devsel
> 	Kernel driver in use: piix4_smbus
> 	Kernel modules: i2c_piix4, sp5100_tco
> 
> Before the patch:
> 
> $ i2cdetect -l | grep PIIX4
> i2c-1	unknown   	SMBus PIIX4 adapter port 2 at 0b00	N/A
> i2c-0	unknown   	SMBus PIIX4 adapter port 0 at 0b00	N/A
> 
> After the patch:
> 
> $ i2cdetect -l | grep PIIX4
> i2c-1	unknown   	SMBus PIIX4 adapter port 2 at 0b00	N/A
> i2c-2	unknown   	SMBus PIIX4 adapter port 1 at 0b20	N/A
> i2c-0	unknown   	SMBus PIIX4 adapter port 0 at 0b00	N/A
> 
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=202587
> Reported-by: Adam Honse <calcprogrammer1@gmail.com>
> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> ---
> Hi,
> 
> The Bugzilla entry contains a second change, which reduces the timeouts
> for quicker operation. I did not include that change, since I do not know
> if this is a good idea for all devices supported by this driver. In any
> case it should be a separate patch. Let's get the interface working for
> now.
> 
> -- Sebastian
> ---
>  drivers/i2c/busses/i2c-piix4.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/i2c/busses/i2c-piix4.c b/drivers/i2c/busses/i2c-piix4.c
> index 30ded6422e7b..3e89143a0ecf 100644
> --- a/drivers/i2c/busses/i2c-piix4.c
> +++ b/drivers/i2c/busses/i2c-piix4.c
> @@ -976,9 +976,11 @@ static int piix4_probe(struct pci_dev *dev, const struct pci_device_id *id)
>  		}
>  	}
>  
> -	if (dev->vendor == PCI_VENDOR_ID_AMD &&
> -	    dev->device == PCI_DEVICE_ID_AMD_HUDSON2_SMBUS) {
> -		retval = piix4_setup_sb800(dev, id, 1);
> +	if (dev->vendor == PCI_VENDOR_ID_AMD) {
> +		if (dev->device == PCI_DEVICE_ID_AMD_HUDSON2_SMBUS ||
> +		    dev->device == PCI_DEVICE_ID_AMD_KERNCZ_SMBUS) {
> +			retval = piix4_setup_sb800(dev, id, 1);
> +		}
>  	}
>  
>  	if (retval > 0) {

Adam just sent pretty much the same patch:

https://patchwork.ozlabs.org/project/linux-i2c/patch/20200410204843.3856-1-calcprogrammer1@gmail.com/

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

I'll leave it to Wolfram which one he wants to apply.
Sebastian Reichel April 14, 2020, 10:43 a.m. UTC | #2
Hi,

On Tue, Apr 14, 2020 at 09:41:58AM +0200, Jean Delvare wrote:
> On Mon, 13 Apr 2020 17:06:34 +0200, Sebastian Reichel wrote:
> > The second interface can be found on X370, X470 and X570 according
> > to the bugzilla entry. I only tested with X570 on an ASRock X570
> > Taichi:
> > 
> > $ lspci -nnv -d 1022:790b
> > 00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller [1022:790b] (rev 61)
> > 	Subsystem: ASRock Incorporation FCH SMBus Controller [1849:ffff]
> > 	Flags: 66MHz, medium devsel
> > 	Kernel driver in use: piix4_smbus
> > 	Kernel modules: i2c_piix4, sp5100_tco
> > 
> > Before the patch:
> > 
> > $ i2cdetect -l | grep PIIX4
> > i2c-1	unknown   	SMBus PIIX4 adapter port 2 at 0b00	N/A
> > i2c-0	unknown   	SMBus PIIX4 adapter port 0 at 0b00	N/A
> > 
> > After the patch:
> > 
> > $ i2cdetect -l | grep PIIX4
> > i2c-1	unknown   	SMBus PIIX4 adapter port 2 at 0b00	N/A
> > i2c-2	unknown   	SMBus PIIX4 adapter port 1 at 0b20	N/A
> > i2c-0	unknown   	SMBus PIIX4 adapter port 0 at 0b00	N/A
> > 
> > Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=202587
> > Reported-by: Adam Honse <calcprogrammer1@gmail.com>
> > Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> > ---
> > Hi,
> > 
> > The Bugzilla entry contains a second change, which reduces the timeouts
> > for quicker operation. I did not include that change, since I do not know
> > if this is a good idea for all devices supported by this driver. In any
> > case it should be a separate patch. Let's get the interface working for
> > now.
> > 
> > -- Sebastian
> > ---
> >  drivers/i2c/busses/i2c-piix4.c | 8 +++++---
> >  1 file changed, 5 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/i2c/busses/i2c-piix4.c b/drivers/i2c/busses/i2c-piix4.c
> > index 30ded6422e7b..3e89143a0ecf 100644
> > --- a/drivers/i2c/busses/i2c-piix4.c
> > +++ b/drivers/i2c/busses/i2c-piix4.c
> > @@ -976,9 +976,11 @@ static int piix4_probe(struct pci_dev *dev, const struct pci_device_id *id)
> >  		}
> >  	}
> >  
> > -	if (dev->vendor == PCI_VENDOR_ID_AMD &&
> > -	    dev->device == PCI_DEVICE_ID_AMD_HUDSON2_SMBUS) {
> > -		retval = piix4_setup_sb800(dev, id, 1);
> > +	if (dev->vendor == PCI_VENDOR_ID_AMD) {
> > +		if (dev->device == PCI_DEVICE_ID_AMD_HUDSON2_SMBUS ||
> > +		    dev->device == PCI_DEVICE_ID_AMD_KERNCZ_SMBUS) {
> > +			retval = piix4_setup_sb800(dev, id, 1);
> > +		}
> >  	}
> >  
> >  	if (retval > 0) {
> 
> Adam just sent pretty much the same patch:
> 
> https://patchwork.ozlabs.org/project/linux-i2c/patch/20200410204843.3856-1-calcprogrammer1@gmail.com/
> 
> Reviewed-by: Jean Delvare <jdelvare@suse.de>
> 
> I'll leave it to Wolfram which one he wants to apply.

Ok, I wasn't aware of that and thought this patch was forgotten. In
that case Adam should receive all the credits of course. Feel free
to take over anything usable from my commit message. The patch from
Adam is

Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Tested-by: Sebastian Reichel <sebastian.reichel@collabora.com>

Thanks,

-- Sebastian

Patch
diff mbox series

diff --git a/drivers/i2c/busses/i2c-piix4.c b/drivers/i2c/busses/i2c-piix4.c
index 30ded6422e7b..3e89143a0ecf 100644
--- a/drivers/i2c/busses/i2c-piix4.c
+++ b/drivers/i2c/busses/i2c-piix4.c
@@ -976,9 +976,11 @@  static int piix4_probe(struct pci_dev *dev, const struct pci_device_id *id)
 		}
 	}
 
-	if (dev->vendor == PCI_VENDOR_ID_AMD &&
-	    dev->device == PCI_DEVICE_ID_AMD_HUDSON2_SMBUS) {
-		retval = piix4_setup_sb800(dev, id, 1);
+	if (dev->vendor == PCI_VENDOR_ID_AMD) {
+		if (dev->device == PCI_DEVICE_ID_AMD_HUDSON2_SMBUS ||
+		    dev->device == PCI_DEVICE_ID_AMD_KERNCZ_SMBUS) {
+			retval = piix4_setup_sb800(dev, id, 1);
+		}
 	}
 
 	if (retval > 0) {