mt9t031 82 drivers/staging/media/soc_camera/mt9t031.c static struct mt9t031 *to_mt9t031(const struct i2c_client *client) mt9t031 84 drivers/staging/media/soc_camera/mt9t031.c return container_of(i2c_get_clientdata(client), struct mt9t031, subdev); mt9t031 200 drivers/staging/media/soc_camera/mt9t031.c struct mt9t031 *mt9t031 = to_mt9t031(client); mt9t031 249 drivers/staging/media/soc_camera/mt9t031.c if (yskip != mt9t031->yskip || xskip != mt9t031->xskip) { mt9t031 273 drivers/staging/media/soc_camera/mt9t031.c rect->height + mt9t031->y_skip_top - 1); mt9t031 274 drivers/staging/media/soc_camera/mt9t031.c if (ret >= 0 && v4l2_ctrl_g_ctrl(mt9t031->autoexposure) == V4L2_EXPOSURE_AUTO) { mt9t031 275 drivers/staging/media/soc_camera/mt9t031.c mt9t031->total_h = rect->height + mt9t031->y_skip_top + vblank; mt9t031 277 drivers/staging/media/soc_camera/mt9t031.c ret = set_shutter(client, mt9t031->total_h); mt9t031 285 drivers/staging/media/soc_camera/mt9t031.c mt9t031->rect = *rect; mt9t031 286 drivers/staging/media/soc_camera/mt9t031.c mt9t031->xskip = xskip; mt9t031 287 drivers/staging/media/soc_camera/mt9t031.c mt9t031->yskip = yskip; mt9t031 298 drivers/staging/media/soc_camera/mt9t031.c struct mt9t031 *mt9t031 = to_mt9t031(client); mt9t031 314 drivers/staging/media/soc_camera/mt9t031.c return mt9t031_set_params(client, &rect, mt9t031->xskip, mt9t031->yskip); mt9t031 322 drivers/staging/media/soc_camera/mt9t031.c struct mt9t031 *mt9t031 = to_mt9t031(client); mt9t031 335 drivers/staging/media/soc_camera/mt9t031.c sel->r = mt9t031->rect; mt9t031 348 drivers/staging/media/soc_camera/mt9t031.c struct mt9t031 *mt9t031 = to_mt9t031(client); mt9t031 353 drivers/staging/media/soc_camera/mt9t031.c mf->width = mt9t031->rect.width / mt9t031->xskip; mt9t031 354 drivers/staging/media/soc_camera/mt9t031.c mf->height = mt9t031->rect.height / mt9t031->yskip; mt9t031 372 drivers/staging/media/soc_camera/mt9t031.c struct mt9t031 *mt9t031 = to_mt9t031(client); mt9t031 374 drivers/staging/media/soc_camera/mt9t031.c struct v4l2_rect rect = mt9t031->rect; mt9t031 439 drivers/staging/media/soc_camera/mt9t031.c struct mt9t031 *mt9t031 = container_of(ctrl->handler, mt9t031 440 drivers/staging/media/soc_camera/mt9t031.c struct mt9t031, hdl); mt9t031 446 drivers/staging/media/soc_camera/mt9t031.c min = mt9t031->exposure->minimum; mt9t031 447 drivers/staging/media/soc_camera/mt9t031.c max = mt9t031->exposure->maximum; mt9t031 448 drivers/staging/media/soc_camera/mt9t031.c mt9t031->exposure->val = mt9t031 449 drivers/staging/media/soc_camera/mt9t031.c (shutter_max / 2 + (mt9t031->total_h - 1) * (max - min)) mt9t031 458 drivers/staging/media/soc_camera/mt9t031.c struct mt9t031 *mt9t031 = container_of(ctrl->handler, mt9t031 459 drivers/staging/media/soc_camera/mt9t031.c struct mt9t031, hdl); mt9t031 460 drivers/staging/media/soc_camera/mt9t031.c struct v4l2_subdev *sd = &mt9t031->subdev; mt9t031 462 drivers/staging/media/soc_camera/mt9t031.c struct v4l2_ctrl *exp = mt9t031->exposure; mt9t031 531 drivers/staging/media/soc_camera/mt9t031.c mt9t031->total_h = mt9t031->rect.height + mt9t031 532 drivers/staging/media/soc_camera/mt9t031.c mt9t031->y_skip_top + vblank; mt9t031 534 drivers/staging/media/soc_camera/mt9t031.c if (set_shutter(client, mt9t031->total_h) < 0) mt9t031 564 drivers/staging/media/soc_camera/mt9t031.c struct mt9t031 *mt9t031 = to_mt9t031(client); mt9t031 569 drivers/staging/media/soc_camera/mt9t031.c xbin = min(mt9t031->xskip, (u16)3); mt9t031 570 drivers/staging/media/soc_camera/mt9t031.c ybin = min(mt9t031->yskip, (u16)3); mt9t031 573 drivers/staging/media/soc_camera/mt9t031.c ((xbin - 1) << 4) | (mt9t031->xskip - 1)); mt9t031 578 drivers/staging/media/soc_camera/mt9t031.c ((ybin - 1) << 4) | (mt9t031->yskip - 1)); mt9t031 600 drivers/staging/media/soc_camera/mt9t031.c struct mt9t031 *mt9t031 = to_mt9t031(client); mt9t031 604 drivers/staging/media/soc_camera/mt9t031.c ret = soc_camera_power_on(&client->dev, ssdd, mt9t031->clk); mt9t031 613 drivers/staging/media/soc_camera/mt9t031.c soc_camera_power_off(&client->dev, ssdd, mt9t031->clk); mt9t031 625 drivers/staging/media/soc_camera/mt9t031.c struct mt9t031 *mt9t031 = to_mt9t031(client); mt9t031 629 drivers/staging/media/soc_camera/mt9t031.c ret = mt9t031_s_power(&mt9t031->subdev, 1); mt9t031 654 drivers/staging/media/soc_camera/mt9t031.c ret = v4l2_ctrl_handler_setup(&mt9t031->hdl); mt9t031 657 drivers/staging/media/soc_camera/mt9t031.c mt9t031_s_power(&mt9t031->subdev, 0); mt9t031 665 drivers/staging/media/soc_camera/mt9t031.c struct mt9t031 *mt9t031 = to_mt9t031(client); mt9t031 667 drivers/staging/media/soc_camera/mt9t031.c *lines = mt9t031->y_skip_top; mt9t031 752 drivers/staging/media/soc_camera/mt9t031.c struct mt9t031 *mt9t031; mt9t031 768 drivers/staging/media/soc_camera/mt9t031.c mt9t031 = devm_kzalloc(&client->dev, sizeof(struct mt9t031), GFP_KERNEL); mt9t031 769 drivers/staging/media/soc_camera/mt9t031.c if (!mt9t031) mt9t031 772 drivers/staging/media/soc_camera/mt9t031.c v4l2_i2c_subdev_init(&mt9t031->subdev, client, &mt9t031_subdev_ops); mt9t031 773 drivers/staging/media/soc_camera/mt9t031.c v4l2_ctrl_handler_init(&mt9t031->hdl, 5); mt9t031 774 drivers/staging/media/soc_camera/mt9t031.c v4l2_ctrl_new_std(&mt9t031->hdl, &mt9t031_ctrl_ops, mt9t031 776 drivers/staging/media/soc_camera/mt9t031.c v4l2_ctrl_new_std(&mt9t031->hdl, &mt9t031_ctrl_ops, mt9t031 778 drivers/staging/media/soc_camera/mt9t031.c v4l2_ctrl_new_std(&mt9t031->hdl, &mt9t031_ctrl_ops, mt9t031 785 drivers/staging/media/soc_camera/mt9t031.c mt9t031->autoexposure = v4l2_ctrl_new_std_menu(&mt9t031->hdl, mt9t031 788 drivers/staging/media/soc_camera/mt9t031.c mt9t031->exposure = v4l2_ctrl_new_std(&mt9t031->hdl, &mt9t031_ctrl_ops, mt9t031 791 drivers/staging/media/soc_camera/mt9t031.c mt9t031->subdev.ctrl_handler = &mt9t031->hdl; mt9t031 792 drivers/staging/media/soc_camera/mt9t031.c if (mt9t031->hdl.error) mt9t031 793 drivers/staging/media/soc_camera/mt9t031.c return mt9t031->hdl.error; mt9t031 795 drivers/staging/media/soc_camera/mt9t031.c v4l2_ctrl_auto_cluster(2, &mt9t031->autoexposure, mt9t031 798 drivers/staging/media/soc_camera/mt9t031.c mt9t031->y_skip_top = 0; mt9t031 799 drivers/staging/media/soc_camera/mt9t031.c mt9t031->rect.left = MT9T031_COLUMN_SKIP; mt9t031 800 drivers/staging/media/soc_camera/mt9t031.c mt9t031->rect.top = MT9T031_ROW_SKIP; mt9t031 801 drivers/staging/media/soc_camera/mt9t031.c mt9t031->rect.width = MT9T031_MAX_WIDTH; mt9t031 802 drivers/staging/media/soc_camera/mt9t031.c mt9t031->rect.height = MT9T031_MAX_HEIGHT; mt9t031 804 drivers/staging/media/soc_camera/mt9t031.c mt9t031->xskip = 1; mt9t031 805 drivers/staging/media/soc_camera/mt9t031.c mt9t031->yskip = 1; mt9t031 807 drivers/staging/media/soc_camera/mt9t031.c mt9t031->clk = v4l2_clk_get(&client->dev, "mclk"); mt9t031 808 drivers/staging/media/soc_camera/mt9t031.c if (IS_ERR(mt9t031->clk)) { mt9t031 809 drivers/staging/media/soc_camera/mt9t031.c ret = PTR_ERR(mt9t031->clk); mt9t031 815 drivers/staging/media/soc_camera/mt9t031.c v4l2_clk_put(mt9t031->clk); mt9t031 817 drivers/staging/media/soc_camera/mt9t031.c v4l2_ctrl_handler_free(&mt9t031->hdl); mt9t031 825 drivers/staging/media/soc_camera/mt9t031.c struct mt9t031 *mt9t031 = to_mt9t031(client); mt9t031 827 drivers/staging/media/soc_camera/mt9t031.c v4l2_clk_put(mt9t031->clk); mt9t031 828 drivers/staging/media/soc_camera/mt9t031.c v4l2_device_unregister_subdev(&mt9t031->subdev); mt9t031 829 drivers/staging/media/soc_camera/mt9t031.c v4l2_ctrl_handler_free(&mt9t031->hdl);