diff options
author | Jean Delvare <khali@linux-fr.org> | 2007-07-01 17:37:51 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-07-18 13:24:34 -0400 |
commit | 7e520d09f1a4b3da1d09a4540e3f4fa852658a0d (patch) | |
tree | 5a0b57aa67417c030043c6225b0e3c7ee361293a /drivers/media/video/cx88/cx88-vp3054-i2c.c | |
parent | 4de7bb44cc6aa6e0a74f80c628f600da5b8fcd47 (diff) |
V4L/DVB (5815): Cx88: i2c structure templates clean-up
Clean up the use of structure templates in cx88-i2c and cx88-vp3054-i2c.
For one thing, a real template is supposed to be read-only. And in some
cases it's more efficient to initialize the few fields we need
individually.
This clean-up shrinks cx88-i2c.o by 33% and cx88-vp3054-i2c.o by 49%
(x86_64).
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/cx88/cx88-vp3054-i2c.c')
-rw-r--r-- | drivers/media/video/cx88/cx88-vp3054-i2c.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/drivers/media/video/cx88/cx88-vp3054-i2c.c b/drivers/media/video/cx88/cx88-vp3054-i2c.c index 82bc3a28aa22..cd0877636a32 100644 --- a/drivers/media/video/cx88/cx88-vp3054-i2c.c +++ b/drivers/media/video/cx88/cx88-vp3054-i2c.c | |||
@@ -94,7 +94,7 @@ static int vp3054_bit_getsda(void *data) | |||
94 | 94 | ||
95 | /* ----------------------------------------------------------------------- */ | 95 | /* ----------------------------------------------------------------------- */ |
96 | 96 | ||
97 | static struct i2c_algo_bit_data vp3054_i2c_algo_template = { | 97 | static const struct i2c_algo_bit_data vp3054_i2c_algo_template = { |
98 | .setsda = vp3054_bit_setsda, | 98 | .setsda = vp3054_bit_setsda, |
99 | .setscl = vp3054_bit_setscl, | 99 | .setscl = vp3054_bit_setscl, |
100 | .getsda = vp3054_bit_getsda, | 100 | .getsda = vp3054_bit_getsda, |
@@ -105,12 +105,6 @@ static struct i2c_algo_bit_data vp3054_i2c_algo_template = { | |||
105 | 105 | ||
106 | /* ----------------------------------------------------------------------- */ | 106 | /* ----------------------------------------------------------------------- */ |
107 | 107 | ||
108 | static struct i2c_adapter vp3054_i2c_adap_template = { | ||
109 | .name = "cx2388x", | ||
110 | .owner = THIS_MODULE, | ||
111 | .id = I2C_HW_B_CX2388x, | ||
112 | }; | ||
113 | |||
114 | int vp3054_i2c_probe(struct cx8802_dev *dev) | 108 | int vp3054_i2c_probe(struct cx8802_dev *dev) |
115 | { | 109 | { |
116 | struct cx88_core *core = dev->core; | 110 | struct cx88_core *core = dev->core; |
@@ -125,8 +119,6 @@ int vp3054_i2c_probe(struct cx8802_dev *dev) | |||
125 | return -ENOMEM; | 119 | return -ENOMEM; |
126 | vp3054_i2c = dev->card_priv; | 120 | vp3054_i2c = dev->card_priv; |
127 | 121 | ||
128 | memcpy(&vp3054_i2c->adap, &vp3054_i2c_adap_template, | ||
129 | sizeof(vp3054_i2c->adap)); | ||
130 | memcpy(&vp3054_i2c->algo, &vp3054_i2c_algo_template, | 122 | memcpy(&vp3054_i2c->algo, &vp3054_i2c_algo_template, |
131 | sizeof(vp3054_i2c->algo)); | 123 | sizeof(vp3054_i2c->algo)); |
132 | 124 | ||
@@ -135,6 +127,8 @@ int vp3054_i2c_probe(struct cx8802_dev *dev) | |||
135 | vp3054_i2c->adap.dev.parent = &dev->pci->dev; | 127 | vp3054_i2c->adap.dev.parent = &dev->pci->dev; |
136 | strlcpy(vp3054_i2c->adap.name, core->name, | 128 | strlcpy(vp3054_i2c->adap.name, core->name, |
137 | sizeof(vp3054_i2c->adap.name)); | 129 | sizeof(vp3054_i2c->adap.name)); |
130 | vp3054_i2c->adap.owner = THIS_MODULE; | ||
131 | vp3054_i2c->adap.id = I2C_HW_B_CX2388x; | ||
138 | vp3054_i2c->algo.data = dev; | 132 | vp3054_i2c->algo.data = dev; |
139 | i2c_set_adapdata(&vp3054_i2c->adap, dev); | 133 | i2c_set_adapdata(&vp3054_i2c->adap, dev); |
140 | vp3054_i2c->adap.algo_data = &vp3054_i2c->algo; | 134 | vp3054_i2c->adap.algo_data = &vp3054_i2c->algo; |