1*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Copyright (C) 2005 Mike Isely <isely@pobox.com> 5*4882a593Smuzhiyun * Copyright (C) 2004 Aurelien Alleaume <slts@free.fr> 6*4882a593Smuzhiyun */ 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun /* 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun This source file is specifically designed to interface with the 11*4882a593Smuzhiyun wm8775. 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun */ 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun #include "pvrusb2-wm8775.h" 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun #include "pvrusb2-hdw-internal.h" 19*4882a593Smuzhiyun #include "pvrusb2-debug.h" 20*4882a593Smuzhiyun #include <linux/videodev2.h> 21*4882a593Smuzhiyun #include <media/v4l2-common.h> 22*4882a593Smuzhiyun #include <linux/errno.h> 23*4882a593Smuzhiyun pvr2_wm8775_subdev_update(struct pvr2_hdw * hdw,struct v4l2_subdev * sd)24*4882a593Smuzhiyunvoid pvr2_wm8775_subdev_update(struct pvr2_hdw *hdw, struct v4l2_subdev *sd) 25*4882a593Smuzhiyun { 26*4882a593Smuzhiyun if (hdw->input_dirty || hdw->force_dirty) { 27*4882a593Smuzhiyun u32 input; 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun switch (hdw->input_val) { 30*4882a593Smuzhiyun case PVR2_CVAL_INPUT_RADIO: 31*4882a593Smuzhiyun input = 1; 32*4882a593Smuzhiyun break; 33*4882a593Smuzhiyun default: 34*4882a593Smuzhiyun /* All other cases just use the second input */ 35*4882a593Smuzhiyun input = 2; 36*4882a593Smuzhiyun break; 37*4882a593Smuzhiyun } 38*4882a593Smuzhiyun pvr2_trace(PVR2_TRACE_CHIPS, "subdev wm8775 set_input(val=%d route=0x%x)", 39*4882a593Smuzhiyun hdw->input_val, input); 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun sd->ops->audio->s_routing(sd, input, 0, 0); 42*4882a593Smuzhiyun } 43*4882a593Smuzhiyun } 44