summaryrefslogtreecommitdiffstats
path: root/drivers/net/sis190.c
Commit message (Collapse)AuthorAgeFilesLines
* netdev: convert bulk of drivers to netdev_tx_tStephen Hemminger2009-09-011-1/+2
| | | | | | | | | | | | In a couple of cases collapse some extra code like: int retval = NETDEV_TX_OK; ... return retval; into return NETDEV_TX_OK; Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* sis190: use an adequate phy list entry as a fallbackfrançois romieu2009-06-181-1/+1
| | | | | | | | | | When sis190 driver is trying to get default phy, if it doesn't find home or lan phy, it falls back to the first phy in the phy list but list_entry() points to a bogus entry. list_first_entry() should be used instead. Signed-off-by: Arnaud Patard <apatard@mandriva.com> Acked-off-by: Francois Romieu <romieu@fr.zoreil.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* sis190: fix gigabit negotiationRiccardo Ghetta2009-06-081-12/+25
| | | | | | | | | | | | Fixes an initialization error; the chip negotiates gigabit, but the driver mistakenly handled it as 100Mb. Changes based on both SiS own GPL driver and forcedeth. Hopefully should fix http://bugzilla.kernel.org/show_bug.cgi?id=9735 http://bugzilla.kernel.org/show_bug.cgi?id=11149 Signed-off-by: Riccardo Ghetta <birrachiara@tin.it> Signed-off-by: David S. Miller <davem@davemloft.net>
* sis190: add new phy found on asus F5Sr laptopRiccardo Ghetta2009-06-081-0/+1
| | | | | Signed-off-by: Riccardo Ghetta <birrachiara@tin.it> Signed-off-by: David S. Miller <davem@davemloft.net>
* sis190: better message on unknown PHYRiccardo Ghetta2009-06-081-6/+9
| | | | | Signed-off-by: Riccardo Ghetta <birrachiara@tin.it> Signed-off-by: David S. Miller <davem@davemloft.net>
* sis190: fix for x86_64 (bug 11509)Riccardo Ghetta2009-06-081-2/+2
| | | | | | | | | | | Corrected dma sync handling on small packets. Should fix http://bugzilla.kernel.org/show_bug.cgi?id=11509 Note: While this bug was reported only on x86_64, it could have affected any architecture. Signed-off-by: Riccardo Ghetta <birrachiara@tin.it> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: dont update dev->trans_startEric Dumazet2009-05-291-2/+0Star
| | | | | | | | | | | | | Second round of drivers for Gb cards (and NIU one I forgot in the 10GB round) Now that core network takes care of trans_start updates, dont do it in drivers themselves, if possible. Drivers can avoid one cache miss (on dev->trans_start) in their start_xmit() handler. Exceptions are NETIF_F_LLTX drivers Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32)Yang Hongyang2009-04-071-1/+1
| | | | | | | | Replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) Signed-off-by: Yang Hongyang<yanghy@cn.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* sis190: update to net_device_opsStephen Hemminger2009-01-081-10/+18
| | | | | Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* drivers/net: Kill now superfluous ->last_rx stores.David S. Miller2008-11-041-1/+0Star
| | | | | | | | | | | | | The generic packet receive code takes care of setting netdev->last_rx when necessary, for the sake of the bonding ARP monitor. Drivers need not do it any more. Some cases had to be skipped over because the drivers were making use of the ->last_rx value themselves. Signed-off-by: David S. Miller <davem@davemloft.net>
* net: convert print_mac to %pMJohannes Berg2008-10-281-4/+2Star
| | | | | | | | | | | | This converts pretty much everything to print_mac. There were a few things that had conflicts which I have just dropped for now, no harm done. I've built an allyesconfig with this and looked at the files that weren't built very carefully, but it's a huge patch. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* sis190: add identifier for Atheros AR8021 PHYFrancois Romieu2008-10-221-0/+1
| | | | | | | | | | Fixes http://bugzilla.kernel.org/show_bug.cgi?id=10994 Contributed by pablomme@googlemail.com, coenraad@wish.org.za and a few others. Signed-off-by: Francois Romieu <romieu@fr.zoreil.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* [netdrvr] Trim trailing whitespace for several driversJeff Garzik2008-05-131-1/+1
| | | | Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sis190: account for Tx errorsFrancois Romieu2008-04-271-3/+35
| | | | | | Update the collision counter as well. Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
* sis190: remove needless MII resetFrancois Romieu2008-04-271-3/+2Star
| | | | | | | | | It does not help the auto-negotiation process to settle. Added a debug message to give some hindsight when things do not work as expected. Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
* sis190: Rx path updateFrancois Romieu2008-04-271-26/+28
| | | | | | | | | | | | | - remove the function pointer to help gcc optimizing the inline pci_dma functions - pci_dma_sync_single_for_cpu is not needed for a single large packet - convert rtl8169_try_rx_copy to bool b449655ff52ff8a29c66c5fc3fc03617e61182ee did the same for the r8169 driver. Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
* sis190: use netdev_alloc_skbStephen Hemminger2008-04-271-13/+13
| | | | | | | This sets skb->dev and allows arch specific allocation. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Acked-by: Francois Romieu <romieu@fr.zoreil.com>
* sis190: hard-code the alignment of tiny packetsStephen Hemminger2008-04-271-2/+2
| | | | | | | There is no DMA involved here. Align the IP header without condition. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Acked-by: Francois Romieu <romieu@fr.zoreil.com>
* sis190: use the allocated buffer as a status code in sis190_alloc_rx_skbStephen Hemminger2008-04-271-22/+15Star
| | | | | | | The local status code does not carry mory information. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Acked-by: Francois Romieu <romieu@fr.zoreil.com>
* sis190: read the mac address from the eeprom firstFrancois Romieu2008-02-241-5/+10
| | | | | | | | | | | Reading a serie of zero from the cmos sram area do not work well with is_valid_ether_addr(). Let's read the mac address from the eeprom first as it seems more reliable. Fix for http://bugzilla.kernel.org/show_bug.cgi?id=9831 Signed-off-by: Francois Romieu <romieu@fr.zoreil.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* drivers/net/sis190: fix section mismatch warning in sis190_get_mac_addrSergio Luis2008-02-111-1/+2
| | | | | | | | | | | | | | Fix following warnings: WARNING: drivers/net/sis190.o(.text+0x103): Section mismatch in reference from the function sis190_get_mac_addr() to the function .devinit.text:sis190_get_mac_addr_from_apc() WARNING: drivers/net/sis190.o(.text+0x10e): Section mismatch in reference from the function sis190_get_mac_addr() to the function .devinit.text:sis190_get_mac_addr_from_eeprom() Annotate sis190_get_mac_addr() with __devinit. Signed-off-by: Sergio Luis <sergio@uece.br> sis190.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [netdrvr] sis190: build fixJeff Garzik2008-02-031-1/+1
| | | | | | | Fix PCI table section type conflict, by removing __devinitdata. Signed-off-by: Jeff Garzik <jgarzik@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* sis190: scheduling while atomic errorFrancois Romieu2008-01-231-2/+0Star
| | | | | | | | | | | | | sis190_tx_timeout -> sis190_hw_start -> sis190_soft_reset -> msleep *splat* PCI transactions are correctly flushed here. The msleep() is probably useless. Signed-off-by: Francois Romieu <romieu@fr.zoreil.com> Cc: K.M. Liu <kmliu@sis.com.tw>
* sis190: mdio operation failure is not correctly detectedFrancois Romieu2008-01-231-1/+1
| | | | | | | | | i ranges from 0 to 100 in the 'for' loop a few lines above. Reported by davem. Signed-off-by: Francois Romieu <romieu@fr.zoreil.com> Cc: K.M. Liu <kmliu@sis.com.tw>
* sis190: remove duplicate INIT_WORKFrancois Romieu2008-01-231-2/+0Star
| | | | | | | It is already done in sis190_init_one. Signed-off-by: Francois Romieu <romieu@fr.zoreil.com> Cc: K.M. Liu <kmliu@sis.com.tw>
* sis190: add cmos ram access code for the SiS19x/968 chipset pairFrancois Romieu2008-01-231-6/+9
| | | | | | | | | | | | | | | | | More work is needed to handle correctly the PHY of the new devices when connected to a 10Mb link but this change already helps some users as is. Fix for: http://bugzilla.kernel.org/show_bug.cgi?id=9467 Signed-off-by: Francois Romieu <romieu@fr.zoreil.com> Cc: K.M. Liu <kmliu@sis.com.tw> Cc: J. Gleacher <jgleacher@yahoo.com> Cc: Alexandre Penasso Teixeira <alexandre@keepsoftware.com> Cc: Arliton Rocha <arliton@gmail.com> Cc: Juan Jose Pablos <juanjo@apertus.es> Cc: Wipat Srutiprom <wipat.s@psu.ac.th>
* sis190 endiannessAl Viro2007-12-171-4/+4
| | | | | | | | | Check in sis190_rx_interrupt() is broken on big-endian (desc->status is little-endian and everything else actually uses it correctly, including other checks for OWNbit. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* drivers/net/sis190.c section fixAdrian Bunk2007-12-141-1/+1
| | | | | | | | | | | | | | | This patch fixes the following section mismatch with CONFIG_HOTPLUG=n: <-- snip --> ... WARNING: vmlinux.o(.init.text.20+0x4cb25): Section mismatch: reference to .exit.text:sis190_mii_remove (between 'sis190_init_one' and 'read_eeprom') ... <-- snip --> Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [NET]: Introduce and use print_mac() and DECLARE_MAC_BUF()Joe Perches2007-10-111-6/+4Star
| | | | | | | 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] drivers/net: statistics cleanup #1 -- save memory and shrink codeJeff Garzik2007-10-111-14/+5Star
| | | | | | | | | | | | | | | | | We now have struct net_device_stats embedded in struct net_device, and the default ->get_stats() hook does the obvious thing for us. Run through drivers/net/* and remove the driver-local storage of statistics, and driver-local ->get_stats() hook where applicable. This was just the low-hanging fruit in drivers/net; plenty more drivers remain to be updated. [ Resolved conflicts with napi_struct changes and fix sunqe build regression... -DaveM ] Signed-off-by: Jeff Garzik <jeff@garzik.org> 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>
* [NET]: Make NAPI polling independent of struct net_device objects.Stephen Hemminger2007-10-111-17/+2Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* sis190 check for ISA bridge on SiS966Neil Muller2007-08-071-0/+3
| | | | | | | | | sis190 driver assumes to find ISA only on SiS965. similar fix is in sis900 driver, see bug report http://bugs.debian.org/435547 Signed-off-by: maximilian attems <max@stro.at> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [NET]: Kill eth_copy_and_sum().David S. Miller2007-07-111-1/+1
| | | | | | | | It hasn't "summed" anything in over 7 years, and it's just a straight mempcy ala skb_copy_to_linear_data() so just get rid of it. Signed-off-by: David S. Miller <davem@davemloft.net>
* [ETH]: Make eth_type_trans set skb->dev like the other *_type_transArnaldo Carvalho de Melo2007-04-261-1/+0Star
| | | | | | | One less thing for drivers writers to worry about. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* sis190: new PHY supportFrancois Romieu2007-03-291-0/+1
| | | | | | | | | | Reported to work on the WinFast 761GXK8MB-RS motherboard. Plain 10/100 Mbps. Signed-off-by: Paul Gibbons <paul@pkami.e7even.com> Signed-off-by: Francois Romieu <romieu@fr.zoreil.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* sis190: RTNL and flush_scheduled_work deadlockFrancois Romieu2007-02-201-2/+5
| | | | | Signed-off-by: Francois Romieu <romieu@fr.zoreil.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* sis190: failure to set the MAC address from EEPROMFrancois Romieu2007-01-191-1/+1
| | | | | | | | | Fix from http://bugzilla.kernel.org/show_bug.cgi?id=7747 Signed-off-by: Andrew Morton <akpm@osdl.org> Cc: <sleepy@mike-neko.net> Signed-off-by: Francois Romieu <romieu@fr.zoreil.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* WorkStruct: make allyesconfigDavid Howells2006-11-221-5/+8
| | | | | | Fix up for make allyesconfig. Signed-Off-By: David Howells <dhowells@redhat.com>
* IRQ: Maintain regs pointer globally rather than passing to IRQ handlersDavid Howells2006-10-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Maintain a per-CPU global "struct pt_regs *" variable which can be used instead of passing regs around manually through all ~1800 interrupt handlers in the Linux kernel. The regs pointer is used in few places, but it potentially costs both stack space and code to pass it around. On the FRV arch, removing the regs parameter from all the genirq function results in a 20% speed up of the IRQ exit path (ie: from leaving timer_interrupt() to leaving do_IRQ()). Where appropriate, an arch may override the generic storage facility and do something different with the variable. On FRV, for instance, the address is maintained in GR28 at all times inside the kernel as part of general exception handling. Having looked over the code, it appears that the parameter may be handed down through up to twenty or so layers of functions. Consider a USB character device attached to a USB hub, attached to a USB controller that posts its interrupts through a cascaded auxiliary interrupt controller. A character device driver may want to pass regs to the sysrq handler through the input layer which adds another few layers of parameter passing. I've build this code with allyesconfig for x86_64 and i386. I've runtested the main part of the code on FRV and i386, though I can't test most of the drivers. I've also done partial conversion for powerpc and MIPS - these at least compile with minimal configurations. This will affect all archs. Mostly the changes should be relatively easy. Take do_IRQ(), store the regs pointer at the beginning, saving the old one: struct pt_regs *old_regs = set_irq_regs(regs); And put the old one back at the end: set_irq_regs(old_regs); Don't pass regs through to generic_handle_irq() or __do_IRQ(). In timer_interrupt(), this sort of change will be necessary: - update_process_times(user_mode(regs)); - profile_tick(CPU_PROFILING, regs); + update_process_times(user_mode(get_irq_regs())); + profile_tick(CPU_PROFILING); I'd like to move update_process_times()'s use of get_irq_regs() into itself, except that i386, alone of the archs, uses something other than user_mode(). Some notes on the interrupt handling in the drivers: (*) input_dev() is now gone entirely. The regs pointer is no longer stored in the input_dev struct. (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does something different depending on whether it's been supplied with a regs pointer or not. (*) Various IRQ handler function pointers have been moved to type irq_handler_t. Signed-Off-By: David Howells <dhowells@redhat.com> (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
* drivers/net: const-ify ethtool_ops declarationsJeff Garzik2006-09-131-1/+1
| | | | Signed-off-by: Jeff Garzik <jeff@garzik.org>
* Merge branch 'tmp' into upstreamJeff Garzik2006-09-121-3/+0Star
|\
| * [PATCH] Remove more unnecessary driver printk'sAndy Gospodarek2006-09-121-3/+0Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | As I promised last week, here is the first pass at removing all unnecessary printk's that exist in network device drivers currently in promiscuous mode. The duplicate messages are not needed so they have been removed. Some of these drivers are quite old and might not need an update, but I did them all anyway. I am currently auditing the remaining conditional printk's and will send out a patch for those soon. Signed-off-by: Andy Gospodarek <andy@greyhouse.net> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | drivers/net: Remove deprecated use of pci_module_init()Jeff Garzik2006-08-191-1/+1
|/ | | | | | | From: Michal Piotrowski <michal.k.k.piotrowski@gmail.com> Signed-off-by: Michal Piotrowski <michal.k.k.piotrowski@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] irq-flags: drivers/net: Use the new IRQF_ constantsThomas Gleixner2006-07-021-1/+1
| | | | | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@elte.hu> Cc: "David S. Miller" <davem@davemloft.net> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Jeff Garzik <jeff@garzik.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [NET]: Avoid allocating skb in skb_padHerbert Xu2006-06-231-2/+1Star
| | | | | | | | | | | | | | | | | | | | First of all it is unnecessary to allocate a new skb in skb_pad since the existing one is not shared. More importantly, our hard_start_xmit interface does not allow a new skb to be allocated since that breaks requeueing. This patch uses pskb_expand_head to expand the existing skb and linearize it if needed. Actually, someone should sift through every instance of skb_pad on a non-linear skb as they do not fit the reasons why this was originally created. Incidentally, this fixes a minor bug when the skb is cloned (tcpdump, TCP, etc.). As it is skb_pad will simply write over a cloned skb. Because of the position of the write it is unlikely to cause problems but still it's best if we don't do it. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
* Massive net driver const-ification.Arjan van de Ven2006-03-041-1/+1
|
* sis190: early setting of the pci driver private dataFrancois Romieu2006-02-161-2/+2
| | | | | | | | Below this point, the error path will proceed through sis190_release_board(). It will happily oops if pci_set_drvdata() has not been issued. Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
* [PATCH] turn "const static" into "static const"Jesper Juhl2006-01-101-1/+1
| | | | | | | | | | | | | ICC likes to complain about storage class not being first, GCC doesn't care much (except for cases like "inline static"). have a hard time seeing how it could break anything. Thanks to Gabriel A. Devenyi for pointing out http://linuxicc.sourceforge.net/ which is what made me create this patch. Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] sis190.c: fix multicast MAC filterAurelien Jarno2005-10-281-1/+1
| | | | | | | | | | Here is a patch that changes the way the MAC filter is computed for the multicast addresses. The computation is taken from the SiS GPL driver. This patch is necessary to get IPv6 working. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>