예제 #1
0
static inline int led_feedback(struct smsdvb_client_t *client)
{
	if (!(client->fe_status & FE_HAS_LOCK))
		return sms_board_led_feedback(client->coredev, SMS_LED_OFF);

	return sms_board_led_feedback(client->coredev,
				     (client->legacy_ber == 0) ?
				     SMS_LED_HI : SMS_LED_LO);
}
예제 #2
0
static int smsdvb_send_statistics_request(struct smsdvb_client_t *client)
{
	struct SmsMsgHdr_ST Msg = { MSG_SMS_GET_STATISTICS_REQ,
			     DVBT_BDA_CONTROL_MSG_ID,
			     HIF_TASK, sizeof(struct SmsMsgHdr_ST), 0 };
	int ret = smsdvb_sendrequest_and_wait(client, &Msg, sizeof(Msg),
					      &client->stat_done);
	if (ret < 0)
		return ret;

	if (client->fe_status & FE_HAS_LOCK)
		sms_board_led_feedback(client->coredev,
				       (client->fe_unc == 0) ?
				       SMS_LED_HI : SMS_LED_LO);
	else
		sms_board_led_feedback(client->coredev, SMS_LED_OFF);
	return ret;
}
예제 #3
0
static int smsdvb_sleep(struct dvb_frontend *fe)
{
	struct smsdvb_client_t *client =
		container_of(fe, struct smsdvb_client_t, frontend);

	sms_board_led_feedback(client->coredev, SMS_LED_OFF);
	sms_board_power(client->coredev, 0);

	return 0;
}