diff options
Diffstat (limited to 'firmware/tuner_samsung.c')
-rw-r--r-- | firmware/tuner_samsung.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/firmware/tuner_samsung.c b/firmware/tuner_samsung.c index 98166e1d4d..f54748e7c6 100644 --- a/firmware/tuner_samsung.c +++ b/firmware/tuner_samsung.c | |||
@@ -19,6 +19,7 @@ | |||
19 | ****************************************************************************/ | 19 | ****************************************************************************/ |
20 | 20 | ||
21 | #include <stdbool.h> | 21 | #include <stdbool.h> |
22 | #include <stdlib.h> | ||
22 | #include "tuner.h" /* tuner abstraction interface */ | 23 | #include "tuner.h" /* tuner abstraction interface */ |
23 | #include "fmradio.h" /* physical interface driver */ | 24 | #include "fmradio.h" /* physical interface driver */ |
24 | 25 | ||
@@ -35,11 +36,15 @@ void samsung_set(int setting, int value) | |||
35 | { | 36 | { |
36 | switch(setting) | 37 | switch(setting) |
37 | { | 38 | { |
38 | case RADIO_INIT: | 39 | case RADIO_SLEEP: |
39 | fm_in1 = DEFAULT_IN1; | 40 | if (!value) |
40 | fm_in2 = DEFAULT_IN2; | 41 | { /* wakeup: just unit */ |
41 | fmradio_set(1, fm_in1); | 42 | fm_in1 = DEFAULT_IN1; |
42 | fmradio_set(2, fm_in2); | 43 | fm_in2 = DEFAULT_IN2; |
44 | fmradio_set(1, fm_in1); | ||
45 | fmradio_set(2, fm_in2); | ||
46 | } | ||
47 | /* else we have no sleep mode? */ | ||
43 | break; | 48 | break; |
44 | 49 | ||
45 | case RADIO_FREQUENCY: | 50 | case RADIO_FREQUENCY: |
@@ -96,9 +101,9 @@ int samsung_get(int setting) | |||
96 | val = (val == 0x140885); | 101 | val = (val == 0x140885); |
97 | break; | 102 | break; |
98 | 103 | ||
99 | case RADIO_DEVIATION: | 104 | case RADIO_TUNED: |
100 | val = fmradio_read(3); | 105 | val = fmradio_read(3); |
101 | val = 10700 - ((val & 0x7ffff) / 8); /* convert to kHz */ | 106 | val = abs(10700 - ((val & 0x7ffff) / 8)) < 50; /* convert to kHz */ |
102 | break; | 107 | break; |
103 | 108 | ||
104 | case RADIO_STEREO: | 109 | case RADIO_STEREO: |