aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ps3_gelic_net.c
diff options
context:
space:
mode:
authorMasakazu Mokuno <mokuno@sm.sony.co.jp>2008-02-07 05:58:57 -0500
committerJeff Garzik <jeff@garzik.org>2008-02-11 10:30:05 -0500
commit09dde54c6a69d4f9ea1213923b93aeae7020f8b6 (patch)
tree5db71afb05e3b69304f795b3ba167870221577e3 /drivers/net/ps3_gelic_net.c
parent589866f9f1cb14273b644993d362ec7845007f94 (diff)
PS3: gelic: Add wireless support for PS3
Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp> Acked-by: Dan Williams <dcbw@redhat.com> Acked-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/ps3_gelic_net.c')
-rw-r--r--drivers/net/ps3_gelic_net.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/drivers/net/ps3_gelic_net.c b/drivers/net/ps3_gelic_net.c
index c9dd9c0ee22..7eb6e7e848f 100644
--- a/drivers/net/ps3_gelic_net.c
+++ b/drivers/net/ps3_gelic_net.c
@@ -46,9 +46,10 @@
46#include <asm/lv1call.h> 46#include <asm/lv1call.h>
47 47
48#include "ps3_gelic_net.h" 48#include "ps3_gelic_net.h"
49#include "ps3_gelic_wireless.h"
49 50
50#define DRV_NAME "Gelic Network Driver" 51#define DRV_NAME "Gelic Network Driver"
51#define DRV_VERSION "1.1" 52#define DRV_VERSION "2.0"
52 53
53MODULE_AUTHOR("SCE Inc."); 54MODULE_AUTHOR("SCE Inc.");
54MODULE_DESCRIPTION("Gelic Network driver"); 55MODULE_DESCRIPTION("Gelic Network driver");
@@ -1154,6 +1155,12 @@ static irqreturn_t gelic_card_interrupt(int irq, void *ptr)
1154 if (status & GELIC_CARD_PORT_STATUS_CHANGED) 1155 if (status & GELIC_CARD_PORT_STATUS_CHANGED)
1155 gelic_card_get_ether_port_status(card, 1); 1156 gelic_card_get_ether_port_status(card, 1);
1156 1157
1158#ifdef CONFIG_GELIC_WIRELESS
1159 if (status & (GELIC_CARD_WLAN_EVENT_RECEIVED |
1160 GELIC_CARD_WLAN_COMMAND_COMPLETED))
1161 gelic_wl_interrupt(card->netdev[GELIC_PORT_WIRELESS], status);
1162#endif
1163
1157 return IRQ_HANDLED; 1164 return IRQ_HANDLED;
1158} 1165}
1159 1166
@@ -1635,6 +1642,12 @@ static int ps3_gelic_driver_probe(struct ps3_system_bus_device *dev)
1635 goto fail_setup_netdev; 1642 goto fail_setup_netdev;
1636 } 1643 }
1637 1644
1645#ifdef CONFIG_GELIC_WIRELESS
1646 if (gelic_wl_driver_probe(card)) {
1647 dev_dbg(&dev->core, "%s: WL init failed\n", __func__);
1648 goto fail_setup_netdev;
1649 }
1650#endif
1638 pr_debug("%s: done\n", __func__); 1651 pr_debug("%s: done\n", __func__);
1639 return 0; 1652 return 0;
1640 1653
@@ -1674,6 +1687,9 @@ static int ps3_gelic_driver_remove(struct ps3_system_bus_device *dev)
1674 struct net_device *netdev0; 1687 struct net_device *netdev0;
1675 pr_debug("%s: called\n", __func__); 1688 pr_debug("%s: called\n", __func__);
1676 1689
1690#ifdef CONFIG_GELIC_WIRELESS
1691 gelic_wl_driver_remove(card);
1692#endif
1677 /* stop interrupt */ 1693 /* stop interrupt */
1678 gelic_card_set_irq_mask(card, 0); 1694 gelic_card_set_irq_mask(card, 0);
1679 1695