summaryrefslogtreecommitdiffstats
path: root/sys/dev/cs
Commit message (Collapse)AuthorAgeFilesLines
* Use bus space functions rather than inw/outwandrew2011-01-293-10/+11
| | | | | | to help a future port of the driver to ARM. Approved by: imp (mentor)
* Remove some always-true comparisons.jhb2011-01-181-1/+1
| | | | Submitted by: clang via rdivacky
* Add new tunable 'net.link.ifqmaxlen' to set default send interfacesobomax2010-05-031-1/+1
| | | | | | | | | | queue length. The default value for this parameter is 50, which is quite low for many of today's uses and the only way to modify this parameter right now is to edit if_var.h file. Also add read-only sysctl with the same name, so that it's possible to retrieve the current value. MFC after: 1 month
* Add a warning if we're inw'ing from an odd address. This could happenimp2010-01-181-0/+2
| | | | | due to a bug and might be the real basis for the cardbus workaround hack.
* Fix indentation nit.imp2010-01-181-1/+1
|
* Remove extraneous semicolons, no functional changes.mbr2010-01-071-1/+1
| | | | | Submitted by: Marc Balmer <marc@msys.ch> MFC after: 1 week
* Use if_maddr_rlock()/if_maddr_runlock() rather than IF_ADDR_LOCK()/rwatson2009-06-261-2/+2
| | | | | | | | | | | | | IF_ADDR_UNLOCK() across network device drivers when accessing the per-interface multicast address list, if_multiaddrs. This will allow us to change the locking strategy without affecting our driver programming interface or binary interface. For two wireless drivers, remove unnecessary locking, since they don't actually access the multicast address list. Approved by: re (kib) MFC after: 6 weeks
* Improve the EEPROM parsing, based on finding a datasheet that describesimp2008-07-092-37/+46
| | | | | | | | | | | | | | | it in detail. When setting media, don't error out when a specific media is selected. # Note: There may be some issues still here since the EtherJet PC Card doesn't # conform to the datasheet. Many different kinds of dongles can be plugged in # and it is unknown how to ask which one it is. Also, add a /* bad! */ comment to a 1/2 second delay after we set the DC/DC parameters. This should be a *sleep of some sort for !cold. Fortunately it is the only one and is only used when setting media, so the benefit from removing it is small. Unfortunately, it likely serves as an exemplar of good programming techniques, which it isn't.
* Tweak a comment and a constant to restore old 30ms upper bound.imp2008-06-061-3/+3
| | | | cs_readreg takes ~2us not ~1us to run.
* o Remove unused cs_debug tunable. I think I added it and then nothing withimp2008-06-061-10/+22
| | | | | | | | | | | it. Bad imp. Removing us dips us under 10,000 in size too. o Replace an unconditional 30ms DELAY (yes, busy wait) with a check of the SIBUSY bit in the SelfST register before accessing the eeprom. This changes the time to read the EEPROM from 2 * 20 * 30ms (1.2s) to < 20*25us (.0005s) and make the attach of the card tolerable when ethernet media is present. Include data from the datasheet about why this works. While this is a 2500x speed increase, it doesn't really matter at all once the card is probed... o set dev earlier in softc.
* Forgot to commit these files too :-(imp2008-06-062-3/+3
|
* Minor clean up to shave about 1.5k off the size of the driver:imp2008-06-064-95/+12
| | | | | | | | | o remove unused fields from softc and args from cs_alloc_irq o remove some commented code that will never be implemented. o Don't try to send a packet and see if it worked. We don't need this anymore, and it doesn't add any value. o tweaks for BNC and AUI. o limit possible time hung in the kernel to 4s rather than 40s.
* Simplify error checking when reading the function....imp2008-06-061-3/+1
|
* cs has detach, remove bogus ifdef.imp2008-06-061-3/+1
| | | | Remove dedundant initialization of error to 0.
* Remove unused fields in softc. If they are ever really needed again,imp2008-06-064-27/+3
| | | | | | they can re-added. Remove CS_NAME. Don't whine when there's an ignored checksum error: User has said STFU, so we should S the FU. (remove mandated properties).
* Make the cs(4) driver MPSAFE:jhb2008-06-054-67/+118
| | | | | | | | | - Add a mutex to the softc to protect the softc and the device hardware. - Add a private timer to manage transmit watchdogs rather than using if_timer/if_watchdog. - Setup the interrupt handler after ether_ifattach(). Tested by: imp
* Fix the media auto code by breaking it :-). Auto now just means 'useimp2008-06-051-19/+8
| | | | | | | | | | | | 10BaseT' since it required 10BaseT to have carrier to switch to it. This chip makes it hard to do proper auto, so we don't do it. We can't test carrier on things easily. Don't insist on carrier when we set the media. Don't report failures. Remove a 1s! delay that appears to not be needed. With these patches, and John Baldwin's patches, I'm able to pass packets on my IBM EtherJet card again.
* o Improve the probe code dealing with interrupts.imp2008-06-041-83/+54
| | | | | | | | | | | | | | | | | | | | | | | | | o When forced to be 10baseT, don't require that the 10baseT interface have link to succeed. Still require it for IFM_AUTO, however, since it appears that there's no way to tell if a specific type of interface worked. I'm doing a web search for a datasheet now to see if there's anything obvious. o Minor incidental formatting nits, including collapsing code of the form if (foo) { bar(); } else { if (baz) bing(); } into: if (foo) { bar(); } else if (baz) { bing(); } to save an indentation level. o Remove stray reference to 3.x config file syntax. # I believe John's patches still apply after this...
* Correct logic error that would prevent cs pccards from working onimp2008-06-031-8/+8
| | | | | | | | | systems where the CardBus bridge was connected to a APIC. The case where the probe routine is told to not setup the IRQ was mishandled but the error was masked in the case where the IRQ was a valid one for the card. MFC after: 1 week
* o break newbus api: add a new argument of type driver_filter_t topiso2007-02-232-2/+2
| | | | | | | | | | | | | bus_setup_intr() o add an int return code to all fast handlers o retire INTR_FAST/IH_FAST For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current Reviewed by: many Approved by: re@
* - Consistently use if_printf() only in interface methods: if_start(),glebius2006-09-152-12/+15
| | | | | | | | if_watchdog, etc., or in functions used only in these methods. In all other functions in the driver use device_printf(). - Use __func__ instead of typing function name. Submitted by: Alex Lyashkov <umka sevcity.net>
* Fix multicast support for cs89x0 chips. Just setting the RX_MULTCAST_ACCEPTphilip2006-03-101-18/+56
| | | | | | | | flag isn't enough - the filter needs to be set up too, or no multicast frames are accepted. Sponsored by: Philips Industrial Applications (indirectly) MFC after: 3 days
* Use ETHER_ADDR_LEN rather than 6.imp2006-02-111-1/+1
|
* Remove oldcard support by removing the compat shims.imp2005-09-201-21/+5
|
* Make sure that we call if_free(ifp) after bus_teardown_intr. Since weimp2005-09-191-1/+1
| | | | | | | could get an interrupt after we free the ifp, and the interrupt handler depended on the ifp being still alive, this could, in theory, cause a crash. Eliminate this possibility by moving the if_free to after the bus_teardown_intr() call.
* Propagate rename of IFF_OACTIVE and IFF_RUNNING to IFF_DRV_OACTIVE andrwatson2005-08-091-12/+12
| | | | | | | | | | | | | | IFF_DRV_RUNNING, as well as the move from ifnet.if_flags to ifnet.if_drv_flags. Device drivers are now responsible for synchronizing access to these flags, as they are in if_drv_flags. This helps prevent races between the network stack and device driver in maintaining the interface flags field. Many __FreeBSD__ and __FreeBSD_version checks maintained and continued; some less so. Reviewed by: pjd, bz MFC after: 7 days
* Eliminate unused argument in PCMCIA_CARD macro.imp2005-06-241-1/+1
| | | | | | | | Provide a backwards compatible way to have the extra macro by defining PCCARD_API_LEVEL 5 before including pccarddevs for driver writers that want/need to have the same driver on 5 and 6 with pccard attachments. Approved by: re (dwhite)
* Stop embedding struct ifnet at the top of driver softcs. Instead thebrooks2005-06-102-29/+39
| | | | | | | | | | | | | | | | | | | | struct ifnet or the layer 2 common structure it was embedded in have been replaced with a struct ifnet pointer to be filled by a call to the new function, if_alloc(). The layer 2 common structure is also allocated via if_alloc() based on the interface type. It is hung off the new struct ifnet member, if_l2com. This change removes the size of these structures from the kernel ABI and will allow us to better manage them as interfaces come and go. Other changes of note: - Struct arpcom is no longer referenced in normal interface code. Instead the Ethernet address is accessed via the IFP2ENADDR() macro. To enforce this ac_enaddr has been renamed to _ac_enaddr. - The second argument to ether_ifattach is now always the mac address from driver private storage rather than sometimes being ac_enaddr. Reviewed by: sobomax, sam
* Fix the worst offenders of style(9) with a small style sweep.imp2005-01-281-48/+36
|
* Cleanup tabs vs spaces.imp2005-01-283-215/+213
|
* For the PC Card implementation of the CS8920M that's in my IBMimp2005-01-283-3/+8
| | | | | | | | | | | | | EtherJet, the interrupt is selected in the eeprom based on the layout of the PC Card board. Since this is encoded into the EEPROM, and has no relationship to the IRQ that the pccard bridge routes the PC Card's interrupt pin to. As such, stop writing to that register. This gets my EtherJet working. # The eeprom reading code appears to be totally wrong for my EtherJet # card. This causes the card to bogusly detect the media options # available.
* Setting hw.cs.recv_delay should set the delay, not the ignore theimp2005-01-281-1/+1
| | | | eeprom checksum.
* error = is needed before ether_ioctl() so that unsupported/unknownimp2005-01-281-1/+1
| | | | | | | IOCLTs are properly handled. This gets the cs driver properly reporting things via ifconfig. # my pccard still doesn't work.
* Write cs_detach() and use it. This resolves the twin problems of theimp2005-01-273-2/+17
| | | | | cs1 interface linger on card eject, as well as the warnings about the card still using resources. Ooops.
* Only attach to network functions (unlikely to matter since I'm notimp2005-01-201-0/+10
| | | | aware of any multi-function cs cards, but it doesn't hurt).
* Start each of the license/copyright comments with /*-, minor shuffle of linesimp2005-01-065-5/+5
|
* Since if_cs doesn't contain locking or run with INTR_MPSAFE, markrwatson2004-08-131-1/+2
| | | | the interface as IFF_NEEDSGIANT so if_start is run holding Giant.
* Fix disordering of pccarddevs.h noticed by bde. Also remove a fewimp2004-05-271-1/+1
| | | | | | redundant includes and fix some of the include disordering. Submitted by: bde
* Move to generating pccarddevs.h on the fly, both for the kernel andimp2004-05-261-1/+1
| | | | | | | the modules. Also generate usbdevs.h automatically now, but a non-kernel file is stopping that at the moment.
* We don't need to initialize if_output, ether_ifattach() does itmux2004-05-231-1/+0
| | | | for us.
* We don't need the dependency on the pccard module here.imp2004-05-081-1/+0
|
* Remove improper use of if_addrhead in device drivers to checkluigi2004-04-151-4/+0
| | | | | | | | | | | | if the link-level address has been initialized already. The majority of modern drivers never does this and works fine, which makes me think that the check is totally unnecessary and a residue of cut&paste from other drivers. This change is done to simplify locking because now almost none of the drivers uses this field. The exceptions are "ct" "ctau" and "cx" where i am not sure if i can remove that part.
* Convert callers to the new bus_alloc_resource_any(9) API.njl2004-03-171-2/+2
| | | | | Submitted by: Mark Santcroos <marks@ripe.net> Reviewed by: imp, dfr, bde
* Announce ethernet MAC addresss in ether_ifattach().mdodd2004-03-141-4/+0
|
* o Add sysctl to allow ignoring checksum of eeprom.imp2003-11-042-53/+77
| | | | | | | | | | | | o Fix minor type problems o Fix minor problem with a couple debug printfs. o Default to a sane media type when none is reported. o Minor style changes The PR complains this will fix the IBM 300GL cards. Submitted by: Max Gotlib PR: 11462
* Replace the if_name and if_unit members of struct ifnet with new membersbrooks2003-10-314-11/+9
| | | | | | | | | | | | | if_xname, if_dname, and if_dunit. if_xname is the name of the interface and if_dname/unit are the driver name and instance. This change paves the way for interface renaming and enhanced pseudo device creation and configuration symantics. Approved By: re (in principle) Reviewed By: njl, imp Tested On: i386, amd64, sparc64 Obtained From: NetBSD (if_xname)
* There is no way to enter the attach routine twice with the same softcbrooks2003-10-301-68/+66
| | | | | | | without a detach call in between so don't try to deal with that possiability. This is a diff-reduction commit for the upcoming if_xname conversion.
* Use __FBSDID().obrien2003-08-243-3/+9
| | | | Also some minor style cleanups.
* - Express hard dependencies on bus (pci, isa, pccard) andmdodd2003-04-152-3/+6
| | | | | | | | network layer (ether). - Don't abuse module names to facilitate ifconfig module loading; such abuse isn't really needed. (And if we do need type information associated with a module then we should make it explicit and not use hacks.)
* Make sure that pp_name is non-null before setting the deviceimp2003-04-101-1/+2
| | | | | description. This allows us to rely entirely on the CIS entries if necessary...
OpenPOWER on IntegriCloud