linux-i2c.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>
Cc: Linux I2C <linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: i2c: Fix probing of FSC hardware monitoring chips
Date: Wed, 07 Apr 2010 14:12:07 +0200	[thread overview]
Message-ID: <4BBC7697.7070404@redhat.com> (raw)
In-Reply-To: <20100407140455.1eadb745-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>

Ack (and reviewed).

Acked-by: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>

On 04/07/2010 02:04 PM, Jean Delvare wrote:
> Some FSC hardware monitoring chips (Syleus at least) doesn't like
> quick writes we typically use to probe for I2C chips. Use a regular
> byte read instead for the address they live at (0x73). These are the
> only known chips living at this address on PC systems.
>
> For clarity, this fix should not be needed for kernels 2.6.30 and
> later, as we started instantiating the hwmon devices explicitly based
> on DMI data. Still, this fix is valuable in the following two cases:
> * Support for recent FSC chips on older kernels. The DMI-based device
>    instantiation is more difficult to backport than the device support
>    itself.
> * Case where the DMI-based device instantiation fails, whatever the
>    reason. We fall back to probing in that case, so it should work.
>
> This fixes kernel bug #15634:
> https://bugzilla.kernel.org/show_bug.cgi?id=15634
>
> Signed-off-by: Jean Delvare<khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>
> Cc: stable-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org
> Cc: Hans de Goede<hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> ---
>   drivers/i2c/i2c-core.c |   21 ++++++++++++++++-----
>   1 file changed, 16 insertions(+), 5 deletions(-)
>
> --- linux-2.6.34-rc3.orig/drivers/i2c/i2c-core.c	2010-04-07 09:03:30.000000000 +0200
> +++ linux-2.6.34-rc3/drivers/i2c/i2c-core.c	2010-04-07 13:45:28.000000000 +0200
> @@ -1264,12 +1264,23 @@ static int i2c_detect_address(struct i2c
>   		return 0;
>
>   	/* Make sure there is something at this address */
> -	if (i2c_smbus_xfer(adapter, addr, 0, 0, 0, I2C_SMBUS_QUICK, NULL)<  0)
> -		return 0;
> +	if (addr == 0x73&&  (adapter->class&  I2C_CLASS_HWMON)) {
> +		/* Special probe for FSC hwmon chips */
> +		union i2c_smbus_data dummy;
> +
> +		if (i2c_smbus_xfer(adapter, addr, 0, I2C_SMBUS_READ, 0,
> +				   I2C_SMBUS_BYTE_DATA,&dummy)<  0)
> +			return 0;
> +	} else {
> +		if (i2c_smbus_xfer(adapter, addr, 0, I2C_SMBUS_WRITE, 0,
> +				   I2C_SMBUS_QUICK, NULL)<  0)
> +			return 0;
>
> -	/* Prevent 24RF08 corruption */
> -	if ((addr&  ~0x0f) == 0x50)
> -		i2c_smbus_xfer(adapter, addr, 0, 0, 0, I2C_SMBUS_QUICK, NULL);
> +		/* Prevent 24RF08 corruption */
> +		if ((addr&  ~0x0f) == 0x50)
> +			i2c_smbus_xfer(adapter, addr, 0, I2C_SMBUS_WRITE, 0,
> +				       I2C_SMBUS_QUICK, NULL);
> +	}
>
>   	/* Finally call the custom detection function */
>   	memset(&info, 0, sizeof(struct i2c_board_info));
>
>

      parent reply	other threads:[~2010-04-07 12:12 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-07 12:04 i2c: Fix probing of FSC hardware monitoring chips Jean Delvare
     [not found] ` <20100407140455.1eadb745-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2010-04-07 12:12   ` Hans de Goede [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4BBC7697.7070404@redhat.com \
    --to=hdegoede-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
    --cc=khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org \
    --cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).