Lines Matching refs:client

51 static int mt9m114_wait_state(struct i2c_client *client, int timeout);
54 mt9m114_read_reg(struct i2c_client *client, u16 data_length, u32 reg, u32 *val)
60 if (!client->adapter) {
61 v4l2_err(client, "%s error, no client->adapter\n", __func__);
67 v4l2_err(client, "%s error, invalid data length\n", __func__);
71 msg[0].addr = client->addr;
80 msg[1].addr = client->addr;
85 err = i2c_transfer(client->adapter, msg, 2);
101 dev_err(&client->dev, "read from offset 0x%x error %d", reg, err);
106 mt9m114_write_reg(struct i2c_client *client, u16 data_length, u16 reg, u32 val)
114 if (!client->adapter) {
115 v4l2_err(client, "%s error, no client->adapter\n", __func__);
121 v4l2_err(client, "%s error, invalid data_length\n", __func__);
128 msg.addr = client->addr;
150 num_msg = i2c_transfer(client->adapter, &msg, 1);
161 dev_err(&client->dev, "write error: wrote 0x%x to offset 0x%x error %d",
164 dev_dbg(&client->dev, "retrying... %d", retry);
176 * @client: i2c driver client structure
186 misensor_rmw_reg(struct i2c_client *client, u16 data_length, u16 reg,
213 err = mt9m114_read_reg(client, data_length, reg, &val);
215 v4l2_err(client, "%s error exit, read failed\n", __func__);
234 err = mt9m114_write_reg(client, data_length, reg, val);
236 v4l2_err(client, "%s error exit, write failed\n", __func__);
243 static int __mt9m114_flush_reg_array(struct i2c_client *client,
256 msg.addr = client->addr;
262 ret = i2c_transfer(client->adapter, &msg, num_msg);
265 dev_dbg(&client->dev, "retrying... %d\n", retry);
269 dev_err(&client->dev, "%s: i2c transfer error\n", __func__);
284 static int __mt9m114_buf_reg_array(struct i2c_client *client,
294 err = __mt9m114_flush_reg_array(client, ctrl);
325 __mt9m114_write_reg_is_consecutive(struct i2c_client *client,
337 * @client: i2c driver client structure
349 static int mt9m114_write_reg_array(struct i2c_client *client,
358 err = mt9m114_wait_state(client, MT9M114_WAIT_STAT_TIMEOUT);
367 err = __mt9m114_flush_reg_array(client, &ctrl);
373 err = __mt9m114_flush_reg_array(client, &ctrl);
374 err |= misensor_rmw_reg(client,
380 dev_err(&client->dev, "%s read err. aborted\n",
390 if (!__mt9m114_write_reg_is_consecutive(client, &ctrl,
392 err = __mt9m114_flush_reg_array(client, &ctrl);
396 err = __mt9m114_buf_reg_array(client, &ctrl, next);
398 v4l2_err(client, "%s: write error, aborted\n",
406 err = __mt9m114_flush_reg_array(client, &ctrl);
411 return mt9m114_wait_state(client, MT9M114_WAIT_STAT_TIMEOUT);
416 static int mt9m114_wait_state(struct i2c_client *client, int timeout)
422 ret = mt9m114_read_reg(client, MISENSOR_16BIT, 0x0080, &val);
435 struct i2c_client *client = v4l2_get_subdevdata(sd);
437 return mt9m114_write_reg_array(client,
443 struct i2c_client *client = v4l2_get_subdevdata(sd);
445 return mt9m114_write_reg_array(client, mt9m114_common, PRE_POLLING);
501 struct i2c_client *client = v4l2_get_subdevdata(sd);
505 dev_err(&client->dev, "no camera_sensor_platform_data");
522 dev_err(&client->dev, "gpio failed 1\n");
535 dev_err(&client->dev, "sensor power-up failed\n");
543 struct i2c_client *client = v4l2_get_subdevdata(sd);
547 dev_err(&client->dev, "no camera_sensor_platform_data");
553 dev_err(&client->dev, "flisclk failed\n");
558 dev_err(&client->dev, "gpio failed 1\n");
563 dev_err(&client->dev, "vprog failed.\n");
782 struct i2c_client *client = v4l2_get_subdevdata(sd);
791 dev_dbg(&client->dev, "%s(0x%X 0x%X 0x%X)\n", __func__,
817 ret = mt9m114_write_reg(client, MISENSOR_16BIT, 0x300A, f_lines);
819 v4l2_err(client, "%s: fail to set f_lines\n", __func__);
828 ret = mt9m114_write_reg(client, MISENSOR_16BIT,
831 v4l2_err(client, "%s: fail to set exposure time\n", __func__);
866 ret = mt9m114_write_reg(client, MISENSOR_16BIT,
869 v4l2_err(client, "%s: fail to set analog_gain_to_write\n",
895 struct i2c_client *client = v4l2_get_subdevdata(sd);
900 ret = mt9m114_read_reg(client, MISENSOR_16BIT,
925 struct i2c_client *client = v4l2_get_subdevdata(sd);
930 ret = mt9m114_write_reg_array(client, mt9m114_exp_average,
933 dev_err(&client->dev, "write exp_average reg err.\n");
939 ret = mt9m114_write_reg_array(client, mt9m114_exp_center,
942 dev_err(&client->dev, "write exp_default reg err");
957 struct i2c_client *client = v4l2_get_subdevdata(sd);
988 dev_err(&client->dev, "Incorrect exp grid.\n");
997 ret = mt9m114_write_reg_array(client, mt9m114_exp_average, NO_POLLING);
999 dev_err(&client->dev, "write exp_average reg err.\n");
1007 ret = mt9m114_write_reg(client, exp_reg.length,
1010 dev_err(&client->dev, "write exp_reg err.\n");
1096 struct i2c_client *client = v4l2_get_subdevdata(&dev->sd);
1101 dev_dbg(&client->dev, "%s: CID_VFLIP:%d.\n",
1106 dev_dbg(&client->dev, "%s: CID_HFLIP:%d.\n",
1240 static int mt9m114_detect(struct mt9m114_device *dev, struct i2c_client *client)
1242 struct i2c_adapter *adapter = client->adapter;
1247 dev_err(&client->dev, "%s: i2c error", __func__);
1250 ret = mt9m114_read_reg(client, MISENSOR_16BIT, MT9M114_PID, &model);
1256 dev_err(&client->dev, "%s: failed: client->addr = %x\n",
1257 __func__, client->addr);
1268 struct i2c_client *client = v4l2_get_subdevdata(sd);
1279 v4l2_err(client, "mt9m114 power-up err");
1284 ret = mt9m114_detect(dev, client);
1286 v4l2_err(client, "mt9m114_detect err s_config.\n");
1296 v4l2_err(client, "mt9m114 suspend err");
1302 v4l2_err(client, "mt9m114 power down err");
1312 dev_err(&client->dev, "sensor power-gating failed\n");
1518 static void mt9m114_remove(struct i2c_client *client)
1521 struct v4l2_subdev *sd = i2c_get_clientdata(client);
1531 static int mt9m114_probe(struct i2c_client *client)
1543 v4l2_i2c_subdev_init(&dev->sd, client, &mt9m114_ops);
1548 ret = mt9m114_s_config(&dev->sd, client->irq, pdata);
1573 mt9m114_remove(client);
1582 mt9m114_remove(client);
1593 mt9m114_remove(client);