Home | History | Annotate | Download | only in cardbus
History log of /src/sys/dev/cardbus/if_ral_cardbus.c
RevisionDateAuthorComments
 1.26  25-Sep-2022  thorpej Remove unnecessary include of <sys/malloc.h>.
 1.25  14-Dec-2018  jakllsch fix whitespace
 1.24  14-Jul-2016  msaitoh branches: 1.24.16; 1.24.18;
- Use aprint*() more in xxx_attach().
- Add missing aprint_naive("\n").
- Remove extra spaces and tabs.
- KNF.
 1.23  18-Feb-2012  drochner branches: 1.23.2; 1.23.16;
split device_t/softc
 1.22  01-Aug-2011  drochner branches: 1.22.2; 1.22.6;
remove some bloat:
-cardbus doesn't use multiple interrupt lines like PCI, and it doesn't
use machanisms like interrupt line register and swizzling -- no need
to carry around dummy information, this is all dealt with by the
bridge
(I'm asking myself how "rbus_ppb" can work -- a bridge attached to
cardbus just can't work like a normal PCI bridge as far as interrupts
are concerned. I thing that should be a hardware specific driver
because behavior is not covered by a standard.)
-cardbus always uses 3.3V -- no need for a variable to keep track
of the voltage
 1.21  18-Mar-2010  dyoung This is *always* compiled with #define rbus 1, so get rid of the
conditional compilation.

Simplify interrupt (dis)establishment by two source transformations:

- cardbus_intr_disestablish(cc, cf, ih);
+ Cardbus_intr_disestablish(ct, ih);

- ih = cardbus_intr_establish(cc, cf, ...);
+ ih = Cardbus_intr_establish(ct, ...);

The identical change to a few other CardBus NICs has not caused any
problems, as expected, so I'm going to commit this rather safe change
and get on with the work.

Testers have been enlisted. I will revisit this change if I get any
negative responses.
 1.20  26-Feb-2010  dyoung branches: 1.20.2;
Use PCI_ constants and macros instead of CARDBUS_. Use
Cardbus_conf_{read,write}() instead of cardbus_conf_{read,write}().
Delete all of the CARDBUS_ constants and macros that replicate PCI_.

Compile-tested, only.
 1.19  25-Feb-2010  dyoung Make fxp at cardbus detach during shutdown.

Stop calling (*cardbus_ctrl) to enable bus mastering, I/O and memory
spaces on the CardBus bridge. cbb(4) always enables that stuff,
anyway. In the process, avoid remembering what BAR we mapped by
writing CARDBUS_{IO,MEM}_ENABLE to sc_cben or sc_cbenable, and
record the BAR in use sc_bar, instead.

Replace more CARDBUS_ constants with PCI_ constants.

Compile-tested, only.
 1.18  24-Feb-2010  dyoung Start to tuck Cardbus under the PCI abstraction. Step #1, textual
substitution: for all practical purposes, pcitag_t and cardbustag_t
are interchangeable, so just use pcitag_t. Ditto pcireg_t and
cardbusreg_t.

While I'm here, don't make a copy (sc_intrline) of
cardbus_attach_args.ca_intrline unless we use it, later.
 1.17  18-Jan-2010  pooka branches: 1.17.2;
Remove conditional inclusion of unused bpf.h
 1.16  12-May-2009  cegger struct device * -> device_t, no functional changes intended.
 1.15  12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.14  12-Oct-2008  dholland branches: 1.14.8;
Fix mangled attach output. Noted by Jari Kuittinen.
 1.13  24-Jun-2008  drochner branches: 1.13.2;
clean up the cardbus interrupt stuff:
There were cardbus_intr_line_t and cardbus_intr_handle_t used intermixed
for the same variable, and that variable is pretty much useless because
cardbus doesn't follow the PCI interrupt swizzling etc scheme.
Useless interrupt numbers were printed on cardbus device attach.
So as a first step to sanity, kill cardbus_intr_handle_t and poison
cardbus_intr_line_t to discourage printing it as a %d.
Use cardbus_intr_line_t consistently throughout the code.
Remove the "interrupting at foo" messages because the information
is misleading. We could come up with a better interrupt vector
information, but because cardbus interrupts are mediated by pccbb
it would still be misleading.
 1.12  29-Apr-2008  scw branches: 1.12.2; 1.12.4;
Pull in some more changes from OpenBSD:

- replace rssadapt(9) with amrr for automatic rate control.
- don't blindly IFQ_DEQUEUE() then drop a Tx packet if there are no
available Tx resources.
- move default MAC/BBP/RF settings from rt2661.c to rt2661reg.h.
- enable packet bursting when operating as a STA.
- implement new ic_updateslot() callback.
- in hostap mode, we defer update of the slot time until all associated
STAs are notified with updated beacons.
- 802.11a uses a 16 microseconds short interframe space.
- Fix rt2661_set_macaddr() so that we don't override the "unicast to me"
flag in RT2661_MAC_CSR3 when setting the MAC address.
- fix index of ERP information element in beacons.

Add a couple of tweaks of my own:

- The RX/TX BUSY flag should be the last thing written to a descriptor.
- Check and service any additional h/w interrupts before returning
from the isr.

Tested in STA, AP, and Monitor modes. Tested with WEP, WPA, and WPA2 crypto.

Additional testing by xtraeme@
 1.11  06-Apr-2008  cegger branches: 1.11.2; 1.11.4;
use aprint_*_dev and device_xname
 1.10  09-Dec-2007  jmcneill branches: 1.10.10;
Merge jmcneill-pm branch.
 1.9  19-Oct-2007  ad branches: 1.9.4; 1.9.6;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.8  16-Nov-2006  christos branches: 1.8.8; 1.8.22; 1.8.24; 1.8.28;
