Lines Matching refs:lt7911uxc

126 struct lt7911uxc {  struct
349 static inline struct lt7911uxc *to_lt7911uxc(struct v4l2_subdev *sd) in to_lt7911uxc()
351 return container_of(sd, struct lt7911uxc, sd); in to_lt7911uxc()
356 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in i2c_rd() local
357 struct i2c_client *client = lt7911uxc->i2c_client; in i2c_rd()
408 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in i2c_wr() local
409 struct i2c_client *client = lt7911uxc->i2c_client; in i2c_wr()
491 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in tx_5v_power_present() local
494 if (!lt7911uxc->plugin_det_gpio) in tx_5v_power_present()
499 val = gpiod_get_value(lt7911uxc->plugin_det_gpio); in tx_5v_power_present()
513 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in no_signal() local
516 lt7911uxc->nosignal); in no_signal()
518 return lt7911uxc->nosignal; in no_signal()
523 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in audio_present() local
525 return lt7911uxc->is_audio_present; in audio_present()
553 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_rcv_supported_res() local
556 for (i = 0; i < lt7911uxc->cfg_num; i++) { in lt7911uxc_rcv_supported_res()
557 if ((lt7911uxc->support_modes[i].width == width) && in lt7911uxc_rcv_supported_res()
558 (lt7911uxc->support_modes[i].height == height)) { in lt7911uxc_rcv_supported_res()
563 if (i == lt7911uxc->cfg_num) { in lt7911uxc_rcv_supported_res()
575 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_get_detected_timings() local
614 lt7911uxc->nosignal = false; in lt7911uxc_get_detected_timings()
615 lt7911uxc->is_audio_present = true; in lt7911uxc_get_detected_timings()
624 lt7911uxc->nosignal = true; in lt7911uxc_get_detected_timings()
641 struct lt7911uxc *lt7911uxc = container_of(dwork, in lt7911uxc_delayed_work_hotplug() local
642 struct lt7911uxc, delayed_work_hotplug); in lt7911uxc_delayed_work_hotplug()
643 struct v4l2_subdev *sd = &lt7911uxc->sd; in lt7911uxc_delayed_work_hotplug()
650 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_s_ctrl_detect_event() local
655 v4l2_ctrl_s_ctrl(lt7911uxc->detect_tx_5v_ctrl, 1); in lt7911uxc_s_ctrl_detect_event()
657 v4l2_ctrl_s_ctrl(lt7911uxc->detect_tx_5v_ctrl, 0); in lt7911uxc_s_ctrl_detect_event()
663 struct lt7911uxc *lt7911uxc = container_of(dwork, in lt7911uxc_delayed_work_res_change() local
664 struct lt7911uxc, delayed_work_res_change); in lt7911uxc_delayed_work_res_change()
665 struct v4l2_subdev *sd = &lt7911uxc->sd; in lt7911uxc_delayed_work_res_change()
673 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_s_ctrl_detect_tx_5v() local
675 return v4l2_ctrl_s_ctrl(lt7911uxc->detect_tx_5v_ctrl, in lt7911uxc_s_ctrl_detect_tx_5v()
681 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_s_ctrl_audio_sampling_rate() local
683 return v4l2_ctrl_s_ctrl(lt7911uxc->audio_sampling_rate_ctrl, in lt7911uxc_s_ctrl_audio_sampling_rate()
689 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_s_ctrl_audio_present() local
691 return v4l2_ctrl_s_ctrl(lt7911uxc->audio_present_ctrl, in lt7911uxc_s_ctrl_audio_present()
708 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_cphy_timing_config() local
710 if (lt7911uxc->bus_cfg.bus_type == V4L2_MBUS_CSI2_CPHY) { in lt7911uxc_cphy_timing_config()
738 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in enable_stream() local
740 lt7911uxc_cphy_timing_config(&lt7911uxc->sd); in enable_stream()
743 i2c_wr8(&lt7911uxc->sd, STREAM_CTL, ENABLE_STREAM); in enable_stream()
745 i2c_wr8(&lt7911uxc->sd, STREAM_CTL, DISABLE_STREAM); in enable_stream()
766 lt7911uxc_find_best_fit(struct lt7911uxc *lt7911uxc) in lt7911uxc_find_best_fit() argument
773 for (i = 0; i < lt7911uxc->cfg_num; i++) { in lt7911uxc_find_best_fit()
774 dist = lt7911uxc_get_reso_dist(&lt7911uxc->support_modes[i], &lt7911uxc->timings); in lt7911uxc_find_best_fit()
780 dev_dbg(&lt7911uxc->i2c_client->dev, in lt7911uxc_find_best_fit()
782 cur_best_fit, lt7911uxc->support_modes[cur_best_fit].width, in lt7911uxc_find_best_fit()
783 lt7911uxc->support_modes[cur_best_fit].height, in lt7911uxc_find_best_fit()
784 DIV_ROUND_CLOSEST(lt7911uxc->support_modes[cur_best_fit].max_fps.denominator, in lt7911uxc_find_best_fit()
785 lt7911uxc->support_modes[cur_best_fit].max_fps.numerator)); in lt7911uxc_find_best_fit()
787 return &lt7911uxc->support_modes[cur_best_fit]; in lt7911uxc_find_best_fit()
792 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_print_dv_timings() local
793 struct device *dev = &lt7911uxc->i2c_client->dev; in lt7911uxc_print_dv_timings()
794 const struct v4l2_bt_timings *bt = &lt7911uxc->timings.bt; in lt7911uxc_print_dv_timings()
799 mode = lt7911uxc_find_best_fit(lt7911uxc); in lt7911uxc_print_dv_timings()
800 lt7911uxc->cur_mode = mode; in lt7911uxc_print_dv_timings()
801 htot = lt7911uxc->cur_mode->hts_def; in lt7911uxc_print_dv_timings()
802 vtot = lt7911uxc->cur_mode->vts_def; in lt7911uxc_print_dv_timings()
819 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_format_change() local
831 if (!lt7911uxc_match_timings(&lt7911uxc->timings, &timings)) { in lt7911uxc_format_change()
844 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_isr() local
846 schedule_delayed_work(&lt7911uxc->delayed_work_res_change, HZ / 20); in lt7911uxc_isr()
854 struct lt7911uxc *lt7911uxc = dev_id; in lt7911uxc_res_change_irq_handler() local
857 lt7911uxc_isr(&lt7911uxc->sd, 0, &handled); in lt7911uxc_res_change_irq_handler()
864 struct lt7911uxc *lt7911uxc = dev_id; in plugin_detect_irq_handler() local
867 schedule_delayed_work(&lt7911uxc->delayed_work_hotplug, in plugin_detect_irq_handler()
875 struct lt7911uxc *lt7911uxc = from_timer(lt7911uxc, t, timer); in lt7911uxc_irq_poll_timer() local
877 schedule_work(&lt7911uxc->work_i2c_poll); in lt7911uxc_irq_poll_timer()
878 mod_timer(&lt7911uxc->timer, jiffies + msecs_to_jiffies(POLL_INTERVAL_MS)); in lt7911uxc_irq_poll_timer()
883 struct lt7911uxc *lt7911uxc = container_of(work, in lt7911uxc_work_i2c_poll() local
884 struct lt7911uxc, work_i2c_poll); in lt7911uxc_work_i2c_poll()
885 struct v4l2_subdev *sd = &lt7911uxc->sd; in lt7911uxc_work_i2c_poll()
916 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_s_dv_timings() local
925 if (lt7911uxc_match_timings(&lt7911uxc->timings, timings)) { in lt7911uxc_s_dv_timings()
936 lt7911uxc->timings = *timings; in lt7911uxc_s_dv_timings()
946 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_g_dv_timings() local
948 *timings = lt7911uxc->timings; in lt7911uxc_g_dv_timings()
966 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_query_dv_timings() local
968 *timings = lt7911uxc->timings; in lt7911uxc_query_dv_timings()
998 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_g_mbus_config() local
999 u32 lane_num = lt7911uxc->bus_cfg.bus.mipi_csi2.num_data_lanes; in lt7911uxc_g_mbus_config()
1006 cfg->type = lt7911uxc->bus_cfg.bus_type; in lt7911uxc_g_mbus_config()
1039 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_enum_frame_sizes() local
1041 if (fse->index >= lt7911uxc->cfg_num) in lt7911uxc_enum_frame_sizes()
1047 fse->min_width = lt7911uxc->support_modes[fse->index].width; in lt7911uxc_enum_frame_sizes()
1048 fse->max_width = lt7911uxc->support_modes[fse->index].width; in lt7911uxc_enum_frame_sizes()
1049 fse->max_height = lt7911uxc->support_modes[fse->index].height; in lt7911uxc_enum_frame_sizes()
1050 fse->min_height = lt7911uxc->support_modes[fse->index].height; in lt7911uxc_enum_frame_sizes()
1059 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_get_fmt() local
1062 mutex_lock(&lt7911uxc->confctl_mutex); in lt7911uxc_get_fmt()
1063 format->format.code = lt7911uxc->mbus_fmt_code; in lt7911uxc_get_fmt()
1064 format->format.width = lt7911uxc->timings.bt.width; in lt7911uxc_get_fmt()
1065 format->format.height = lt7911uxc->timings.bt.height; in lt7911uxc_get_fmt()
1067 lt7911uxc->timings.bt.interlaced ? in lt7911uxc_get_fmt()
1070 mutex_unlock(&lt7911uxc->confctl_mutex); in lt7911uxc_get_fmt()
1072 mode = lt7911uxc_find_best_fit(lt7911uxc); in lt7911uxc_get_fmt()
1073 lt7911uxc->cur_mode = mode; in lt7911uxc_get_fmt()
1075 __v4l2_ctrl_s_ctrl_int64(lt7911uxc->pixel_rate, in lt7911uxc_get_fmt()
1077 __v4l2_ctrl_s_ctrl(lt7911uxc->link_freq, in lt7911uxc_get_fmt()
1094 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_enum_frame_interval() local
1096 if (fie->index >= lt7911uxc->cfg_num) in lt7911uxc_enum_frame_interval()
1101 fie->width = lt7911uxc->support_modes[fie->index].width; in lt7911uxc_enum_frame_interval()
1102 fie->height = lt7911uxc->support_modes[fie->index].height; in lt7911uxc_enum_frame_interval()
1103 fie->interval = lt7911uxc->support_modes[fie->index].max_fps; in lt7911uxc_enum_frame_interval()
1112 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_set_fmt() local
1135 lt7911uxc->mbus_fmt_code = format->format.code; in lt7911uxc_set_fmt()
1136 mode = lt7911uxc_find_best_fit(lt7911uxc); in lt7911uxc_set_fmt()
1137 lt7911uxc->cur_mode = mode; in lt7911uxc_set_fmt()
1147 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_g_frame_interval() local
1148 const struct lt7911uxc_mode *mode = lt7911uxc->cur_mode; in lt7911uxc_g_frame_interval()
1150 mutex_lock(&lt7911uxc->confctl_mutex); in lt7911uxc_g_frame_interval()
1152 mutex_unlock(&lt7911uxc->confctl_mutex); in lt7911uxc_g_frame_interval()
1157 static void lt7911uxc_get_module_inf(struct lt7911uxc *lt7911uxc, in lt7911uxc_get_module_inf() argument
1162 strscpy(inf->base.module, lt7911uxc->module_name, sizeof(inf->base.module)); in lt7911uxc_get_module_inf()
1163 strscpy(inf->base.lens, lt7911uxc->len_name, sizeof(inf->base.lens)); in lt7911uxc_get_module_inf()
1168 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_ioctl() local
1174 lt7911uxc_get_module_inf(lt7911uxc, (struct rkmodule_inf *)arg); in lt7911uxc_ioctl()
1183 dev_dbg(&lt7911uxc->i2c_client->dev, in lt7911uxc_ioctl()
1190 dev_dbg(&lt7911uxc->i2c_client->dev, in lt7911uxc_ioctl()
1203 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_s_power() local
1206 mutex_lock(&lt7911uxc->confctl_mutex); in lt7911uxc_s_power()
1208 if (lt7911uxc->power_on == !!on) in lt7911uxc_s_power()
1212 lt7911uxc->power_on = true; in lt7911uxc_s_power()
1214 lt7911uxc->power_on = false; in lt7911uxc_s_power()
1217 mutex_unlock(&lt7911uxc->confctl_mutex); in lt7911uxc_s_power()
1304 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_open() local
1307 const struct lt7911uxc_mode *def_mode = &lt7911uxc->support_modes[0]; in lt7911uxc_open()
1309 mutex_lock(&lt7911uxc->confctl_mutex); in lt7911uxc_open()
1315 mutex_unlock(&lt7911uxc->confctl_mutex); in lt7911uxc_open()
1386 static int lt7911uxc_init_v4l2_ctrls(struct lt7911uxc *lt7911uxc) in lt7911uxc_init_v4l2_ctrls() argument
1392 mode = lt7911uxc->cur_mode; in lt7911uxc_init_v4l2_ctrls()
1393 sd = &lt7911uxc->sd; in lt7911uxc_init_v4l2_ctrls()
1394 ret = v4l2_ctrl_handler_init(&lt7911uxc->hdl, 5); in lt7911uxc_init_v4l2_ctrls()
1398 lt7911uxc->link_freq = v4l2_ctrl_new_int_menu(&lt7911uxc->hdl, NULL, in lt7911uxc_init_v4l2_ctrls()
1402 lt7911uxc->pixel_rate = v4l2_ctrl_new_std(&lt7911uxc->hdl, NULL, in lt7911uxc_init_v4l2_ctrls()
1406 lt7911uxc->detect_tx_5v_ctrl = v4l2_ctrl_new_std(&lt7911uxc->hdl, in lt7911uxc_init_v4l2_ctrls()
1410 lt7911uxc->audio_sampling_rate_ctrl = in lt7911uxc_init_v4l2_ctrls()
1411 v4l2_ctrl_new_custom(&lt7911uxc->hdl, in lt7911uxc_init_v4l2_ctrls()
1413 lt7911uxc->audio_present_ctrl = v4l2_ctrl_new_custom(&lt7911uxc->hdl, in lt7911uxc_init_v4l2_ctrls()
1416 sd->ctrl_handler = &lt7911uxc->hdl; in lt7911uxc_init_v4l2_ctrls()
1417 if (lt7911uxc->hdl.error) { in lt7911uxc_init_v4l2_ctrls()
1418 ret = lt7911uxc->hdl.error; in lt7911uxc_init_v4l2_ctrls()
1423 __v4l2_ctrl_s_ctrl(lt7911uxc->link_freq, mode->mipi_freq_idx); in lt7911uxc_init_v4l2_ctrls()
1424 __v4l2_ctrl_s_ctrl_int64(lt7911uxc->pixel_rate, LT7911UXC_PIXEL_RATE); in lt7911uxc_init_v4l2_ctrls()
1436 static int lt7911uxc_probe_of(struct lt7911uxc *lt7911uxc) in lt7911uxc_probe_of() argument
1438 struct device *dev = &lt7911uxc->i2c_client->dev; in lt7911uxc_probe_of()
1444 &lt7911uxc->module_index); in lt7911uxc_probe_of()
1446 &lt7911uxc->module_facing); in lt7911uxc_probe_of()
1448 &lt7911uxc->module_name); in lt7911uxc_probe_of()
1450 &lt7911uxc->len_name); in lt7911uxc_probe_of()
1456 lt7911uxc->power_gpio = devm_gpiod_get_optional(dev, "power", in lt7911uxc_probe_of()
1458 if (IS_ERR(lt7911uxc->power_gpio)) { in lt7911uxc_probe_of()
1460 ret = PTR_ERR(lt7911uxc->power_gpio); in lt7911uxc_probe_of()
1464 lt7911uxc->reset_gpio = devm_gpiod_get_optional(dev, "reset", in lt7911uxc_probe_of()
1466 if (IS_ERR(lt7911uxc->reset_gpio)) { in lt7911uxc_probe_of()
1468 ret = PTR_ERR(lt7911uxc->reset_gpio); in lt7911uxc_probe_of()
1472 lt7911uxc->plugin_det_gpio = devm_gpiod_get_optional(dev, "plugin-det", in lt7911uxc_probe_of()
1474 if (IS_ERR(lt7911uxc->plugin_det_gpio)) { in lt7911uxc_probe_of()
1476 ret = PTR_ERR(lt7911uxc->plugin_det_gpio); in lt7911uxc_probe_of()
1487 &lt7911uxc->bus_cfg); in lt7911uxc_probe_of()
1493 if (lt7911uxc->bus_cfg.bus_type == V4L2_MBUS_CSI2_DPHY) { in lt7911uxc_probe_of()
1494 lt7911uxc->support_modes = supported_modes_dphy; in lt7911uxc_probe_of()
1495 lt7911uxc->cfg_num = ARRAY_SIZE(supported_modes_dphy); in lt7911uxc_probe_of()
1497 lt7911uxc->support_modes = supported_modes_cphy; in lt7911uxc_probe_of()
1498 lt7911uxc->cfg_num = ARRAY_SIZE(supported_modes_cphy); in lt7911uxc_probe_of()
1501 lt7911uxc->xvclk = devm_clk_get(dev, "xvclk"); in lt7911uxc_probe_of()
1502 if (IS_ERR(lt7911uxc->xvclk)) { in lt7911uxc_probe_of()
1508 ret = clk_prepare_enable(lt7911uxc->xvclk); in lt7911uxc_probe_of()
1514 lt7911uxc->enable_hdcp = false; in lt7911uxc_probe_of()
1523 static inline int lt7911uxc_probe_of(struct lt7911uxc *state) in lt7911uxc_probe_of()
1529 static int __lt7911uxc_power_on(struct lt7911uxc *lt7911uxc) in __lt7911uxc_power_on() argument
1531 struct device *dev = &lt7911uxc->i2c_client->dev; in __lt7911uxc_power_on()
1534 gpiod_set_value(lt7911uxc->reset_gpio, 1); in __lt7911uxc_power_on()
1536 gpiod_set_value(lt7911uxc->power_gpio, 1); in __lt7911uxc_power_on()
1539 gpiod_set_value(lt7911uxc->reset_gpio, 0); in __lt7911uxc_power_on()
1545 static void __lt7911uxc_power_off(struct lt7911uxc *lt7911uxc) in __lt7911uxc_power_off() argument
1547 struct device *dev = &lt7911uxc->i2c_client->dev; in __lt7911uxc_power_off()
1551 if (!IS_ERR(lt7911uxc->reset_gpio)) in __lt7911uxc_power_off()
1552 gpiod_set_value(lt7911uxc->reset_gpio, 1); in __lt7911uxc_power_off()
1554 if (!IS_ERR(lt7911uxc->power_gpio)) in __lt7911uxc_power_off()
1555 gpiod_set_value(lt7911uxc->power_gpio, 0); in __lt7911uxc_power_off()
1562 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_resume() local
1564 return __lt7911uxc_power_on(lt7911uxc); in lt7911uxc_resume()
1571 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_suspend() local
1573 __lt7911uxc_power_off(lt7911uxc); in lt7911uxc_suspend()
1583 static int lt7911uxc_check_chip_id(struct lt7911uxc *lt7911uxc) in lt7911uxc_check_chip_id() argument
1585 struct device *dev = &lt7911uxc->i2c_client->dev; in lt7911uxc_check_chip_id()
1586 struct v4l2_subdev *sd = &lt7911uxc->sd; in lt7911uxc_check_chip_id()
1612 struct lt7911uxc *lt7911uxc; in lt7911uxc_probe() local
1623 lt7911uxc = devm_kzalloc(dev, sizeof(struct lt7911uxc), GFP_KERNEL); in lt7911uxc_probe()
1624 if (!lt7911uxc) in lt7911uxc_probe()
1627 sd = &lt7911uxc->sd; in lt7911uxc_probe()
1628 lt7911uxc->i2c_client = client; in lt7911uxc_probe()
1629 lt7911uxc->mbus_fmt_code = LT7911UXC_MEDIA_BUS_FMT; in lt7911uxc_probe()
1631 err = lt7911uxc_probe_of(lt7911uxc); in lt7911uxc_probe()
1637 lt7911uxc->timings = default_timing; in lt7911uxc_probe()
1638 lt7911uxc->cur_mode = &lt7911uxc->support_modes[0]; in lt7911uxc_probe()
1640 __lt7911uxc_power_on(lt7911uxc); in lt7911uxc_probe()
1641 err = lt7911uxc_check_chip_id(lt7911uxc); in lt7911uxc_probe()
1645 INIT_DELAYED_WORK(&lt7911uxc->delayed_work_hotplug, in lt7911uxc_probe()
1647 INIT_DELAYED_WORK(&lt7911uxc->delayed_work_res_change, in lt7911uxc_probe()
1650 if (lt7911uxc->i2c_client->irq) { in lt7911uxc_probe()
1653 lt7911uxc->i2c_client->irq, in lt7911uxc_probe()
1656 "lt7911uxc", lt7911uxc); in lt7911uxc_probe()
1663 INIT_WORK(&lt7911uxc->work_i2c_poll, lt7911uxc_work_i2c_poll); in lt7911uxc_probe()
1664 timer_setup(&lt7911uxc->timer, lt7911uxc_irq_poll_timer, 0); in lt7911uxc_probe()
1665 lt7911uxc->timer.expires = jiffies + in lt7911uxc_probe()
1667 add_timer(&lt7911uxc->timer); in lt7911uxc_probe()
1670 lt7911uxc->plugin_irq = gpiod_to_irq(lt7911uxc->plugin_det_gpio); in lt7911uxc_probe()
1671 if (lt7911uxc->plugin_irq < 0) in lt7911uxc_probe()
1674 err = devm_request_threaded_irq(dev, lt7911uxc->plugin_irq, NULL, in lt7911uxc_probe()
1677 lt7911uxc); in lt7911uxc_probe()
1681 mutex_init(&lt7911uxc->confctl_mutex); in lt7911uxc_probe()
1682 err = lt7911uxc_init_v4l2_ctrls(lt7911uxc); in lt7911uxc_probe()
1694 lt7911uxc->pad.flags = MEDIA_PAD_FL_SOURCE; in lt7911uxc_probe()
1696 err = media_entity_pads_init(&sd->entity, 1, &lt7911uxc->pad); in lt7911uxc_probe()
1703 if (strcmp(lt7911uxc->module_facing, "back") == 0) in lt7911uxc_probe()
1709 lt7911uxc->module_index, facing, in lt7911uxc_probe()
1723 schedule_delayed_work(&lt7911uxc->delayed_work_res_change, 100); in lt7911uxc_probe()
1736 v4l2_ctrl_handler_free(&lt7911uxc->hdl); in lt7911uxc_probe()
1737 mutex_destroy(&lt7911uxc->confctl_mutex); in lt7911uxc_probe()
1739 if (!lt7911uxc->i2c_client->irq) in lt7911uxc_probe()
1740 flush_work(&lt7911uxc->work_i2c_poll); in lt7911uxc_probe()
1741 cancel_delayed_work(&lt7911uxc->delayed_work_hotplug); in lt7911uxc_probe()
1742 cancel_delayed_work(&lt7911uxc->delayed_work_res_change); in lt7911uxc_probe()
1750 struct lt7911uxc *lt7911uxc = to_lt7911uxc(sd); in lt7911uxc_remove() local
1752 if (!lt7911uxc->i2c_client->irq) { in lt7911uxc_remove()
1753 del_timer_sync(&lt7911uxc->timer); in lt7911uxc_remove()
1754 flush_work(&lt7911uxc->work_i2c_poll); in lt7911uxc_remove()
1756 cancel_delayed_work_sync(&lt7911uxc->delayed_work_hotplug); in lt7911uxc_remove()
1757 cancel_delayed_work_sync(&lt7911uxc->delayed_work_res_change); in lt7911uxc_remove()
1763 v4l2_ctrl_handler_free(&lt7911uxc->hdl); in lt7911uxc_remove()
1764 mutex_destroy(&lt7911uxc->confctl_mutex); in lt7911uxc_remove()
1765 clk_disable_unprepare(lt7911uxc->xvclk); in lt7911uxc_remove()