summaryrefslogtreecommitdiffstats
path: root/sys/dev/cas
Commit message (Collapse)AuthorAgeFilesLines
* Mechanically convert to if_inc_counter().glebius2014-09-181-16/+16
|
* Use define from if_var.h to access a field inside struct if_data,glebius2014-08-301-1/+1
| | | | | | that resides in struct ifnet. Sponsored by: Nginx, Inc.
* All mbuf external free functions never fail, so let them be void.glebius2014-07-111-4/+3
| | | | Sponsored by: Nginx, Inc.
* The r48589 promised to remove implicit inclusion of if_var.h soon. Prepareglebius2013-10-261-0/+1
| | | | | | | | to this event, adding if_var.h to files that do need it. Also, include all includes that now are included due to implicit pollution via if_var.h Sponsored by: Netflix Sponsored by: Nginx, Inc.
* Give (*ext_free) an int return value allowing for very sophisticatedandre2013-08-251-3/+4
| | | | | | | | external mbuf buffer management capabilities in the future. For now only EXT_FREE_OK is defined with current legacy behavior. Sponsored by: The FreeBSD Foundation
* Add an mbuf pointer parameter to (*ext_free) to give the externalandre2013-08-241-2/+2
| | | | | | | | | | | | free function access to the mbuf the external memory was attached to. Mechanically adjust all users to include the mbuf parameter. This fixes a long standing annoyance for external free functions. Before one had to sacrifice one of the argument pointers for this. Sponsored by: The FreeBSD Foundation
* - Correct mispellings of the word necessarygabor2013-04-171-1/+1
| | | | Submitted by: Christoph Mallon <christoph.mallon@gmx.de> (via private mail)
* - Move reporting of failures to disable RX/TX MAC under bootverbose as atmarius2013-03-011-4/+10
| | | | | | | | | | | | least the Saturn chips of 501-6738 cards may fail to do so the first time, which isn't fatal though. Reported by: Paul Keusemann - Explain why we don't enable infinite bursts on sparc64. - Given that these chips support memory write invalidate, make sure that it's enabled in the command register. Also make sure that PERR# and SERR# assertion is enabled. MFC after: 1 week
* - Check the return value of taskqueue_start_threads().marius2013-01-251-4/+13
| | | | | | | | | | | | - At least the Saturn chips of 501-6738 cards need a delay after freezing the external GMII pins before the internal PHY is accessible again. So wait a bit after (un)freezing these. Also don't touch the other bits of that configuration register. [1] - Take advantage of nitems(). Reported and tested by: Paul Keusemann [1] MFC after: 3 days
* Mechanically substitute flags from historic mbuf allocator withglebius2012-12-041-5/+5
| | | | malloc(9) flags in sys/dev.
* Remove duplicate const specifiers in many drivers (I hope I got all ofdim2012-11-051-1/+1
| | | | | | | | | | | | | | | | | | | | them, please let me know if not). Most of these are of the form: static const struct bzzt_type { [...list of members...] } const bzzt_devs[] = { [...list of initializers...] }; The second const is unnecessary, as arrays cannot be modified anyway, and if the elements are const, the whole thing is const automatically (e.g. it is placed in .rodata). I have verified this does not change the binary output of a full kernel build (except for build timestamps embedded in the object files). Reviewed by: yongari, marius MFC after: 1 week
* - There's no need to overwrite the default device method with the defaultmarius2011-11-221-5/+1
| | | | | | | | | | one. Interestingly, these are actually the default for quite some time (bus_generic_driver_added(9) since r52045 and bus_generic_print_child(9) since r52045) but even recently added device drivers do this unnecessarily. Discussed with: jhb, marcel - While at it, use DEVMETHOD_END. Discussed with: jhb - Also while at it, use __FBSDID.
* - Expand the scope of the lock in the interrupt routine to close races withmarius2011-07-131-22/+25
| | | | | | | | checking IFF_DRV_RUNNING and simplify the code. This also involves holding the driver lock in the rx_ch callout. - Just use ifp instead of sc->sc_ifp. Submitted by: jhb (mostly)
* Partially merge r223648, r223648 and r223949 from gem(4):marius2011-07-122-46/+42
| | | | | | | | | | | | - Consistently use the newly introduced sc_mac_rxcfg throughout the driver instead of reading the old content of CAS_MAC_RX_CONF. - Increment if_iqdrops instead of if_ierrors in case of RX buffer allocation failure. - According to the Cassini datasheet the RX MAC should also be disabled in cas_setladrf() before changing its configuration. - Add error messages to gem_disable_{r,t}x() and take advantage of these throughout the driver instead of duplicating their functionality all over the place.
* Correct spelling in a comment.marius2011-04-221-1/+1
| | | | Submitted by: brucec
* - Fix and enable support for flow control.marius2010-11-221-21/+18
| | | | - Fix compilation with CAS_DEBUG defined.
* Convert the PHY drivers to honor the mii_flags passed down and convertmarius2010-10-152-28/+11
| | | | | | | | | | | | | | | | | | | | | | | the NIC drivers as well as the PHY drivers to take advantage of the mii_attach() introduced in r213878 to get rid of certain hacks. For the most part these were: - Artificially limiting miibus_{read,write}reg methods to certain PHY addresses; we now let mii_attach() only probe the PHY at the desired address(es) instead. - PHY drivers setting MIIF_* flags based on the NIC driver they hang off from, partly even based on grabbing and using the softc of the parent; we now pass these flags down from the NIC to the PHY drivers via mii_attach(). This got us rid of all such hacks except those of brgphy() in combination with bce(4) and bge(4), which is way beyond what can be expressed with simple flags. While at it, I took the opportunity to change the NIC drivers to pass up the error returned by mii_attach() (previously by mii_phy_probe()) and unify the error message used in this case where and as appropriate as mii_attach() actually can fail for a number of reasons, not just because of no PHY(s) being present at the expected address(es). Reviewed by: jhb, yongari
* KTR_CTx are long time aliased by existing classes so they can't serveattilio2010-07-211-1/+1
| | | | | | | | their purpose anymore. Axe them out. Sponsored by: Sandvine Incorporated Discussed with: jhb, emaste Possible MFC: TBD
* Avoid possible NULL-dereferences.marius2010-06-031-19/+27
| | | | | | Found with: Coverity Prevent(tm) CID: 3428 MFC after: 3 days
* - Don't set CAS_PCS_DATAPATH to anything except CAS_PCS_DATAPATH_SERDESmarius2010-05-032-70/+174
| | | | | | | | | | | | | | | | | on Cassini using the external PCS SERDES otherwise unaligned access traps and other strange effects happen with some machines. Don't touch the MIF which is unused in that case either. These changes require the PHY type to use to be determined via the OFW device tree or from the VPD in machines without the former. - Disable the SERDES pins of Saturn when not used in order to save power and ensure they are enabled otherwise. - In cas_attach() use the correct register offset for CAS_PCS_CONF_EN. - Add some bus space barriers missing in the PCS code path. These changes make the Sun GigaSwift Ethernet 1.0 MMF cards as well as the on-board interfaces found in Sun Fire B100s Blade Server work. PR: 144867
* 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
* Don't use the preprocessor while inside function-like macromarius2009-06-251-12/+18
| | | | | | | invocations as doing so violates the C specification. This fixes the build with Clang. Submitted by: ed
* - Change this driver to do taskqueue(9) based TX and interruptmarius2009-06-242-57/+136
| | | | | | | | | | | | | | | | | | | | handling in order to reduce interrupt overhead which results in better performance. - Call ether_ifdetach(9) before stopping the controller and the callouts detach in order to prevent active BPF listeners to clear promiscuous mode which may lead to the tick callout being restarted which will trigger a panic once it's actually gone. - Add explicit IFF_DRV_RUNNING checking in order to prevent extra link up/down events when using dhclient(8). - Use the correct macro for deciding whether 2/3 of the available TX descriptors are used. - Wrap the RX fault printing in #ifdef CAS_DEBUG in order to not unnecessarily frighten users and as debugging was the actual intention. Real errors caused by these faults still will be accumulated as input errors. It might be a good idea to later on add driver specific counters for the faults though. Submitted by: yongari (original patch)
* Add cas(4), a driver for Sun Cassini/Cassini+ and National Semiconductormarius2009-06-153-0/+4034
DP83065 Saturn Gigabit Ethernet controllers. These are the successors of the Sun GEM controllers and still have a similar but extended transmit logic. As such this driver is based on gem(4). Thanks to marcel@ for providing a Sun Quad GigaSwift Ethernet UTP (QGE) card which was vital for getting this driver to work on architectures not using Open Firmware. Approved by: re (kib) MFC after: 2 weeks
OpenPOWER on IntegriCloud