Re: [PATCH] 2.6 I2C re-add i2c_get_client()

From: stefan . eletzhofer
Date: Sun May 02 2004 - 10:09:36 EST


On Sat, May 01, 2004 at 11:01:09PM -0700, Greg KH wrote:
> On Thu, Apr 29, 2004 at 04:06:57PM +0200, stefan.eletzhofer@xxxxxxxxxxxxx wrote:
> > Hi,
> > here's a patch which re-adds i2c_get_client() back to i2c_core.c.
> > That call was removed in 2003 because there were no users of that
> > function at that time.
> >
> > I think this call is needed for I2C chip drivers which provide functionality to
> > be used by other driver modules, for example RTC chips or EEPROMs. These chip
> > drivers tend to encapsulate raw i2c chip access and provide function calls
> > for other modulesi, for example via the i2c_driver->command() method.
> >
> > I tried to get the locking right, so please comment. The patch is
> > against 2.6.6-rc3 and works quite fine with my i2c rtc chip.
>
> Locking looks correct, but you also need to increment either the
> device's reference count, and/or the module reference count for the
> client.

I thought that would be the purpose of i2c_use_client(), like the comment
in linux/i2c.h suggests? That call also takes care of the ALLOW_USE flag.

i2c_use_client() increments both the drivers and the adapters module ref
count, if I see it correctly. Then it also increments the clients usage count,
after checking the ALLOW_MULTIPLE_USE flag.

Its counterpart is i2c_release_client().

>
> Care to fix that up?
>
> thanks,
>
> greg k-h
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

--
Eletztrick Computing - Customized Linux Development
Stefan Eletzhofer, Marktstrasse 43, DE-88214 Ravensburg
http://www.eletztrick.de
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/