static int idt82p33_xfer_read()

in ptp_idt82p33.c [81:110]


static int idt82p33_xfer_read(struct idt82p33 *idt82p33,
			      unsigned char regaddr,
			      unsigned char *buf,
			      unsigned int count)
{
	struct i2c_client *client = idt82p33->client;
	struct i2c_msg msg[2];
	int cnt;

	msg[0].addr = client->addr;
	msg[0].flags = 0;
	msg[0].len = 1;
	msg[0].buf = &regaddr;

	msg[1].addr = client->addr;
	msg[1].flags = I2C_M_RD;
	msg[1].len = count;
	msg[1].buf = buf;

	cnt = i2c_transfer(client->adapter, msg, 2);
	if (cnt < 0) {
		dev_err(&client->dev, "i2c_transfer returned %d\n", cnt);
		return cnt;
	} else if (cnt != 2) {
		dev_err(&client->dev,
			"i2c_transfer sent only %d of %d messages\n", cnt, 2);
		return -EIO;
	}
	return 0;
}