Re: it87 causes VIA hardware to lockup

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Mar 12, 2017 at 07:26:34AM -0700, Guenter Roeck wrote:
> On Sun, Mar 12, 2017 at 02:15:22PM +0000, Russell King - ARM Linux wrote:
> > On Sun, Mar 12, 2017 at 06:25:44AM -0700, Guenter Roeck wrote:
> > > I found some reference suggesting that The IT8705F may respond on
> > > both SIO addresses. Can you try the following patch ?
> > 
> > Thanks for the patch - it'll take about a week or so for me to test,
> > as I can only risk testing it when I'm physically at the machine.
> > 
> 
> My pleasure. Sorry for the trouble. I attached a more comprehensive version
> of the patch.
> 
Hi Russell,

did you by any chance have time to test the patch ? I would like to send
the fix upstream, but I held it back in the hope to get feedback if it
actually solves the problem.

Thanks,
Guenter

> Thanks,
> Guenter
> 
> ---
> From 5b3f92a9e0df49a111a96f43130d2cee370e4c7a Mon Sep 17 00:00:00 2001
> From: Guenter Roeck <linux@xxxxxxxxxxxx>
> Date: Sun, 12 Mar 2017 06:18:58 -0700
> Subject: [PATCH] hwmon: (it87) Avoid registering the same chip on both SIO
>  addresses
> 
> IT8705F is known to respond on both SIO addresses. Other chips may have
> the same behavior. Add checks to avoid registering the same chip twice.
> 
> Fixes: e84bd9535e2b ("hwmon: (it87) Add support for second Super-IO chip")
> Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
> ---
>  drivers/hwmon/it87.c | 24 +++++++++++++++++++-----
>  1 file changed, 19 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c
> index 3e57a6120551..7053968fe0d3 100644
> --- a/drivers/hwmon/it87.c
> +++ b/drivers/hwmon/it87.c
> @@ -3197,7 +3197,7 @@ static int __init sm_it87_init(void)
>  {
>  	int sioaddr[2] = { REG_2E, REG_4E };
>  	struct it87_sio_data sio_data;
> -	unsigned short isa_address;
> +	unsigned short isa_address[2];
>  	bool found = false;
>  	int i, err;
>  
> @@ -3207,15 +3207,29 @@ static int __init sm_it87_init(void)
>  
>  	for (i = 0; i < ARRAY_SIZE(sioaddr); i++) {
>  		memset(&sio_data, 0, sizeof(struct it87_sio_data));
> -		isa_address = 0;
> -		err = it87_find(sioaddr[i], &isa_address, &sio_data);
> -		if (err || isa_address == 0)
> +		isa_address[i] = 0;
> +		err = it87_find(sioaddr[i], &isa_address[i], &sio_data);
> +		if (err || isa_address[i] == 0)
>  			continue;
> +		/*
> +		 * Don't register second chip if its ISA address matches
> +		 * the first chip's ISA address.
> +		 */
> +		if (i && isa_address[i] == isa_address[0])
> +			break;
>  
> -		err = it87_device_add(i, isa_address, &sio_data);
> +		err = it87_device_add(i, isa_address[i], &sio_data);
>  		if (err)
>  			goto exit_dev_unregister;
> +
>  		found = true;
> +
> +		/*
> +		 * IT8705F may respond on both SIO addresses.
> +		 * Stop probing after finding one.
> +		 */
> +		if (sio_data.type == it87)
> +			break;
>  	}
>  
>  	if (!found) {
> -- 
> 2.7.4
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-hwmon" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-hwmon" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [LM Sensors]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux