summaryrefslogtreecommitdiff
path: root/firmware/tuner_samsung.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/tuner_samsung.c')
-rw-r--r--firmware/tuner_samsung.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/firmware/tuner_samsung.c b/firmware/tuner_samsung.c
index b0887d0d7a..82934d7160 100644
--- a/firmware/tuner_samsung.c
+++ b/firmware/tuner_samsung.c
@@ -21,6 +21,7 @@
21#include <stdbool.h> 21#include <stdbool.h>
22#include <stdlib.h> 22#include <stdlib.h>
23#include "config.h" 23#include "config.h"
24#include "kernel.h"
24#include "tuner.h" /* tuner abstraction interface */ 25#include "tuner.h" /* tuner abstraction interface */
25#include "fmradio.h" /* physical interface driver */ 26#include "fmradio.h" /* physical interface driver */
26#include "mpeg.h" 27#include "mpeg.h"
@@ -34,8 +35,10 @@ static int fm_in1;
34static int fm_in2; 35static int fm_in2;
35 36
36/* tuner abstraction layer: set something to the tuner */ 37/* tuner abstraction layer: set something to the tuner */
37void samsung_set(int setting, int value) 38int samsung_set(int setting, int value)
38{ 39{
40 int val = 1;
41
39 switch(setting) 42 switch(setting)
40 { 43 {
41 case RADIO_SLEEP: 44 case RADIO_SLEEP:
@@ -90,6 +93,16 @@ void samsung_set(int setting, int value)
90 break; 93 break;
91 } 94 }
92 95
96 case RADIO_SCAN_FREQUENCY:
97 /* Tune in and delay */
98 samsung_set(RADIO_FREQUENCY, value);
99 sleep(1);
100 /* Start IF measurement */
101 samsung_set(RADIO_IF_MEASUREMENT, 1);
102 sleep(1);
103 val = samsung_get(RADIO_TUNED);
104 break;
105
93 case RADIO_MUTE: 106 case RADIO_MUTE:
94 fm_in1 = (fm_in1 & 0xfffffffe) | (value?1:0); 107 fm_in1 = (fm_in1 & 0xfffffffe) | (value?1:0);
95 fmradio_set(1, fm_in1); 108 fmradio_set(1, fm_in1);
@@ -109,7 +122,11 @@ void samsung_set(int setting, int value)
109 fm_in2 = (fm_in2 & 0xfffffffb) | (value?0:4); 122 fm_in2 = (fm_in2 & 0xfffffffb) | (value?0:4);
110 fmradio_set(2, fm_in2); 123 fmradio_set(2, fm_in2);
111 break; 124 break;
125 default:
126 val = -1;
112 } 127 }
128
129 return val;
113} 130}
114 131
115/* tuner abstraction layer: read something from the tuner */ 132/* tuner abstraction layer: read something from the tuner */