android_kernel_xiaomi_sm8350/drivers/net/wireless
Arjan van de Ven 5c87579e65 [PATCH] maximum latency tracking infrastructure
Add infrastructure to track "maximum allowable latency" for power saving
policies.

The reason for adding this infrastructure is that power management in the
idle loop needs to make a tradeoff between latency and power savings
(deeper power save modes have a longer latency to running code again).  The
code that today makes this tradeoff just does a rather simple algorithm;
however this is not good enough: There are devices and use cases where a
lower latency is required than that the higher power saving states provide.
 An example would be audio playback, but another example is the ipw2100
wireless driver that right now has a very direct and ugly acpi hook to
disable some higher power states randomly when it gets certain types of
error.

The proposed solution is to have an interface where drivers can

* announce the maximum latency (in microseconds) that they can deal with
* modify this latency
* give up their constraint

and a function where the code that decides on power saving strategy can
query the current global desired maximum.

This patch has a user of each side: on the consumer side, ACPI is patched
to use this, on the producer side the ipw2100 driver is patched.

A generic maximum latency is also registered of 2 timer ticks (more and you
lose accurate time tracking after all).

While the existing users of the patch are x86 specific, the infrastructure
is not.  I'd like to ask the arch maintainers of other architectures if the
infrastructure is generic enough for their use (assuming the architecture
has such a tradeoff as concept at all), and the sound/multimedia driver
owners to look at the driver facing API to see if this is something they
can use.

[akpm@osdl.org: cleanups]
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Jesse Barnes <jesse.barnes@intel.com>
Cc: "Brown, Len" <len.brown@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-10-01 00:39:19 -07:00
..
bcm43xx Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2006-09-27 14:41:24 -07:00
hostap [PATCH] WE-21 for hostap 2006-09-25 16:52:15 -04:00
prism54 [PATCH] WE-21 for Prism54 2006-09-25 16:52:15 -04:00
zd1211rw [PATCH] zd1211rw: Add LED support 2006-09-25 16:52:17 -04:00
airo_cs.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
airo.c [PATCH] WE-21 for airo 2006-09-25 16:52:14 -04:00
airo.h
airport.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
arlan-main.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
arlan-proc.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
arlan.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
atmel_cs.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
atmel_pci.c drivers/net: Remove deprecated use of pci_module_init() 2006-08-19 17:48:59 -04:00
atmel.c [PATCH] WE-21 for atmel 2006-09-25 16:52:14 -04:00
atmel.h
hermes_rid.h
hermes.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
hermes.h [PATCH] orinoco: don't use any padding for Tx frames 2006-04-24 16:15:51 -04:00
i82586.h
i82593.h
ipw2100.c [PATCH] maximum latency tracking infrastructure 2006-10-01 00:39:19 -07:00
ipw2100.h
ipw2200.c [PATCH] WE-21 for ipw2200 2006-09-25 16:52:16 -04:00
ipw2200.h [PATCH] ipw2200: enable wireless extension passive scan 2006-08-29 17:06:34 -04:00
Kconfig [PATCH] ipw2200: always enable frequently used debugging code 2006-08-29 17:06:31 -04:00
Makefile [PATCH] ZyDAS ZD1211 USB-WLAN driver 2006-07-05 13:42:58 -04:00
netwave_cs.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
orinoco_cs.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
orinoco_nortel.c drivers/net: Remove deprecated use of pci_module_init() 2006-08-19 17:48:59 -04:00
orinoco_pci.c drivers/net: Remove deprecated use of pci_module_init() 2006-08-19 17:48:59 -04:00
orinoco_pci.h [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
orinoco_plx.c drivers/net: Remove deprecated use of pci_module_init() 2006-08-19 17:48:59 -04:00
orinoco_tmd.c drivers/net: Remove deprecated use of pci_module_init() 2006-08-19 17:48:59 -04:00
orinoco.c [PATCH] WE-21 for orinoco 2006-09-25 16:52:15 -04:00
orinoco.h [PATCH] orinoco: Don't use "extern inline" on locking functions 2006-08-29 17:06:29 -04:00
ray_cs.c [PATCH] WE-21 for ray_cs 2006-09-25 16:52:15 -04:00
ray_cs.h [PATCH] pcmcia: remove dev_link_t and client_handle_t indirection 2006-03-31 17:21:06 +02:00
rayctl.h
README
spectrum_cs.c [PATCH] spectrum_cs: Fix incorrect use of pcmcia_dev_present() 2006-08-23 14:20:37 -04:00
strip.c [IPV4]: annotate struct in_ifaddr 2006-09-28 18:00:55 -07:00
todo.txt
wavelan_cs.c drivers/net: const-ify ethtool_ops declarations 2006-09-13 14:30:00 -04:00
wavelan_cs.h
wavelan_cs.p.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
wavelan.c [PATCH] skb_padto()-area fixes in 8390, wavelan 2006-06-22 23:32:02 -04:00
wavelan.h
wavelan.p.h
wl3501_cs.c [PATCH] WE-21 for wl3501 2006-09-25 16:52:15 -04:00
wl3501.h [PATCH] pcmcia: embed dev_link_t into struct pcmcia_device 2006-03-31 17:15:57 +02:00
zd1201.c Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2006-09-27 14:41:24 -07:00
zd1201.h [PATCH] wireless: move zd1201 where it belongs 2006-06-05 16:13:30 -04:00

	README
	------

	This directory is mostly for Wireless LAN drivers, in their
various incarnations (ISA, PCI, Pcmcia...).
	This separate directory is needed because a lot of driver work
on different bus (typically PCI + Pcmcia) and share 95% of the
code. This allow the code and the config options to be in one single
place instead of scattered all over the driver tree, which is never
100% satisfactory.

	Note : if you want more info on the topic of Wireless LANs,
you are kindly invited to have a look at the Wireless Howto :
		http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/
	Some Wireless LAN drivers, like orinoco_cs, require the use of
Wireless Tools to be configured :
		http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html

	Special notes for distribution maintainers :
	1) wvlan_cs will be discontinued soon in favor of orinoco_cs
	2) Please add Wireless Tools support in your scripts

	Have fun...

	Jean