This repository has been archived on 2026-03-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
ubports_kernel_google_msm/include/linux
Jean Delvare 4b2643d7d9 i2c: Fix the i2c_smbus_read_i2c_block_data() prototype
Let the drivers specify how many bytes they want to read with
i2c_smbus_read_i2c_block_data(). So far, the block count was
hard-coded to I2C_SMBUS_BLOCK_MAX (32), which did not make much sense.
Many driver authors complained about this before, and I believe it's
about time to fix it. Right now, authors have to do technically stupid
things, such as individual byte reads or full-fledged I2C messaging,
to work around the problem. We do not want to encourage that.

I even found that some bus drivers (e.g. i2c-amd8111) already
implemented I2C block read the "right" way, that is, they didn't
follow the old, broken standard. The fact that it was never noticed
before just shows how little i2c_smbus_read_i2c_block_data() was used,
which isn't that surprising given how broken its prototype was so far.

There are some obvious compatiblity considerations:
* This changes the i2c_smbus_read_i2c_block_data() prototype. Users
  outside the kernel tree will notice at compilation time, and will
  have to update their code.
* User-space has access to i2c_smbus_xfer() directly using i2c-dev, so
  the changed expectations would affect tools such as i2cdump. In order
  to preserve binary compatibility, we give I2C_SMBUS_I2C_BLOCK_DATA
  a new numeric value, and define I2C_SMBUS_I2C_BLOCK_BROKEN with the
  old numeric value. When i2c-dev receives a transaction with the
  old value, it can convert it to the new format on the fly.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
