Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6
[pandora-kernel.git] / Documentation / feature-removal-schedule.txt
1 The following is a list of files and features that are going to be
2 removed in the kernel source tree.  Every entry should contain what
3 exactly is going away, why it is happening, and who is going to be doing
4 the work.  When the feature is removed from the kernel, it should also
5 be removed from this file.
6
7 ---------------------------
8
9 What:   /sys/devices/.../power/state
10         dev->power.power_state
11         dpm_runtime_{suspend,resume)()
12 When:   July 2007
13 Why:    Broken design for runtime control over driver power states, confusing
14         driver-internal runtime power management with:  mechanisms to support
15         system-wide sleep state transitions; event codes that distinguish
16         different phases of swsusp "sleep" transitions; and userspace policy
17         inputs.  This framework was never widely used, and most attempts to
18         use it were broken.  Drivers should instead be exposing domain-specific
19         interfaces either to kernel or to userspace.
20 Who:    Pavel Machek <pavel@suse.cz>
21
22 ---------------------------
23
24 What:   RAW driver (CONFIG_RAW_DRIVER)
25 When:   December 2005
26 Why:    declared obsolete since kernel 2.6.3
27         O_DIRECT can be used instead
28 Who:    Adrian Bunk <bunk@stusta.de>
29
30 ---------------------------
31
32 What:   drivers that were depending on OBSOLETE_OSS_DRIVER
33         (config options already removed)
34 When:   before 2.6.19
35 Why:    OSS drivers with ALSA replacements
36 Who:    Adrian Bunk <bunk@stusta.de>
37
38 ---------------------------
39
40 What:   raw1394: requests of type RAW1394_REQ_ISO_SEND, RAW1394_REQ_ISO_LISTEN
41 When:   November 2006
42 Why:    Deprecated in favour of the new ioctl-based rawiso interface, which is
43         more efficient.  You should really be using libraw1394 for raw1394
44         access anyway.
45 Who:    Jody McIntyre <scjody@modernduck.com>
46
47 ---------------------------
48
49 What:   sbp2: module parameter "force_inquiry_hack"
50 When:   July 2006
51 Why:    Superceded by parameter "workarounds". Both parameters are meant to be
52         used ad-hoc and for single devices only, i.e. not in modprobe.conf,
53         therefore the impact of this feature replacement should be low.
54 Who:    Stefan Richter <stefanr@s5r6.in-berlin.de>
55
56 ---------------------------
57
58 What:   Video4Linux API 1 ioctls and video_decoder.h from Video devices.
59 When:   July 2006
60 Why:    V4L1 AP1 was replaced by V4L2 API. during migration from 2.4 to 2.6
61         series. The old API have lots of drawbacks and don't provide enough
62         means to work with all video and audio standards. The newer API is
63         already available on the main drivers and should be used instead.
64         Newer drivers should use v4l_compat_translate_ioctl function to handle
65         old calls, replacing to newer ones.
66         Decoder iocts are using internally to allow video drivers to
67         communicate with video decoders. This should also be improved to allow
68         V4L2 calls being translated into compatible internal ioctls.
69 Who:    Mauro Carvalho Chehab <mchehab@brturbo.com.br>
70
71 ---------------------------
72
73 What:   PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl])
74 When:   November 2005
75 Files:  drivers/pcmcia/: pcmcia_ioctl.c
76 Why:    With the 16-bit PCMCIA subsystem now behaving (almost) like a
77         normal hotpluggable bus, and with it using the default kernel
78         infrastructure (hotplug, driver core, sysfs) keeping the PCMCIA
79         control ioctl needed by cardmgr and cardctl from pcmcia-cs is
80         unnecessary, and makes further cleanups and integration of the
81         PCMCIA subsystem into the Linux kernel device driver model more
82         difficult. The features provided by cardmgr and cardctl are either
83         handled by the kernel itself now or are available in the new
84         pcmciautils package available at
85         http://kernel.org/pub/linux/utils/kernel/pcmcia/
86 Who:    Dominik Brodowski <linux@brodo.de>
87
88 ---------------------------
89
90 What:   ip_queue and ip6_queue (old ipv4-only and ipv6-only netfilter queue)
91 When:   December 2005
92 Why:    This interface has been obsoleted by the new layer3-independent
93         "nfnetlink_queue".  The Kernel interface is compatible, so the old
94         ip[6]tables "QUEUE" targets still work and will transparently handle
95         all packets into nfnetlink queue number 0.  Userspace users will have
96         to link against API-compatible library on top of libnfnetlink_queue 
97         instead of the current 'libipq'.
98 Who:    Harald Welte <laforge@netfilter.org>
99
100 ---------------------------
101
102 What:   remove EXPORT_SYMBOL(kernel_thread)
103 When:   August 2006
104 Files:  arch/*/kernel/*_ksyms.c
105 Why:    kernel_thread is a low-level implementation detail.  Drivers should
106         use the <linux/kthread.h> API instead which shields them from
107         implementation details and provides a higherlevel interface that
108         prevents bugs and code duplication
109 Who:    Christoph Hellwig <hch@lst.de>
110
111 ---------------------------
112
113 What:   CONFIG_FORCED_INLINING
114 When:   June 2006
115 Why:    Config option is there to see if gcc is good enough. (in january
116         2006). If it is, the behavior should just be the default. If it's not,
117         the option should just go away entirely.
118 Who:    Arjan van de Ven
119
120 ---------------------------
121
122 What:   START_ARRAY ioctl for md
123 When:   July 2006
124 Files:  drivers/md/md.c
125 Why:    Not reliable by design - can fail when most needed.
126         Alternatives exist
127 Who:    NeilBrown <neilb@suse.de>
128
129 ---------------------------
130
131 What:   eepro100 network driver
132 When:   January 2007
133 Why:    replaced by the e100 driver
134 Who:    Adrian Bunk <bunk@stusta.de>
135
136 ---------------------------
137
138 What:  drivers depending on OSS_OBSOLETE_DRIVER
139 When:  options in 2.6.20, code in 2.6.22
140 Why:   OSS drivers with ALSA replacements
141 Who:   Adrian Bunk <bunk@stusta.de>
142
143 ---------------------------
144
145 What:   pci_module_init(driver)
146 When:   January 2007
147 Why:    Is replaced by pci_register_driver(pci_driver).
148 Who:    Richard Knutsson <ricknu-0@student.ltu.se> and Greg Kroah-Hartman <gregkh@suse.de>
149
150 ---------------------------
151
152 What:   Usage of invalid timevals in setitimer
153 When:   March 2007
154 Why:    POSIX requires to validate timevals in the setitimer call. This
155         was never done by Linux. The invalid (e.g. negative timevals) were
156         silently converted to more or less random timeouts and intervals.
157         Until the removal a per boot limited number of warnings is printed
158         and the timevals are sanitized.
159
160 Who:    Thomas Gleixner <tglx@linutronix.de>
161
162 ---------------------------
163
164 What:   I2C interface of the it87 driver
165 When:   January 2007
166 Why:    The ISA interface is faster and should be always available. The I2C
167         probing is also known to cause trouble in at least one case (see
168         bug #5889.)
169 Who:    Jean Delvare <khali@linux-fr.org>
170
171 ---------------------------
172
173 What:   Unused EXPORT_SYMBOL/EXPORT_SYMBOL_GPL exports
174         (temporary transition config option provided until then)
175         The transition config option will also be removed at the same time.
176 When:   before 2.6.19
177 Why:    Unused symbols are both increasing the size of the kernel binary
178         and are often a sign of "wrong API"
179 Who:    Arjan van de Ven <arjan@linux.intel.com>
180
181 ---------------------------
182
183 What:   mount/umount uevents
184 When:   February 2007
185 Why:    These events are not correct, and do not properly let userspace know
186         when a file system has been mounted or unmounted.  Userspace should
187         poll the /proc/mounts file instead to detect this properly.
188 Who:    Greg Kroah-Hartman <gregkh@suse.de>
189
190 ---------------------------
191
192 What:   USB driver API moves to EXPORT_SYMBOL_GPL
193 When:   Febuary 2008
194 Files:  include/linux/usb.h, drivers/usb/core/driver.c
195 Why:    The USB subsystem has changed a lot over time, and it has been
196         possible to create userspace USB drivers using usbfs/libusb/gadgetfs
197         that operate as fast as the USB bus allows.  Because of this, the USB
198         subsystem will not be allowing closed source kernel drivers to
199         register with it, after this grace period is over.  If anyone needs
200         any help in converting their closed source drivers over to use the
201         userspace filesystems, please contact the
202         linux-usb-devel@lists.sourceforge.net mailing list, and the developers
203         there will be glad to help you out.
204 Who:    Greg Kroah-Hartman <gregkh@suse.de>
205
206 ---------------------------
207
208 What:   find_trylock_page
209 When:   January 2007
210 Why:    The interface no longer has any callers left in the kernel. It
211         is an odd interface (compared with other find_*_page functions), in
212         that it does not take a refcount to the page, only the page lock.
213         It should be replaced with find_get_page or find_lock_page if possible.
214         This feature removal can be reevaluated if users of the interface
215         cannot cleanly use something else.
216 Who:    Nick Piggin <npiggin@suse.de>
217
218 ---------------------------
219
220 What:   Support for the MIPS EV96100 evaluation board
221 When:   September 2006
222 Why:    Does no longer build since at least November 15, 2003, apparently
223         no userbase left.
224 Who:    Ralf Baechle <ralf@linux-mips.org>
225
226 ---------------------------
227
228 What:   Support for the Momentum / PMC-Sierra Jaguar ATX evaluation board
229 When:   September 2006
230 Why:    Does no longer build since quite some time, and was never popular,
231         due to the platform being replaced by successor models.  Apparently
232         no user base left.  It also is one of the last users of
233         WANT_PAGE_VIRTUAL.
234 Who:    Ralf Baechle <ralf@linux-mips.org>
235
236 ---------------------------
237
238 What:   Support for the Momentum Ocelot, Ocelot 3, Ocelot C and Ocelot G
239 When:   September 2006
240 Why:    Some do no longer build and apparently there is no user base left
241         for these platforms.
242 Who:    Ralf Baechle <ralf@linux-mips.org>
243
244 ---------------------------
245
246 What:   Support for MIPS Technologies' Altas and SEAD evaluation board
247 When:   September 2006
248 Why:    Some do no longer build and apparently there is no user base left
249         for these platforms.  Hardware out of production since several years.
250 Who:    Ralf Baechle <ralf@linux-mips.org>
251
252 ---------------------------
253
254 What:   Support for the IT8172-based platforms, ITE 8172G and Globespan IVR
255 When:   September 2006
256 Why:    Code does no longer build since at least 2.6.0,  apparently there is
257         no user base left for these platforms.  Hardware out of production
258         since several years and hardly a trace of the manufacturer left on
259         the net.
260 Who:    Ralf Baechle <ralf@linux-mips.org>
261
262 ---------------------------
263
264 What:   Interrupt only SA_* flags
265 When:   Januar 2007
266 Why:    The interrupt related SA_* flags are replaced by IRQF_* to move them
267         out of the signal namespace.
268
269 Who:    Thomas Gleixner <tglx@linutronix.de>
270
271 ---------------------------
272
273 What:   i2c-ite and i2c-algo-ite drivers
274 When:   September 2006
275 Why:    These drivers never compiled since they were added to the kernel
276         tree 5 years ago. This feature removal can be reevaluated if
277         someone shows interest in the drivers, fixes them and takes over
278         maintenance.
279         http://marc.theaimsgroup.com/?l=linux-mips&m=115040510817448
280 Who:    Jean Delvare <khali@linux-fr.org>
281
282 ---------------------------
283
284 What:   Bridge netfilter deferred IPv4/IPv6 output hook calling
285 When:   January 2007
286 Why:    The deferred output hooks are a layering violation causing unusual
287         and broken behaviour on bridge devices. Examples of things they
288         break include QoS classifation using the MARK or CLASSIFY targets,
289         the IPsec policy match and connection tracking with VLANs on a
290         bridge. Their only use is to enable bridge output port filtering
291         within iptables with the physdev match, which can also be done by
292         combining iptables and ebtables using netfilter marks. Until it
293         will get removed the hook deferral is disabled by default and is
294         only enabled when needed.
295
296 Who:    Patrick McHardy <kaber@trash.net>
297
298 ---------------------------
299
300 What:   frame diverter
301 When:   November 2006
302 Why:    The frame diverter is included in most distribution kernels, but is
303         broken. It does not correctly handle many things:
304         - IPV6
305         - non-linear skb's
306         - network device RCU on removal
307         - input frames not correctly checked for protocol errors
308         It also adds allocation overhead even if not enabled.
309         It is not clear if anyone is still using it.
310 Who:    Stephen Hemminger <shemminger@osdl.org>
311
312 ---------------------------
313
314
315 What:   PHYSDEVPATH, PHYSDEVBUS, PHYSDEVDRIVER in the uevent environment
316 When:   Oktober 2008
317 Why:    The stacking of class devices makes these values misleading and
318         inconsistent.
319         Class devices should not carry any of these properties, and bus
320         devices have SUBSYTEM and DRIVER as a replacement.
321 Who:    Kay Sievers <kay.sievers@suse.de>
322
323 ---------------------------