Lines Matching refs:sd
31 struct v4l2_subdev sd; member
36 static inline struct tw9906 *to_state(struct v4l2_subdev *sd) in to_state() argument
38 return container_of(sd, struct tw9906, sd); in to_state()
73 static int write_reg(struct v4l2_subdev *sd, u8 reg, u8 value) in write_reg() argument
75 struct i2c_client *client = v4l2_get_subdevdata(sd); in write_reg()
80 static int write_regs(struct v4l2_subdev *sd, const u8 *regs) in write_regs() argument
85 if (write_reg(sd, regs[i], regs[i + 1]) < 0) in write_regs()
90 static int tw9906_s_video_routing(struct v4l2_subdev *sd, u32 input, in tw9906_s_video_routing() argument
93 write_reg(sd, 0x02, 0x40 | (input << 1)); in tw9906_s_video_routing()
97 static int tw9906_s_std(struct v4l2_subdev *sd, v4l2_std_id norm) in tw9906_s_std() argument
99 struct tw9906 *dec = to_state(sd); in tw9906_s_std()
116 write_regs(sd, is_60hz ? config_60hz : config_50hz); in tw9906_s_std()
124 struct v4l2_subdev *sd = &dec->sd; in tw9906_s_ctrl() local
128 write_reg(sd, 0x10, ctrl->val); in tw9906_s_ctrl()
131 write_reg(sd, 0x11, ctrl->val); in tw9906_s_ctrl()
134 write_reg(sd, 0x15, ctrl->val); in tw9906_s_ctrl()
142 static int tw9906_log_status(struct v4l2_subdev *sd) in tw9906_log_status() argument
144 struct tw9906 *dec = to_state(sd); in tw9906_log_status()
147 v4l2_info(sd, "Standard: %d Hz\n", is_60hz ? 60 : 50); in tw9906_log_status()
148 v4l2_ctrl_subdev_log_status(sd); in tw9906_log_status()
176 struct v4l2_subdev *sd; in tw9906_probe() local
189 sd = &dec->sd; in tw9906_probe()
190 v4l2_i2c_subdev_init(sd, client, &tw9906_ops); in tw9906_probe()
199 sd->ctrl_handler = hdl; in tw9906_probe()
210 if (write_regs(sd, initial_registers) < 0) { in tw9906_probe()
220 struct v4l2_subdev *sd = i2c_get_clientdata(client); in tw9906_remove() local
222 v4l2_device_unregister_subdev(sd); in tw9906_remove()
223 v4l2_ctrl_handler_free(&to_state(sd)->hdl); in tw9906_remove()