summaryrefslogtreecommitdiffstats
path: root/drivers/net/ps3_gelic_net.c
Commit message (Collapse)AuthorAgeFilesLines
* ps3: gelic: updown_lock semaphore to mutexDaniel Walker2008-05-311-5/+5
| | | | | Signed-off-by: Daniel Walker <dwalker@mvista.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* [POWERPC] PS3: Gelic network driver Wake-on-LAN supportMasakazu Mokuno2008-04-011-0/+81
| | | | | | | | | Add Wake-on-LAN support to the PS3 Gelic network driver. Other OS WOL support was introduced in PS3 system firmware 2.20. Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp> Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
* PS3: gelic: Add wireless support for PS3Masakazu Mokuno2008-02-111-1/+17
| | | | | | | 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>
* PS3: gelic: Add support for dual network interfaceMasakazu Mokuno2008-02-111-294/+471
| | | | | | | | | | | | | | | | | | | | | | | | | Add support for dual network (net_device) interface so that ethernet and wireless can own separate ethX interfaces. V2 - Fix the bug that bringing down and up the interface keeps rx disabled. - Make 'gelic_net_poll_controller()' extern , as David Woodhouse pointed out at the previous submission. - Fix weird usage of member names for the rx descriptor chain V1 - Export functions which are convenient for both interfaces - Move irq allocation/release code to driver probe/remove handlers because interfaces share interrupts. - Allocate skbs by using dev_alloc_skb() instead of netdev_alloc_skb() as the interfaces share the hardware rx queue. - Add gelic_port struct in order to abstract dual interface handling - Change handlers for hardware queues so that they can handle dual {source,destination} interfaces. - Use new NAPI functions This is a prerequisite for the new PS3 wireless support. Signed-off-by: Jeff Garzik <jeff@garzik.org>
* PS3: gelic: add support for port link statusMasakazu Mokuno2008-02-111-27/+50
| | | | | | | Add support for interrupt driven port link status detection. Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* PS3: gelic: remove duplicated ethtool handlersMasakazu Mokuno2008-02-111-40/+3Star
| | | | | | | | Remove some ethtool handlers, which duplicate functionality that was already provided by the common ethtool handlers. Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* PS3: gelic: code cleanupMasakazu Mokuno2008-02-111-236/+228Star
| | | | | | | | | | | | | | Code cleanup: - Use appropriate prefixes for names instead of fixed 'gelic_net' so that objects of the functions, variables and constants can be estimated. - Remove definitions for IPSec offload to the gelic hardware. This functionality is never supported on PS3. - Group constants with enum. - Use bitwise constants for interrupt status, instead of bit numbers to eliminate shift operations. - Style fixes. Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* PS3: gelic: Add endianness macrosMasakazu Mokuno2008-02-111-31/+39
| | | | | | | | | | Mark the members of the structure for DMA descriptors with proper endian annotations and use the appropriate accessor macros. As the gelic driver works only on PS3, all these macros will be expanded to null. Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* PS3: gelic: Fix the wrong dev_id passedMasakazu Mokuno2008-02-111-1/+1
| | | | | | | | The device id for lv1_net_set_interrupt_status_indicator() is wrong. This path would be invoked only in the case of an initialization failure. Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [POWERPC] PS3: Make bus_id and dev_id u64Geert Uytterhoeven2008-01-251-2/+2
| | | | | | | | | | Change the PS3 bus_id and dev_id from type unsigned int to u64. These IDs are 64-bit in the repository, and the special storage notification device has a device ID of ULONG_MAX. Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
* [NET]: Introduce and use print_mac() and DECLARE_MAC_BUF()Joe Perches2007-10-111-4/+3Star
| | | | | | | This is nicer than the MAC_FMT stuff. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* [NET]: Nuke SET_MODULE_OWNER macro.Ralf Baechle2007-10-111-1/+0Star
| | | | | | | | | | | | It's been a useless no-op for long enough in 2.6 so I figured it's time to remove it. The number of people that could object because they're maintaining unified 2.4 and 2.6 drivers is probably rather small. [ Handled drivers added by netdev tree and some missed IRDA cases... -DaveM ] Signed-off-by: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Jeff Garzik <jeff@garzik.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* PS3: Remove the workaround no longer neededMasakazu Mokuno2007-10-111-12/+4Star
| | | | | | | | | Removed the workaround that was needed for PS3 firmware versions prior to the first release. Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp> CC: Geoff Levand <geoffrey.levand@am.sony.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* PS3: changed the way to handle tx skbsMasakazu Mokuno2007-10-111-77/+63Star
| | | | | | | | | | | | | | | | | | | | | The PS3 virtual network device requires a vlan tag in the sending packet to select the destination device, ethernet port or wireless. As the vlan tag field is in the middle of the passed data, we should insert it into the packet data. To avoid copying much of the packet data, the driver used two tx descriptors for one tx skb; one descriptor was for sending a small static buffer which contained vlan tag and copied header (two mac addresses), one was for the residual data after the vlan field. This patch changes the way to insert the vlan tag. By changing netdev->hard_header_len, we can make the headroom for moving mac address fields in the skb buffer. Then we can send one tx skb with one tx descriptor. This also gives us a tx throughut gain of approx. 20% according to netperf results. Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp> CC: Geoff Levand <geoffrey.levand@am.sony.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [NET]: Make NAPI polling independent of struct net_device objects.Stephen Hemminger2007-10-111-25/+20Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Several devices have multiple independant RX queues per net device, and some have a single interrupt doorbell for several queues. In either case, it's easier to support layouts like that if the structure representing the poll is independant from the net device itself. The signature of the ->poll() call back goes from: int foo_poll(struct net_device *dev, int *budget) to int foo_poll(struct napi_struct *napi, int budget) The caller is returned the number of RX packets processed (or the number of "NAPI credits" consumed if you want to get abstract). The callee no longer messes around bumping dev->quota, *budget, etc. because that is all handled in the caller upon return. The napi_struct is to be embedded in the device driver private data structures. Furthermore, it is the driver's responsibility to disable all NAPI instances in it's ->stop() device close handler. Since the napi_struct is privatized into the driver's private data structures, only the driver knows how to get at all of the napi_struct instances it may have per-device. With lots of help and suggestions from Rusty Russell, Roland Dreier, Michael Chan, Jeff Garzik, and Jamal Hadi Salim. Bug fixes from Thomas Graf, Roland Dreier, Peter Zijlstra, Joseph Fannin, Scott Wood, Hans J. Koch, and Michael Chan. [ Ported to current tree and all drivers converted. Integrated Stephen's follow-on kerneldoc additions, and restored poll_list handling to the old style to fix mutual exclusion issues. -DaveM ] Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* PS3: fix the bug that 'ifconfig down' would hangMasakazu Mokuno2007-08-311-1/+0Star
| | | | | | | | | | | Fix the bug that 'ifconfig eth0 down' would hang up, reported by Stefan Assmann <sassmann@suse.de>. As we removed netif_poll_enable() from dev->open(), we should not use netif_poll_disable() in dev->stop(). Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp> CC: Geoff Levand <geoffrey.levand@am.sony.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* ps3: reduce allocation size of rx skb buffersMasakazu Mokuno2007-07-241-8/+37
| | | | | | | | Reduced allocation size for rx skb buffers, from 2308 bytes to 1356 per buffer. Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* ps3: fix rare issue that reenabling rx DMA failsMasakazu Mokuno2007-07-241-2/+7
| | | | | | | | | | | | | | Fixed rare issue that 'lv1_net_start_rx_dma failed, status=-9" was shown in dmesg. This meant restarting rx DMA had been rejected by the hypervisor. This issue would caused if the guest os requested starting DMA when the hypervisor thought the DMA was in progress. The state machine for DMA status of the hypervisor would be updated by processing interrupt in the hypervisor. Thus we should wait for the interrupt delivery before restarting DMA. Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* ps3: removed calling netif_poll_enable() in open()Masakazu Mokuno2007-07-241-1/+0Star
| | | | | | | Removed use of netif_poll_enable() in open function. Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* ps3: use ethX as the name of irqMasakazu Mokuno2007-07-241-1/+1
| | | | | | | Use net_device name for registration of irq as many network drivers do. Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* ps3: use net_device_stats of net_device structureMasakazu Mokuno2007-07-241-23/+8Star
| | | | | | | | Removed the statistics information from private structre. Instead, use net_device_stats in net_device structure. Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* ps3: removed conditional ethtool supportMasakazu Mokuno2007-07-241-4/+0Star
| | | | | | | Removed conditional ethtool support. Always enabled. Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* ps3: tx descriptor handling cleanupMasakazu Mokuno2007-07-241-53/+71
| | | | | | | | | | | | | | | | gelic: TX descriptor handling cleanup - Emitted return value of NETDEV_TX_LOCKED when DMA map or kick failure. Now it would free the skb, update drop packet statistics and return OK. Requested from Jeff Garzik. - Enable tx queue if number of free descriptors are more than 2 - Fixed descriptor leak if dma map for second descriptor failed - Stopped calling xmit handler from interrupt handler in order to recheck tx queue. Instead, call appropriate helper functions. Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* ps3: some minor cleanupsMasakazu Mokuno2007-07-241-2/+3
| | | | | | | | | - Removed the embarrassing definition which was used in only one place. - Fixed wrong initialization of dmac_cmd_status. Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* ps3: fix wrong calculation of rx descriptor addressMasakazu Mokuno2007-07-241-1/+1
| | | | | | | | Fixed the bug that calculation of the address of rx descriptor was wrong. Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* ps3: gigabit ethernet driver for PS3, take3Masakazu Mokuno2007-07-101-0/+1576
Hi, This is the third submission of the network driver for PS3. The differences from the previous one are: - renamed source file names so that their prefix can match with the module name - added cbe-oss-dev@ozlabs.org line for MAINTAINER file - changed some in copyright comments If there are no more comments, please apply for 2.6.23. Thank you -- Subject: PS3: Ethernet driver From: Masakazu Mokuno <mokuno@sm.sony.co.jp> Add Gigabit Ethernet support for the PS3 game console. The module will be called ps3_gelic. CC: Geoff Levand <geoffrey.levand@am.sony.com> Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp> Signed-off-by: Jeff Garzik <jeff@garzik.org>