Import whirleye's cpu_control driver.

From
https://github.com/ProjectLense/kernel_omap4_spyder/blob/extra_kernel_module/drivers/extra/overclock/cpu_control.c
Mild code cleanup for cpu_control

Fix some error handling, change some identifier names.
Update copyright.
cpu_control: Locking fixes and code cleanup

1. Remove DEFINE_MUTEX(omap_dvfs_lock) - this creates another copy of
omap_dvfs_lock, which will not actually lock anything...

2. Lock omap_cpufreq_lock to ensure that omap2plus-cpufreq will not
operate while we are messing with the opp list.
Note: this does not protect against usage of the omap2plus-cpufreq's
freq_table (which is the same as cpu_control's freq_table).

In particular, omap2plus-cpufreq calls cpufreq_frequency_table_target()
outside of omap_cpufreq_lock, so this is not an actual solution. The
only way to safely lock for real is to use a scaling governor which will
not call omap2plus-cpufreq's omap_target(), such as the "performance"
governor. This will be fixed for real later.