Re: lm75_remove: LM75 Device remove using sysfs delete_device

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

 





On Thu, Jun 14, 2012 at 3:05 PM, Sasikanth babu <sasikanth.v19@xxxxxxxxx> wrote:


On Thu, Jun 14, 2012 at 12:37 AM, Guenter Roeck <guenter.roeck@xxxxxxxxxxxx> wrote:
On Wed, Jun 13, 2012 at 01:59:50PM -0400, Jean Delvare wrote:
> On Wed, 13 Jun 2012 21:52:02 +0530, Sasikanth babu wrote:
> > Yes, as you had mentioned we just backported I2c mux support.
> > I planning to use
> > linux-2.6.39.4.tar.bz2<http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.39.4.tar.bz2>kernel
> > (Since I cant go to 3.x kernels for now).
> > Is that version is fine with I2c mux devices or do I have to go with 3.x
> > kernels.?
>
> 2.6.39.4 should work fine with regards to i2c muxing, however this
> branch is already out of maintenance while the 3.0 branch is a longterm
> branch so it will be maintained for some more time (not sure exactly
> how long though.) So if 3.0 is an option, you should consider it seriously.
>
I definitely agree, but that smells like large company process to me.
Sasikanth may not have much of a choice.

Guenter

Sorry guys for bothering you again

 I was running 2.6.39.4 kernel now.  Software reboot always creating problems with LM75 device and saying address
 is busy but with hardware reboot It works fine (since all the power to board gets resets)

 Added a error message on failure of i2c_check_addr_busy.
 
        /* Check for address business */
        status = i2c_check_addr_busy(adap, client->addr);
        if (status) {
             dev_err(&adap->dev, "Address Busy to register i2c client %s at 0x%02x "
                "(%d)\n", client->name, client->addr, status);

                goto out_err;
        }



 i2c i2c-3: Address Busy to register i2c client lm75 at 0x4c (-16) 
 i2c i2c-3: Failed to register i2c client lm75 at 0x4c (-16)
i2c i2c-3: Address Busy to register i2c client lm75 at 0x4b (-16)
i2c i2c-3: Failed to register i2c client lm75 at 0x4b (-16)
 
Thanks
Sasi

After making the following changes, It is working fine on soft reboot too. 

diff -urpN orig/linux-2.6.39.4/drivers/i2c/muxes/pca954x.c linux-2.6.39.4/drivers/i2c/muxes/pca954x.c
--- orig/linux-2.6.39.4/drivers/i2c/muxes/pca954x.c     2011-08-03 15:43:28.000000000 -0400
+++ linux-2.6.39.4/drivers/i2c/muxes/pca954x.c  2012-06-14 08:37:52.572107218 -0400
@@ -174,6 +174,7 @@ static int pca954x_deselect_mux(struct i
        struct pca954x *data = "">
        /* Deselect active channel */
+       printk (KERN_INFO"pca954x_deselect_mux: called ...\n");
        data->last_chan = 0;
        return pca954x_reg_write(adap, client, data->last_chan);
 }
@@ -228,8 +229,7 @@ static int pca954x_probe(struct i2c_clie
                data->virt_adaps[num] =
                        i2c_add_mux_adapter(adap, client,
                                force, num, pca954x_select_chan,
-                               (pdata && pdata->modes[num].deselect_on_exit)
-                                       ? pca954x_deselect_mux : NULL);
+                               pca954x_deselect_mux);


                if (data->virt_adaps[num] == NULL) {
                        ret = -ENODEV;

No one  is setting the "deselect_on_exit" for pca954x devices (verified in 3.5.0-rc2 too). Does the pca954x_deselect_mux not required for PCA mux devices for every bus transfer?.


Thanks
Sasi
_______________________________________________
lm-sensors mailing list
lm-sensors@xxxxxxxxxxxxxx
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux