linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: "Ivan T. Ivanov" <iivanov@mm-sol.com>, Hartmut Knaack <knaack.h@gmx.de>
Cc: Lars-Peter Clausen <lars@metafoo.de>,
	Peter Meerwald <pmeerw@pmeerw.net>,
	Stanimir Varbanov <svarbanov@mm-sol.com>,
	Angelo Compagnucci <angelo.compagnucci@gmail.com>,
	Grant Likely <grant.likely@linaro.org>,
	linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org,
	devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org
Subject: Re: [PATCH v4 2/2] iio: vadc: Qualcomm SPMI PMIC voltage ADC driver
Date: Sat, 22 Nov 2014 11:55:19 +0000	[thread overview]
Message-ID: <547079A7.2040502@kernel.org> (raw)
In-Reply-To: <1416299013.30131.4.camel@mm-sol.com>

On 18/11/14 08:23, Ivan T. Ivanov wrote:
> 
> On Mon, 2014-11-17 at 23:12 +0100, Hartmut Knaack wrote:
>> Ivan T. Ivanov schrieb am 12.11.2014 09:55:
>>> On Tue, 2014-11-11 at 23:39 +0100, Hartmut Knaack wrote:
>>>> Ivan T. Ivanov schrieb am 11.11.2014 09:21:
>>>>> Hi Hartmut,
>>>>>
>>>>> On Mon, 2014-11-10 at 22:11 +0100, Hartmut Knaack wrote:
>>>>>> Ivan T. Ivanov schrieb am 03.11.2014 16:24:
>>>>>>> From: Stanimir Varbanov <svarbanov@mm-sol.com>
>>>>>>>
>>>>>>> The voltage ADC is peripheral of Qualcomm SPMI PMIC chips. It has
>>>>>>> 15 bits resolution and register space inside PMIC accessible across
>>>>>>> SPMI bus.
>>>>>>>
>>>>>>> The vadc driver registers itself through IIO interface.
>>>>>> Reviewing again, I got the feeling that due to the complexity of adc reads (writing to
>>>>>> register
>>>>>> to start conversion, waiting a decent time for the conversion to complete, reading the
>>>>>> result),
>>>>>> it would be beneficial to use a mutex in vadc_read_raw or its depending functions.
>>>>>
>>>>> Hm, yes, but there is such a nice info_exist_lock :-) in core functions,
>>>>> which in practice serve the same purpose.
>>>> I seem to miss that. Please point me in the right direction.
>>>
>>> I am referring to info_exist_lock mutex part of struct iio_dev.
>>> It protects all operations inkern.c, no?
>>>
>> Good point, thanks for helping me there.
> 
> I was wondering, is there a plan to improve this part of the code? 
No one is working on it that I know of.  All patches welcome!
> I mean to remove per device lock and use something like try_module_get(),
> when clients are acquiring reference to iio channel? 
That might indeed provide a more elegant solution...
(the things I don't know exist never fail to surprise me!)
> 
>>>>>>> +
>>>>>>> +       ret = of_property_read_u32(node, "reg", &res);
>>>>>> For u16, there would be of_property_read_u16().
>>>>>>> +       if (ret < 0)
>>>>>>> +       return -ENODEV;
>>>>>> Just return ret here?
>>>>>
>>>>> I am usually trying to follow these recommendations[1]. In practice driver
>>>>> core cares only for EPROBE_DEFER, ENODEV and ENXIO, while of_property_read_u32()
>>>>> can return ENODATA and EOVERFLOW, which did't not make sense for the core.
>>>> Please point me in the right direction on this one, too. It is pretty common to pass error 
>>>> codes
>>>> up, as it is also mentioned in [1].
>>>
>>> Yes, I know that is common to just pass error codes up, but in this case it did't
>>> make too much sense, I think. Also take a look at realy_probe() and line 343.
>> This doesn't convince me. Actually, within the probe_failed part, it just doesn't care about 
>> ENODEV and ENXIO as long as debug messages are disabled (which apart from some developers, is 
>> default for the vast majority of devices). For all other error codes, it will at least print an 
>> info or warning about what's going wrong (and that can be a lot of help for debugging).
> 
> Well, if you insist... will change it.
> 
> Thanks, 
> Ivan
> --
> To unsubscribe from this list: send the line "unsubscribe linux-iio" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


      reply	other threads:[~2014-11-22 11:55 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-03 15:24 [PATCH v4 0/2] Initial support for voltage ADC Ivan T. Ivanov
2014-11-03 15:24 ` [PATCH v4 1/2] DT: iio: vadc: document dt binding Ivan T. Ivanov
2014-11-05  0:01   ` Hartmut Knaack
2014-11-05 13:12     ` Jonathan Cameron
2014-11-05 14:07     ` Ivan T. Ivanov
2014-11-03 15:24 ` [PATCH v4 2/2] iio: vadc: Qualcomm SPMI PMIC voltage ADC driver Ivan T. Ivanov
2014-11-05 13:09   ` Jonathan Cameron
2014-11-05 13:57     ` Ivan T. Ivanov
2014-11-05 14:06       ` Jonathan Cameron
2014-11-05 15:01         ` Ivan T. Ivanov
2014-11-05 15:32           ` Jonathan Cameron
2014-11-10 21:11   ` Hartmut Knaack
2014-11-11  8:21     ` Ivan T. Ivanov
2014-11-11 22:39       ` Hartmut Knaack
2014-11-12  8:55         ` Ivan T. Ivanov
2014-11-17 22:12           ` Hartmut Knaack
2014-11-18  8:23             ` Ivan T. Ivanov
2014-11-22 11:55               ` Jonathan Cameron [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=547079A7.2040502@kernel.org \
    --to=jic23@kernel.org \
    --cc=angelo.compagnucci@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=grant.likely@linaro.org \
    --cc=iivanov@mm-sol.com \
    --cc=knaack.h@gmx.de \
    --cc=lars@metafoo.de \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pmeerw@pmeerw.net \
    --cc=svarbanov@mm-sol.com \
    /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).