From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from arroyo.ext.ti.com ([198.47.19.12]:44614 "EHLO arroyo.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751394AbcFXSD0 (ORCPT ); Fri, 24 Jun 2016 14:03:26 -0400 Subject: Re: [PATCH 1/5] hwmon: (tmp102) Use devm_add_action to register cleanup function To: Guenter Roeck References: <1466728108-2512-1-git-send-email-linux@roeck-us.net> <576D401D.80700@ti.com> <576D4421.8080704@roeck-us.net> <576D49AA.8020406@roeck-us.net> <576D505E.3020308@ti.com> <20160624163604.GA21447@roeck-us.net> CC: Jean Delvare , , From: Nishanth Menon Message-ID: <576D75B8.2050406@ti.com> Date: Fri, 24 Jun 2016 13:02:32 -0500 MIME-Version: 1.0 In-Reply-To: <20160624163604.GA21447@roeck-us.net> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Sender: linux-hwmon-owner@vger.kernel.org List-Id: linux-hwmon@vger.kernel.org On 06/24/2016 11:36 AM, Guenter Roeck wrote: > On Fri, Jun 24, 2016 at 10:23:10AM -0500, Nishanth Menon wrote: >> On 06/24/2016 09:54 AM, Guenter Roeck wrote: >>> On 06/24/2016 07:30 AM, Guenter Roeck wrote: >>>> Hi Nishanth, >>>> >>>> On 06/24/2016 07:13 AM, Nishanth Menon wrote: >>>>> On 06/23/2016 07:28 PM, Guenter Roeck wrote: >>>>>> By registering a cleanup function with devm_add_action(), we can >>>>>> simplify the error path in the probe function and drop the remove >>>>>> function entirely. >>>>>> >>>>>> Signed-off-by: Guenter Roeck >>>>> >>>>> I dont seem to have a cover letter to reply to... but anyways.. >>>>> >>>>> Before: http://pastebin.ubuntu.com/17801376/ >>>>> After all 5 patches: http://pastebin.ubuntu.com/17801824/ >>>>> >>>>> Fails on beagleboard-X15 with: >>>>> [ 36.781509] tmp102 0-0048: No cache defaults, reading back from HW >>>>> [ 36.795940] tmp102 0-0048: unexpected config register value >>>>> >>>>> I have'nt bisected down on the specific patch in the series. Have you had a chance to test the series? >>>>> >>>>> >>>> >>>> Thanks for testing. Yes, I did test it. Maybe different chip revisions, or different >>>> initial config register values and I messed up there. Can you send me the output >>>> of i2cdump (word wide) ? >>>> >>> >>> Before 5 patches: >>>> # i2cdump -f 0 0x48 w >>>> 0,8 1,9 2,a 3,b 4,c 5,d 6,e 7,f >>>> 00: 7912 b062 004b 0050 c018 e006 0000 0000 > > [ ... ] >>> >>> After 5 patches: >>>> i2cdump -y 0 0x48 w >>>> 0,8 1,9 2,a 3,b 4,c 5,d 6,e 7,f >>>> 00: 5024 a060 004b 0050 c018 e006 0000 0000 > > [ .... ] > >> I can try and debug the series once I get some spare time, might be >> over the weekend or next week. > > The register map, at least the initial one, is pretty much the same as mine > and as expected. The configuration register in the second map is messed up, > possible because of a write with wrong endianness. Got a few mins skipping lunch.. ;) I did a quick bisect, and it is indeed the patch #5 that breaks. added http://pastebin.ubuntu.com/17812044/ and got: tmp102 0-0048: regval = 0x0000ffff That was weird. Does'nt look like endian-ness swap thingy So, did the following hack to see all messages flowing in and out from 0x48 at bus controller driver level: http://pastebin.ubuntu.com/17813093/ / # dmesg|grep XXX / # Before patch #5 (and on next-20160624): the same diff gave: http://pastebin.ubuntu.com/17813303/ > I bet the regmap_read() of the configuration register returns 0xa060 (or > 0xb062) instead of 0x60a0 / 0x62b0 on your system. If you find the time, > it would be great if you can confirm by printing the register value with > the "unexpected config register value" message (guess I should have left > that in place - I used it during testing ;-). > > If that is the case, I'll probably have to drop the regmap changes, at least > for now. It would mean that regmap is broken for chips like the LM75 (ie > for all chips with 16-bit registers) on controllers supporting I2C_FUNC_I2C. It does look like everything is getting cached out and no actual reads are actually getting through to the bus controller driver even. I tested on next-20160624 and used omap2plus_defconfig for the test. -- Regards, Nishanth Menon