summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* libertas: remove numprobesHolger Schurig2008-01-284-53/+11
| | | | | | | | Remove the ability to specify number of probes via debugfs Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de> Acked-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: tweak tx path debuggingHolger Schurig2008-01-281-4/+4
| | | | | | | | | Make two functions in the TX packet path emit their debug messages with LBS_DEB_TX, not LBS_DEB_MAIN. Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de> Acked-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: tweak association debug outputHolger Schurig2008-01-283-43/+28
| | | | | | | | Change debug output codes from LBS_DEB_JOIN to LBS_DEB_ASSOC Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de Acked-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: rework event subscriptionHolger Schurig2008-01-286-901/+278
| | | | | | | | | | | | | | | | | | | | | | This patch moves re-works the implementation of event subscription via debugfs. For this: * it tells cmd.c and cmdresp.c about CMD_802_11_SUBSCRIBE_EVENT * removes lots of low-level cmd stuff from debugfs.c * create unified functions to read/write snr, rssi, bcnmiss and failcount * introduces #define's for subscription event bitmask values * add a function to search for a specific element in an IE (a.k.a. TLV) * add a function to find out the size of the TLV. This is needed because lbs_prepare_and_send_command() has an argument for a data buffer, but not for it's lengths and TLVs can be, by definition, vary in size. * fix a bug where it was not possible to disable an event Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de> Acked-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: remove arbitrary typedefsHolger Schurig2008-01-2823-565/+606
| | | | | | | | | | | | New typedefs are usually frowned upon. This patch changes libertas_adapter -> struct libertas_adapter libertas_priv -> struct libertas_priv While passing, make everything checkpatch.pl-clean that gets touches. Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de> Acked-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: configurable beacon intervalBrajesh Dave2008-01-286-1/+61
| | | | | | | | | | Requires firmware version 5.110.19.p0 or newer, available here: http://dev.laptop.org/pub/firmware/libertas/ Signed-off-by: Ashish Shukla <ashishs@marvell.com> Signed-off-by: Javier Cardona <javier@cozybit.com> Signed-off-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: separate mesh connectivity from that of the main interfaceBrajesh Dave2008-01-289-36/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The transmit and receive traffic as soon as the mesh interface is brought up. Test case 1: Bring up only the mesh interface and ping. No need for any iwconfig commands on the main interface. $ ifconfig msh0 192.168.5.3 $ iwconfig msh0 channel X $ ping 192.168.5.2 If ping succeeds, PASS Test case 2: Associate with the main interface, and turn off AP. Mesh interface should not lose connectivity. $ iwconfig eth0 mode managed essid "my_ssid" $ ifconfig msh0 192.168.5.3 $ ping 192.168.5.2 <turn off access point> If ping continues uninterrupted, PASS This feature requires firmware version 5.110.19.p0 or newer, available here: http://dev.laptop.org/pub/firmware/libertas/ Signed-off-by: Ashish Shukla <ashishs@marvell.com> Signed-off-by: Javier Cardona <javier@cozybit.com> Signed-off-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: nuke useless variable usbdriver_name and useless commentsAndres Salomon2008-01-281-7/+1
| | | | | | | | I think it was pretty obvious what fields in if_usb_driver are... Signed-off-by: Andres Salomon <dilinger@debian.org> Signed-off-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: reset devices upon disconnect rather than module unloadingAndres Salomon2008-01-282-25/+4
| | | | | | | | | | | | | | | | 1) Do not reset libertas devices upon module unload. We're unloading the module, we're not killing off devices. 2) Instead, reset libertas devices inside if_usb_disconnect, as we're killing off interfaces and so on. 3) Resetting via disconnect callback means we no longer need to keep track of probed libertas devices; kill off that list (and its wonderful lack of locking..), as well. Drop a useless comment as well. Signed-off-by: Andres Salomon <dilinger@debian.org> Signed-off-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: mark module_init/exit functions as __init/__exitAndres Salomon2008-01-283-6/+6
| | | | | | Signed-off-by: Andres Salomon <dilinger@debian.org> Signed-off-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: drop useless default_fw_name variableAndres Salomon2008-01-281-6/+1
| | | | | | Signed-off-by: Andres Salomon <dilinger@debian.org> Signed-off-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* zd1211rw: add copyright noticesDaniel Drake2008-01-2815-14/+77
| | | | | | | Requested by Michael Wu. Signed-off-by: Daniel Drake <dsd@gentoo.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* zd1211rw: Add ID for Trendnet TEW-429UB ADaniel Drake2008-01-281-0/+1
| | | | | | | | Tested by chloubs on IRC zd1211 chip 157e:300a v4810 high 00-11-e0 AL7230B_RF pa0 g---- Signed-off-by: Daniel Drake <dsd@gentoo.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* zd1211rw: port to mac80211Daniel Drake2008-01-2812-1668/+1008
| | | | | | | | | | | This seems to be working smoothly now. Let's not hold back the mac80211 transition any further. This patch ports the existing driver from softmac to mac80211. Many thanks to everyone who helped out with the porting efforts. Signed-off-by: Daniel Drake <dsd@gentoo.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: clean up association debug messagesHolger Schurig2008-01-281-72/+64
| | | | | | | | | | | This makes the debug output of all association stuff clearer by: * adding some lbs_deb_enter()/lbs_deb_leave() calls * printing the return level in one place * lower-casing some string Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: move to uniform lbs_/LBS_ namespaceHolger Schurig2008-01-2829-1542/+1546
| | | | | | | | | | | | | | | | | | This patch unifies the namespace of variables, functions defines and structures. It does: - rename libertas_XXX to lbs_XXX - rename LIBERTAS_XXX to lbs_XXX - rename wlan_XXX to lbs_XXX - rename WLAN_XXX to LBS_XXX (but only those that were defined in libertas-local *.h files, e.g. not defines from net/ieee80211.h) While passing, I fixed some checkpatch.pl errors too. Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de> Acked-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* iwlwifi: remove redundant initialization of final_modeJohn W. Linville2008-01-282-2/+2
| | | | | | | | | Problem identified by Miguel Botón <mboton.lkml@gmail.com>, alternate solution suggested by Zhu Yi <yi.zhu@intel.com>, patch by me. :-) Cc: Miguel Botón <mboton.lkml@gmail.com> Cc: Zhu Yi <yi.zhu@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ssb: Remove the old, now unused, data structuresLarry Finger2008-01-283-155/+43
| | | | | | | | The old, now unused, data structures and SPROM extraction routines are removed. Signed-off-by: Larry Finger<Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b43legacy: Convert to use of the new SPROM structureLarry Finger2008-01-285-39/+41
| | | | | | | The b43legacy driver is modified to use the new SPROM structure. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b43: Convert to use of the new SPROM structureLarry Finger2008-01-286-56/+55
| | | | | | | The b43 driver is modified to use the new SPROM structure. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b44: Convert to use of the new SPROM structureLarry Finger2008-01-281-4/+4
| | | | | | | The b44 driver is changed to use the new SPROM data structure. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ssb: Convert to use of the new SPROM structureLarry Finger2008-01-285-104/+170
| | | | | | | | | | | | | | | | | | In disagreement with the SPROM specs, revision 3 devices appear to have moved the MAC address. Change ssb to handle the revision 4 SPROM, which is a different size. This change in size is handled by adding a new variable to the ssb_sprom struct and using it whenever possible. For those routines that do not have access to this structure, a 'u16 size' argument is added. The new PCI_ID for the BCM4328 is also added. Testing of the Revision 4 SPROM, which is used on the BCM4328, was done by Michael Gerdau <mgerdau@tiscali.de>. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ssb: Add new SPROM structure while keeping the oldLarry Finger2008-01-283-8/+58
| | | | | | | | | | | | | | | | | | The SPROM's for various devices utilizing the Sonics Silicon Backplane come with various revisions. The Revision 2 SPROM inherited the data layout of 1, and Revision 3 inherited the layout of 2. The first instance of Revision 4 has now been found in a BCM4328 wireless LAN card. This device does not inherit any layout from previous versions. Although it was possible to create a data structure that kept all the old layouts, we decided to start fresh, keep only those SPROM variables that are used by the drivers that utilize ssb, and to do the conversion in such a manner that neither compilation or execution will be affected if a bisection lands in the middle of these changes, while keeping the patches as small as possible. In this patch, the sprom structures are changed while maintaining the old ones. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* rt2x00: Move duplicate code into rt2x00pci_txdone()Ivo van Doorn2008-01-285-58/+38
| | | | | | | | | | | | rt2400pci, rt2500pci and rt61 require different txdone handling, but the code that pushes the frame upstream and cleans up the entry is identical to all of them. This will create the function rt2x00pci_txdone() to remove the duplicate code. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* iwl4965: fix rxon flags set to wrong value for A mode in .erp_ie_changedZhu Yi2008-01-281-1/+1
| | | | | | | | The patch fixes a bug that enables RXON_FLG_TGG_PROTECT_MSK erroneously for A mode in the erp_ie_changed mac80211 callback. Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b43: silence a bogus gcc warningFrank Lichtenheld2008-01-281-1/+1
| | | | | | | | | | | use uninitialized_var() to avoid the following bogus warning: CC [M] drivers/net/wireless/b43/debugfs.o drivers/net/wireless/b43/debugfs.c: In function ‘b43_debugfs_read’: drivers/net/wireless/b43/debugfs.c:355: warning: ‘ret’ may be used uninitialized in this function Signed-off-by: Michael Buesch <mb@bu3sch.de> Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b43legacy: fix kconfig dependecies for rfkill and ledsStefano Brivio2008-01-281-2/+6
| | | | | | | | | | Fix dependencies for built-in b43legacy. The patch to b43 by Michael Buesch <mb@bu3sch.de> has been ported to b43legacy. Signed-off-by: Stefano Brivio <stefano.brivio@polimi.it> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* MAINTAINERS: Add Reinette Chatre to iwlwifi & ipw2100/ipw2200Reinette Chatre2008-01-281-2/+8
| | | | | | | | Also fix Zhu Yi's name. Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> CC: Zhu Yi <yi.zhu@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* remove unused iwl4965_init_hw_rates functionZhu Yi2008-01-282-10/+0
| | | | | | | | | The patch removes the unused function to fix a recursive bug caused by namespace change. Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* iwlwifi: cleanup namespaceChristoph Hellwig2008-01-2819-4106/+4093
| | | | | | | | | | | | Prefix all symbols with iwl3945_ or iwl4965_ and thus allow building the driver into the kernel. Also remove all the useless default statements in Kconfig while we're at it. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* iwl4965: fix cannot find a suitable rate issueMohamed Abbas2008-01-281-5/+8
| | | | | | | | | | | | | | | | This patch fixes the iwl4965 problem for "Can not find a suitable rate issues." by making rs_switch_to_mimo and rs_switch_to_siso functions return -1 when CONFIG_IWL4965_HT is not selected. They used to return 0, which means we can switch to HT rate causing the rate scale problem and the error message. The patch also fix another bug reported by Ben Cahill that it uses wrong value for max_success_limit. Signed-off-by: Mohamed Abbas <mabbas@linux.intel.com> Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* iwlwifi: replace 0x8086 with PCI_VENDOR_ID_INTELZhu Yi2008-01-282-4/+4
| | | | | | | | Replace 0x8086 with PCI_VENDOR_ID_INTEL for PCI_DEVICE declaration. Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b43/b43legacy: fix my copyright noticesStefano Brivio2008-01-2817-20/+17
| | | | | | | | Fix my copyright notices in b43 and b43legacy. Signed-off-by: Stefano Brivio <stefano.brivio@polimi.it> Cc: Michael Buesch <mb@bu3sch.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b43: rewrite A PHY initializationStefano Brivio2008-01-289-513/+914
| | | | | | | | | | Rewrite and sync A PHY initialization with specs, thus allowing for further work to be done on 802.11a support. Note that A PHY initialization involves G PHYs as well. Signed-off-by: Stefano Brivio <stefano.brivio@polimi.it> Acked-by: Michael Buesch <mb@bu3sch.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b43legacy: rewrite and fix rfkill initializationStefano Brivio2008-01-283-12/+14
| | | | | | | | | | | | | | | | | | | | | | The rfkill subsystem doesn't like code like that rfkill_allocate(); rfkill_register(); rfkill_unregister(); rfkill_register(); /* <- This will crash */ This sequence happens with modprobe b43 ifconfig wlanX up ifconfig wlanX down ifconfig wlanX up Fix this by always re-allocating the rfkill stuff before register. The patch to b43 by Michael Buesch <mb@bu3sch.de> has been ported to b43legacy. Signed-off-by: Stefano Brivio <stefano.brivio@polimi.it> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b43legacy: use a consistent naming scheme for the opsStefano Brivio2008-01-281-37/+37
| | | | | | | | | | Use a consistent naming scheme for the ops. The patch to b43 by Michael Buesch <mb@bu3sch.de> has been ported to b43legacy. Signed-off-by: Stefano Brivio <stefano.brivio@polimi.it> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b43legacy: use the retry limits provided by mac80211Stefano Brivio2008-01-282-30/+52
| | | | | | | | | | Use the retry limits provided by mac80211. The patch to b43 by Michael Buesch <mb@bu3sch.de> has been ported to b43legacy. Signed-off-by: Stefano Brivio <stefano.brivio@polimi.it> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* SGISEEQ: use cached memory access to make driver work on IP28Thomas Bogendoerfer2008-01-281-73/+166
| | | | | | | | | SGI IP28 machines would need special treatment (enable adding addtional wait states) when accessing memory uncached. To avoid this pain I changed the driver to use only cached access to memory. Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* pasemi_mac: Don't enable RX/TX without a link (if possible)Olof Johansson2008-01-281-8/+33
| | | | | | | | | | | | | pasemi_mac: Don't enable RX/TX without a link (if possible) Don't enable RX/TX of packets until we have a link, since there's a chance we'll just get RX frame errors, etc. The case where we don't have a PHY we can't do much about: Just enable it and deal with errors as they come in. Signed-off-by: Olof Johansson <olof@lixom.net> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* pasemi_mac: Print warning when not attaching to a PHYOlof Johansson2008-01-281-4/+5
| | | | | | | | | | | pasemi_mac: Print warning when not attaching to a PHY Print a warning on the console when not connecting to a phy for an interface. It turns out to be a pretty common problem when someone gets the MDIO info wrong in their device tree, resulting in the macs running at a fixed 1Gbit FD. Signed-off-by: Olof Johansson <olof@lixom.net> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* pasemi_mac: Remove SKB copy/recycle logicOlof Johansson2008-01-281-22/+3
| | | | | | | | | | pasemi_mac: Remove SKB copy/recycle logic It doesn't really buy us much, since copying is about as expensive as the allocation in the first place. Just remove it for now. Signed-off-by: Olof Johansson <olof@lixom.net> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* pasemi_mac: SKB unmap optimizationOlof Johansson2008-01-281-14/+25
| | | | | | | | | | | pasemi_mac: SKB unmap optimization Avoid touching skb_shinfo() in the unmap path, since it turns out to normally cause cache misses and delays. instead, save number of fragments in the TX_RING_INFO structures since that's all that's needed anyway. Signed-off-by: Olof Johansson <olof@lixom.net> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* pasemi_mac: Software-based LRO supportOlof Johansson2008-01-283-4/+55
| | | | | | | | | pasemi_mac: Software-based LRO support Implement LRO for pasemi_mac. Pretty straightforward. Signed-off-by: Olof Johansson <olof@lixom.net> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* pasemi_mac: Improve RX interrupt mitigationOlof Johansson2008-01-281-8/+10
| | | | | | | | | | | | | | | | | | | | | | pasemi_mac: Improve RX interrupt mitigation Currently the receive side interrupts will go off on the reception of a packet, NAPI will poll the ring and keep polling as long as there's a decent amount of packets to receive. This is less than optimal, especially for LRO where it's better if we have a more substantial amount of packets to process at once, to get the real LRO benefits. So, set the count threshold to a higher value and use the timeout feature that will give us an interrupt even if not enough packets have come in to set off the count threshold. FIXME: It'd be real nice to have ethtool support for users to tune this at runtime. Signed-off-by: Olof Johansson <olof@lixom.net> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* pasemi_mac: Fix TX cleaningOlof Johansson2008-01-282-8/+34
| | | | | | | | | | | | | | | | | pasemi_mac: Fix TX cleaning This is a bit awkward. We don't have a timer-delayed interrupt on TX complete, but we have a count threshold. So set that reasonably high (32 packets), and schedule the NAPI poll when it goes off. Also bump a regular timer that will take care of rotting packets for the last 1..31 ones in case we don't trigger a TX interrupt (and there's no RX activity that would otherwise trigger the poll). The longer-term fix is to separate TX from RX NAPI and do two separate poll loops. Signed-off-by: Olof Johansson <olof@lixom.net> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* pasemi_mac: performance tweaksOlof Johansson2008-01-281-46/+68
| | | | | | | | | | | | | | pasemi_mac: performance tweaks * Seems like we do better with a smaller RX ring, probably because chances of still having the SKB cached are better * Const-ify variables to get better code generation and fewer reloads * Move prefetching around a little, and try to prefetch the whole SKB * Set NETIF_F_HIGHDMA * Misc other minor tweaks Signed-off-by: Olof Johansson <olof@lixom.net> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* pasemi_mac: Convert to new dma libraryOlof Johansson2008-01-282-286/+210
| | | | | | | | | | | pasemi_mac: Convert to new dma library Convert the pasemi_mac driver to the new platform global DMA manaagement library. This also does a couple of other minor cleanups w.r.t. channel management. Signed-off-by: Olof Johansson <olof@lixom.net> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* pasemi: DMA engine management libraryOlof Johansson2008-01-284-1/+565
| | | | | | | | | | | | pasemi: DMA engine management library Introduce a DMA management library to manage the various DMA resources on the PA Semi SoCs. Since several drivers need to allocate these shared resources, provide some abstractions as well as allocation/free functions for channels, etc. Signed-off-by: Olof Johansson <olof@lixom.net> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* pasemi_mac: Move register definitions to include/asm-powerpcOlof Johansson2008-01-283-334/+394
| | | | | | | | | | | | | | pasemi_mac: Move register definitions to include/asm-powerpc Move the common register formats and descriptor layouts from drivers/net/pasemi_mac.h to include/asm-poewrpc/pasemi_dma.h Previously only the ethernet driver was using them, but other drivers are coming up that will also use them, so it makes sense to share the constants. Signed-off-by: Olof Johansson <olof@lixom.net> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* pasemi_mac: RX/TX ring management cleanupOlof Johansson2008-01-282-139/+157
| | | | | | | | | | pasemi_mac: RX/TX ring management cleanup Prepare a bit for supporting multiple TX queues by cleaning up some of the ring management and shuffle things around a bit. Signed-off-by: Olof Johansson <olof@lixom.net> Signed-off-by: Jeff Garzik <jeff@garzik.org>