Current Linux Kernel TODO List
DMA
Add optional DMA auto-request support to sh-sci and other blocks.
Timers
Generic sched_clock() for drivers/clocksource based clocksources.
Needs some rework to avoid wrapping, need to investigate interaction with function graph tracer.
Cache and Memory Management
NUMA emulation on top of the recent LMB/bootmem changes (Paul is theoretically working on this).
sparsemem vmemmap and extreme.
highmem.
highpte on top of this.
Likely restricted to UP given the need to broadcast TLB flushes via software triggered IPIs.
Support highmem= for testing with an arbitrary lowmem cutoff.
Support arbitrary VMSPLIT for PMB systems.
Killing off MEMORY_START/MEMORY_SIZE in favour of a dynamic model.
This will allow for dynamic sizing based off of mode pins as well as for deriving the highmem watermark.
Current MEMORY_OFFSET calculation is 0 for virtually every platform already.
Boot link offset and zero page offset can be retained for the few platforms that need them.
Variable page sizes for hugetlb.
Use large TLBs in ioremap constructed page tables, now that page-table backed ioremap is a common enough operation.
Keep this generic, as sparsemem vmemmap will want to use the same mapping strategy.
Power Management
Run Time
Clock Framework
Clock Framework for SuperH Mobile:
Clock divider extension
User space prototype - Done!
Cpufreq integration
Drivers:
Modify SuperH Mobile drivers to use the clock framework:
SCIF driver - patches posted!
MMC, FLCTL
LCD backlight
Single shot LCDC mode with SYS panels - Done!
UIO:
Add basic clock framework support to UIO.
Other core code:
Modify the interrupt controller and DMA code to use the clock framework.
Cpuidle and Sleep Mode, Dynamic Ticks
Add Cpuidle support plus Sleep Mode. Optimize with Dynamic ticks.
Cpuidle prototype, enter sleep mode - Done!
Upstream simple Cpuidle integration
Combine with SDRAM self-refresh to save power
SDRAM in self-refresh mode:
Add platform specific SDRAM code to be able to enter Software Standby.
Self-refresh mode prototype through cpuidle - Done!
Software Standby Mode Support:
Implement and test Software Standby mode, invoke through Cpuidle
Software Standby prototype - Done!
Frequency and Voltage scaling:
Investigate frequency scaling together with voltage scaling.
Suspend / Resume
Save / Restore Ram contents:
Make sure we can save and restore memory contents inside kexec_jump.
Driver Suspend / Resume support:
Verify/Modify common subsystem code suspend support
hibernation to mmc is not ok
hibernation to usb status is unknown
R-Standby Mode Support:
Implement and test R-Standby mode using kexec_jump.
U-Standby Mode Support:
Implement and test U-Standby mode using kexec_jump.
Boot loader resume support:
Add support for resume from boot loader.
Partial Suspend / Resume
Allow single drivers to be suspended / resumed for Cpuidle R-Standby Support
General Kernel Features
CPU hotplug.
Relocatable kernel support.
Rework of hard FPU emulation. Tie in to signal context and regset interface (in-progress patch available).
Write small FPU and DSP test apps in user space from application note code.
Support IRQ priority setting through generic hardirq layer.
Support SMP kernel on UP boot for debugging.
Systematic death of all I/O routines from the machvec, and subsequent conversion to GENERIC_IOMAP.
Proper .eh_frame generation in vdso
vsyscall-based gtod / clocksource vread.
May require vdso twiddling to behave more as a conventional data page.
SWIOTLB support needed for PCIe DMA on SH-X3.
Rework of the thermal subsystem to accommodate the SH-X3 thermal diode. (patch in progress).
Convert remaining legacy CPG users to new clock framework abstraction.
clkdev interfacing.
machine_ops for reset/power control.
kexec needs to be hw_breakpoint aware.
Drivers
MFD drivers for SMSC FD37C93xAPM and HD6446x cchips.
PFC driver updates for upstream GPIO API changes.
Also need to tie in GPIO IRQs for platforms that need them (primarily SH-2A).
Wiki