Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / drivers / net / irda / sa1100_ir.c
index 8d34ac6..f530686 100644 (file)
@@ -29,7 +29,7 @@
 #include <linux/rtnetlink.h>
 #include <linux/interrupt.h>
 #include <linux/delay.h>
-#include <linux/device.h>
+#include <linux/platform_device.h>
 #include <linux/dma-mapping.h>
 
 #include <net/irda/irda.h>
@@ -291,12 +291,12 @@ static void sa1100_irda_shutdown(struct sa1100_irda *si)
 /*
  * Suspend the IrDA interface.
  */
-static int sa1100_irda_suspend(struct device *_dev, pm_message_t state, u32 level)
+static int sa1100_irda_suspend(struct platform_device *pdev, pm_message_t state)
 {
-       struct net_device *dev = dev_get_drvdata(_dev);
+       struct net_device *dev = platform_get_drvdata(pdev);
        struct sa1100_irda *si;
 
-       if (!dev || level != SUSPEND_DISABLE)
+       if (!dev)
                return 0;
 
        si = dev->priv;
@@ -316,12 +316,12 @@ static int sa1100_irda_suspend(struct device *_dev, pm_message_t state, u32 leve
 /*
  * Resume the IrDA interface.
  */
-static int sa1100_irda_resume(struct device *_dev, u32 level)
+static int sa1100_irda_resume(struct platform_device *pdev)
 {
-       struct net_device *dev = dev_get_drvdata(_dev);
+       struct net_device *dev = platform_get_drvdata(pdev);
        struct sa1100_irda *si;
 
-       if (!dev || level != RESUME_ENABLE)
+       if (!dev)
                return 0;
 
        si = dev->priv;
@@ -695,8 +695,7 @@ static int sa1100_irda_hard_xmit(struct sk_buff *skb, struct net_device *dev)
                /*
                 * We must not be transmitting...
                 */
-               if (si->txskb)
-                       BUG();
+               BUG_ON(si->txskb);
 
                netif_stop_queue(dev);
 
@@ -886,9 +885,8 @@ static int sa1100_irda_init_iobuf(iobuff_t *io, int size)
        return io->head ? 0 : -ENOMEM;
 }
 
-static int sa1100_irda_probe(struct device *_dev)
+static int sa1100_irda_probe(struct platform_device *pdev)
 {
-       struct platform_device *pdev = to_platform_device(_dev);
        struct net_device *dev;
        struct sa1100_irda *si;
        unsigned int baudrate_mask;
@@ -967,7 +965,7 @@ static int sa1100_irda_probe(struct device *_dev)
 
        err = register_netdev(dev);
        if (err == 0)
-               dev_set_drvdata(&pdev->dev, dev);
+               platform_set_drvdata(pdev, dev);
 
        if (err) {
  err_mem_5:
@@ -985,9 +983,9 @@ static int sa1100_irda_probe(struct device *_dev)
        return err;
 }
 
-static int sa1100_irda_remove(struct device *_dev)
+static int sa1100_irda_remove(struct platform_device *pdev)
 {
-       struct net_device *dev = dev_get_drvdata(_dev);
+       struct net_device *dev = platform_get_drvdata(pdev);
 
        if (dev) {
                struct sa1100_irda *si = dev->priv;
@@ -1004,13 +1002,14 @@ static int sa1100_irda_remove(struct device *_dev)
        return 0;
 }
 
-static struct device_driver sa1100ir_driver = {
-       .name           = "sa11x0-ir",
-       .bus            = &platform_bus_type,
+static struct platform_driver sa1100ir_driver = {
        .probe          = sa1100_irda_probe,
        .remove         = sa1100_irda_remove,
        .suspend        = sa1100_irda_suspend,
        .resume         = sa1100_irda_resume,
+       .driver         = {
+               .name   = "sa11x0-ir",
+       },
 };
 
 static int __init sa1100_irda_init(void)
@@ -1023,12 +1022,12 @@ static int __init sa1100_irda_init(void)
        if (power_level > 3)
                power_level = 3;
 
-       return driver_register(&sa1100ir_driver);
+       return platform_driver_register(&sa1100ir_driver);
 }
 
 static void __exit sa1100_irda_exit(void)
 {
-       driver_unregister(&sa1100ir_driver);
+       platform_driver_unregister(&sa1100ir_driver);
 }
 
 module_init(sa1100_irda_init);