2007-07-12 14:12:29 +02:00
..
2006-09-26 17:40:24 -04:00
2007-05-14 19:33:46 -04:00
2007-05-01 16:11:57 +02:00
2007-06-16 13:16:16 -07:00
2006-12-04 02:00:22 -05:00
2006-12-02 21:22:55 -08:00
2006-12-02 21:22:55 -08:00
2007-05-11 05:38:26 -04:00
2007-02-20 17:10:15 -08:00
2006-01-13 09:12:21 -08:00
2006-12-08 08:28:39 -08:00
2006-12-07 08:39:20 -08:00
2007-05-07 12:12:55 -07:00
2006-12-08 08:28:39 -08:00
2007-05-23 20:14:12 -07:00
2007-01-30 08:26:45 -08:00
2007-02-20 17:10:14 -08:00
2007-05-08 11:15:15 -07:00
2007-05-09 12:30:56 -07:00
2007-05-07 12:13:00 -07:00
2007-05-21 09:56:57 -07:00
2007-05-10 18:24:13 +02:00
2007-05-08 11:15:25 -07:00
2007-04-27 10:57:31 -07:00
2006-12-07 08:39:25 -08:00
2007-05-08 11:15:26 -07:00
2007-07-09 08:22:54 +01:00
2007-07-09 08:23:17 +01:00
2006-07-03 19:44:51 -07:00
2007-02-09 17:39:36 -05:00
2007-02-11 11:18:07 -08:00
2007-05-07 12:12:58 -07:00
2007-06-01 08:18:29 -07:00
2007-05-03 13:17:25 -07:00
2007-03-27 09:05:15 -07:00
2007-05-09 08:57:56 +02:00
2007-05-31 16:20:15 -04:00
2007-05-31 16:20:14 -04:00
2006-03-31 12:18:54 -08:00
2007-05-06 20:38:28 -04:00
2006-09-22 15:18:47 -07:00
2007-07-10 08:04:15 +02:00
2006-12-07 08:39:32 -08:00
2007-06-18 09:48:41 -07:00
2006-10-02 07:57:12 -07:00
2007-07-10 00:35:17 -04:00
2007-07-09 18:51:58 +02:00
2007-04-28 11:01:07 -04:00
2007-03-16 00:59:29 -04:00
2006-03-26 08:56:56 -08:00
2007-04-07 10:03:43 -07:00
2007-05-11 16:56:02 +02:00
2006-12-10 21:21:29 +01:00
2007-07-09 23:17:58 +02:00
2007-04-25 22:29:10 -07:00
2005-11-08 09:40:47 -08:00
2007-04-25 22:24:41 -07:00
2007-04-25 22:29:10 -07:00
2006-09-28 18:02:29 -07:00
2007-05-11 08:29:36 -07:00
2007-05-11 08:29:34 -07:00
2007-05-15 08:54:00 -07:00
2006-10-10 15:37:22 -07:00
2006-12-02 21:21:21 -08:00
2006-12-07 08:39:47 -08:00
2006-12-07 08:39:47 -08:00
2006-12-07 08:39:47 -08:00
2006-10-04 00:31:09 -07:00
2007-05-08 11:15:09 -07:00
2006-06-21 12:40:49 -07:00
2006-12-08 08:28:57 -08:00
2006-11-30 05:24:39 +01:00
2007-04-25 22:25:52 -07:00
2007-06-08 17:23:34 -07:00
2007-05-09 12:30:53 -07:00
2007-05-03 10:52:32 +03:00
2006-07-31 15:44:29 -04:00
2007-05-18 20:46:30 -07:00
2007-07-10 17:51:13 -07:00
2006-06-05 12:29:17 -07:00
2007-05-08 11:15:18 -07:00
2007-05-09 12:30:49 -07:00
2007-05-03 10:52:22 +03:00
2007-06-21 15:55:12 -07:00
2006-11-30 04:40:22 +01:00
2006-09-28 18:02:22 -07:00
2007-01-23 00:34:54 -05:00
2007-07-10 17:33:05 +01:00
2006-03-23 07:38:14 -08:00
2007-05-09 12:30:54 -07:00
2006-03-20 13:44:40 -05:00
2006-08-27 11:01:32 -07:00
2007-05-04 17:59:07 -07:00
2007-05-07 12:12:59 -07:00
2007-05-08 11:15:05 -07:00
2007-05-08 11:15:05 -07:00
2007-05-05 14:15:32 -07:00
2007-07-09 21:23:08 +02:00
2007-03-12 16:31:50 -07:00
2007-07-01 12:29:44 -07:00
2006-03-27 08:44:48 -08:00
2007-05-08 11:15:14 -07:00
2007-04-17 16:36:26 -07:00
2007-07-01 12:29:44 -07:00
2007-05-08 11:14:57 -07:00
2006-12-04 02:00:36 -05:00
2006-10-03 23:01:26 +02:00
2007-01-11 18:18:21 -08:00
2007-05-07 12:12:54 -07:00
2007-05-09 08:57:56 +02:00
2006-06-25 10:01:06 -07:00
2006-06-25 10:01:06 -07:00
2006-09-26 08:49:04 -07:00
2007-06-07 13:39:34 -07:00
2005-11-07 07:53:46 -08:00
2007-05-17 05:23:06 -07:00
2006-06-25 10:01:14 -07:00
2007-05-08 11:15:18 -07:00
2007-07-09 18:52:01 +02:00
2007-05-09 08:57:56 +02:00
2006-12-07 08:39:35 -08:00
2007-05-07 12:12:50 -07:00
2005-10-30 17:37:32 -08:00
2007-05-11 08:29:36 -07:00
2007-05-11 08:29:36 -07:00
2007-06-24 08:59:12 -07:00
2007-06-16 13:16:16 -07:00
2007-02-20 17:10:14 -08:00
2007-05-21 21:47:27 -07:00
2007-05-08 11:14:58 -07:00
2007-05-08 11:15:18 -07:00
2006-10-01 00:39:18 -07:00
2007-05-09 12:30:57 -07:00
2007-02-11 10:51:18 -08:00
2007-02-20 17:10:13 -08:00
2007-05-11 08:29:34 -07:00
2006-11-30 05:32:19 +01:00
2007-05-08 11:15:18 -07:00
2007-05-11 08:29:36 -07:00
2007-02-16 08:13:56 -08:00
2006-03-31 12:18:56 -08:00
2006-12-02 21:21:08 -08:00
2006-09-28 17:53:59 -07:00
2007-05-11 08:29:35 -07:00
2007-05-11 08:29:35 -07:00
2006-03-23 07:38:14 -08:00
2007-05-03 00:55:34 -04:00
2006-12-15 08:47:51 -08:00
2007-05-07 12:12:58 -07:00
2006-10-01 00:39:19 -07:00
2007-05-09 12:30:56 -07:00
2007-07-09 18:52:01 +02:00
2007-05-21 09:18:19 -07:00
2007-02-11 11:18:05 -08:00
2007-05-04 12:55:39 -07:00