freebsd-dev/sys/dev
Marius Strobl 1ed3fed743 o Revert the part of if_gem.c rev. 1.35 which added a call to gem_stop()
to gem_attach() as the former access softc members not yet initialized
  at that time and gem_reset() actually is enough to stop the chip. [1]
o Revise the use of gem_bitwait(); add bus_barrier() calls before calling
  gem_bitwait() to ensure the respective bit has been written before we
  starting polling on it and poll for the right bits to change, f.e. even
  though we only reset RX we have to actually wait for both GEM_RESET_RX
  and GEM_RESET_TX to clear. Add some additional gem_bitwait() calls in
  places we've been missing them according to the GEM documentation.
  Along with this some excessive DELAYs, which probably only were added
  because of bugs in gem_bitwait() and its use in the first place, as
  well as as have of an gem_bitwait() reimplementation in gem_reset_tx()
  were removed.
o Add gem_reset_rxdma() and use it to deal with GEM_MAC_RX_OVERFLOW errors
  more gracefully as unlike gem_init_locked() it resets the RX DMA engine
  only, causing no link loss and the FIFOs not to be cleared. Also use it
  deal with GEM_INTR_RX_TAG_ERR errors, with previously were unhandled.
  This was based on information obtained from the Linux GEM and OpenSolaris
  ERI drivers.
o Turn on workarounds for silicon bugs in the Apple GMAC variants.
  This was based on information obtained from the Darwin GMAC and Linux GEM
  drivers.
o Turn on "infinite" (i.e. maximum 31 * 64 bytes in length) DMA bursts.
  This greatly improves especially RX performance.
o Optimize the RX path, this consists of:
  - kicking the receiver as soon as we've a spare descriptor in gem_rint()
    again instead of just once after all the ready ones have been handled;
  - kicking the receiver the right way, i.e. as outlined in the GEM
    documentation in batches of 4 and by pointing it to the descriptor
    after the last valid one;
  - calling gem_rint() before gem_tint() in gem_intr() as gem_tint() may
    take quite a while;
  - doubling the size of the RX ring to 256 descriptors.
  Overall the RX performance of a GEM in a 1GHz Sun Fire V210 was improved
  from ~100Mbit/s to ~850Mbit/s.
o In gem_add_rxbuf() don't assign the newly allocated mbuf to rxs_mbuf
  before calling bus_dmamap_load_mbuf_sg(), if bus_dmamap_load_mbuf_sg()
  fails we'll free the newly allocated mbuf, unable to recycle the
  previous one but a NULL pointer dereference instead.
o In gem_init_locked() honor the return value of gem_meminit().
o Simplify gem_ringsize() and dont' return garbage in the default case.
  Based on OpenBSD.
o Don't turn on MAC control, MIF and PCS interrupts unless GEM_DEBUG is
  defined as we don't need/use these interrupts for operation.
o In gem_start_locked() sync the DMA maps of the descriptor rings before
  every kick of the transmitter and not just once after enqueuing all
  packets as the NIC might instantly start transmitting after we kicked
  it the first time.
o Keep state of the link state and use it to enable or disable the MAC
  in gem_mii_statchg() accordingly as well as to return early from
  gem_start_locked() in case the link is down. [3]
o Initialize the maximum frame size to a sane value.
o In gem_mii_statchg() enable carrier extension if appropriate.
o Increment if_ierrors in case of an GEM_MAC_RX_OVERFLOW error and in
  gem_eint(). [3]
o Handle IFF_ALLMULTI correctly; don't set it if we've turned promiscuous
  group mode on and don't clear the flag if we've disabled promiscuous
  group mode (these were mostly NOPs though). [2]
o Let gem_eint() also report GEM_INTR_PERR errors.
o Move setting sc_variant from gem_pci_probe() to gem_pci_attach() as
  device probe methods are not supposed to touch the softc.
