Instead of re-use tune_done also for stats, the better is to use
a different completion.
Also, it was noticed that sometimes, the driver answers with
MSG_SMS_SIGNAL_DETECTED_IND for status request. Fix the code to
also handle those other signal indicators.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
fe_status_t fe_status;
struct completion tune_done;
fe_status_t fe_status;
struct completion tune_done;
+ struct completion stats_done;
struct SMSHOSTLIB_STATISTICS_DVB_S sms_stat_dvb;
int event_fe_state;
struct SMSHOSTLIB_STATISTICS_DVB_S sms_stat_dvb;
int event_fe_state;
pReceptionData->ErrorTSPackets = 0;
}
pReceptionData->ErrorTSPackets = 0;
}
- complete(&client->tune_done);
client->fe_status = 0;
sms_board_dvb3_event(client, DVB3_EVENT_FE_UNLOCK);
}
client->fe_status = 0;
sms_board_dvb3_event(client, DVB3_EVENT_FE_UNLOCK);
}
+ complete(&client->stats_done);
sizeof(struct SmsMsgHdr_ST), 0 };
rc = smsdvb_sendrequest_and_wait(client, &Msg, sizeof(Msg),
sizeof(struct SmsMsgHdr_ST), 0 };
rc = smsdvb_sendrequest_and_wait(client, &Msg, sizeof(Msg),
client->coredev = coredev;
init_completion(&client->tune_done);
client->coredev = coredev;
init_completion(&client->tune_done);
+ init_completion(&client->stats_done);
kmutex_lock(&g_smsdvb_clientslock);
kmutex_lock(&g_smsdvb_clientslock);