diff options
Diffstat (limited to 'firmware/tuner_samsung.c')
-rw-r--r-- | firmware/tuner_samsung.c | 19 |
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; | |||
34 | static int fm_in2; | 35 | static int fm_in2; |
35 | 36 | ||
36 | /* tuner abstraction layer: set something to the tuner */ | 37 | /* tuner abstraction layer: set something to the tuner */ |
37 | void samsung_set(int setting, int value) | 38 | int 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 */ |