o Collapse sc_inited and sc_pci into bits for sc_flags.
o Add CTASSERTs ensuring that GEM_NRXDESC and GEM_NTXDESC are set to
  legal values.
o Correctly set up for 802.3x flow control, though #ifdef out the code
  that actually enables it as this needs more testing and mainly a proper
  framework to support it.
o Correct and add some conversions from hard-coded functions names to
  __func__ which were borked or forgotten in if_gem.c rev. 1.42.
o Use PCIR_BAR instead of a homegrown macro.
o Replace sc_enaddr[6] with sc_enaddr[ETHER_ADDR_LEN].
o In gem_pci_attach() in case attaching fails release the resources in
  the opposite order they were allocated.
o Make gem_reset() static to if_gem.c as it's not needed outside that
  module.
o Remove the GEM_GIGABIT flag and the associated code; GEM_GIGABIT was
  never set and the associated code was in the wrong place.
o Remove sc_mif_config; it was only used to cache the contents of the
  respective register within gem_attach().
o Remove the #ifdef'ed out NetBSD/OpenBSD code for establishing a suspend
  hook as it will never be used on FreeBSD.
o Also probe Apple Intrepid 2 GMAC and Apple Shasta GMAC, add support for
  Apple K2 GMAC. Based on OpenBSD.
o Add support for Sun GBE/P cards, or in other words actually add support
  for cards based on GEM to gem(4). This mainly consists of adding support
  for the TBI of these chips. Along with this the PHY selection code was
  rewritten to hardcode the PHY number for certain configurations as for
  example the PHY of the on-board ERI of Blade 1000 shows up twice causing
  no link as the second incarnation is isolated.
  These changes were ported from OpenBSD with some additional improvements
  and modulo some bugs.
o Add code to if_gem_pci.c allowing to read the MAC-address from the VPD on
  systems without Open Firmware.
  This is an improved version of my variant of the respective code in
  if_hme_pci.c
o Now that gem(4) is MI enable it for all archs.

Pointed out by:	yongari [1]
Suggested by:	rwatson [2], yongari [3]
Tested on:	i386 (GEM), powerpc (GMACs by marcel and yongari),
		sparc64 (ERI and GEM)
