Lines Matching full:state
205 int (*init)(struct adv7180_state *state);
233 static int adv7180_select_page(struct adv7180_state *state, unsigned int page) in adv7180_select_page() argument
235 if (state->register_page != page) { in adv7180_select_page()
236 i2c_smbus_write_byte_data(state->client, ADV7180_REG_CTRL, in adv7180_select_page()
238 state->register_page = page; in adv7180_select_page()
244 static int adv7180_write(struct adv7180_state *state, unsigned int reg, in adv7180_write() argument
247 lockdep_assert_held(&state->mutex); in adv7180_write()
248 adv7180_select_page(state, reg >> 8); in adv7180_write()
249 return i2c_smbus_write_byte_data(state->client, reg & 0xff, value); in adv7180_write()
252 static int adv7180_read(struct adv7180_state *state, unsigned int reg) in adv7180_read() argument
254 lockdep_assert_held(&state->mutex); in adv7180_read()
255 adv7180_select_page(state, reg >> 8); in adv7180_read()
256 return i2c_smbus_read_byte_data(state->client, reg & 0xff); in adv7180_read()
259 static int adv7180_csi_write(struct adv7180_state *state, unsigned int reg, in adv7180_csi_write() argument
262 return i2c_smbus_write_byte_data(state->csi_client, reg, value); in adv7180_csi_write()
265 static int adv7180_set_video_standard(struct adv7180_state *state, in adv7180_set_video_standard() argument
268 return state->chip_info->set_std(state, std); in adv7180_set_video_standard()
271 static int adv7180_vpp_write(struct adv7180_state *state, unsigned int reg, in adv7180_vpp_write() argument
274 return i2c_smbus_write_byte_data(state->vpp_client, reg, value); in adv7180_vpp_write()
336 static int __adv7180_status(struct adv7180_state *state, u32 *status, in __adv7180_status() argument
339 int status1 = adv7180_read(state, ADV7180_REG_STATUS1); in __adv7180_status()
359 struct adv7180_state *state = to_state(sd); in adv7180_querystd() local
360 int err = mutex_lock_interruptible(&state->mutex); in adv7180_querystd()
364 if (state->streaming) { in adv7180_querystd()
369 err = adv7180_set_video_standard(state, in adv7180_querystd()
375 __adv7180_status(state, NULL, std); in adv7180_querystd()
377 err = v4l2_std_to_adv7180(state->curr_norm); in adv7180_querystd()
381 err = adv7180_set_video_standard(state, err); in adv7180_querystd()
384 mutex_unlock(&state->mutex); in adv7180_querystd()
391 struct adv7180_state *state = to_state(sd); in adv7180_s_routing() local
392 int ret = mutex_lock_interruptible(&state->mutex); in adv7180_s_routing()
397 if (input > 31 || !(BIT(input) & state->chip_info->valid_input_mask)) { in adv7180_s_routing()
402 ret = state->chip_info->select_input(state, input); in adv7180_s_routing()
405 state->input = input; in adv7180_s_routing()
407 mutex_unlock(&state->mutex); in adv7180_s_routing()
413 struct adv7180_state *state = to_state(sd); in adv7180_g_input_status() local
414 int ret = mutex_lock_interruptible(&state->mutex); in adv7180_g_input_status()
418 ret = __adv7180_status(state, status, NULL); in adv7180_g_input_status()
419 mutex_unlock(&state->mutex); in adv7180_g_input_status()
423 static int adv7180_program_std(struct adv7180_state *state) in adv7180_program_std() argument
427 ret = v4l2_std_to_adv7180(state->curr_norm); in adv7180_program_std()
431 ret = adv7180_set_video_standard(state, ret); in adv7180_program_std()
439 struct adv7180_state *state = to_state(sd); in adv7180_s_std() local
440 int ret = mutex_lock_interruptible(&state->mutex); in adv7180_s_std()
450 state->curr_norm = std; in adv7180_s_std()
452 ret = adv7180_program_std(state); in adv7180_s_std()
454 mutex_unlock(&state->mutex); in adv7180_s_std()
460 struct adv7180_state *state = to_state(sd); in adv7180_g_std() local
462 *norm = state->curr_norm; in adv7180_g_std()
471 struct adv7180_state *state = to_state(sd); in adv7180_get_frame_interval() local
475 * subdev active state API. in adv7180_get_frame_interval()
480 if (state->curr_norm & V4L2_STD_525_60) { in adv7180_get_frame_interval()
491 static void adv7180_set_power_pin(struct adv7180_state *state, bool on) in adv7180_set_power_pin() argument
493 if (!state->pwdn_gpio) in adv7180_set_power_pin()
497 gpiod_set_value_cansleep(state->pwdn_gpio, 0); in adv7180_set_power_pin()
500 gpiod_set_value_cansleep(state->pwdn_gpio, 1); in adv7180_set_power_pin()
504 static void adv7180_set_reset_pin(struct adv7180_state *state, bool on) in adv7180_set_reset_pin() argument
506 if (!state->rst_gpio) in adv7180_set_reset_pin()
510 gpiod_set_value_cansleep(state->rst_gpio, 1); in adv7180_set_reset_pin()
512 gpiod_set_value_cansleep(state->rst_gpio, 0); in adv7180_set_reset_pin()
517 static int adv7180_set_power(struct adv7180_state *state, bool on) in adv7180_set_power() argument
527 ret = adv7180_write(state, ADV7180_REG_PWR_MAN, val); in adv7180_set_power()
531 if (state->chip_info->flags & ADV7180_FLAG_MIPI_CSI2) { in adv7180_set_power()
533 adv7180_csi_write(state, 0xDE, 0x02); in adv7180_set_power()
534 adv7180_csi_write(state, 0xD2, 0xF7); in adv7180_set_power()
535 adv7180_csi_write(state, 0xD8, 0x65); in adv7180_set_power()
536 adv7180_csi_write(state, 0xE0, 0x09); in adv7180_set_power()
537 adv7180_csi_write(state, 0x2C, 0x00); in adv7180_set_power()
538 if (state->field == V4L2_FIELD_NONE) in adv7180_set_power()
539 adv7180_csi_write(state, 0x1D, 0x80); in adv7180_set_power()
540 adv7180_csi_write(state, 0x00, 0x00); in adv7180_set_power()
542 adv7180_csi_write(state, 0x00, 0x80); in adv7180_set_power()
551 struct adv7180_state *state = to_state(sd); in adv7180_s_power() local
554 ret = mutex_lock_interruptible(&state->mutex); in adv7180_s_power()
558 ret = adv7180_set_power(state, on); in adv7180_s_power()
560 state->powered = on; in adv7180_s_power()
562 mutex_unlock(&state->mutex); in adv7180_s_power()
574 static int adv7180_test_pattern(struct adv7180_state *state, int value) in adv7180_test_pattern() argument
584 adv7180_write(state, ADV7180_REG_ANALOG_CLAMP_CTL, reg); in adv7180_test_pattern()
587 reg = adv7180_read(state, ADV7180_REG_DEF_VALUE_Y); in adv7180_test_pattern()
589 adv7180_write(state, ADV7180_REG_DEF_VALUE_Y, reg); in adv7180_test_pattern()
593 reg = adv7180_read(state, ADV7180_REG_DEF_VALUE_Y); in adv7180_test_pattern()
595 adv7180_write(state, ADV7180_REG_DEF_VALUE_Y, reg); in adv7180_test_pattern()
603 struct adv7180_state *state = to_state(sd); in adv7180_s_ctrl() local
604 int ret = mutex_lock_interruptible(&state->mutex); in adv7180_s_ctrl()
612 ret = adv7180_write(state, ADV7180_REG_BRI, val); in adv7180_s_ctrl()
616 ret = adv7180_write(state, ADV7180_REG_HUE, -val); in adv7180_s_ctrl()
619 ret = adv7180_write(state, ADV7180_REG_CON, val); in adv7180_s_ctrl()
626 ret = adv7180_write(state, ADV7180_REG_SD_SAT_CB, val); in adv7180_s_ctrl()
629 ret = adv7180_write(state, ADV7180_REG_SD_SAT_CR, val); in adv7180_s_ctrl()
634 adv7180_write(state, 0x80d9, 0x44); in adv7180_s_ctrl()
635 adv7180_write(state, ADV7180_REG_FLCONTROL, in adv7180_s_ctrl()
639 adv7180_write(state, 0x80d9, 0xc4); in adv7180_s_ctrl()
640 adv7180_write(state, ADV7180_REG_FLCONTROL, 0x00); in adv7180_s_ctrl()
644 ret = adv7180_test_pattern(state, val); in adv7180_s_ctrl()
650 mutex_unlock(&state->mutex); in adv7180_s_ctrl()
668 static int adv7180_init_controls(struct adv7180_state *state) in adv7180_init_controls() argument
670 v4l2_ctrl_handler_init(&state->ctrl_hdl, 4); in adv7180_init_controls()
672 v4l2_ctrl_new_std(&state->ctrl_hdl, &adv7180_ctrl_ops, in adv7180_init_controls()
675 v4l2_ctrl_new_std(&state->ctrl_hdl, &adv7180_ctrl_ops, in adv7180_init_controls()
678 v4l2_ctrl_new_std(&state->ctrl_hdl, &adv7180_ctrl_ops, in adv7180_init_controls()
681 v4l2_ctrl_new_std(&state->ctrl_hdl, &adv7180_ctrl_ops, in adv7180_init_controls()
684 v4l2_ctrl_new_custom(&state->ctrl_hdl, &adv7180_ctrl_fast_switch, NULL); in adv7180_init_controls()
686 if (state->chip_info->flags & ADV7180_FLAG_TEST_PATTERN) { in adv7180_init_controls()
687 v4l2_ctrl_new_std_menu_items(&state->ctrl_hdl, in adv7180_init_controls()
696 state->sd.ctrl_handler = &state->ctrl_hdl; in adv7180_init_controls()
697 if (state->ctrl_hdl.error) { in adv7180_init_controls()
698 int err = state->ctrl_hdl.error; in adv7180_init_controls()
700 v4l2_ctrl_handler_free(&state->ctrl_hdl); in adv7180_init_controls()
703 v4l2_ctrl_handler_setup(&state->ctrl_hdl); in adv7180_init_controls()
707 static void adv7180_exit_controls(struct adv7180_state *state) in adv7180_exit_controls() argument
709 v4l2_ctrl_handler_free(&state->ctrl_hdl); in adv7180_exit_controls()
727 struct adv7180_state *state = to_state(sd); in adv7180_mbus_fmt() local
732 fmt->height = state->curr_norm & V4L2_STD_525_60 ? 480 : 576; in adv7180_mbus_fmt()
734 if (state->field == V4L2_FIELD_ALTERNATE) in adv7180_mbus_fmt()
740 static int adv7180_set_field_mode(struct adv7180_state *state) in adv7180_set_field_mode() argument
742 if (!(state->chip_info->flags & ADV7180_FLAG_I2P)) in adv7180_set_field_mode()
745 if (state->field == V4L2_FIELD_NONE) { in adv7180_set_field_mode()
746 if (state->chip_info->flags & ADV7180_FLAG_MIPI_CSI2) { in adv7180_set_field_mode()
747 adv7180_csi_write(state, 0x01, 0x20); in adv7180_set_field_mode()
748 adv7180_csi_write(state, 0x02, 0x28); in adv7180_set_field_mode()
749 adv7180_csi_write(state, 0x03, 0x38); in adv7180_set_field_mode()
750 adv7180_csi_write(state, 0x04, 0x30); in adv7180_set_field_mode()
751 adv7180_csi_write(state, 0x05, 0x30); in adv7180_set_field_mode()
752 adv7180_csi_write(state, 0x06, 0x80); in adv7180_set_field_mode()
753 adv7180_csi_write(state, 0x07, 0x70); in adv7180_set_field_mode()
754 adv7180_csi_write(state, 0x08, 0x50); in adv7180_set_field_mode()
756 adv7180_vpp_write(state, 0xa3, 0x00); in adv7180_set_field_mode()
757 adv7180_vpp_write(state, 0x5b, 0x00); in adv7180_set_field_mode()
758 adv7180_vpp_write(state, 0x55, 0x80); in adv7180_set_field_mode()
760 if (state->chip_info->flags & ADV7180_FLAG_MIPI_CSI2) { in adv7180_set_field_mode()
761 adv7180_csi_write(state, 0x01, 0x18); in adv7180_set_field_mode()
762 adv7180_csi_write(state, 0x02, 0x18); in adv7180_set_field_mode()
763 adv7180_csi_write(state, 0x03, 0x30); in adv7180_set_field_mode()
764 adv7180_csi_write(state, 0x04, 0x20); in adv7180_set_field_mode()
765 adv7180_csi_write(state, 0x05, 0x28); in adv7180_set_field_mode()
766 adv7180_csi_write(state, 0x06, 0x40); in adv7180_set_field_mode()
767 adv7180_csi_write(state, 0x07, 0x58); in adv7180_set_field_mode()
768 adv7180_csi_write(state, 0x08, 0x30); in adv7180_set_field_mode()
770 adv7180_vpp_write(state, 0xa3, 0x70); in adv7180_set_field_mode()
771 adv7180_vpp_write(state, 0x5b, 0x80); in adv7180_set_field_mode()
772 adv7180_vpp_write(state, 0x55, 0x00); in adv7180_set_field_mode()
782 struct adv7180_state *state = to_state(sd); in adv7180_get_pad_format() local
788 format->format.field = state->field; in adv7180_get_pad_format()
798 struct adv7180_state *state = to_state(sd); in adv7180_set_pad_format() local
804 if (state->chip_info->flags & ADV7180_FLAG_I2P) in adv7180_set_pad_format()
815 if (state->field != format->format.field) { in adv7180_set_pad_format()
816 state->field = format->format.field; in adv7180_set_pad_format()
817 adv7180_set_power(state, false); in adv7180_set_pad_format()
818 adv7180_set_field_mode(state); in adv7180_set_pad_format()
819 adv7180_set_power(state, true); in adv7180_set_pad_format()
844 struct adv7180_state *state = to_state(sd); in adv7180_get_mbus_config() local
846 if (state->chip_info->flags & ADV7180_FLAG_MIPI_CSI2) { in adv7180_get_mbus_config()
873 struct adv7180_state *state = to_state(sd); in adv7180_g_pixelaspect() local
875 if (state->curr_norm & V4L2_STD_525_60) { in adv7180_g_pixelaspect()
894 struct adv7180_state *state = to_state(sd); in adv7180_s_stream() local
899 state->streaming = enable; in adv7180_s_stream()
904 ret = mutex_lock_interruptible(&state->mutex); in adv7180_s_stream()
907 state->streaming = enable; in adv7180_s_stream()
908 mutex_unlock(&state->mutex); in adv7180_s_stream()
968 struct adv7180_state *state = devid; in adv7180_irq() local
971 mutex_lock(&state->mutex); in adv7180_irq()
972 isr3 = adv7180_read(state, ADV7180_REG_ISR3); in adv7180_irq()
974 adv7180_write(state, ADV7180_REG_ICR3, isr3); in adv7180_irq()
982 v4l2_subdev_notify_event(&state->sd, &src_ch); in adv7180_irq()
984 mutex_unlock(&state->mutex); in adv7180_irq()
989 static int adv7180_init(struct adv7180_state *state) in adv7180_init() argument
994 ret = adv7180_write(state, ADV7180_REG_EXTENDED_OUTPUT_CONTROL, in adv7180_init()
1000 return adv7180_write(state, ADV7180_REG_NTSC_V_BIT_END, in adv7180_init()
1004 static int adv7180_set_std(struct adv7180_state *state, unsigned int std) in adv7180_set_std() argument
1006 return adv7180_write(state, ADV7180_REG_INPUT_CONTROL, in adv7180_set_std()
1007 (std << 4) | state->input); in adv7180_set_std()
1010 static int adv7180_select_input(struct adv7180_state *state, unsigned int input) in adv7180_select_input() argument
1014 ret = adv7180_read(state, ADV7180_REG_INPUT_CONTROL); in adv7180_select_input()
1020 return adv7180_write(state, ADV7180_REG_INPUT_CONTROL, ret); in adv7180_select_input()
1023 static int adv7182_init(struct adv7180_state *state) in adv7182_init() argument
1025 if (state->chip_info->flags & ADV7180_FLAG_MIPI_CSI2) in adv7182_init()
1026 adv7180_write(state, ADV7180_REG_CSI_SLAVE_ADDR, in adv7182_init()
1029 if (state->chip_info->flags & ADV7180_FLAG_I2P) in adv7182_init()
1030 adv7180_write(state, ADV7180_REG_VPP_SLAVE_ADDR, in adv7182_init()
1033 if (state->chip_info->flags & ADV7180_FLAG_V2) { in adv7182_init()
1035 adv7180_write(state, 0x0080, 0x51); in adv7182_init()
1036 adv7180_write(state, 0x0081, 0x51); in adv7182_init()
1037 adv7180_write(state, 0x0082, 0x68); in adv7182_init()
1041 if (state->chip_info->flags & ADV7180_FLAG_MIPI_CSI2) { in adv7182_init()
1042 adv7180_write(state, ADV7180_REG_OUTPUT_CONTROL, 0x4e); in adv7182_init()
1043 adv7180_write(state, ADV7180_REG_EXTENDED_OUTPUT_CONTROL, 0x57); in adv7182_init()
1044 adv7180_write(state, ADV7180_REG_CTRL_2, 0xc0); in adv7182_init()
1046 if (state->chip_info->flags & ADV7180_FLAG_V2) { in adv7182_init()
1047 if (state->force_bt656_4) { in adv7182_init()
1049 adv7180_write(state, in adv7182_init()
1053 adv7180_write(state, in adv7182_init()
1057 adv7180_write(state, in adv7182_init()
1061 adv7180_write(state, in adv7182_init()
1066 adv7180_write(state, in adv7182_init()
1070 adv7180_write(state, ADV7180_REG_OUTPUT_CONTROL, 0x0c); in adv7182_init()
1071 adv7180_write(state, ADV7180_REG_CTRL_2, 0x40); in adv7182_init()
1074 adv7180_write(state, 0x0013, 0x00); in adv7182_init()
1079 static int adv7182_set_std(struct adv7180_state *state, unsigned int std) in adv7182_set_std() argument
1082 return adv7180_write(state, ADV7182_REG_INPUT_VIDSEL, in adv7182_set_std()
1138 static int adv7182_select_input(struct adv7180_state *state, unsigned int input) in adv7182_select_input() argument
1145 ret = adv7180_write(state, ADV7180_REG_INPUT_CONTROL, input); in adv7182_select_input()
1150 adv7180_write(state, ADV7180_REG_RST_CLAMP, 0x00); in adv7182_select_input()
1151 adv7180_write(state, ADV7180_REG_RST_CLAMP, 0xff); in adv7182_select_input()
1159 adv7180_write(state, ADV7180_REG_SHAP_FILTER_CTL_1, 0x41); in adv7182_select_input()
1162 adv7180_write(state, ADV7180_REG_SHAP_FILTER_CTL_1, 0x01); in adv7182_select_input()
1166 if (state->chip_info->flags & ADV7180_FLAG_V2) in adv7182_select_input()
1172 adv7180_write(state, ADV7180_REG_CVBS_TRIM + i, lbias[i]); in adv7182_select_input()
1176 adv7180_write(state, ADV7180_REG_RES_CIR, 0xa8); in adv7182_select_input()
1177 adv7180_write(state, ADV7180_REG_CLAMP_ADJ, 0x90); in adv7182_select_input()
1178 adv7180_write(state, ADV7180_REG_DIFF_MODE, 0xb0); in adv7182_select_input()
1179 adv7180_write(state, ADV7180_REG_AGC_ADJ1, 0x08); in adv7182_select_input()
1180 adv7180_write(state, ADV7180_REG_AGC_ADJ2, 0xa0); in adv7182_select_input()
1182 adv7180_write(state, ADV7180_REG_RES_CIR, 0xf0); in adv7182_select_input()
1183 adv7180_write(state, ADV7180_REG_CLAMP_ADJ, 0xd0); in adv7182_select_input()
1184 adv7180_write(state, ADV7180_REG_DIFF_MODE, 0x10); in adv7182_select_input()
1185 adv7180_write(state, ADV7180_REG_AGC_ADJ1, 0x9c); in adv7182_select_input()
1186 adv7180_write(state, ADV7180_REG_AGC_ADJ2, 0x00); in adv7182_select_input()
1362 static int init_device(struct adv7180_state *state) in init_device() argument
1366 mutex_lock(&state->mutex); in init_device()
1368 adv7180_set_power_pin(state, true); in init_device()
1369 adv7180_set_reset_pin(state, false); in init_device()
1371 adv7180_write(state, ADV7180_REG_PWR_MAN, ADV7180_PWR_MAN_RES); in init_device()
1374 ret = state->chip_info->init(state); in init_device()
1378 ret = adv7180_program_std(state); in init_device()
1382 adv7180_set_field_mode(state); in init_device()
1385 if (state->irq > 0) { in init_device()
1387 ret = adv7180_write(state, ADV7180_REG_ICONF1, in init_device()
1393 ret = adv7180_write(state, ADV7180_REG_IMR1, 0); in init_device()
1397 ret = adv7180_write(state, ADV7180_REG_IMR2, 0); in init_device()
1402 ret = adv7180_write(state, ADV7180_REG_IMR3, in init_device()
1407 ret = adv7180_write(state, ADV7180_REG_IMR4, 0); in init_device()
1413 mutex_unlock(&state->mutex); in init_device()
1421 struct adv7180_state *state; in adv7180_probe() local
1429 state = devm_kzalloc(&client->dev, sizeof(*state), GFP_KERNEL); in adv7180_probe()
1430 if (state == NULL) in adv7180_probe()
1433 state->client = client; in adv7180_probe()
1434 state->field = V4L2_FIELD_ALTERNATE; in adv7180_probe()
1435 state->chip_info = i2c_get_match_data(client); in adv7180_probe()
1437 state->pwdn_gpio = devm_gpiod_get_optional(&client->dev, "powerdown", in adv7180_probe()
1439 if (IS_ERR(state->pwdn_gpio)) { in adv7180_probe()
1440 ret = PTR_ERR(state->pwdn_gpio); in adv7180_probe()
1445 state->rst_gpio = devm_gpiod_get_optional(&client->dev, "reset", in adv7180_probe()
1447 if (IS_ERR(state->rst_gpio)) { in adv7180_probe()
1448 ret = PTR_ERR(state->rst_gpio); in adv7180_probe()
1455 state->force_bt656_4 = true; in adv7180_probe()
1457 if (state->chip_info->flags & ADV7180_FLAG_MIPI_CSI2) { in adv7180_probe()
1458 state->csi_client = i2c_new_dummy_device(client->adapter, in adv7180_probe()
1460 if (IS_ERR(state->csi_client)) in adv7180_probe()
1461 return PTR_ERR(state->csi_client); in adv7180_probe()
1464 if (state->chip_info->flags & ADV7180_FLAG_I2P) { in adv7180_probe()
1465 state->vpp_client = i2c_new_dummy_device(client->adapter, in adv7180_probe()
1467 if (IS_ERR(state->vpp_client)) { in adv7180_probe()
1468 ret = PTR_ERR(state->vpp_client); in adv7180_probe()
1473 state->irq = client->irq; in adv7180_probe()
1474 mutex_init(&state->mutex); in adv7180_probe()
1475 state->curr_norm = V4L2_STD_NTSC; in adv7180_probe()
1476 if (state->chip_info->flags & ADV7180_FLAG_RESET_POWERED) in adv7180_probe()
1477 state->powered = true; in adv7180_probe()
1479 state->powered = false; in adv7180_probe()
1480 state->input = 0; in adv7180_probe()
1481 sd = &state->sd; in adv7180_probe()
1486 ret = adv7180_init_controls(state); in adv7180_probe()
1490 state->pad.flags = MEDIA_PAD_FL_SOURCE; in adv7180_probe()
1492 ret = media_entity_pads_init(&sd->entity, 1, &state->pad); in adv7180_probe()
1496 ret = init_device(state); in adv7180_probe()
1500 if (state->irq > 0) { in adv7180_probe()
1503 KBUILD_MODNAME, state); in adv7180_probe()
1512 mutex_lock(&state->mutex); in adv7180_probe()
1513 ret = adv7180_read(state, ADV7180_REG_IDENT); in adv7180_probe()
1514 mutex_unlock(&state->mutex); in adv7180_probe()
1526 if (state->irq > 0) in adv7180_probe()
1527 free_irq(client->irq, state); in adv7180_probe()
1531 adv7180_exit_controls(state); in adv7180_probe()
1533 i2c_unregister_device(state->vpp_client); in adv7180_probe()
1535 i2c_unregister_device(state->csi_client); in adv7180_probe()
1536 mutex_destroy(&state->mutex); in adv7180_probe()
1543 struct adv7180_state *state = to_state(sd); in adv7180_remove() local
1547 if (state->irq > 0) in adv7180_remove()
1548 free_irq(client->irq, state); in adv7180_remove()
1551 adv7180_exit_controls(state); in adv7180_remove()
1553 i2c_unregister_device(state->vpp_client); in adv7180_remove()
1554 i2c_unregister_device(state->csi_client); in adv7180_remove()
1556 adv7180_set_reset_pin(state, true); in adv7180_remove()
1557 adv7180_set_power_pin(state, false); in adv7180_remove()
1559 mutex_destroy(&state->mutex); in adv7180_remove()
1566 struct adv7180_state *state = to_state(sd); in adv7180_suspend() local
1568 return adv7180_set_power(state, false); in adv7180_suspend()
1574 struct adv7180_state *state = to_state(sd); in adv7180_resume() local
1577 ret = init_device(state); in adv7180_resume()
1581 ret = adv7180_set_power(state, state->powered); in adv7180_resume()