aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/riva/rivafb-i2c.c
diff options
context:
space:
mode:
authorJean Delvare <khali@linux-fr.org>2007-05-08 03:38:20 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-08 14:15:28 -0400
commita65ff76ac8b24df49bbf4acc38918fb52d1033b0 (patch)
tree4bd323a77da9e709267d1712e4424a2db155aab9 /drivers/video/riva/rivafb-i2c.c
parent5b358fe12f03a7822db6f376b608f996c664a952 (diff)
rivafb/nvidiafb: Various cleanups
Various cleanups to rivafb/nvidiafb's I2C code: * Drop useless par->bus. * Refactor I2C bus deletion code. * Drop useless variable initialization. * Remove unneeded include of <linux/i2c-id.h>. * Simplify +1/-1. * Add __devinit tags where possible. [adaplas] The varible initialization are not useless. However, rivafb must check if i2c bus are created properly before reading the EDID block. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/video/riva/rivafb-i2c.c')
-rw-r--r--drivers/video/riva/rivafb-i2c.c31
1 files changed, 14 insertions, 17 deletions
diff --git a/drivers/video/riva/rivafb-i2c.c b/drivers/video/riva/rivafb-i2c.c
index ca9e7e81a9c5..bcb209670a18 100644
--- a/drivers/video/riva/rivafb-i2c.c
+++ b/drivers/video/riva/rivafb-i2c.c
@@ -88,8 +88,9 @@ static int riva_gpio_getsda(void* data)
88 return val; 88 return val;
89} 89}
90 90
91static int riva_setup_i2c_bus(struct riva_i2c_chan *chan, const char *name, 91static int __devinit riva_setup_i2c_bus(struct riva_i2c_chan *chan,
92 unsigned int i2c_class) 92 const char *name,
93 unsigned int i2c_class)
93{ 94{
94 int rc; 95 int rc;
95 96
@@ -126,10 +127,8 @@ static int riva_setup_i2c_bus(struct riva_i2c_chan *chan, const char *name,
126 return rc; 127 return rc;
127} 128}
128 129
129void riva_create_i2c_busses(struct riva_par *par) 130void __devinit riva_create_i2c_busses(struct riva_par *par)
130{ 131{
131 par->bus = 3;
132
133 par->chan[0].par = par; 132 par->chan[0].par = par;
134 par->chan[1].par = par; 133 par->chan[1].par = par;
135 par->chan[2].par = par; 134 par->chan[2].par = par;
@@ -144,24 +143,22 @@ void riva_create_i2c_busses(struct riva_par *par)
144 143
145void riva_delete_i2c_busses(struct riva_par *par) 144void riva_delete_i2c_busses(struct riva_par *par)
146{ 145{
147 if (par->chan[0].par) 146 int i;
148 i2c_del_adapter(&par->chan[0].adapter);
149 par->chan[0].par = NULL;
150
151 if (par->chan[1].par)
152 i2c_del_adapter(&par->chan[1].adapter);
153 par->chan[1].par = NULL;
154 147
155 if (par->chan[2].par) 148 for (i = 0; i < 3; i++) {
156 i2c_del_adapter(&par->chan[2].adapter); 149 if (!par->chan[i].par)
157 par->chan[2].par = NULL; 150 continue;
151 i2c_del_adapter(&par->chan[i].adapter);
152 par->chan[i].par = NULL;
153 }
158} 154}
159 155
160int riva_probe_i2c_connector(struct riva_par *par, int conn, u8 **out_edid) 156int __devinit riva_probe_i2c_connector(struct riva_par *par, int conn, u8 **out_edid)
161{ 157{
162 u8 *edid = NULL; 158 u8 *edid = NULL;
163 159
164 edid = fb_ddc_read(&par->chan[conn-1].adapter); 160 if (par->chan[conn].par)
161 edid = fb_ddc_read(&par->chan[conn].adapter);
165 162
166 if (out_edid) 163 if (out_edid)
167 *out_edid = edid; 164 *out_edid = edid;