|
@@ -144,7 +144,6 @@ static int dln2_i2c_xfer(struct i2c_adapter *adapter,
|
|
|
{
|
|
|
struct dln2_i2c *dln2 = i2c_get_adapdata(adapter);
|
|
|
struct i2c_msg *pmsg;
|
|
|
- struct device *dev = &dln2->adapter.dev;
|
|
|
int i;
|
|
|
|
|
|
for (i = 0; i < num; i++) {
|
|
@@ -152,11 +151,6 @@ static int dln2_i2c_xfer(struct i2c_adapter *adapter,
|
|
|
|
|
|
pmsg = &msgs[i];
|
|
|
|
|
|
- if (pmsg->len > DLN2_I2C_MAX_XFER_SIZE) {
|
|
|
- dev_warn(dev, "maximum transfer size exceeded\n");
|
|
|
- return -EOPNOTSUPP;
|
|
|
- }
|
|
|
-
|
|
|
if (pmsg->flags & I2C_M_RD) {
|
|
|
ret = dln2_i2c_read(dln2, pmsg->addr, pmsg->buf,
|
|
|
pmsg->len);
|
|
@@ -187,6 +181,11 @@ static const struct i2c_algorithm dln2_i2c_usb_algorithm = {
|
|
|
.functionality = dln2_i2c_func,
|
|
|
};
|
|
|
|
|
|
+static struct i2c_adapter_quirks dln2_i2c_quirks = {
|
|
|
+ .max_read_len = DLN2_I2C_MAX_XFER_SIZE,
|
|
|
+ .max_write_len = DLN2_I2C_MAX_XFER_SIZE,
|
|
|
+};
|
|
|
+
|
|
|
static int dln2_i2c_probe(struct platform_device *pdev)
|
|
|
{
|
|
|
int ret;
|
|
@@ -209,6 +208,7 @@ static int dln2_i2c_probe(struct platform_device *pdev)
|
|
|
dln2->adapter.owner = THIS_MODULE;
|
|
|
dln2->adapter.class = I2C_CLASS_HWMON;
|
|
|
dln2->adapter.algo = &dln2_i2c_usb_algorithm;
|
|
|
+ dln2->adapter.quirks = &dln2_i2c_quirks;
|
|
|
dln2->adapter.dev.parent = dev;
|
|
|
i2c_set_adapdata(&dln2->adapter, dln2);
|
|
|
snprintf(dln2->adapter.name, sizeof(dln2->adapter.name), "%s-%s-%d",
|