Lines Matching refs:sd

57 	struct v4l2_subdev sd;  member
76 static inline struct saa717x_state *to_state(struct v4l2_subdev *sd) in to_state() argument
78 return container_of(sd, struct saa717x_state, sd); in to_state()
83 return &container_of(ctrl->handler, struct saa717x_state, hdl)->sd; in to_sd()
99 static int saa717x_write(struct v4l2_subdev *sd, u32 reg, u32 value) in saa717x_write() argument
101 struct i2c_client *client = v4l2_get_subdevdata(sd); in saa717x_write()
121 v4l2_dbg(2, debug, sd, "wrote: reg 0x%03x=%08x\n", reg, value); in saa717x_write()
125 static void saa717x_write_regs(struct v4l2_subdev *sd, u32 *data) in saa717x_write_regs() argument
128 saa717x_write(sd, data[0], data[1]); in saa717x_write_regs()
133 static u32 saa717x_read(struct v4l2_subdev *sd, u32 reg) in saa717x_read() argument
135 struct i2c_client *client = v4l2_get_subdevdata(sd); in saa717x_read()
159 v4l2_dbg(2, debug, sd, "read: reg 0x%03x=0x%08x\n", reg, value); in saa717x_read()
693 static void get_inf_dev_status(struct v4l2_subdev *sd, in get_inf_dev_status() argument
732 reg_data3 = saa717x_read(sd, 0x0528); in get_inf_dev_status()
734 v4l2_dbg(1, debug, sd, "tvaudio thread status: 0x%x [%s%s%s]\n", in get_inf_dev_status()
738 v4l2_dbg(1, debug, sd, "detailed status: " in get_inf_dev_status()
759 v4l2_dbg(1, debug, sd, "ST!!!\n"); in get_inf_dev_status()
764 v4l2_dbg(1, debug, sd, "DUAL!!!\n"); in get_inf_dev_status()
770 static void set_audio_mode(struct v4l2_subdev *sd, int audio_mode) in set_audio_mode() argument
772 v4l2_dbg(1, debug, sd, "writing registers to set audio mode by set %d\n", in set_audio_mode()
775 saa717x_write(sd, 0x46c, reg_set_audio_template[audio_mode][0]); in set_audio_mode()
776 saa717x_write(sd, 0x470, reg_set_audio_template[audio_mode][1]); in set_audio_mode()
780 static int set_audio_regs(struct v4l2_subdev *sd, in set_audio_regs() argument
788 saa717x_write(sd, 0x0594, decoder->audio_input); in set_audio_regs()
789 v4l2_dbg(1, debug, sd, "set audio input %d\n", in set_audio_regs()
809 saa717x_write(sd, 0x480, val); in set_audio_regs()
814 saa717x_write(sd, 0x488, val); in set_audio_regs()
819 static void set_h_prescale(struct v4l2_subdev *sd, in set_h_prescale() argument
852 saa717x_write(sd, 0x60 + task_shift, vals[i].xpsc); in set_h_prescale()
854 saa717x_write(sd, 0x61 + task_shift, vals[i].xacl); in set_h_prescale()
856 saa717x_write(sd, 0x62 + task_shift, in set_h_prescale()
859 saa717x_write(sd, 0x63 + task_shift, in set_h_prescale()
864 static void set_v_scale(struct v4l2_subdev *sd, int task, int yscale) in set_v_scale() argument
870 saa717x_write(sd, 0x70 + task_shift, yscale & 0xff); in set_v_scale()
872 saa717x_write(sd, 0x71 + task_shift, yscale >> 8); in set_v_scale()
877 struct v4l2_subdev *sd = to_sd(ctrl); in saa717x_s_ctrl() local
878 struct saa717x_state *state = to_state(sd); in saa717x_s_ctrl()
882 saa717x_write(sd, 0x10a, ctrl->val); in saa717x_s_ctrl()
886 saa717x_write(sd, 0x10b, ctrl->val); in saa717x_s_ctrl()
890 saa717x_write(sd, 0x10c, ctrl->val); in saa717x_s_ctrl()
894 saa717x_write(sd, 0x10d, ctrl->val); in saa717x_s_ctrl()
920 set_audio_regs(sd, state); in saa717x_s_ctrl()
924 static int saa717x_s_video_routing(struct v4l2_subdev *sd, in saa717x_s_video_routing() argument
927 struct saa717x_state *decoder = to_state(sd); in saa717x_s_video_routing()
932 v4l2_dbg(1, debug, sd, "decoder set input (%d)\n", input); in saa717x_s_video_routing()
942 v4l2_dbg(1, debug, sd, "now setting %s input %d\n", in saa717x_s_video_routing()
947 saa717x_write(sd, 0x102, in saa717x_s_video_routing()
948 (saa717x_read(sd, 0x102) & 0xf0) | in saa717x_s_video_routing()
952 saa717x_write(sd, 0x109, in saa717x_s_video_routing()
953 (saa717x_read(sd, 0x109) & 0x7f) | in saa717x_s_video_routing()
959 set_audio_mode(sd, decoder->tuner_audio_mode); in saa717x_s_video_routing()
963 set_audio_mode(sd, TUNER_AUDIO_STEREO); in saa717x_s_video_routing()
967 saa717x_write_regs(sd, reg_init_tuner_input); in saa717x_s_video_routing()
969 saa717x_write_regs(sd, reg_init_svideo_input); in saa717x_s_video_routing()
971 saa717x_write_regs(sd, reg_init_composite_input); in saa717x_s_video_routing()
978 static int saa717x_g_register(struct v4l2_subdev *sd, struct v4l2_dbg_register *reg) in saa717x_g_register() argument
980 reg->val = saa717x_read(sd, reg->reg); in saa717x_g_register()
985 static int saa717x_s_register(struct v4l2_subdev *sd, const struct v4l2_dbg_register *reg) in saa717x_s_register() argument
990 saa717x_write(sd, addr, val); in saa717x_s_register()
995 static int saa717x_set_fmt(struct v4l2_subdev *sd, in saa717x_set_fmt() argument
1002 v4l2_dbg(1, debug, sd, "decoder set size\n"); in saa717x_set_fmt()
1029 set_h_prescale(sd, 0, prescale); in saa717x_set_fmt()
1030 set_h_prescale(sd, 1, prescale); in saa717x_set_fmt()
1034 saa717x_write(sd, 0x6C, (u8)(h_scale & 0xFF)); in saa717x_set_fmt()
1035 saa717x_write(sd, 0x6D, (u8)((h_scale >> 8) & 0xFF)); in saa717x_set_fmt()
1037 saa717x_write(sd, 0xAC, (u8)(h_scale & 0xFF)); in saa717x_set_fmt()
1038 saa717x_write(sd, 0xAD, (u8)((h_scale >> 8) & 0xFF)); in saa717x_set_fmt()
1041 set_v_scale(sd, 0, v_scale); in saa717x_set_fmt()
1042 set_v_scale(sd, 1, v_scale); in saa717x_set_fmt()
1047 saa717x_write(sd, 0x5C, (u8)(fmt->width & 0xFF)); in saa717x_set_fmt()
1048 saa717x_write(sd, 0x5D, (u8)((fmt->width >> 8) & 0xFF)); in saa717x_set_fmt()
1050 saa717x_write(sd, 0x9C, (u8)(fmt->width & 0xFF)); in saa717x_set_fmt()
1051 saa717x_write(sd, 0x9D, (u8)((fmt->width >> 8) & 0xFF)); in saa717x_set_fmt()
1055 saa717x_write(sd, 0x5E, (u8)(fmt->height & 0xFF)); in saa717x_set_fmt()
1056 saa717x_write(sd, 0x5F, (u8)((fmt->height >> 8) & 0xFF)); in saa717x_set_fmt()
1058 saa717x_write(sd, 0x9E, (u8)(fmt->height & 0xFF)); in saa717x_set_fmt()
1059 saa717x_write(sd, 0x9F, (u8)((fmt->height >> 8) & 0xFF)); in saa717x_set_fmt()
1063 static int saa717x_s_radio(struct v4l2_subdev *sd) in saa717x_s_radio() argument
1065 struct saa717x_state *decoder = to_state(sd); in saa717x_s_radio()
1071 static int saa717x_s_std(struct v4l2_subdev *sd, v4l2_std_id std) in saa717x_s_std() argument
1073 struct saa717x_state *decoder = to_state(sd); in saa717x_s_std()
1075 v4l2_dbg(1, debug, sd, "decoder set norm "); in saa717x_s_std()
1076 v4l2_dbg(1, debug, sd, "(not yet implementd)\n"); in saa717x_s_std()
1083 static int saa717x_s_audio_routing(struct v4l2_subdev *sd, in saa717x_s_audio_routing() argument
1086 struct saa717x_state *decoder = to_state(sd); in saa717x_s_audio_routing()
1090 v4l2_dbg(1, debug, sd, in saa717x_s_audio_routing()
1093 set_audio_regs(sd, decoder); in saa717x_s_audio_routing()
1099 static int saa717x_s_stream(struct v4l2_subdev *sd, int enable) in saa717x_s_stream() argument
1101 struct saa717x_state *decoder = to_state(sd); in saa717x_s_stream()
1103 v4l2_dbg(1, debug, sd, "decoder %s output\n", in saa717x_s_stream()
1106 saa717x_write(sd, 0x193, enable ? 0xa6 : 0x26); in saa717x_s_stream()
1111 static int saa717x_s_tuner(struct v4l2_subdev *sd, const struct v4l2_tuner *vt) in saa717x_s_tuner() argument
1113 struct saa717x_state *decoder = to_state(sd); in saa717x_s_tuner()
1136 v4l2_dbg(1, debug, sd, "change audio mode to %s\n", in saa717x_s_tuner()
1141 set_audio_mode(sd, decoder->tuner_audio_mode); in saa717x_s_tuner()
1145 static int saa717x_g_tuner(struct v4l2_subdev *sd, struct v4l2_tuner *vt) in saa717x_g_tuner() argument
1147 struct saa717x_state *decoder = to_state(sd); in saa717x_g_tuner()
1152 get_inf_dev_status(sd, &dual_f, &stereo_f); in saa717x_g_tuner()
1154 v4l2_dbg(1, debug, sd, "DETECT==st:%d dual:%d\n", in saa717x_g_tuner()
1160 v4l2_dbg(1, debug, sd, "DETECT==MONO\n"); in saa717x_g_tuner()
1168 v4l2_dbg(1, debug, sd, "DETECT==ST(ST)\n"); in saa717x_g_tuner()
1171 v4l2_dbg(1, debug, sd, "DETECT==ST(MONO)\n"); in saa717x_g_tuner()
1179 v4l2_dbg(1, debug, sd, "DETECT==DUAL1\n"); in saa717x_g_tuner()
1182 v4l2_dbg(1, debug, sd, "DETECT==DUAL2\n"); in saa717x_g_tuner()
1188 static int saa717x_log_status(struct v4l2_subdev *sd) in saa717x_log_status() argument
1190 struct saa717x_state *state = to_state(sd); in saa717x_log_status()
1192 v4l2_ctrl_handler_log_status(&state->hdl, sd->name); in saa717x_log_status()
1249 struct v4l2_subdev *sd; in saa717x_probe() local
1261 sd = &decoder->sd; in saa717x_probe()
1262 v4l2_i2c_subdev_init(sd, client, &saa717x_ops); in saa717x_probe()
1264 if (saa717x_write(sd, 0x5a4, 0xfe) && in saa717x_probe()
1265 saa717x_write(sd, 0x5a5, 0x0f) && in saa717x_probe()
1266 saa717x_write(sd, 0x5a6, 0x00) && in saa717x_probe()
1267 saa717x_write(sd, 0x5a7, 0x01)) in saa717x_probe()
1268 id = saa717x_read(sd, 0x5a0); in saa717x_probe()
1270 v4l2_dbg(1, debug, sd, "saa717x not found (id=%02x)\n", id); in saa717x_probe()
1281 v4l2_info(sd, "%s found @ 0x%x (%s)\n", p, in saa717x_probe()
1305 sd->ctrl_handler = hdl; in saa717x_probe()
1328 v4l2_dbg(1, debug, sd, "writing init values\n"); in saa717x_probe()
1331 saa717x_write_regs(sd, reg_init_initialize); in saa717x_probe()
1342 struct v4l2_subdev *sd = i2c_get_clientdata(client); in saa717x_remove() local
1344 v4l2_device_unregister_subdev(sd); in saa717x_remove()
1345 v4l2_ctrl_handler_free(sd->ctrl_handler); in saa717x_remove()