Example #1
0
static int poseidon_check_mode_radio(struct poseidon *p)
{
    int ret;
    u32 status;

    set_current_state(TASK_INTERRUPTIBLE);
    schedule_timeout(HZ/2);
    ret = usb_set_interface(p->udev, 0, BULK_ALTERNATE_IFACE);
    if (ret < 0)
        goto out;

    ret = set_tuner_mode(p, TLG_MODE_FM_RADIO);
    if (ret != 0)
        goto out;

    ret = send_set_req(p, SGNL_SRC_SEL, TLG_SIG_SRC_ANTENNA, &status);
    ret = send_set_req(p, TUNER_AUD_ANA_STD,
                       p->radio_data.pre_emphasis, &status);
    ret |= send_set_req(p, TUNER_AUD_MODE,
                        TLG_TUNE_TVAUDIO_MODE_STEREO, &status);
    ret |= send_set_req(p, AUDIO_SAMPLE_RATE_SEL,
                        ATV_AUDIO_RATE_48K, &status);
    ret |= send_set_req(p, TUNE_FREQ_SELECT, TUNER_FREQ_MIN_FM, &status);
out:
    return ret;
}
Example #2
0
static int poseidon_check_mode_dvbt(struct poseidon *pd)
{
	s32 ret = 0, cmd_status = 0;

	set_current_state(TASK_INTERRUPTIBLE);
	schedule_timeout(HZ/4);

	ret = usb_set_interface(pd->udev, 0, BULK_ALTERNATE_IFACE);
	if (ret != 0)
		return ret;

	ret = set_tuner_mode(pd, TLG_MODE_CAPS_DVB_T);
	if (ret)
		return ret;

	/* signal source */
	ret = send_set_req(pd, SGNL_SRC_SEL, TLG_SIG_SRC_ANTENNA, &cmd_status);
	if (ret|cmd_status)
		return ret;

	return 0;
}