/* tuner abstraction layer: set something to the tuner */ int si4700_set(int setting, int value) { int val = 1; if(!tuner_powered() && setting != RADIO_SLEEP) return -1; mutex_lock(&fmr_mutex); switch(setting) { case RADIO_SLEEP: if (value != 2) si4700_sleep(value); /* else actually it's 'pause' */ break; case RADIO_FREQUENCY: #ifdef HAVE_RDS_CAP rds_reset(); #endif si4700_set_frequency(value); break; case RADIO_SCAN_FREQUENCY: #ifdef HAVE_RDS_CAP rds_reset(); #endif si4700_set_frequency(value); val = si4700_tuned(); break; case RADIO_MUTE: si4700_write_masked(POWERCFG, value ? 0 : POWERCFG_DMUTE, POWERCFG_DMUTE); break; case RADIO_REGION: si4700_set_region(value); break; case RADIO_FORCE_MONO: si4700_write_masked(POWERCFG, value ? POWERCFG_MONO : 0, POWERCFG_MONO); break; default: val = -1; break; } mutex_unlock(&fmr_mutex); return val; }
/* tuner abstraction layer: set something to the tuner */ int si4700_set(int setting, int value) { switch(setting) { case RADIO_SLEEP: if (value != 2) si4700_sleep(value); /* else actually it's 'pause' */ break; case RADIO_FREQUENCY: si4700_set_frequency(value); break; case RADIO_SCAN_FREQUENCY: si4700_set_frequency(value); return si4700_tuned(); case RADIO_MUTE: si4700_write_masked(POWERCFG, value ? 0 : POWERCFG_DMUTE, POWERCFG_DMUTE); break; case RADIO_REGION: si4700_set_region(value); break; case RADIO_FORCE_MONO: si4700_write_masked(POWERCFG, value ? POWERCFG_MONO : 0, POWERCFG_MONO); break; default: return -1; } return 1; }