Reviewed by:	yongari
Approved by:	re (kensmith)
2007-09-26 21:14:18 +00:00
..
aac Add PCI IDs for two cards: 2007-08-23 20:12:40 +00:00
acpi_support Initialize key to zero. 2007-06-17 04:40:33 +00:00
acpica Rewrite the EC driver event model. The main goal is to avoid 2007-09-24 16:59:06 +00:00
adlink Set D_NEEDGIANT. 2007-08-04 17:43:11 +00:00
advansys Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
agp - Add the device ID for the VIA VT3324 (CX700) chipset. 2007-09-21 02:10:13 +00:00
aha Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
ahb Fix a compile error from the last change. 2007-06-17 15:21:09 +00:00
aic Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
aic7xxx Fix locking mistakes in the error recovery paths of the AHC and AHD drivers. 2007-07-31 20:11:03 +00:00
amd Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
amr Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
an Fixing invalid channel display in ifconfig(8) by implementing required 2007-09-10 12:53:34 +00:00
ar Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
arcmsr Make the driver fully MPSAFE. This fixes some serious locking problems 2007-07-31 20:16:50 +00:00
arl o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
asr Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
ata Add PCI IDs for Intel ICH9. 2007-09-10 19:16:39 +00:00
ath Update beacon handling to sync w/ vap code base: 2007-09-17 19:07:24 +00:00
atkbdc Initialize mouse resolution to zero if converting from 2007-06-17 04:32:18 +00:00
auxio - Only touch the LED bit of the (LED) AUXIO register when turning the 2006-01-26 19:04:18 +00:00
awi o add 802.11 state machine states for DFS and client-side power save 2007-09-05 21:31:32 +00:00
bce - Fixed a problem that would cause kernel panics and "bce0: discard frame .." 2007-07-31 00:06:04 +00:00
bfe o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
bge Despite several examples in the kernel, the third argument of 2007-06-04 18:25:08 +00:00
bktr o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
buslogic Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
cardbus gcc 4.2 thinks that tupleid is uninitialized. Or might be used 2007-06-08 04:03:57 +00:00
ce First in a series of changes to remove the now-unused Giant compatibility 2007-07-27 11:59:57 +00:00
ciss Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
cm Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
cnw Catchup to filters by piso. 2007-02-23 19:27:49 +00:00
coretemp Style nits + more reliable Tj(max) detection + improved reporting of 2007-08-23 10:53:03 +00:00
cp First in a series of changes to remove the now-unused Giant compatibility 2007-07-27 11:59:57 +00:00
cpufreq Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
cs o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ct o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ctau First in a series of changes to remove the now-unused Giant compatibility 2007-07-27 11:59:57 +00:00
cx First in a series of changes to remove the now-unused Giant compatibility 2007-07-27 11:59:57 +00:00
cxgb Evidently setup_rss needs to happen whenever bind_qsets is done. This fixes 2007-09-11 23:49:27 +00:00
cy o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
dc o In order to reduce bug and code duplication fold handling of NICs 2007-08-05 11:28:19 +00:00
dcons We don't need to call dcons_poll event handlers if KDB is not active. 2007-08-17 05:32:39 +00:00
de The maxsegsz of a dma tag created in de(4) is TULIP_DATA_PER_DESC bytes. 2007-06-07 00:28:47 +00:00
digi Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
dpt Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
drm Properly initialize the dev_priv before calling the i915_dma_cleanup(). 2007-08-21 12:52:57 +00:00
ed Add Micro Research PCMCIA LAN Adapter MR10TPC support. Patch slightly 2007-07-11 04:14:41 +00:00
eisa
em A number of small fixes: 2007-09-10 21:50:40 +00:00
en Where I previously removed calls to kdb_enter(), now remove include of 2007-05-29 11:28:28 +00:00
ep o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 15:55:37 +00:00
esp Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
ex s/destory/destroy/ (except for the code in contrib/). 2007-04-16 12:31:35 +00:00
exca - Fix exca_(io|mem)_map() to return proper errno values. 2007-03-23 17:15:07 +00:00
fatm o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
fb Remove the internal use of __packed and put it on the structures 2007-07-11 22:34:34 +00:00
fdc Always protect the kthread flags with the lock and close a race with 2007-02-27 17:16:52 +00:00
fe o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
firewire Protect transaction labels by its own lock to reduce lock contention. 2007-07-20 03:42:57 +00:00
flash MFp4: 2006-11-29 08:05:55 +00:00
fxp Remove the volatile qualifier to apply to fxp_miibus_readreg(). 2007-05-30 03:46:04 +00:00
gem o Revert the part of if_gem.c rev. 1.35 which added a call to gem_stop() 2007-09-26 21:14:18 +00:00
harp
hatm Remove the __inline qualifier from a function which is in fact not an 2007-06-08 01:37:47 +00:00
hfa o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
hifn Overhaul driver/subsystem api's: 2007-03-21 03:42:51 +00:00
hme Remove invalid BUS_DMA_ALLOCNOW when creating a tag which is used for 2007-05-01 11:50:11 +00:00
hptiop Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
hptmv Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
hwpmc Commit 14/14 of sched_lock decomposition. 2007-06-05 00:00:57 +00:00
ic Fix style nits. No md5 changes in .o's. ;-) 2006-09-08 21:46:01 +00:00
ichsmb o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ichwd Update to support ICH[678] chipsets (based on a patch by Takeharu KATO) 2007-08-13 18:52:37 +00:00
ida o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
idt o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ie o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ieee488 Catchup with filters 2007-02-23 19:34:52 +00:00
if_ndis Fix up ndis interaction with net80211 2007-07-26 20:11:16 +00:00
iicbus Don't use spinlocks here. The iicbus transactions can take a long 2007-04-17 05:48:35 +00:00
iir Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
io
ipmi Add support to the ipmi, isa attachment to attempt to read ipmi 2007-07-16 17:03:48 +00:00
ips o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ipw o add 802.11 state machine states for DFS and client-side power save 2007-09-05 21:31:32 +00:00
iscsi/initiator Introduce Danny Braniss' iSCSI initiator, version 2.0.99. Please read the 2007-07-24 15:35:02 +00:00
isp Fix off-by-two errors. 2007-08-28 00:09:12 +00:00
ispfw The MODULE_NAME should "ispfw" unless overriden, not "isp". 2006-12-10 03:42:57 +00:00
iwi Add missing bits that made bg scanning lame: 2007-09-05 23:00:27 +00:00
ixgb Catch up the rest of the drivers with the ether_vlan_mtap modifications. 2007-03-04 03:38:08 +00:00
ixgbe This is an update to the new Intel 10G 82598 driver. 2007-09-04 02:31:35 +00:00
joy
kbd Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
kbdmux Fix kbdmux(4) issue with backslash/underscore key not working on 2007-07-11 18:57:15 +00:00
le o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
led Make it possible to specify an initial state for the LED. 2007-04-23 12:42:15 +00:00
lge o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
lmc Universally adopt most conventional spelling of acquire. 2007-05-27 20:50:23 +00:00
mc146818 Export mc146818_def_{read,write}() so the front-end can make use 2007-06-16 23:10:00 +00:00
mca
mcd
md Commit 14/14 of sched_lock decomposition. 2007-06-05 00:00:57 +00:00
mem
mfi Update the MFI driver to support new "1078" series of hardware. This 2007-08-25 23:58:45 +00:00
mii Add icsphy(4), Integrated Circuit Systems PHY driver, ported from 2007-06-11 02:04:50 +00:00
mk48txx Revisit the watchdogs: Resetting the error to EINVAL after failing to set the 2007-03-27 21:03:37 +00:00
mlx o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
mly Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
mmc MFp4: When querying the operating condition of SD cards (using the 2007-06-05 17:04:44 +00:00
mpt Fix an incorrect PCI device id. The current value conflicts with 2007-09-18 16:39:24 +00:00
mse o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
msk Add legacy interrupt handler which would be more appropriate for 2007-07-20 00:25:20 +00:00
mxge Add support for a new device id (9). Mxge NICs with the new 2007-09-13 21:29:02 +00:00
my my(4) doesn't need miibus(4). 2007-03-11 15:20:04 +00:00
ncv o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
nfe During boot(before setting IP address) PHY can generate link state 2007-09-14 05:12:25 +00:00
nge Catch up the rest of the drivers with the ether_vlan_mtap modifications. 2007-03-04 03:38:08 +00:00
nmdm Call ttyld_close() in nmdmclose() to ensure that nmdm(4) 2007-08-01 21:38:11 +00:00
nsp o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
null Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
nve Allow nfe(4) override nve(4). 2007-06-12 02:21:02 +00:00
nxge Directly initialize nxge's ifaddrp pointer to ifnetp->if_addr rather 2007-07-12 10:03:29 +00:00
ofw Fix warnings. 2007-07-06 00:47:44 +00:00
patm o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
pbio Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
pccard Add Micro Research PCMCIA LAN Adapter MR10TPC support. Patch slightly 2007-07-11 04:14:41 +00:00
pccbb Migrate from setting a CARD_OK flag in a shared word, to setting its 2007-06-04 05:59:44 +00:00
pcf Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
pci - Fix a small bit slip in PCIM_PCAP_D[0-2]PME defines. 2007-09-19 13:05:58 +00:00
pdq Fix preprocessor code to check for a symbol being defined prior to checking 2007-06-08 01:49:04 +00:00
powermac_nvram Add device to access and modify Open Firmware NVRAM settings in 2006-08-01 22:19:01 +00:00
ppbus Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
ppc Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
pst o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
puc Calculate the correct PCI BAR for the Timedia based serial cards. The 2007-06-07 06:28:48 +00:00
ral Update beacon handling to sync w/ vap code base: 2007-09-17 19:07:24 +00:00
random Don't save SYSCTL_ADD_*() results in a local variable just to throw them 2007-05-28 18:20:15 +00:00
ray add defs just removed from ieee80211.h 2007-09-05 21:25:58 +00:00
rc o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
re Make sure to take PHY out of power down mode in device attach. 2007-08-14 02:00:04 +00:00
rndtest
rp Initialize DWBuf[3]. 2007-07-05 06:51:49 +00:00
rr232x Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
safe Overhaul driver/subsystem api's: 2007-03-21 03:42:51 +00:00
sbni Quiet framelen uninitialized warning. I think it was a false alarm. 2007-07-05 07:46:33 +00:00
sbsh Propagae volatile qualifier. 2007-06-08 01:54:22 +00:00
scc Add method enabled() to the SCC interface. This method can be used 2007-03-28 18:05:17 +00:00
scd Use pause() rather than tsleep() on stack variables and function pointers. 2007-02-27 17:23:29 +00:00
sf o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
si o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 20:11:27 +00:00
sio o Revert last. The chip is already supported by puc(4). 2007-03-29 04:26:52 +00:00
sk Universally adopt most conventional spelling of acquire. 2007-05-27 20:50:23 +00:00
smbus Only support the SMB_OLD_BREAD ioctl if one of COMPAT_FREEBSD[456] is 2006-09-26 14:38:56 +00:00
sn o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
snc o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
snp Adopt snp to the destroy_dev_sched() KPI after reverting of destroy_dev() 2007-07-05 13:07:12 +00:00
sound Update snd_emu10kx driver with recent perforce changes (and few 2007-09-12 07:43:43 +00:00
speaker Now that tone & delay times are correct (independent of hz), adjust 2007-06-04 09:27:13 +00:00
spibus MFp4: when passing the transfer up the foodchain, make sure we go up 2006-10-20 07:11:52 +00:00
sr Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
stg o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
stge If we've got watchdog timeouts try to get more packets going after 2007-05-01 03:40:57 +00:00
streams Remove the now-unused NET_{LOCK,UNLOCK,ASSERT}_GIANT() macros, which 2007-08-06 14:26:03 +00:00
sym Fix Symbios driver on amd64: Since amd64 has 64 bit pointers but the same 2007-07-20 23:02:01 +00:00
syscons Serialize output routine of terminal emulator (te_puts()) by a lock. 2007-09-20 04:05:59 +00:00
tdfx Take the functionality contained in the former "options TDFX_LINUX" 2006-03-03 21:37:38 +00:00
ti Catch up the rest of the drivers with the ether_vlan_mtap modifications. 2007-03-04 03:38:08 +00:00
trm Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
twa Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
twe o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
tx o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
txp Nuke duplicated __FBSDID. 2007-06-12 04:33:21 +00:00
uart The HP Diva RMP3 uses BAR 0x14. 2007-05-17 04:07:19 +00:00
ubsec Overhaul driver/subsystem api's: 2007-03-21 03:42:51 +00:00
usb Add support for the AX88178 and AX88772 based devices. 2007-09-25 20:47:24 +00:00
utopia
vge Catch up the rest of the drivers with the ether_vlan_mtap modifications. 2007-03-04 03:38:08 +00:00
vkbd Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
vr Add VLAN capability. 2007-04-23 12:19:02 +00:00
vx o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
watchdog Revisit the watchdogs: Resetting the error to EINVAL after failing to set the 2007-03-27 21:03:37 +00:00
wds Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
wi Make wi_set_channel() actually change the channel in hardware so that hostap 2007-09-16 20:02:29 +00:00
wl Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
xe o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00