mt9v022 164 drivers/staging/media/soc_camera/soc_mt9v022.c static struct mt9v022 *to_mt9v022(const struct i2c_client *client) mt9v022 166 drivers/staging/media/soc_camera/soc_mt9v022.c return container_of(i2c_get_clientdata(client), struct mt9v022, subdev); mt9v022 204 drivers/staging/media/soc_camera/soc_mt9v022.c struct mt9v022 *mt9v022 = to_mt9v022(client); mt9v022 212 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->chip_control |= 0x10; mt9v022 213 drivers/staging/media/soc_camera/soc_mt9v022.c ret = reg_write(client, MT9V022_CHIP_CONTROL, mt9v022->chip_control); mt9v022 226 drivers/staging/media/soc_camera/soc_mt9v022.c ret = reg_write(client, mt9v022->reg->max_total_shutter_width, 480); mt9v022 233 drivers/staging/media/soc_camera/soc_mt9v022.c return v4l2_ctrl_handler_setup(&mt9v022->hdl); mt9v022 241 drivers/staging/media/soc_camera/soc_mt9v022.c struct mt9v022 *mt9v022 = to_mt9v022(client); mt9v022 245 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->chip_control &= ~0x10; mt9v022 246 drivers/staging/media/soc_camera/soc_mt9v022.c if (is_mt9v022_rev3(mt9v022->chip_version) || mt9v022 247 drivers/staging/media/soc_camera/soc_mt9v022.c is_mt9v024(mt9v022->chip_version)) { mt9v022 257 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->chip_control |= 0x10; mt9v022 258 drivers/staging/media/soc_camera/soc_mt9v022.c if (is_mt9v022_rev3(mt9v022->chip_version) || mt9v022 259 drivers/staging/media/soc_camera/soc_mt9v022.c is_mt9v024(mt9v022->chip_version)) { mt9v022 270 drivers/staging/media/soc_camera/soc_mt9v022.c if (reg_write(client, MT9V022_CHIP_CONTROL, mt9v022->chip_control) < 0) mt9v022 280 drivers/staging/media/soc_camera/soc_mt9v022.c struct mt9v022 *mt9v022 = to_mt9v022(client); mt9v022 290 drivers/staging/media/soc_camera/soc_mt9v022.c if (mt9v022->fmts == mt9v022_colour_fmts) { mt9v022 306 drivers/staging/media/soc_camera/soc_mt9v022.c ret = reg_write(client, mt9v022->reg->max_total_shutter_width, mt9v022 307 drivers/staging/media/soc_camera/soc_mt9v022.c rect.height + mt9v022->y_skip_top + 43); mt9v022 326 drivers/staging/media/soc_camera/soc_mt9v022.c if (is_mt9v024(mt9v022->chip_version)) { mt9v022 334 drivers/staging/media/soc_camera/soc_mt9v022.c ret = v4l2_ctrl_s_ctrl(mt9v022->hblank, mt9v022 338 drivers/staging/media/soc_camera/soc_mt9v022.c ret = v4l2_ctrl_s_ctrl(mt9v022->vblank, 45); mt9v022 343 drivers/staging/media/soc_camera/soc_mt9v022.c rect.height + mt9v022->y_skip_top); mt9v022 350 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->rect = rect; mt9v022 360 drivers/staging/media/soc_camera/soc_mt9v022.c struct mt9v022 *mt9v022 = to_mt9v022(client); mt9v022 373 drivers/staging/media/soc_camera/soc_mt9v022.c sel->r = mt9v022->rect; mt9v022 386 drivers/staging/media/soc_camera/soc_mt9v022.c struct mt9v022 *mt9v022 = to_mt9v022(client); mt9v022 391 drivers/staging/media/soc_camera/soc_mt9v022.c mf->width = mt9v022->rect.width; mt9v022 392 drivers/staging/media/soc_camera/soc_mt9v022.c mf->height = mt9v022->rect.height; mt9v022 393 drivers/staging/media/soc_camera/soc_mt9v022.c mf->code = mt9v022->fmt->code; mt9v022 394 drivers/staging/media/soc_camera/soc_mt9v022.c mf->colorspace = mt9v022->fmt->colorspace; mt9v022 405 drivers/staging/media/soc_camera/soc_mt9v022.c struct mt9v022 *mt9v022 = to_mt9v022(client); mt9v022 409 drivers/staging/media/soc_camera/soc_mt9v022.c .r.left = mt9v022->rect.left, mt9v022 410 drivers/staging/media/soc_camera/soc_mt9v022.c .r.top = mt9v022->rect.top, mt9v022 423 drivers/staging/media/soc_camera/soc_mt9v022.c if (mt9v022->model != MT9V022IX7ATM) mt9v022 428 drivers/staging/media/soc_camera/soc_mt9v022.c if (mt9v022->model != MT9V022IX7ATC) mt9v022 438 drivers/staging/media/soc_camera/soc_mt9v022.c mf->width = mt9v022->rect.width; mt9v022 439 drivers/staging/media/soc_camera/soc_mt9v022.c mf->height = mt9v022->rect.height; mt9v022 440 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->fmt = fmt; mt9v022 453 drivers/staging/media/soc_camera/soc_mt9v022.c struct mt9v022 *mt9v022 = to_mt9v022(client); mt9v022 463 drivers/staging/media/soc_camera/soc_mt9v022.c &mf->height, MT9V022_MIN_HEIGHT + mt9v022->y_skip_top, mt9v022 464 drivers/staging/media/soc_camera/soc_mt9v022.c MT9V022_MAX_HEIGHT + mt9v022->y_skip_top, align, 0); mt9v022 466 drivers/staging/media/soc_camera/soc_mt9v022.c fmt = mt9v022_find_datafmt(mf->code, mt9v022->fmts, mt9v022 467 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->num_fmts); mt9v022 469 drivers/staging/media/soc_camera/soc_mt9v022.c fmt = mt9v022->fmt; mt9v022 518 drivers/staging/media/soc_camera/soc_mt9v022.c struct mt9v022 *mt9v022 = to_mt9v022(client); mt9v022 520 drivers/staging/media/soc_camera/soc_mt9v022.c return soc_camera_set_power(&client->dev, ssdd, mt9v022->clk, on); mt9v022 525 drivers/staging/media/soc_camera/soc_mt9v022.c struct mt9v022 *mt9v022 = container_of(ctrl->handler, mt9v022 526 drivers/staging/media/soc_camera/soc_mt9v022.c struct mt9v022, hdl); mt9v022 527 drivers/staging/media/soc_camera/soc_mt9v022.c struct v4l2_subdev *sd = &mt9v022->subdev; mt9v022 529 drivers/staging/media/soc_camera/soc_mt9v022.c struct v4l2_ctrl *gain = mt9v022->gain; mt9v022 530 drivers/staging/media/soc_camera/soc_mt9v022.c struct v4l2_ctrl *exp = mt9v022->exposure; mt9v022 569 drivers/staging/media/soc_camera/soc_mt9v022.c struct mt9v022 *mt9v022 = container_of(ctrl->handler, mt9v022 570 drivers/staging/media/soc_camera/soc_mt9v022.c struct mt9v022, hdl); mt9v022 571 drivers/staging/media/soc_camera/soc_mt9v022.c struct v4l2_subdev *sd = &mt9v022->subdev; mt9v022 597 drivers/staging/media/soc_camera/soc_mt9v022.c struct v4l2_ctrl *gain = mt9v022->gain; mt9v022 624 drivers/staging/media/soc_camera/soc_mt9v022.c struct v4l2_ctrl *exp = mt9v022->exposure; mt9v022 664 drivers/staging/media/soc_camera/soc_mt9v022.c struct mt9v022 *mt9v022 = to_mt9v022(client); mt9v022 670 drivers/staging/media/soc_camera/soc_mt9v022.c ret = mt9v022_s_power(&mt9v022->subdev, 1); mt9v022 685 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->chip_version = data; mt9v022 687 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->reg = is_mt9v024(data) ? &mt9v024_register : mt9v022 707 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->model = MT9V022IX7ATC; mt9v022 708 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->fmts = mt9v022_colour_fmts; mt9v022 711 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->model = MT9V022IX7ATM; mt9v022 712 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->fmts = mt9v022_monochrome_fmts; mt9v022 718 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->num_fmts = 0; mt9v022 731 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->num_fmts++; mt9v022 733 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->fmts++; mt9v022 736 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->num_fmts++; mt9v022 738 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->fmt = &mt9v022->fmts[0]; mt9v022 741 drivers/staging/media/soc_camera/soc_mt9v022.c data, mt9v022->model == MT9V022IX7ATM ? mt9v022 749 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022_s_power(&mt9v022->subdev, 0); mt9v022 756 drivers/staging/media/soc_camera/soc_mt9v022.c struct mt9v022 *mt9v022 = to_mt9v022(client); mt9v022 758 drivers/staging/media/soc_camera/soc_mt9v022.c *lines = mt9v022->y_skip_top; mt9v022 781 drivers/staging/media/soc_camera/soc_mt9v022.c struct mt9v022 *mt9v022 = to_mt9v022(client); mt9v022 783 drivers/staging/media/soc_camera/soc_mt9v022.c if (code->pad || code->index >= mt9v022->num_fmts) mt9v022 786 drivers/staging/media/soc_camera/soc_mt9v022.c code->code = mt9v022->fmts[code->index].code; mt9v022 812 drivers/staging/media/soc_camera/soc_mt9v022.c struct mt9v022 *mt9v022 = to_mt9v022(client); mt9v022 814 drivers/staging/media/soc_camera/soc_mt9v022.c unsigned int bps = soc_mbus_get_fmtdesc(mt9v022->fmt->code)->bits_per_sample; mt9v022 839 drivers/staging/media/soc_camera/soc_mt9v022.c ret = reg_write(client, mt9v022->reg->pixclk_fv_lv, pixclk); mt9v022 844 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->chip_control &= ~0x8; mt9v022 846 drivers/staging/media/soc_camera/soc_mt9v022.c ret = reg_write(client, MT9V022_CHIP_CONTROL, mt9v022->chip_control); mt9v022 851 drivers/staging/media/soc_camera/soc_mt9v022.c pixclk, mt9v022->chip_control); mt9v022 884 drivers/staging/media/soc_camera/soc_mt9v022.c struct mt9v022 *mt9v022; mt9v022 901 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022 = devm_kzalloc(&client->dev, sizeof(struct mt9v022), GFP_KERNEL); mt9v022 902 drivers/staging/media/soc_camera/soc_mt9v022.c if (!mt9v022) mt9v022 906 drivers/staging/media/soc_camera/soc_mt9v022.c v4l2_i2c_subdev_init(&mt9v022->subdev, client, &mt9v022_subdev_ops); mt9v022 907 drivers/staging/media/soc_camera/soc_mt9v022.c v4l2_ctrl_handler_init(&mt9v022->hdl, 6); mt9v022 908 drivers/staging/media/soc_camera/soc_mt9v022.c v4l2_ctrl_new_std(&mt9v022->hdl, &mt9v022_ctrl_ops, mt9v022 910 drivers/staging/media/soc_camera/soc_mt9v022.c v4l2_ctrl_new_std(&mt9v022->hdl, &mt9v022_ctrl_ops, mt9v022 912 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->autogain = v4l2_ctrl_new_std(&mt9v022->hdl, &mt9v022_ctrl_ops, mt9v022 914 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->gain = v4l2_ctrl_new_std(&mt9v022->hdl, &mt9v022_ctrl_ops, mt9v022 921 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->autoexposure = v4l2_ctrl_new_std_menu(&mt9v022->hdl, mt9v022 924 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->exposure = v4l2_ctrl_new_std(&mt9v022->hdl, &mt9v022_ctrl_ops, mt9v022 927 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->hblank = v4l2_ctrl_new_std(&mt9v022->hdl, &mt9v022_ctrl_ops, mt9v022 932 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->vblank = v4l2_ctrl_new_std(&mt9v022->hdl, &mt9v022_ctrl_ops, mt9v022 937 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->subdev.ctrl_handler = &mt9v022->hdl; mt9v022 938 drivers/staging/media/soc_camera/soc_mt9v022.c if (mt9v022->hdl.error) { mt9v022 939 drivers/staging/media/soc_camera/soc_mt9v022.c int err = mt9v022->hdl.error; mt9v022 944 drivers/staging/media/soc_camera/soc_mt9v022.c v4l2_ctrl_auto_cluster(2, &mt9v022->autoexposure, mt9v022 946 drivers/staging/media/soc_camera/soc_mt9v022.c v4l2_ctrl_auto_cluster(2, &mt9v022->autogain, 0, true); mt9v022 948 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->chip_control = MT9V022_CHIP_CONTROL_DEFAULT; mt9v022 954 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->y_skip_top = pdata ? pdata->y_skip_top : 0; mt9v022 955 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->rect.left = MT9V022_COLUMN_SKIP; mt9v022 956 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->rect.top = MT9V022_ROW_SKIP; mt9v022 957 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->rect.width = MT9V022_MAX_WIDTH; mt9v022 958 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->rect.height = MT9V022_MAX_HEIGHT; mt9v022 960 drivers/staging/media/soc_camera/soc_mt9v022.c mt9v022->clk = v4l2_clk_get(&client->dev, "mclk"); mt9v022 961 drivers/staging/media/soc_camera/soc_mt9v022.c if (IS_ERR(mt9v022->clk)) { mt9v022 962 drivers/staging/media/soc_camera/soc_mt9v022.c ret = PTR_ERR(mt9v022->clk); mt9v022 968 drivers/staging/media/soc_camera/soc_mt9v022.c v4l2_clk_put(mt9v022->clk); mt9v022 970 drivers/staging/media/soc_camera/soc_mt9v022.c v4l2_ctrl_handler_free(&mt9v022->hdl); mt9v022 978 drivers/staging/media/soc_camera/soc_mt9v022.c struct mt9v022 *mt9v022 = to_mt9v022(client); mt9v022 981 drivers/staging/media/soc_camera/soc_mt9v022.c v4l2_clk_put(mt9v022->clk); mt9v022 982 drivers/staging/media/soc_camera/soc_mt9v022.c v4l2_device_unregister_subdev(&mt9v022->subdev); mt9v022 985 drivers/staging/media/soc_camera/soc_mt9v022.c v4l2_ctrl_handler_free(&mt9v022->hdl);