提交 7a6fbed6 编写于 作者: M Michael Krufky 提交者: Mauro Carvalho Chehab

V4L/DVB (9736): sms1xxx: enable power LED on Hauppauge WinTV MiniStick

Enable power LED while the frontend is in use.
Signed-off-by: NMichael Krufky <mkrufky@linuxtv.org>
Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
上级 250fa674
......@@ -168,3 +168,18 @@ int sms_board_setup(struct smscore_device_t *coredev)
}
return 0;
}
int sms_board_power(struct smscore_device_t *coredev, int onoff)
{
int board_id = smscore_get_board_id(coredev);
struct sms_board *board = sms_get_board(board_id);
switch (board_id) {
case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
/* power LED */
sms_set_gpio(coredev,
board->led_power, onoff ? 1 : 0);
break;
}
return 0;
}
......@@ -46,6 +46,8 @@ struct sms_board *sms_get_board(int id);
int sms_board_setup(struct smscore_device_t *coredev);
int sms_board_power(struct smscore_device_t *coredev, int onoff);
extern struct usb_device_id smsusb_id_table[];
#endif /* __SMS_CARDS_H__ */
......@@ -273,6 +273,27 @@ static int smsdvb_get_frontend(struct dvb_frontend *fe,
/* todo: */
memcpy(fep, &client->fe_params,
sizeof(struct dvb_frontend_parameters));
return 0;
}
static int smsdvb_init(struct dvb_frontend *fe)
{
struct smsdvb_client_t *client =
container_of(fe, struct smsdvb_client_t, frontend);
sms_board_power(client->coredev, 1);
return 0;
}
static int smsdvb_sleep(struct dvb_frontend *fe)
{
struct smsdvb_client_t *client =
container_of(fe, struct smsdvb_client_t, frontend);
sms_board_power(client->coredev, 0);
return 0;
}
......@@ -308,6 +329,9 @@ static struct dvb_frontend_ops smsdvb_fe_ops = {
.read_ber = smsdvb_read_ber,
.read_signal_strength = smsdvb_read_signal_strength,
.read_snr = smsdvb_read_snr,
.init = smsdvb_init,
.sleep = smsdvb_sleep,
};
static int smsdvb_hotplug(struct smscore_device_t *coredev,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册