
This is an ongoing list of things that need doing.
I add to it whenever I remember something, as my memory is awful.

If you would like to help out on something, email dave@powertweak.com to make
sure that no-one else is already doing the same work.
(Or make a posting to the mailing list)

===============================================================================

- [GUI] The only CPU vendor code that displays all the info is AMD.
  Fix up the others.

- [GUI] Clean up the CPU information tab.

- [GUI] Reorganise tree on left hand side.
  - Sort PCI list so that it creates a real tree like 'lspci -t'
	Then we'll see devices that hang off of bridges etc..
  - Create a 'hardware' leaf in the tree, with CPU & PCI under it.
	This will look cleaner when we add the non-hardware stuff.

- [GUI] Fix Matrox G200 extended info.
  - Currently reads dev/mem into a huge buffer. Use mmap()
  - Move kmem open/close to powertweak-config.c

- [GUI] Display a warning if someone has a PCI card on an AGP bus.
  These things are _awful_

- [GUI] Latency sliders on all devices.

- [GUI] VIA memory timings don't appear.

- [GUI] There is no GUI page for the /proc tuning.

- [GUI] Each tweak should also have a description of what it does.



- Overhaul the AGP code.
  - Check that there is an AGP card present before trying to turn on AGP only
	features
  - Check that the graphic card can actually support sideband addressing before
	enabling it. Same goes for AGPx2

- If there is nothing on the secondary IDE bus, change the FIFOs
  on chipsets such as the VIA VP3. (More /proc tuning, this time using
  the ide directory).

- Increase PCI bus latency if no ISA devices are found.
  This involves scanning for PnP devices using the library included in isapnptools.
  The only problem is, that we can't find non-PnP ISA devices.

- Update the config file parser.
  Upon loading the file, scan it once, and figure out where each section
  begins, and then pass these section pointers to the individual sub-parsers.
  This will stop the /proc parser having to grep through the pci section etc..
  Should be easy, just scan for #[PCI] or #[PROC]

- Write autoconf scripts.
  This will make things a little friendlier to build.
  It'll do stuff like not building the GTK interface when the GTK/GLIB
  libraries aren't installed etc..

- Finish off tweaks for certain chipsets.
  - The Intel chipsets have lots of stuff tweakable, which I've not
	added yet, such as DRAM timings etc..
	These haven't been added yet, as they must be implemented as code
	in the .c files rather than as tweaksets in the .h files.
	This obviously takes more time.

- More /proc/sys tweaks.

- Use capabilities instead of just checking if user==root.

- Additional command line arguments
	-loglevel=n

- Tweaks for more PCI devices.
  - Especially the remaining unknown chipsets.
	- There are quite a few vendors still not supported.
	  Unless someone else adds them, I intend to add ALi, SiS, Opti
	  in that order (anything else comes afterwards).
	  This would be a great opportunity for someone to jump in and
	  become maintainer of a specific vendor.
	- There are some remaining Intel & VIA chipsets still not done.
  - Non PCIset devices (NICs, Capture cards etc..)
	- At the least we can adjust the latencies of some cards.

- Optimisations for non-PCI devices. Possible? (E)ISA? VL-BUS?

- GUI for setting options.
	Currently, a GTK based GUI is in development, and is almost complete.
	When this code is in a stable state, I will begin work on another
	GUI using ncurses/newt/slang.
	v0.1.0 showed a hack of the kernel menu system.
	I've reconsidered since then, and have decided several things.
	- It won't look anything like that.
	  See the MSDOS 'TweakBIOS' program for inspiration.
	- It will be written in C, not a script like the kernel menu.
	  This is because we need things like PCI bus reading routines.

- Analysis of system config files making sure all optimal settings are set.
	- httpd.conf
	  - Number of clients
	  - Toggle hostname lookup
	  - ExtendedStatus
	- SAMBA
	  socket options = SO_SNDBUF=4096 SO_RCVBUF=4096
	- ppp options
	  - mtu
	  - mru
	- X config
	  - There are many options to increase performance of X.
		These vary from server to server. As not many people read the X
		documentation, these are missed. Adding them to the GUI should
		get them used.
	  - Possibility of creating a protocol communicating tweaks with X
		server.
	  - glx tuning.
	- fstab tuning.
	  - Add 'noatime' flag to /etc/fstab entries which change often,
		such as /var
	  - Change nfs mount options to..
		mount -o rsize=8192,wsize=8192 -t nfs host:/dir /mnt/point

- Integration of other speed enhancing tools.
	mgatweak
	- Brad has given the go-ahead for this, and seems quite interested.
	proform
	irqtune

- Tidy some sections of the code
	Some bits are real ugly. Usually the bits I wrote whilst tired 8^|
	grep for FIXME: or TODO: for some pointers.

- Support for architectures other than x86.
  I had reports from one user after v0.1.4 didn't compile on his Alpha.
  Hopefully the fixes in v0.1.5 should allow everything to compile and
  run without problems.
  - Does the PCI tuning work ?
	Actually, I know nothing about the bridges of non-x86 computers.
	Anyone with a non-x86 want to send me an lspci -xxx dump ?
  - Need to write non-x86 versions of 'cpuid' function.
