aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c3
-rw-r--r--drivers/i2c/busses/i2c-amd756-s4882.c6
-rw-r--r--drivers/i2c/busses/i2c-at91.c5
-rw-r--r--drivers/i2c/busses/i2c-cbus-gpio.c4
-rw-r--r--drivers/i2c/busses/i2c-intel-mid.c3
-rw-r--r--drivers/i2c/busses/i2c-mv64xxx.c5
-rw-r--r--drivers/i2c/busses/i2c-mxs.c5
-rw-r--r--drivers/i2c/busses/i2c-nforce2-s4985.c6
-rw-r--r--drivers/i2c/busses/i2c-powermac.c10
-rw-r--r--drivers/i2c/busses/i2c-puv3.c10
-rw-r--r--drivers/i2c/busses/i2c-viperboard.c5
-rw-r--r--drivers/i2c/i2c-mux.c5
-rw-r--r--drivers/media/pci/bt8xx/bttv-input.c6
-rw-r--r--drivers/media/pci/mantis/mantis_i2c.c4
-rw-r--r--drivers/net/ethernet/sfc/falcon.c6
-rw-r--r--drivers/staging/media/go7007/go7007-driver.c7
16 files changed, 29 insertions, 61 deletions
diff --git a/drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c b/drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c
index 88627e3ba1e3..1eb86c79523e 100644
--- a/drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c
+++ b/drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c
@@ -319,8 +319,7 @@ void oaktrail_hdmi_i2c_exit(struct pci_dev *dev)
319 struct hdmi_i2c_dev *i2c_dev; 319 struct hdmi_i2c_dev *i2c_dev;
320 320
321 hdmi_dev = pci_get_drvdata(dev); 321 hdmi_dev = pci_get_drvdata(dev);
322 if (i2c_del_adapter(&oaktrail_hdmi_i2c_adapter)) 322 i2c_del_adapter(&oaktrail_hdmi_i2c_adapter);
323 DRM_DEBUG_DRIVER("Failed to delete hdmi-i2c adapter\n");
324 323
325 i2c_dev = hdmi_dev->i2c_dev; 324 i2c_dev = hdmi_dev->i2c_dev;
326 kfree(i2c_dev); 325 kfree(i2c_dev);
diff --git a/drivers/i2c/busses/i2c-amd756-s4882.c b/drivers/i2c/busses/i2c-amd756-s4882.c
index 378fcb5d5783..07f01ac853ff 100644
--- a/drivers/i2c/busses/i2c-amd756-s4882.c
+++ b/drivers/i2c/busses/i2c-amd756-s4882.c
@@ -169,11 +169,7 @@ static int __init amd756_s4882_init(void)
169 } 169 }
170 170
171 /* Unregister physical bus */ 171 /* Unregister physical bus */
172 error = i2c_del_adapter(&amd756_smbus); 172 i2c_del_adapter(&amd756_smbus);
173 if (error) {
174 dev_err(&amd756_smbus.dev, "Physical bus removal failed\n");
175 goto ERROR0;
176 }
177 173
178 printk(KERN_INFO "Enabling SMBus multiplexing for Tyan S4882\n"); 174 printk(KERN_INFO "Enabling SMBus multiplexing for Tyan S4882\n");
179 /* Define the 5 virtual adapters and algorithms structures */ 175 /* Define the 5 virtual adapters and algorithms structures */
diff --git a/drivers/i2c/busses/i2c-at91.c b/drivers/i2c/busses/i2c-at91.c
index 23a1c44be340..2fcd2755233d 100644
--- a/drivers/i2c/busses/i2c-at91.c
+++ b/drivers/i2c/busses/i2c-at91.c
@@ -783,12 +783,11 @@ static int at91_twi_probe(struct platform_device *pdev)
783static int at91_twi_remove(struct platform_device *pdev) 783static int at91_twi_remove(struct platform_device *pdev)
784{ 784{
785 struct at91_twi_dev *dev = platform_get_drvdata(pdev); 785 struct at91_twi_dev *dev = platform_get_drvdata(pdev);
786 int rc;
787 786
788 rc = i2c_del_adapter(&dev->adapter); 787 i2c_del_adapter(&dev->adapter);
789 clk_disable_unprepare(dev->clk); 788 clk_disable_unprepare(dev->clk);
790 789
791 return rc; 790 return 0;
792} 791}
793 792
794#ifdef CONFIG_PM 793#ifdef CONFIG_PM
diff --git a/drivers/i2c/busses/i2c-cbus-gpio.c b/drivers/i2c/busses/i2c-cbus-gpio.c
index 98386d659318..1be13ac11dc5 100644
--- a/drivers/i2c/busses/i2c-cbus-gpio.c
+++ b/drivers/i2c/busses/i2c-cbus-gpio.c
@@ -206,7 +206,9 @@ static int cbus_i2c_remove(struct platform_device *pdev)
206{ 206{
207 struct i2c_adapter *adapter = platform_get_drvdata(pdev); 207 struct i2c_adapter *adapter = platform_get_drvdata(pdev);
208 208
209 return i2c_del_adapter(adapter); 209 i2c_del_adapter(adapter);
210
211 return 0;
210} 212}
211 213
212static int cbus_i2c_probe(struct platform_device *pdev) 214static int cbus_i2c_probe(struct platform_device *pdev)
diff --git a/drivers/i2c/busses/i2c-intel-mid.c b/drivers/i2c/busses/i2c-intel-mid.c
index 323fa018ffd5..0fb659726ffc 100644
--- a/drivers/i2c/busses/i2c-intel-mid.c
+++ b/drivers/i2c/busses/i2c-intel-mid.c
@@ -1082,8 +1082,7 @@ static void intel_mid_i2c_remove(struct pci_dev *dev)
1082{ 1082{
1083 struct intel_mid_i2c_private *mrst = pci_get_drvdata(dev); 1083 struct intel_mid_i2c_private *mrst = pci_get_drvdata(dev);
1084 intel_mid_i2c_disable(&mrst->adap); 1084 intel_mid_i2c_disable(&mrst->adap);
1085 if (i2c_del_adapter(&mrst->adap)) 1085 i2c_del_adapter(&mrst->adap);
1086 dev_err(&dev->dev, "Failed to delete i2c adapter");
1087 1086
1088 free_irq(dev->irq, mrst); 1087 free_irq(dev->irq, mrst);
1089 iounmap(mrst->base); 1088 iounmap(mrst->base);
diff --git a/drivers/i2c/busses/i2c-mv64xxx.c b/drivers/i2c/busses/i2c-mv64xxx.c
index 8b20ef8524ac..3bbd65d35a5e 100644
--- a/drivers/i2c/busses/i2c-mv64xxx.c
+++ b/drivers/i2c/busses/i2c-mv64xxx.c
@@ -701,9 +701,8 @@ static int
701mv64xxx_i2c_remove(struct platform_device *dev) 701mv64xxx_i2c_remove(struct platform_device *dev)
702{ 702{
703 struct mv64xxx_i2c_data *drv_data = platform_get_drvdata(dev); 703 struct mv64xxx_i2c_data *drv_data = platform_get_drvdata(dev);
704 int rc;
705 704
706 rc = i2c_del_adapter(&drv_data->adapter); 705 i2c_del_adapter(&drv_data->adapter);
707 free_irq(drv_data->irq, drv_data); 706 free_irq(drv_data->irq, drv_data);
708 mv64xxx_i2c_unmap_regs(drv_data); 707 mv64xxx_i2c_unmap_regs(drv_data);
709#if defined(CONFIG_HAVE_CLK) 708#if defined(CONFIG_HAVE_CLK)
@@ -715,7 +714,7 @@ mv64xxx_i2c_remove(struct platform_device *dev)
715#endif 714#endif
716 kfree(drv_data); 715 kfree(drv_data);
717 716
718 return rc; 717 return 0;
719} 718}
720 719
721static const struct of_device_id mv64xxx_i2c_of_match_table[] = { 720static const struct of_device_id mv64xxx_i2c_of_match_table[] = {
diff --git a/drivers/i2c/busses/i2c-mxs.c b/drivers/i2c/busses/i2c-mxs.c
index 120f24646696..804eb6b0a0b8 100644
--- a/drivers/i2c/busses/i2c-mxs.c
+++ b/drivers/i2c/busses/i2c-mxs.c
@@ -686,11 +686,8 @@ static int mxs_i2c_probe(struct platform_device *pdev)
686static int mxs_i2c_remove(struct platform_device *pdev) 686static int mxs_i2c_remove(struct platform_device *pdev)
687{ 687{
688 struct mxs_i2c_dev *i2c = platform_get_drvdata(pdev); 688 struct mxs_i2c_dev *i2c = platform_get_drvdata(pdev);
689 int ret;
690 689
691 ret = i2c_del_adapter(&i2c->adapter); 690 i2c_del_adapter(&i2c->adapter);
692 if (ret)
693 return -EBUSY;
694 691
695 if (i2c->dmach) 692 if (i2c->dmach)
696 dma_release_channel(i2c->dmach); 693 dma_release_channel(i2c->dmach);
diff --git a/drivers/i2c/busses/i2c-nforce2-s4985.c b/drivers/i2c/busses/i2c-nforce2-s4985.c
index 29015eb9ca46..2ca268d6140b 100644
--- a/drivers/i2c/busses/i2c-nforce2-s4985.c
+++ b/drivers/i2c/busses/i2c-nforce2-s4985.c
@@ -164,11 +164,7 @@ static int __init nforce2_s4985_init(void)
164 } 164 }
165 165
166 /* Unregister physical bus */ 166 /* Unregister physical bus */
167 error = i2c_del_adapter(nforce2_smbus); 167 i2c_del_adapter(nforce2_smbus);
168 if (error) {
169 dev_err(&nforce2_smbus->dev, "Physical bus removal failed\n");
170 goto ERROR0;
171 }
172 168
173 printk(KERN_INFO "Enabling SMBus multiplexing for Tyan S4985\n"); 169 printk(KERN_INFO "Enabling SMBus multiplexing for Tyan S4985\n");
174 /* Define the 5 virtual adapters and algorithms structures */ 170 /* Define the 5 virtual adapters and algorithms structures */
diff --git a/drivers/i2c/busses/i2c-powermac.c b/drivers/i2c/busses/i2c-powermac.c
index da54e673449d..8dc90da1e6e6 100644
--- a/drivers/i2c/busses/i2c-powermac.c
+++ b/drivers/i2c/busses/i2c-powermac.c
@@ -213,14 +213,8 @@ static const struct i2c_algorithm i2c_powermac_algorithm = {
213static int i2c_powermac_remove(struct platform_device *dev) 213static int i2c_powermac_remove(struct platform_device *dev)
214{ 214{
215 struct i2c_adapter *adapter = platform_get_drvdata(dev); 215 struct i2c_adapter *adapter = platform_get_drvdata(dev);
216 int rc; 216
217 217 i2c_del_adapter(adapter);
218 rc = i2c_del_adapter(adapter);
219 /* We aren't that prepared to deal with this... */
220 if (rc)
221 printk(KERN_WARNING
222 "i2c-powermac.c: Failed to remove bus %s !\n",
223 adapter->name);
224 memset(adapter, 0, sizeof(*adapter)); 218 memset(adapter, 0, sizeof(*adapter));
225 219
226 return 0; 220 return 0;
diff --git a/drivers/i2c/busses/i2c-puv3.c b/drivers/i2c/busses/i2c-puv3.c
index 261d7db437e2..4fd47bcd1108 100644
--- a/drivers/i2c/busses/i2c-puv3.c
+++ b/drivers/i2c/busses/i2c-puv3.c
@@ -234,21 +234,15 @@ static int puv3_i2c_remove(struct platform_device *pdev)
234{ 234{
235 struct i2c_adapter *adapter = platform_get_drvdata(pdev); 235 struct i2c_adapter *adapter = platform_get_drvdata(pdev);
236 struct resource *mem; 236 struct resource *mem;
237 int rc;
238 237
239 rc = i2c_del_adapter(adapter); 238 i2c_del_adapter(adapter);
240 if (rc) {
241 dev_err(&pdev->dev, "Adapter '%s' delete fail\n",
242 adapter->name);
243 return rc;
244 }
245 239
246 put_device(&pdev->dev); 240 put_device(&pdev->dev);
247 241
248 mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); 242 mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
249 release_mem_region(mem->start, resource_size(mem)); 243 release_mem_region(mem->start, resource_size(mem));
250 244
251 return rc; 245 return 0;
252} 246}
253 247
254#ifdef CONFIG_PM 248#ifdef CONFIG_PM
diff --git a/drivers/i2c/busses/i2c-viperboard.c b/drivers/i2c/busses/i2c-viperboard.c
index f45c32c1ace6..c68450cd8d5f 100644
--- a/drivers/i2c/busses/i2c-viperboard.c
+++ b/drivers/i2c/busses/i2c-viperboard.c
@@ -421,11 +421,10 @@ error:
421static int vprbrd_i2c_remove(struct platform_device *pdev) 421static int vprbrd_i2c_remove(struct platform_device *pdev)
422{ 422{
423 struct vprbrd_i2c *vb_i2c = platform_get_drvdata(pdev); 423 struct vprbrd_i2c *vb_i2c = platform_get_drvdata(pdev);
424 int ret;
425 424
426 ret = i2c_del_adapter(&vb_i2c->i2c); 425 i2c_del_adapter(&vb_i2c->i2c);
427 426
428 return ret; 427 return 0;
429} 428}
430 429
431static struct platform_driver vprbrd_i2c_driver = { 430static struct platform_driver vprbrd_i2c_driver = {
diff --git a/drivers/i2c/i2c-mux.c b/drivers/i2c/i2c-mux.c
index d94e0ce78277..361b78d76759 100644
--- a/drivers/i2c/i2c-mux.c
+++ b/drivers/i2c/i2c-mux.c
@@ -194,11 +194,8 @@ EXPORT_SYMBOL_GPL(i2c_add_mux_adapter);
194int i2c_del_mux_adapter(struct i2c_adapter *adap) 194int i2c_del_mux_adapter(struct i2c_adapter *adap)
195{ 195{
196 struct i2c_mux_priv *priv = adap->algo_data; 196 struct i2c_mux_priv *priv = adap->algo_data;
197 int ret;
198 197
199 ret = i2c_del_adapter(adap); 198 i2c_del_adapter(adap);
200 if (ret < 0)
201 return ret;
202 kfree(priv); 199 kfree(priv);
203 200
204 return 0; 201 return 0;
diff --git a/drivers/media/pci/bt8xx/bttv-input.c b/drivers/media/pci/bt8xx/bttv-input.c
index 04207a799055..f42d26d7ed78 100644
--- a/drivers/media/pci/bt8xx/bttv-input.c
+++ b/drivers/media/pci/bt8xx/bttv-input.c
@@ -413,10 +413,10 @@ void init_bttv_i2c_ir(struct bttv *btv)
413 413
414int fini_bttv_i2c(struct bttv *btv) 414int fini_bttv_i2c(struct bttv *btv)
415{ 415{
416 if (0 != btv->i2c_rc) 416 if (btv->i2c_rc == 0)
417 return 0; 417 i2c_del_adapter(&btv->c.i2c_adap);
418 418
419 return i2c_del_adapter(&btv->c.i2c_adap); 419 return 0;
420} 420}
421 421
422int bttv_input_init(struct bttv *btv) 422int bttv_input_init(struct bttv *btv)
diff --git a/drivers/media/pci/mantis/mantis_i2c.c b/drivers/media/pci/mantis/mantis_i2c.c
index 937fb9d50213..895ddba3c0fb 100644
--- a/drivers/media/pci/mantis/mantis_i2c.c
+++ b/drivers/media/pci/mantis/mantis_i2c.c
@@ -261,6 +261,8 @@ int mantis_i2c_exit(struct mantis_pci *mantis)
261 mmwrite((intmask & ~MANTIS_INT_I2CDONE), MANTIS_INT_MASK); 261 mmwrite((intmask & ~MANTIS_INT_I2CDONE), MANTIS_INT_MASK);
262 262
263 dprintk(MANTIS_DEBUG, 1, "Removing I2C adapter"); 263 dprintk(MANTIS_DEBUG, 1, "Removing I2C adapter");
264 return i2c_del_adapter(&mantis->adapter); 264 i2c_del_adapter(&mantis->adapter);
265
266 return 0;
265} 267}
266EXPORT_SYMBOL_GPL(mantis_i2c_exit); 268EXPORT_SYMBOL_GPL(mantis_i2c_exit);
diff --git a/drivers/net/ethernet/sfc/falcon.c b/drivers/net/ethernet/sfc/falcon.c
index 49bcd196e10d..defed0eda820 100644
--- a/drivers/net/ethernet/sfc/falcon.c
+++ b/drivers/net/ethernet/sfc/falcon.c
@@ -1528,7 +1528,7 @@ static int falcon_probe_nic(struct efx_nic *efx)
1528 return 0; 1528 return 0;
1529 1529
1530 fail6: 1530 fail6:
1531 BUG_ON(i2c_del_adapter(&board->i2c_adap)); 1531 i2c_del_adapter(&board->i2c_adap);
1532 memset(&board->i2c_adap, 0, sizeof(board->i2c_adap)); 1532 memset(&board->i2c_adap, 0, sizeof(board->i2c_adap));
1533 fail5: 1533 fail5:
1534 efx_nic_free_buffer(efx, &efx->irq_status); 1534 efx_nic_free_buffer(efx, &efx->irq_status);
@@ -1665,13 +1665,11 @@ static void falcon_remove_nic(struct efx_nic *efx)
1665{ 1665{
1666 struct falcon_nic_data *nic_data = efx->nic_data; 1666 struct falcon_nic_data *nic_data = efx->nic_data;
1667 struct falcon_board *board = falcon_board(efx); 1667 struct falcon_board *board = falcon_board(efx);
1668 int rc;
1669 1668
1670 board->type->fini(efx); 1669 board->type->fini(efx);
1671 1670
1672 /* Remove I2C adapter and clear it in preparation for a retry */ 1671 /* Remove I2C adapter and clear it in preparation for a retry */
1673 rc = i2c_del_adapter(&board->i2c_adap); 1672 i2c_del_adapter(&board->i2c_adap);
1674 BUG_ON(rc);
1675 memset(&board->i2c_adap, 0, sizeof(board->i2c_adap)); 1673 memset(&board->i2c_adap, 0, sizeof(board->i2c_adap));
1676 1674
1677 efx_nic_free_buffer(efx, &efx->irq_status); 1675 efx_nic_free_buffer(efx, &efx->irq_status);
diff --git a/drivers/staging/media/go7007/go7007-driver.c b/drivers/staging/media/go7007/go7007-driver.c
index 66950916df23..6f83c52a0b52 100644
--- a/drivers/staging/media/go7007/go7007-driver.c
+++ b/drivers/staging/media/go7007/go7007-driver.c
@@ -647,11 +647,8 @@ EXPORT_SYMBOL(go7007_alloc);
647void go7007_remove(struct go7007 *go) 647void go7007_remove(struct go7007 *go)
648{ 648{
649 if (go->i2c_adapter_online) { 649 if (go->i2c_adapter_online) {
650 if (i2c_del_adapter(&go->i2c_adapter) == 0) 650 i2c_del_adapter(&go->i2c_adapter);
651 go->i2c_adapter_online = 0; 651 go->i2c_adapter_online = 0;
652 else
653 v4l2_err(&go->v4l2_dev,
654 "error removing I2C adapter!\n");
655 } 652 }
656 653
657 if (go->audio_enabled) 654 if (go->audio_enabled)