diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2011-12-21 18:09:12 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2011-12-21 19:01:41 +1000 |
commit | f553b79c03f0dbd52f6f03abe8233a2bef8cbd0d (patch) | |
tree | 113aab2ad223825d67f79d0e19c6cb96522db098 /drivers/gpu/drm/nouveau/nouveau_i2c.h | |
parent | 9e3b6b99075a01ce47379eee74365aece14242f3 (diff) | |
download | blackbird-op-linux-f553b79c03f0dbd52f6f03abe8233a2bef8cbd0d.tar.gz blackbird-op-linux-f553b79c03f0dbd52f6f03abe8233a2bef8cbd0d.zip |
drm/nouveau/i2c: handle bit-banging ourselves
i2c-algo-bit doesn't actually work very well on one card I have access to
(NVS 300), random single-bit errors occur most of the time - what we're
doing now is closer to what xf86i2c.c does.
The original plan was to figure out why i2c-algo-bit fails on the NVS 300,
and fix it. However, while investigating I discovered i2c-algo-bit calls
cond_resched(), which makes it a bad idea for us to be using as we execute
VBIOS scripts from a tasklet, and there may very well be i2c transfers as
a result.
So, since I already wrote this code in userspace to track down the NVS 300
bug, and it's not really much code - lets use it.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_i2c.h')
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_i2c.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_i2c.h b/drivers/gpu/drm/nouveau/nouveau_i2c.h index 1d083893a4d7..4d2e4e9031be 100644 --- a/drivers/gpu/drm/nouveau/nouveau_i2c.h +++ b/drivers/gpu/drm/nouveau/nouveau_i2c.h @@ -34,7 +34,6 @@ struct nouveau_i2c_chan { struct i2c_adapter adapter; struct drm_device *dev; - struct i2c_algo_bit_data bit; struct list_head head; u8 index; u8 type; |