lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 07 Jul 2015 08:05:36 +0100
From:	Jonathan Cameron <jic23@...23.retrosnub.co.uk>
To:	Martin Fuzzey <mfuzzey@...keon.com>,
	Jonathan Cameron <jic23@...nel.org>,
	Martin Kepplinger <martink@...teo.de>, knaack.h@....de,
	lars@...afoo.de, pmeerw@...erw.net, roberta.dobrescu@...il.com,
	christoph.muellner@...obroma-systems.com
CC:	linux-iio@...r.kernel.org, linux-kernel@...r.kernel.org,
	devicetree@...r.kernel.org,
	Martin Kepplinger <martin.kepplinger@...obroma-systems.com>
Subject: Re: [PATCH 7/9] iio: mma8452: change iio event type to IIO_EV_TYPE_MAG



On 6 July 2015 09:39:12 BST, Martin Fuzzey <mfuzzey@...keon.com> wrote:
>On 05/07/15 13:50, Jonathan Cameron wrote:
>> On 04/07/15 14:55, Martin Kepplinger wrote:
>>> IIO_EV_TYPE_THRESH in rising direction describes an event where the
>>> threshold is crossed in rising direction, positive or negative
>values
>>> being possible. This is not the case here.
>>>
>>> Since the threshold is no signed value and only the magnitude is
>compared,
>>> IIO_EV_TYPE_MAG is what describes the behaviour of these devices,
>see the
>>> sysfs-bus-iio ABI Documentation.
>
>Fwiw there was some discussion of this before the initial submission:
>
>http://www.spinics.net/lists/linux-iio/msg14039.html
>
>Initially I used a magnitude too but Jonathan convinced me it should be
>
>a threshold.
>
>"
>
>The  moment you know the sign of the magnitude it stops being a
>magnitude
>and becomes a generic threshold.  Report it as such and control it as
>such.
>
>"
>
>Thing is that the hardware indeed only compares the absolute value for 
>the threshold *but* indicates with the event the sign.
>However it is true that the driver doesn't currently do anything with 
>the sign information.
Ah. That explains the confusion.
This is a common enough case. 
Usual approach is the slightly hacky option of having two threshold events. Setting limit on either effects both.
Enabling either effects both (or you can eat the wrong one in driver if you prefer
 when only one is enabled)
>
>
>>> Signed-off-by: Martin Kepplinger
><martin.kepplinger@...obroma-systems.com>
>>> Signed-off-by: Christoph Muellner
><christoph.muellner@...obroma-systems.com>
>> This is a fix and so should have been the first patch in the series. 
>It will
>> want to go via a different tree (iio-fixes) and probably be marked
>for stable.
>>
>> I would however like Peter's ack on this as well before taking it.
>>> ---
>>>   drivers/iio/accel/mma8452.c | 10 +++++-----
>>>   1 file changed, 5 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/drivers/iio/accel/mma8452.c
>b/drivers/iio/accel/mma8452.c
>>> index 7f6e3b4..e23ebd0 100644
>>> --- a/drivers/iio/accel/mma8452.c
>>> +++ b/drivers/iio/accel/mma8452.c
>>> @@ -598,21 +598,21 @@ static void mma8452_transient_interrupt(struct
>iio_dev *indio_dev)
>>>   	if (src & data->chip_info->ev_src_xe)
>>>   		iio_push_event(indio_dev,
>>>   			       IIO_MOD_EVENT_CODE(IIO_ACCEL, 0, IIO_MOD_X,
>>> -						  IIO_EV_TYPE_THRESH,
>>> +						  IIO_EV_TYPE_MAG,
>>>   						  IIO_EV_DIR_RISING),
>>>   			       ts);
>>>   
>>>   	if (src & data->chip_info->ev_src_ye)
>>>   		iio_push_event(indio_dev,
>>>   			       IIO_MOD_EVENT_CODE(IIO_ACCEL, 0, IIO_MOD_Y,
>>> -						  IIO_EV_TYPE_THRESH,
>>> +						  IIO_EV_TYPE_MAG,
>>>   						  IIO_EV_DIR_RISING),
>>>   			       ts);
>>>   
>>>   	if (src & data->chip_info->ev_src_ze)
>>>   		iio_push_event(indio_dev,
>>>   			       IIO_MOD_EVENT_CODE(IIO_ACCEL, 0, IIO_MOD_Z,
>>> -						  IIO_EV_TYPE_THRESH,
>>> +						  IIO_EV_TYPE_MAG,
>>>   						  IIO_EV_DIR_RISING),
>>>   			       ts);
>>>   }
>>> @@ -689,7 +689,7 @@ static int mma8452_reg_access_dbg(struct iio_dev
>*indio_dev,
>>>   
>>>   static const struct iio_event_spec mma8452_transient_event[] = {
>>>   	{
>>> -		.type = IIO_EV_TYPE_THRESH,
>>> +		.type = IIO_EV_TYPE_MAG,
>>>   		.dir = IIO_EV_DIR_RISING,
>>>   		.mask_separate = BIT(IIO_EV_INFO_ENABLE),
>>>   		.mask_shared_by_type = BIT(IIO_EV_INFO_VALUE) |
>>> @@ -700,7 +700,7 @@ static const struct iio_event_spec
>mma8452_transient_event[] = {
>>>   
>>>   static const struct iio_event_spec mma8452_motion_event[] = {
>>>   	{
>>> -		.type = IIO_EV_TYPE_THRESH,
>>> +		.type = IIO_EV_TYPE_MAG,
>>>   		.dir = IIO_EV_DIR_RISING,
>>>   		.mask_separate = BIT(IIO_EV_INFO_ENABLE),
>>>   		.mask_shared_by_type = BIT(IIO_EV_INFO_VALUE) |
>>>
>
>--
>To unsubscribe from this list: send the line "unsubscribe linux-iio" in
>the body of a message to majordomo@...r.kernel.org
>More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