diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-03-07 14:34:53 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-03-21 06:44:05 -0400 |
commit | 0c189fa69ed3d9c08d6f1db845c6fd174c92c429 (patch) | |
tree | e3cd43d482dde56ccd99ec68adfcca95b424e626 | |
parent | a51fea4fdbf1c8151f55029c82f850cbd335ff29 (diff) |
[media] siano: add support for LNA on ISDB-T
The very same code also exists for DVB-T. Add it for ISDB-T.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r-- | drivers/media/common/siano/smsdvb.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/drivers/media/common/siano/smsdvb.c b/drivers/media/common/siano/smsdvb.c index 4900aa9e8b7a..864f53e7ca63 100644 --- a/drivers/media/common/siano/smsdvb.c +++ b/drivers/media/common/siano/smsdvb.c | |||
@@ -655,7 +655,7 @@ static int smsdvb_isdbt_set_frontend(struct dvb_frontend *fe) | |||
655 | int board_id = smscore_get_board_id(client->coredev); | 655 | int board_id = smscore_get_board_id(client->coredev); |
656 | struct sms_board *board = sms_get_board(board_id); | 656 | struct sms_board *board = sms_get_board(board_id); |
657 | enum sms_device_type_st type = board->type; | 657 | enum sms_device_type_st type = board->type; |
658 | 658 | int ret; | |
659 | struct { | 659 | struct { |
660 | struct SmsMsgHdr_ST Msg; | 660 | struct SmsMsgHdr_ST Msg; |
661 | u32 Data[4]; | 661 | u32 Data[4]; |
@@ -695,6 +695,23 @@ static int smsdvb_isdbt_set_frontend(struct dvb_frontend *fe) | |||
695 | c->frequency, c->isdbt_sb_segment_count, | 695 | c->frequency, c->isdbt_sb_segment_count, |
696 | c->isdbt_sb_segment_idx); | 696 | c->isdbt_sb_segment_idx); |
697 | 697 | ||
698 | /* Disable LNA, if any. An error is returned if no LNA is present */ | ||
699 | ret = sms_board_lna_control(client->coredev, 0); | ||
700 | if (ret == 0) { | ||
701 | fe_status_t status; | ||
702 | |||
703 | /* tune with LNA off at first */ | ||
704 | ret = smsdvb_sendrequest_and_wait(client, &Msg, sizeof(Msg), | ||
705 | &client->tune_done); | ||
706 | |||
707 | smsdvb_read_status(fe, &status); | ||
708 | |||
709 | if (status & FE_HAS_LOCK) | ||
710 | return ret; | ||
711 | |||
712 | /* previous tune didn't lock - enable LNA and tune again */ | ||
713 | sms_board_lna_control(client->coredev, 1); | ||
714 | } | ||
698 | return smsdvb_sendrequest_and_wait(client, &Msg, sizeof(Msg), | 715 | return smsdvb_sendrequest_and_wait(client, &Msg, sizeof(Msg), |
699 | &client->tune_done); | 716 | &client->tune_done); |
700 | } | 717 | } |