V4L/DVB (9736): sms1xxx: enable power LED on Hauppauge WinTV MiniStick
Enable power LED while the frontend is in use. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
250fa674fd
commit
7a6fbed650
@ -168,3 +168,18 @@ int sms_board_setup(struct smscore_device_t *coredev)
|
|||||||
}
|
}
|
||||||
return 0;
|
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_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[];
|
extern struct usb_device_id smsusb_id_table[];
|
||||||
|
|
||||||
#endif /* __SMS_CARDS_H__ */
|
#endif /* __SMS_CARDS_H__ */
|
||||||
|
@ -273,6 +273,27 @@ static int smsdvb_get_frontend(struct dvb_frontend *fe,
|
|||||||
/* todo: */
|
/* todo: */
|
||||||
memcpy(fep, &client->fe_params,
|
memcpy(fep, &client->fe_params,
|
||||||
sizeof(struct dvb_frontend_parameters));
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -308,6 +329,9 @@ static struct dvb_frontend_ops smsdvb_fe_ops = {
|
|||||||
.read_ber = smsdvb_read_ber,
|
.read_ber = smsdvb_read_ber,
|
||||||
.read_signal_strength = smsdvb_read_signal_strength,
|
.read_signal_strength = smsdvb_read_signal_strength,
|
||||||
.read_snr = smsdvb_read_snr,
|
.read_snr = smsdvb_read_snr,
|
||||||
|
|
||||||
|
.init = smsdvb_init,
|
||||||
|
.sleep = smsdvb_sleep,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int smsdvb_hotplug(struct smscore_device_t *coredev,
|
static int smsdvb_hotplug(struct smscore_device_t *coredev,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user