Lines Matching refs:radio

153 static int tea5764_i2c_read(struct tea5764_device *radio)  in tea5764_i2c_read()  argument
156 u16 *p = (u16 *) &radio->regs; in tea5764_i2c_read()
159 { .addr = radio->i2c_client->addr, in tea5764_i2c_read()
161 .len = sizeof(radio->regs), in tea5764_i2c_read()
162 .buf = (void *)&radio->regs in tea5764_i2c_read()
165 if (i2c_transfer(radio->i2c_client->adapter, msgs, 1) != 1) in tea5764_i2c_read()
173 static int tea5764_i2c_write(struct tea5764_device *radio) in tea5764_i2c_write() argument
176 struct tea5764_regs *r = &radio->regs; in tea5764_i2c_write()
179 .addr = radio->i2c_client->addr, in tea5764_i2c_write()
190 if (i2c_transfer(radio->i2c_client->adapter, msgs, 1) != 1) in tea5764_i2c_write()
195 static void tea5764_power_up(struct tea5764_device *radio) in tea5764_power_up() argument
197 struct tea5764_regs *r = &radio->regs; in tea5764_power_up()
208 tea5764_i2c_write(radio); in tea5764_power_up()
212 static void tea5764_power_down(struct tea5764_device *radio) in tea5764_power_down() argument
214 struct tea5764_regs *r = &radio->regs; in tea5764_power_down()
218 tea5764_i2c_write(radio); in tea5764_power_down()
222 static void tea5764_set_freq(struct tea5764_device *radio, int freq) in tea5764_set_freq() argument
224 struct tea5764_regs *r = &radio->regs; in tea5764_set_freq()
233 static int tea5764_get_freq(struct tea5764_device *radio) in tea5764_get_freq() argument
235 struct tea5764_regs *r = &radio->regs; in tea5764_get_freq()
244 static void tea5764_tune(struct tea5764_device *radio, int freq) in tea5764_tune() argument
246 tea5764_set_freq(radio, freq); in tea5764_tune()
247 if (tea5764_i2c_write(radio)) in tea5764_tune()
251 static void tea5764_set_audout_mode(struct tea5764_device *radio, int audmode) in tea5764_set_audout_mode() argument
253 struct tea5764_regs *r = &radio->regs; in tea5764_set_audout_mode()
261 tea5764_i2c_write(radio); in tea5764_set_audout_mode()
264 static int tea5764_get_audout_mode(struct tea5764_device *radio) in tea5764_get_audout_mode() argument
266 struct tea5764_regs *r = &radio->regs; in tea5764_get_audout_mode()
274 static void tea5764_mute(struct tea5764_device *radio, int on) in tea5764_mute() argument
276 struct tea5764_regs *r = &radio->regs; in tea5764_mute()
284 tea5764_i2c_write(radio); in tea5764_mute()
291 struct tea5764_device *radio = video_drvdata(file); in vidioc_querycap() local
292 struct video_device *dev = &radio->vdev; in vidioc_querycap()
306 struct tea5764_device *radio = video_drvdata(file); in vidioc_g_tuner() local
307 struct tea5764_regs *r = &radio->regs; in vidioc_g_tuner()
314 tea5764_i2c_read(radio); in vidioc_g_tuner()
322 v->audmode = tea5764_get_audout_mode(radio); in vidioc_g_tuner()
332 struct tea5764_device *radio = video_drvdata(file); in vidioc_s_tuner() local
337 tea5764_set_audout_mode(radio, v->audmode); in vidioc_s_tuner()
344 struct tea5764_device *radio = video_drvdata(file); in vidioc_s_frequency() local
351 tea5764_power_down(radio); in vidioc_s_frequency()
360 tea5764_power_up(radio); in vidioc_s_frequency()
361 tea5764_tune(radio, (freq * 125) / 2); in vidioc_s_frequency()
368 struct tea5764_device *radio = video_drvdata(file); in vidioc_g_frequency() local
369 struct tea5764_regs *r = &radio->regs; in vidioc_g_frequency()
373 tea5764_i2c_read(radio); in vidioc_g_frequency()
376 f->frequency = (tea5764_get_freq(radio) * 2) / 125; in vidioc_g_frequency()
385 struct tea5764_device *radio = in tea5764_s_ctrl() local
390 tea5764_mute(radio, ctrl->val); in tea5764_s_ctrl()
432 struct tea5764_device *radio; in tea5764_i2c_probe() local
439 radio = kzalloc(sizeof(struct tea5764_device), GFP_KERNEL); in tea5764_i2c_probe()
440 if (!radio) in tea5764_i2c_probe()
443 v4l2_dev = &radio->v4l2_dev; in tea5764_i2c_probe()
450 hdl = &radio->ctrl_handler; in tea5764_i2c_probe()
461 mutex_init(&radio->mutex); in tea5764_i2c_probe()
462 radio->i2c_client = client; in tea5764_i2c_probe()
463 ret = tea5764_i2c_read(radio); in tea5764_i2c_probe()
466 r = &radio->regs; in tea5764_i2c_probe()
475 radio->vdev = tea5764_radio_template; in tea5764_i2c_probe()
477 i2c_set_clientdata(client, radio); in tea5764_i2c_probe()
478 video_set_drvdata(&radio->vdev, radio); in tea5764_i2c_probe()
479 radio->vdev.lock = &radio->mutex; in tea5764_i2c_probe()
480 radio->vdev.v4l2_dev = v4l2_dev; in tea5764_i2c_probe()
483 tea5764_i2c_read(radio); in tea5764_i2c_probe()
484 tea5764_set_audout_mode(radio, V4L2_TUNER_MODE_STEREO); in tea5764_i2c_probe()
485 tea5764_mute(radio, 1); in tea5764_i2c_probe()
486 tea5764_power_down(radio); in tea5764_i2c_probe()
488 ret = video_register_device(&radio->vdev, VFL_TYPE_RADIO, radio_nr); in tea5764_i2c_probe()
500 kfree(radio); in tea5764_i2c_probe()
506 struct tea5764_device *radio = i2c_get_clientdata(client); in tea5764_i2c_remove() local
509 if (radio) { in tea5764_i2c_remove()
510 tea5764_power_down(radio); in tea5764_i2c_remove()
511 video_unregister_device(&radio->vdev); in tea5764_i2c_remove()
512 v4l2_ctrl_handler_free(&radio->ctrl_handler); in tea5764_i2c_remove()
513 v4l2_device_unregister(&radio->v4l2_dev); in tea5764_i2c_remove()
514 kfree(radio); in tea5764_i2c_remove()