__unused removal on arguments; approved by core.
 1.7  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.6  25-Sep-2006  jmcneill Add powerhook for RT2560-based cardbus wireless adapters.
 1.5  06-Jun-2006  rpaulo branches: 1.5.6; 1.5.8;
Attachment framework for the rt2561.c and rt2661.c drivers.

From OpenBSD.
 1.4  29-Mar-2006  thorpej branches: 1.4.2;
Use device_private().
 1.3  11-Dec-2005  christos branches: 1.3.4; 1.3.6; 1.3.8; 1.3.10; 1.3.12;
merge ktrace-lwp.
 1.2  04-Jul-2005  drochner branches: 1.2.2; 1.2.8;
update PCI/Cardbus ral wlan driver, and adapt to new FreeBSD/NetBSD
80211 framework, from FUKAUMI Naoki per mail to tech-net
 1.1  01-Jul-2005  drochner add drivers for Ralink RT2500-based wireless adapters, written by
Damien Bergamini, ported and submitted by FUKAUMI Naoki per PR kern/30449
I've modified the USB "ural" driver for recent changes to the NetBSD
ieee80211 framework, possibly not completely, but with an ASUS wireless
adapter I'm getting some signs of life.
Didn't care about pci/cardbus for now, hopefully someone with hardware
will do it.
 1.2.8.2  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.2.8.1  04-Jul-2005  skrll file if_ral_cardbus.c was added on branch ktrace-lwp on 2005-11-10 14:03:54 +0000
 1.2.2.4  21-Jan-2008  yamt sync with head
 1.2.2.3  27-Oct-2007  yamt sync with head.
 1.2.2.2  30-Dec-2006  yamt sync with head.
 1.2.2.1  21-Jun-2006  yamt sync with head.
 1.3.12.1  31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.3.10.1  19-Apr-2006  elad sync with head.
 1.3.8.2  26-Jun-2006  yamt sync with head.
 1.3.8.1  01-Apr-2006  yamt sync with head.
 1.3.6.2  07-Jun-2006  kardel Sync with head.
 1.3.6.1  22-Apr-2006  simonb Sync with head.
 1.3.4.1  09-Sep-2006  rpaulo sync with head
 1.4.2.1  19-Jun-2006  chap Sync with head.
 1.5.8.2  10-Dec-2006  yamt sync with head.
 1.5.8.1  22-Oct-2006  yamt sync with head
 1.5.6.1  18-Nov-2006  ad Sync with head.
 1.8.28.1  25-Oct-2007  bouyer Sync with HEAD.
 1.8.24.2  09-Jan-2008  matt sync with HEAD
 1.8.24.1  06-Nov-2007  matt sync with HEAD
 1.8.22.2  06-Nov-2007  joerg Refactor PNP API:
- Make suspend/resume directly a device functionality. It consists of
three layers (class logic, device logic, bus logic), all of them being
optional. This replaces D0/D3 transitions.
- device_is_active returns true if the device was not disabled and was
not suspended (even partially), device_is_enabled returns true if the
device was enabled.
- Change pnp_global_transition into pnp_system_suspend and
pnp_system_resume. Before running any suspend/resume handlers, check
that all currently attached devices support power management and bail
out otherwise. The latter is not done for the shutdown/panic case.
- Make the former bus-specific generic network handlers a class handler.
- Make PNP message like volume up/down/toogle PNP events. Each device
can register what events they are interested in and whether the handler
should be global or not.
- Introduce device_active API for devices to mark themselve in use from
either the system or the device. Use this to implement the idle handling
for audio and input devices. This is intended to replace most ad-hoc
watchdogs as well.
- Fix somes situations in which audio resume would lose mixer settings.
- Make USB host controllers better deal with suspend in the light of
shared interrupts.
- Flush filesystem cache on suspend.
- Flush disk caches on suspend. Put ATA disks into standby on suspend as
well.
- Adopt drivers to use the new PNP API.
- Fix a critical bug in the generic cardbus layer that made D0->D3
break.
- Fix ral(4) to set if_stop.
- Convert cbb(4) to the new PNP API.
- Apply the PCI Express SCI fix on resume again.
 1.8.22.1  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.8.8.1  23-Oct-2007  ad Sync with head.
 1.9.6.1  11-Dec-2007  yamt sync with head.
 1.9.4.1  26-Dec-2007  ad Sync with head.
 1.10.10.3  17-Jan-2009  mjf Sync with HEAD.
 1.10.10.2  29-Jun-2008  mjf Sync with HEAD.
 1.10.10.1  02-Jun-2008  mjf Sync with HEAD.
 1.11.4.5  11-Aug-2010  yamt sync with head.
 1.11.4.4  11-Mar-2010  yamt sync with head
 1.11.4.3  16-May-2009  yamt sync with head
 1.11.4.2  04-May-2009  yamt sync with head.
 1.11.4.1  16-May-2008  yamt sync with head.
 1.11.2.1  18-May-2008  yamt sync with head.
 1.12.4.1  27-Jun-2008  simonb Sync with head.
 1.12.2.1  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.13.2.1  19-Oct-2008  haad Sync with HEAD.
 1.14.8.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.17.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.20.2.1  30-May-2010  rmind sync with head
 1.22.6.1  24-Feb-2012  mrg sync to -current.
 1.22.2.1  17-Apr-2012  yamt sync with head
 1.23.16.1  05-Oct-2016  skrll Sync with HEAD
 1.23.2.1  03-Dec-2017  jdolecek update from HEAD
 1.24.18.1  10-Jun-2019  christos Sync with HEAD
 1.24.16.1  26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts

RSS XML Feed