Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Jean Delvare and committed by
Linus Torvalds
a65ff76a 5b358fe1

+23 -36
+7 -13
drivers/video/nvidia/nv_i2c.c
··· 127 127 128 128 void nvidia_create_i2c_busses(struct nvidia_par *par) 129 129 { 130 - par->bus = 3; 131 - 132 130 par->chan[0].par = par; 133 131 par->chan[1].par = par; 134 132 par->chan[2].par = par; ··· 143 145 144 146 void nvidia_delete_i2c_busses(struct nvidia_par *par) 145 147 { 146 - if (par->chan[0].par) 147 - i2c_del_adapter(&par->chan[0].adapter); 148 - par->chan[0].par = NULL; 148 + int i; 149 149 150 - if (par->chan[1].par) 151 - i2c_del_adapter(&par->chan[1].adapter); 152 - par->chan[1].par = NULL; 153 - 154 - if (par->chan[2].par) 155 - i2c_del_adapter(&par->chan[2].adapter); 156 - par->chan[2].par = NULL; 157 - 150 + for (i = 0; i < 3; i++) { 151 + if (!par->chan[i].par) 152 + continue; 153 + i2c_del_adapter(&par->chan[i].adapter); 154 + par->chan[i].par = NULL; 155 + } 158 156 } 159 157 160 158 int nvidia_probe_i2c_connector(struct fb_info *info, int conn, u8 **out_edid)
-2
drivers/video/nvidia/nv_type.h
··· 4 4 #include <linux/fb.h> 5 5 #include <linux/types.h> 6 6 #include <linux/i2c.h> 7 - #include <linux/i2c-id.h> 8 7 #include <linux/i2c-algo-bit.h> 9 8 10 9 #define NV_ARCH_04 0x04 ··· 99 100 u32 Architecture; 100 101 u32 CursorStart; 101 102 int Chipset; 102 - int bus; 103 103 unsigned long FbAddress; 104 104 u8 __iomem *FbStart; 105 105 u32 FbMapSize;
+2 -2
drivers/video/riva/fbdev.c
··· 1788 1788 1789 1789 NVTRACE_ENTER(); 1790 1790 riva_create_i2c_busses(par); 1791 - for (i = 0; i < par->bus; i++) { 1791 + for (i = 0; i < 3; i++) { 1792 1792 if (!par->chan[i].par) 1793 1793 continue; 1794 - riva_probe_i2c_connector(par, i+1, &par->EDID); 1794 + riva_probe_i2c_connector(par, i, &par->EDID); 1795 1795 if (par->EDID && !fb_parse_edid(par->EDID, &var)) { 1796 1796 printk(PFX "Found EDID Block from BUS %i\n", i); 1797 1797 break;
+14 -17
drivers/video/riva/rivafb-i2c.c
··· 88 88 return val; 89 89 } 90 90 91 - static int riva_setup_i2c_bus(struct riva_i2c_chan *chan, const char *name, 92 - unsigned int i2c_class) 91 + static int __devinit riva_setup_i2c_bus(struct riva_i2c_chan *chan, 92 + const char *name, 93 + unsigned int i2c_class) 93 94 { 94 95 int rc; 95 96 ··· 127 126 return rc; 128 127 } 129 128 130 - void riva_create_i2c_busses(struct riva_par *par) 129 + void __devinit riva_create_i2c_busses(struct riva_par *par) 131 130 { 132 - par->bus = 3; 133 - 134 131 par->chan[0].par = par; 135 132 par->chan[1].par = par; 136 133 par->chan[2].par = par; ··· 143 144 144 145 void riva_delete_i2c_busses(struct riva_par *par) 145 146 { 146 - if (par->chan[0].par) 147 - i2c_del_adapter(&par->chan[0].adapter); 148 - par->chan[0].par = NULL; 147 + int i; 149 148 150 - if (par->chan[1].par) 151 - i2c_del_adapter(&par->chan[1].adapter); 152 - par->chan[1].par = NULL; 153 - 154 - if (par->chan[2].par) 155 - i2c_del_adapter(&par->chan[2].adapter); 156 - par->chan[2].par = NULL; 149 + for (i = 0; i < 3; i++) { 150 + if (!par->chan[i].par) 151 + continue; 152 + i2c_del_adapter(&par->chan[i].adapter); 153 + par->chan[i].par = NULL; 154 + } 157 155 } 158 156 159 - int riva_probe_i2c_connector(struct riva_par *par, int conn, u8 **out_edid) 157 + int __devinit riva_probe_i2c_connector(struct riva_par *par, int conn, u8 **out_edid) 160 158 { 161 159 u8 *edid = NULL; 162 160 163 - edid = fb_ddc_read(&par->chan[conn-1].adapter); 161 + if (par->chan[conn].par) 162 + edid = fb_ddc_read(&par->chan[conn].adapter); 164 163 165 164 if (out_edid) 166 165 *out_edid = edid;
-2
drivers/video/riva/rivafb.h
··· 4 4 #include <linux/fb.h> 5 5 #include <video/vga.h> 6 6 #include <linux/i2c.h> 7 - #include <linux/i2c-id.h> 8 7 #include <linux/i2c-algo-bit.h> 9 8 10 9 #include "riva_hw.h" ··· 60 61 Bool SecondCRTC; 61 62 int FlatPanel; 62 63 struct pci_dev *pdev; 63 - int bus; 64 64 int cursor_reset; 65 65 #ifdef CONFIG_MTRR 66 66 struct { int vram; int vram_valid; } mtrr;