[
https://issues.apache.org/jira/browse/MYNEWT-881?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16365396#comment-16365396
]
ASF GitHub Bot commented on MYNEWT-881:
---------------------------------------
rymanluk commented on a change in pull request #718: MYNEWT-881: SensorAPI: Add
sensor_unset_thresh() API and LIS2DH12 set threshold cb fix
URL: https://github.com/apache/mynewt-core/pull/718#discussion_r168407716
##########
File path: hw/drivers/sensors/lis2dh12/src/lis2dh12.c
##########
@@ -1308,44 +1298,62 @@ lis2dh12_sensor_set_trigger_thresh(struct sensor
*sensor,
memcpy(&low_thresh, &stt->stt_low_thresh, sizeof(low_thresh));
memcpy(&high_thresh, &stt->stt_high_thresh, sizeof(high_thresh));
- rc = lis2dh12_get_full_scale(itf, &tmp);
- if (rc) {
- goto err;
+ if (!low_thresh.sad->sad_x_is_valid &&
+ !low_thresh.sad->sad_y_is_valid &&
+ !low_thresh.sad->sad_z_is_valid) {
+ /* if all thresholds are not valid, release gpio irq */
+ hal_gpio_irq_release(itf->si_low_pin);
+ } else {
+ /* if one or more thresholds are valid, set trigger */
Review comment:
Could you elaborate why we would like to do it? I mean setting trigger in
unset_trigger function?
imho we should do it as simple as possible - whenever
lis2dh12_sensor_unset_trigger_thresh() is called we release IRQ and clear
releated HW registers.
If user what's to set new one, he calls lis2dh12_sensor_set_trigger_thresh.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> SensorAPI: Add sensor_unset_thresh() API and LIS2DH12 set threshold cb fix
> --------------------------------------------------------------------------
>
> Key: MYNEWT-881
> URL: https://issues.apache.org/jira/browse/MYNEWT-881
> Project: Mynewt
> Issue Type: Improvement
> Security Level: Public(Viewable by anyone)
> Components: Drivers, Sensor Framework
> Affects Versions: v1_3_0_rel
> Environment: ruuvitag-revb2
> Reporter: Vipul Rahane
> Assignee: Vipul Rahane
> Priority: Major
> Labels: core
> Fix For: v1_4_0_rel
>
>
> There are two issues for calling the lis2dh12_sensor_set_trigger_thresh() :
> 1. gpio irq was not being released before doing a re-initialization
> 2. srec was malloced and calling the function multiple times would have
> malloced additional memory without freeing it.
> Solution:
> 1. Release the gpio irq
> 2. Remove the malloc and add a ptr for the sensor in each type trait so that
> a sensor read could be performed in the irq handler.
> Also, sensor_unset_thresh() API was added to unset thresholds
> triggers/interrupts.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)