Lines Matching refs:ret

127 	int ret = i2c_master_send(client, buf, sizeof(buf));  in s5c73m3_i2c_write()  local
132 if (ret == 4) in s5c73m3_i2c_write()
135 return ret < 0 ? ret : -EREMOTEIO; in s5c73m3_i2c_write()
140 int ret; in s5c73m3_i2c_read() local
159 ret = i2c_transfer(client->adapter, msg, 2); in s5c73m3_i2c_read()
160 if (ret == 2) { in s5c73m3_i2c_read()
168 v4l2_err(client, "I2C read failed: addr: %04x, (%d)\n", addr, ret); in s5c73m3_i2c_read()
170 return ret >= 0 ? -EREMOTEIO : ret; in s5c73m3_i2c_read()
176 int ret; in s5c73m3_write() local
179 ret = s5c73m3_i2c_write(client, REG_CMDWR_ADDRH, addr >> 16); in s5c73m3_write()
180 if (ret < 0) { in s5c73m3_write()
182 return ret; in s5c73m3_write()
187 ret = s5c73m3_i2c_write(client, REG_CMDWR_ADDRL, addr & 0xffff); in s5c73m3_write()
188 if (ret < 0) { in s5c73m3_write()
190 return ret; in s5c73m3_write()
196 ret = s5c73m3_i2c_write(client, REG_CMDBUF_ADDR, data); in s5c73m3_write()
197 if (ret < 0) in s5c73m3_write()
198 return ret; in s5c73m3_write()
202 return ret; in s5c73m3_write()
208 int ret; in s5c73m3_read() local
211 ret = s5c73m3_i2c_write(client, REG_CMDRD_ADDRH, addr >> 16); in s5c73m3_read()
212 if (ret < 0) { in s5c73m3_read()
214 return ret; in s5c73m3_read()
219 ret = s5c73m3_i2c_write(client, REG_CMDRD_ADDRL, addr & 0xffff); in s5c73m3_read()
220 if (ret < 0) { in s5c73m3_read()
222 return ret; in s5c73m3_read()
228 ret = s5c73m3_i2c_read(client, REG_CMDBUF_ADDR, data); in s5c73m3_read()
229 if (ret < 0) in s5c73m3_read()
230 return ret; in s5c73m3_read()
234 return ret; in s5c73m3_read()
241 int ret; in s5c73m3_check_status() local
246 ret = s5c73m3_read(state, REG_STATUS, &status); in s5c73m3_check_status()
247 if (ret < 0 || status == value) in s5c73m3_check_status()
258 if (ret == 0 && status != value) { in s5c73m3_check_status()
272 return ret; in s5c73m3_check_status()
277 int ret; in s5c73m3_isp_command() local
279 ret = s5c73m3_check_status(state, REG_STATUS_ISP_COMMAND_COMPLETED); in s5c73m3_isp_command()
280 if (ret < 0) in s5c73m3_isp_command()
281 return ret; in s5c73m3_isp_command()
283 ret = s5c73m3_write(state, 0x00095000, command); in s5c73m3_isp_command()
284 if (ret < 0) in s5c73m3_isp_command()
285 return ret; in s5c73m3_isp_command()
287 ret = s5c73m3_write(state, 0x00095002, data); in s5c73m3_isp_command()
288 if (ret < 0) in s5c73m3_isp_command()
289 return ret; in s5c73m3_isp_command()
305 int ret; in s5c73m3_set_af_softlanding() local
308 ret = s5c73m3_isp_command(state, COMM_AF_SOFTLANDING, in s5c73m3_set_af_softlanding()
310 if (ret < 0) { in s5c73m3_set_af_softlanding()
312 return ret; in s5c73m3_set_af_softlanding()
316 ret = s5c73m3_isp_comm_result(state, COMM_AF_SOFTLANDING, in s5c73m3_set_af_softlanding()
318 if (ret < 0) { in s5c73m3_set_af_softlanding()
327 ret = -ETIME; in s5c73m3_set_af_softlanding()
337 return ret; in s5c73m3_set_af_softlanding()
345 int ret; in s5c73m3_load_fw() local
350 ret = request_firmware(&fw, fw_name, &client->dev); in s5c73m3_load_fw()
351 if (ret < 0) { in s5c73m3_load_fw()
358 ret = s5c73m3_spi_write(state, fw->data, fw->size, 64); in s5c73m3_load_fw()
360 if (ret >= 0) in s5c73m3_load_fw()
367 return ret; in s5c73m3_load_fw()
396 int ret; in s5c73m3_set_frame_rate() local
404 ret = s5c73m3_isp_command(state, COMM_FRAME_RATE, state->fiv->fps_reg); in s5c73m3_set_frame_rate()
405 if (!ret) in s5c73m3_set_frame_rate()
408 return ret; in s5c73m3_set_frame_rate()
415 int ret; in __s5c73m3_s_stream() local
423 ret = s5c73m3_isp_command(state, COMM_IMG_OUTPUT, mode); in __s5c73m3_s_stream()
424 if (!ret) in __s5c73m3_s_stream()
425 ret = s5c73m3_set_frame_size(state); in __s5c73m3_s_stream()
426 if (ret) in __s5c73m3_s_stream()
427 return ret; in __s5c73m3_s_stream()
431 ret = s5c73m3_isp_command(state, COMM_SENSOR_STREAMING, !!on); in __s5c73m3_s_stream()
432 if (ret) in __s5c73m3_s_stream()
433 return ret; in __s5c73m3_s_stream()
441 ret = s5c73m3_set_frame_rate(state); in __s5c73m3_s_stream()
442 if (ret < 0) in __s5c73m3_s_stream()
443 v4l2_err(sd, "Error setting frame rate(%d)\n", ret); in __s5c73m3_s_stream()
452 int ret; in s5c73m3_oif_s_stream() local
455 ret = __s5c73m3_s_stream(state, sd, on); in s5c73m3_oif_s_stream()
458 return ret; in s5c73m3_oif_s_stream()
467 int ret = s5c73m3_read(state, 0x30100010, &reg); in s5c73m3_system_status_wait() local
468 if (ret < 0) in s5c73m3_system_status_wait()
469 return ret; in s5c73m3_system_status_wait()
480 int i, ret; in s5c73m3_read_fw_version() local
487 ret = s5c73m3_read(state, offset + i * 2, data); in s5c73m3_read_fw_version()
488 if (ret < 0) in s5c73m3_read_fw_version()
489 return ret; in s5c73m3_read_fw_version()
497 ret = s5c73m3_read(state, offset + 6 + i * 2, data); in s5c73m3_read_fw_version()
498 if (ret < 0) in s5c73m3_read_fw_version()
499 return ret; in s5c73m3_read_fw_version()
505 ret = s5c73m3_read(state, offset + 0x14, data); in s5c73m3_read_fw_version()
506 if (ret >= 0) { in s5c73m3_read_fw_version()
507 ret = s5c73m3_read(state, offset + 0x16, data + 1); in s5c73m3_read_fw_version()
508 if (ret >= 0) in s5c73m3_read_fw_version()
514 return ret; in s5c73m3_read_fw_version()
521 int ret; in s5c73m3_fw_update_from() local
527 ret = s5c73m3_isp_command(state, COMM_FW_UPDATE, 0); in s5c73m3_fw_update_from()
528 if (ret < 0) in s5c73m3_fw_update_from()
529 return ret; in s5c73m3_fw_update_from()
532 ret = s5c73m3_read(state, 0x00095906, &status); in s5c73m3_fw_update_from()
533 if (ret < 0) in s5c73m3_fw_update_from()
534 return ret; in s5c73m3_fw_update_from()
554 int ret; in s5c73m3_spi_boot() local
557 ret = s5c73m3_write(state, 0x30000004, 0xffff); in s5c73m3_spi_boot()
558 if (ret < 0) in s5c73m3_spi_boot()
559 return ret; in s5c73m3_spi_boot()
564 ret = s5c73m3_system_status_wait(state, 0x0c, 100, 3); in s5c73m3_spi_boot()
565 if (ret < 0) { in s5c73m3_spi_boot()
566 v4l2_err(sd, "booting failed: %d\n", ret); in s5c73m3_spi_boot()
567 return ret; in s5c73m3_spi_boot()
571 ret = s5c73m3_write(state, 0x30100014, 0x2146); in s5c73m3_spi_boot()
572 if (ret < 0) in s5c73m3_spi_boot()
573 return ret; in s5c73m3_spi_boot()
575 ret = s5c73m3_write(state, 0x30100010, 0x210c); in s5c73m3_spi_boot()
576 if (ret < 0) in s5c73m3_spi_boot()
577 return ret; in s5c73m3_spi_boot()
582 ret = s5c73m3_system_status_wait(state, 0x210d, 100, 300); in s5c73m3_spi_boot()
583 if (ret < 0) in s5c73m3_spi_boot()
584 v4l2_err(sd, "SPI not ready: %d\n", ret); in s5c73m3_spi_boot()
591 ret = s5c73m3_write(state, 0x30000004, 0xfffd); in s5c73m3_spi_boot()
592 if (ret < 0) in s5c73m3_spi_boot()
593 return ret; in s5c73m3_spi_boot()
596 ret = s5c73m3_write(state, 0x301000a4, 0x0183); in s5c73m3_spi_boot()
597 if (ret < 0) in s5c73m3_spi_boot()
598 return ret; in s5c73m3_spi_boot()
601 ret = s5c73m3_write(state, 0x30000004, 0xffff); in s5c73m3_spi_boot()
602 if (ret < 0 || !load_fw) in s5c73m3_spi_boot()
603 return ret; in s5c73m3_spi_boot()
605 ret = s5c73m3_read_fw_version(state); in s5c73m3_spi_boot()
606 if (ret < 0) in s5c73m3_spi_boot()
607 return ret; in s5c73m3_spi_boot()
610 ret = s5c73m3_fw_update_from(state); in s5c73m3_spi_boot()
614 return ret; in s5c73m3_spi_boot()
624 int ret; in s5c73m3_set_timing_register_for_vdd() local
628 ret = s5c73m3_write(state, regs[i][0], regs[i][1]); in s5c73m3_set_timing_register_for_vdd()
629 if (ret < 0) in s5c73m3_set_timing_register_for_vdd()
630 return ret; in s5c73m3_set_timing_register_for_vdd()
659 int ret; in s5c73m3_get_fw_version() local
662 ret = s5c73m3_write(state, 0x30000004, 0xffff); in s5c73m3_get_fw_version()
663 if (ret < 0) in s5c73m3_get_fw_version()
664 return ret; in s5c73m3_get_fw_version()
668 ret = s5c73m3_system_status_wait(state, 0x0c, 100, 3); in s5c73m3_get_fw_version()
669 if (ret < 0) { in s5c73m3_get_fw_version()
671 v4l2_err(sd, "%s: booting failed: %d\n", __func__, ret); in s5c73m3_get_fw_version()
672 return ret; in s5c73m3_get_fw_version()
676 ret = s5c73m3_write(state, 0x30100120, 0x0820); in s5c73m3_get_fw_version()
677 ret = s5c73m3_write(state, 0x30100124, 0x0820); in s5c73m3_get_fw_version()
680 ret = s5c73m3_write(state, 0x00010418, 0x0008); in s5c73m3_get_fw_version()
683 ret = s5c73m3_write(state, 0x30100014, 0x2146); in s5c73m3_get_fw_version()
684 if (ret < 0) in s5c73m3_get_fw_version()
685 return ret; in s5c73m3_get_fw_version()
686 ret = s5c73m3_write(state, 0x30100010, 0x230c); in s5c73m3_get_fw_version()
687 if (ret < 0) in s5c73m3_get_fw_version()
688 return ret; in s5c73m3_get_fw_version()
693 ret = s5c73m3_system_status_wait(state, 0x230e, 100, 300); in s5c73m3_get_fw_version()
694 if (ret < 0) in s5c73m3_get_fw_version()
695 v4l2_err(sd, "SPI not ready: %d\n", ret); in s5c73m3_get_fw_version()
698 ret = s5c73m3_write(state, 0x30000004, 0xfffd); in s5c73m3_get_fw_version()
699 if (ret < 0) in s5c73m3_get_fw_version()
700 return ret; in s5c73m3_get_fw_version()
703 ret = s5c73m3_write(state, 0x301000a4, 0x0183); in s5c73m3_get_fw_version()
704 if (ret < 0) in s5c73m3_get_fw_version()
705 return ret; in s5c73m3_get_fw_version()
709 ret = s5c73m3_read_fw_version(state); in s5c73m3_get_fw_version()
713 return ret; in s5c73m3_get_fw_version()
729 int i, ret; in s5c73m3_rom_boot() local
732 ret = s5c73m3_write(state, 0x30000004, 0xffff); in s5c73m3_rom_boot()
733 if (ret < 0) in s5c73m3_rom_boot()
734 return ret; in s5c73m3_rom_boot()
738 ret = s5c73m3_system_status_wait(state, 0x0c, 100, 4); in s5c73m3_rom_boot()
739 if (ret < 0) { in s5c73m3_rom_boot()
740 v4l2_err(sd, "Booting failed: %d\n", ret); in s5c73m3_rom_boot()
741 return ret; in s5c73m3_rom_boot()
745 ret = s5c73m3_write(state, boot_regs[i][0], boot_regs[i][1]); in s5c73m3_rom_boot()
746 if (ret < 0) in s5c73m3_rom_boot()
747 return ret; in s5c73m3_rom_boot()
752 ret = s5c73m3_system_status_wait(state, 0x230e, 1000, 150); in s5c73m3_rom_boot()
753 if (ret < 0) { in s5c73m3_rom_boot()
754 v4l2_err(sd, "Binary read failed: %d\n", ret); in s5c73m3_rom_boot()
755 return ret; in s5c73m3_rom_boot()
759 ret = s5c73m3_write(state, 0x30000004, 0xfffd); in s5c73m3_rom_boot()
760 if (ret < 0) in s5c73m3_rom_boot()
761 return ret; in s5c73m3_rom_boot()
763 ret = s5c73m3_write(state, 0x301000a4, 0x0183); in s5c73m3_rom_boot()
764 if (ret < 0) in s5c73m3_rom_boot()
765 return ret; in s5c73m3_rom_boot()
767 ret = s5c73m3_write(state, 0x30000004, 0xffff); in s5c73m3_rom_boot()
768 if (ret < 0) in s5c73m3_rom_boot()
769 return ret; in s5c73m3_rom_boot()
778 int ret; in s5c73m3_isp_init() local
783 ret = s5c73m3_i2c_write(state->i2c_client, AHB_MSB_ADDR_PTR, 0x3310); in s5c73m3_isp_init()
784 if (ret < 0) in s5c73m3_isp_init()
785 return ret; in s5c73m3_isp_init()
893 unsigned int ret, min_err = UINT_MAX; in __s5c73m3_set_frame_interval() local
908 ret = abs(iv->interval.numerator / 1000 - fr_time); in __s5c73m3_set_frame_interval()
909 if (ret < min_err) { in __s5c73m3_set_frame_interval()
911 min_err = ret; in __s5c73m3_set_frame_interval()
925 int ret; in s5c73m3_oif_s_frame_interval() local
935 ret = __s5c73m3_set_frame_interval(state, fi); in s5c73m3_oif_s_frame_interval()
936 if (!ret) { in s5c73m3_oif_s_frame_interval()
938 ret = s5c73m3_set_frame_rate(state); in s5c73m3_oif_s_frame_interval()
943 return ret; in s5c73m3_oif_s_frame_interval()
952 int ret = 0; in s5c73m3_oif_enum_frame_interval() local
962 ret = -EINVAL; in s5c73m3_oif_enum_frame_interval()
967 return ret; in s5c73m3_oif_enum_frame_interval()
1065 int ret = 0; in s5c73m3_set_fmt() local
1083 ret = -EBUSY; in s5c73m3_set_fmt()
1087 ret = -EBUSY; in s5c73m3_set_fmt()
1094 return ret; in s5c73m3_set_fmt()
1104 int ret = 0; in s5c73m3_oif_set_fmt() local
1131 ret = -EBUSY; in s5c73m3_oif_set_fmt()
1135 ret = -EBUSY; in s5c73m3_oif_set_fmt()
1142 return ret; in s5c73m3_oif_set_fmt()
1206 int ret; in s5c73m3_oif_enum_mbus_code() local
1208 ret = s5c73m3_oif_get_pad_code(code->pad, code->index); in s5c73m3_oif_enum_mbus_code()
1209 if (ret < 0) in s5c73m3_oif_enum_mbus_code()
1210 return ret; in s5c73m3_oif_enum_mbus_code()
1212 code->code = ret; in s5c73m3_oif_enum_mbus_code()
1350 int i, ret; in __s5c73m3_power_on() local
1353 ret = regulator_enable(state->supplies[i].consumer); in __s5c73m3_power_on()
1354 if (ret) in __s5c73m3_power_on()
1358 ret = clk_set_rate(state->clock, state->mclk_frequency); in __s5c73m3_power_on()
1359 if (ret < 0) in __s5c73m3_power_on()
1362 ret = clk_prepare_enable(state->clock); in __s5c73m3_power_on()
1363 if (ret < 0) in __s5c73m3_power_on()
1379 return ret; in __s5c73m3_power_on()
1384 int i, ret; in __s5c73m3_power_off() local
1397 ret = regulator_disable(state->supplies[i].consumer); in __s5c73m3_power_off()
1398 if (ret) in __s5c73m3_power_off()
1412 return ret; in __s5c73m3_power_off()
1418 int ret = 0; in s5c73m3_oif_set_power() local
1423 ret = __s5c73m3_power_on(state); in s5c73m3_oif_set_power()
1424 if (!ret) in s5c73m3_oif_set_power()
1425 ret = s5c73m3_isp_init(state); in s5c73m3_oif_set_power()
1426 if (!ret) { in s5c73m3_oif_set_power()
1431 ret = s5c73m3_set_af_softlanding(state); in s5c73m3_oif_set_power()
1432 if (!ret) in s5c73m3_oif_set_power()
1433 ret = __s5c73m3_power_off(state); in s5c73m3_oif_set_power()
1437 if (!ret) in s5c73m3_oif_set_power()
1444 return ret; in s5c73m3_oif_set_power()
1450 int ret; in s5c73m3_oif_registered() local
1452 ret = v4l2_device_register_subdev(sd->v4l2_dev, &state->sensor_sd); in s5c73m3_oif_registered()
1453 if (ret) { in s5c73m3_oif_registered()
1456 return ret; in s5c73m3_oif_registered()
1459 ret = media_create_pad_link(&state->sensor_sd.entity, in s5c73m3_oif_registered()
1463 ret = media_create_pad_link(&state->sensor_sd.entity, in s5c73m3_oif_registered()
1467 return ret; in s5c73m3_oif_registered()
1530 int ret; in s5c73m3_get_dt_data() local
1564 ret = v4l2_fwnode_endpoint_parse(of_fwnode_handle(node_ep), &ep); in s5c73m3_get_dt_data()
1566 if (ret) in s5c73m3_get_dt_data()
1567 return ret; in s5c73m3_get_dt_data()
1589 int ret, i; in s5c73m3_probe() local
1596 ret = s5c73m3_get_dt_data(state); in s5c73m3_probe()
1597 if (ret < 0) in s5c73m3_probe()
1598 return ret; in s5c73m3_probe()
1616 ret = media_entity_pads_init(&sd->entity, S5C73M3_NUM_PADS, in s5c73m3_probe()
1618 if (ret < 0) in s5c73m3_probe()
1619 return ret; in s5c73m3_probe()
1633 ret = media_entity_pads_init(&oif_sd->entity, OIF_NUM_PADS, in s5c73m3_probe()
1635 if (ret < 0) in s5c73m3_probe()
1636 return ret; in s5c73m3_probe()
1641 ret = devm_regulator_bulk_get(dev, S5C73M3_MAX_SUPPLIES, in s5c73m3_probe()
1643 if (ret) { in s5c73m3_probe()
1648 ret = s5c73m3_init_controls(state); in s5c73m3_probe()
1649 if (ret) in s5c73m3_probe()
1664 ret = s5c73m3_register_spi_driver(state); in s5c73m3_probe()
1665 if (ret < 0) in s5c73m3_probe()
1670 ret = __s5c73m3_power_on(state); in s5c73m3_probe()
1671 if (ret < 0) in s5c73m3_probe()
1674 ret = s5c73m3_get_fw_version(state); in s5c73m3_probe()
1677 if (ret < 0) { in s5c73m3_probe()
1678 dev_err(dev, "Device detection failed: %d\n", ret); in s5c73m3_probe()
1682 ret = v4l2_async_register_subdev(oif_sd); in s5c73m3_probe()
1683 if (ret < 0) in s5c73m3_probe()
1693 return ret; in s5c73m3_probe()