sama5/sam_tsd: Fix error: 'ret' may be used uninitialized

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
This commit is contained in:
Xiang Xiao 2020-04-30 21:58:03 +08:00 committed by patacongo
parent a7558cf9b9
commit b1e661e7db

View File

@ -196,7 +196,8 @@ struct sam_tsd_s
/* Interrupt bottom half logic and data sampling */
static void sam_tsd_notify(struct sam_tsd_s *priv);
static int sam_tsd_sample(struct sam_tsd_s *priv, struct sam_sample_s *sample);
static int sam_tsd_sample(struct sam_tsd_s *priv,
struct sam_sample_s *sample);
static int sam_tsd_waitsample(struct sam_tsd_s *priv,
struct sam_sample_s *sample);
static void sam_tsd_bottomhalf(void *arg);
@ -259,17 +260,17 @@ static void sam_tsd_notify(struct sam_tsd_s *priv)
if (priv->nwaiters > 0)
{
/* After posting this semaphore, we need to exit because the touchscreen
* is no longer available.
/* After posting this semaphore, we need to exit because the
* touchscreen is no longer available.
*/
nxsem_post(&priv->waitsem);
}
/* If there are threads waiting on poll() for touchscreen data to become available,
* then wake them up now. NOTE: we wake up all waiting threads because we
* do not know that they are going to do. If they all try to read the data,
* then some make end up blocking after all.
/* If there are threads waiting on poll() for touchscreen data to become
* available, then wake them up now. NOTE: we wake up all waiting threads
* because we do not know that they are going to do. If they all try to
* read the data, then some make end up blocking after all.
*/
for (i = 0; i < CONFIG_SAMA5_TSD_NPOLLWAITERS; i++)
@ -288,7 +289,8 @@ static void sam_tsd_notify(struct sam_tsd_s *priv)
* Name: sam_tsd_sample
****************************************************************************/
static int sam_tsd_sample(struct sam_tsd_s *priv, struct sam_sample_s *sample)
static int sam_tsd_sample(struct sam_tsd_s *priv,
struct sam_sample_s *sample)
{
irqstate_t flags;
int ret = -EAGAIN;
@ -341,10 +343,11 @@ static int sam_tsd_sample(struct sam_tsd_s *priv, struct sam_sample_s *sample)
* Name: sam_tsd_waitsample
****************************************************************************/
static int sam_tsd_waitsample(struct sam_tsd_s *priv, struct sam_sample_s *sample)
static int sam_tsd_waitsample(struct sam_tsd_s *priv,
struct sam_sample_s *sample)
{
irqstate_t flags;
int ret;
int ret = 0;
/* Interrupts me be disabled when this is called to (1) prevent posting
* of semaphores from interrupt handlers, and (2) to prevent sampled data
@ -387,7 +390,7 @@ static int sam_tsd_waitsample(struct sam_tsd_s *priv, struct sam_sample_s *sampl
iinfo("Sampled\n");
/* Re-acquire the semaphore that manages mutually exclusive access to
* the device structure. We may have to wait here. But we have our sample.
* the device structure. We may have to wait here. But we have our sample.
* Interrupts and pre-emption will be re-enabled while we wait.
*/
@ -420,7 +423,7 @@ errout:
*
* Input Parameters:
* priv - The touchscreen private data structure
* tsav - The new (shifted) value of the TSAV field of the ADC TSMR register.
* tsav - The new (shifted) value of the TSAV field of ADC TSMR register
*
* Returned Value:
* None
@ -476,9 +479,9 @@ static void sam_tsd_setaverage(struct sam_tsd_s *priv, uint32_t tsav)
* Description:
* This function executes on the worker thread. It is scheduled by
* sam_tsd_interrupt whenever any interesting, enabled TSD event occurs.
* All TSD interrupts are disabled when this function runs. sam_tsd_bottomhalf
* will re-enable TSD interrupts when it completes processing all pending
* TSD events.
* All TSD interrupts are disabled when this function runs.
* sam_tsd_bottomhalf will re-enable TSD interrupts when it completes
* processing all pending TSD events.
*
* Input Parameters:
* arg - The touchscreen private data structure cast to (void *)
@ -540,8 +543,8 @@ static void sam_tsd_bottomhalf(void *arg)
ier = ADC_INT_PEN;
/* Ignore the interrupt if the pen was already up (CONTACT_NONE == pen up
* and already reported; CONTACT_UP == pen up, but not reported)
/* Ignore the interrupt if the pen was already up (CONTACT_NONE == pen
* up and already reported; CONTACT_UP == pen up, but not reported)
*/
if (priv->sample.contact == CONTACT_NONE ||
@ -570,8 +573,8 @@ static void sam_tsd_bottomhalf(void *arg)
}
/* It is a pen down event. If the last loss-of-contact event has not been
* processed yet, then we have to ignore the pen down event (or else it will
* look like a drag event)
* processed yet, then we have to ignore the pen down event (or else it
* will look like a drag event)
*/
else if (priv->sample.contact == CONTACT_UP)
@ -590,7 +593,7 @@ static void sam_tsd_bottomhalf(void *arg)
}
else
{
/* The pen is down and the driver has accepted the last sample values. */
/* The pen is down and the driver accepted the last sample values. */
/* While the pen is down we want interrupts on all data ready and pen
* release events.
@ -779,9 +782,9 @@ static int sam_tsd_schedule(struct sam_tsd_s *priv)
sam_adc_putreg(priv->adc, SAM_ADC_IDR, ADC_TSD_ALLINTS);
/* Transfer processing to the worker thread. Since touchscreen ADC interrupts are
* disabled while the work is pending, no special action should be required
* to protected the work queue.
/* Transfer processing to the worker thread. Since touchscreen ADC
* interrupts are disabled while the work is pending, no special action
* should be required to protected the work queue.
*/
DEBUGASSERT(priv->work.worker == NULL);