10c0d06caSMauro Carvalho Chehab /* 20c0d06caSMauro Carvalho Chehab * 30c0d06caSMauro Carvalho Chehab * 40c0d06caSMauro Carvalho Chehab * Copyright (C) 2005 Mike Isely <isely@pobox.com> 50c0d06caSMauro Carvalho Chehab * Copyright (C) 2004 Aurelien Alleaume <slts@free.fr> 60c0d06caSMauro Carvalho Chehab * 70c0d06caSMauro Carvalho Chehab * This program is free software; you can redistribute it and/or modify 80c0d06caSMauro Carvalho Chehab * it under the terms of the GNU General Public License as published by 90c0d06caSMauro Carvalho Chehab * the Free Software Foundation; either version 2 of the License 100c0d06caSMauro Carvalho Chehab * 110c0d06caSMauro Carvalho Chehab * This program is distributed in the hope that it will be useful, 120c0d06caSMauro Carvalho Chehab * but WITHOUT ANY WARRANTY; without even the implied warranty of 130c0d06caSMauro Carvalho Chehab * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 140c0d06caSMauro Carvalho Chehab * GNU General Public License for more details. 150c0d06caSMauro Carvalho Chehab * 160c0d06caSMauro Carvalho Chehab * You should have received a copy of the GNU General Public License 170c0d06caSMauro Carvalho Chehab * along with this program; if not, write to the Free Software 180c0d06caSMauro Carvalho Chehab * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 190c0d06caSMauro Carvalho Chehab * 200c0d06caSMauro Carvalho Chehab */ 210c0d06caSMauro Carvalho Chehab 220c0d06caSMauro Carvalho Chehab /* 230c0d06caSMauro Carvalho Chehab 240c0d06caSMauro Carvalho Chehab This source file is specifically designed to interface with the 250c0d06caSMauro Carvalho Chehab wm8775. 260c0d06caSMauro Carvalho Chehab 270c0d06caSMauro Carvalho Chehab */ 280c0d06caSMauro Carvalho Chehab 290c0d06caSMauro Carvalho Chehab #include "pvrusb2-wm8775.h" 300c0d06caSMauro Carvalho Chehab 310c0d06caSMauro Carvalho Chehab 320c0d06caSMauro Carvalho Chehab #include "pvrusb2-hdw-internal.h" 330c0d06caSMauro Carvalho Chehab #include "pvrusb2-debug.h" 340c0d06caSMauro Carvalho Chehab #include <linux/videodev2.h> 350c0d06caSMauro Carvalho Chehab #include <media/v4l2-common.h> 360c0d06caSMauro Carvalho Chehab #include <linux/errno.h> 370c0d06caSMauro Carvalho Chehab 380c0d06caSMauro Carvalho Chehab void pvr2_wm8775_subdev_update(struct pvr2_hdw *hdw, struct v4l2_subdev *sd) 390c0d06caSMauro Carvalho Chehab { 400c0d06caSMauro Carvalho Chehab if (hdw->input_dirty || hdw->force_dirty) { 410c0d06caSMauro Carvalho Chehab u32 input; 420c0d06caSMauro Carvalho Chehab 430c0d06caSMauro Carvalho Chehab switch (hdw->input_val) { 440c0d06caSMauro Carvalho Chehab case PVR2_CVAL_INPUT_RADIO: 450c0d06caSMauro Carvalho Chehab input = 1; 460c0d06caSMauro Carvalho Chehab break; 470c0d06caSMauro Carvalho Chehab default: 480c0d06caSMauro Carvalho Chehab /* All other cases just use the second input */ 490c0d06caSMauro Carvalho Chehab input = 2; 500c0d06caSMauro Carvalho Chehab break; 510c0d06caSMauro Carvalho Chehab } 520c0d06caSMauro Carvalho Chehab pvr2_trace(PVR2_TRACE_CHIPS, "subdev wm8775" 530c0d06caSMauro Carvalho Chehab " set_input(val=%d route=0x%x)", 540c0d06caSMauro Carvalho Chehab hdw->input_val, input); 550c0d06caSMauro Carvalho Chehab 560c0d06caSMauro Carvalho Chehab sd->ops->audio->s_routing(sd, input, 0, 0); 570c0d06caSMauro Carvalho Chehab } 580c0d06caSMauro Carvalho Chehab } 590c0d06caSMauro Carvalho Chehab 600c0d06caSMauro Carvalho Chehab 610c0d06caSMauro Carvalho Chehab 620c0d06caSMauro Carvalho Chehab /* 630c0d06caSMauro Carvalho Chehab Stuff for Emacs to see, in order to encourage consistent editing style: 640c0d06caSMauro Carvalho Chehab *** Local Variables: *** 650c0d06caSMauro Carvalho Chehab *** mode: c *** 660c0d06caSMauro Carvalho Chehab *** fill-column: 70 *** 670c0d06caSMauro Carvalho Chehab *** tab-width: 8 *** 680c0d06caSMauro Carvalho Chehab *** c-basic-offset: 8 *** 690c0d06caSMauro Carvalho Chehab *** End: *** 700c0d06caSMauro Carvalho Chehab */ 71