diff options
Diffstat (limited to 'pvr-source/services4/system/omap4')
-rw-r--r-- | pvr-source/services4/system/omap4/sgxfreq_userspace.c | 58 | ||||
-rw-r--r-- | pvr-source/services4/system/omap4/sysconfig.c | 4 | ||||
-rw-r--r-- | pvr-source/services4/system/omap4/sysutils_linux.c | 1 |
3 files changed, 6 insertions, 57 deletions
diff --git a/pvr-source/services4/system/omap4/sgxfreq_userspace.c b/pvr-source/services4/system/omap4/sgxfreq_userspace.c index 5ff0dd0..aff6087 100644 --- a/pvr-source/services4/system/omap4/sgxfreq_userspace.c +++ b/pvr-source/services4/system/omap4/sgxfreq_userspace.c @@ -20,26 +20,17 @@ static int userspace_start(struct sgxfreq_sgx_data *data); static void userspace_stop(void); -static void userspace_sgx_clk_on(void); -static void userspace_sgx_clk_off(void); -static void userspace_sgx_active(void); -static void userspace_sgx_idle(void); static struct sgxfreq_governor userspace_gov = { .name = "userspace", .gov_start = userspace_start, .gov_stop = userspace_stop, - .sgx_clk_on = userspace_sgx_clk_on, - .sgx_clk_off = userspace_sgx_clk_off, - .sgx_active = userspace_sgx_active, - .sgx_idle = userspace_sgx_idle, }; static struct userspace_data { - unsigned long freq_user; /* in KHz */ - struct mutex mutex; + unsigned long freq_user; /* in Hz */ } usd; @@ -65,15 +56,11 @@ static ssize_t store_frequency_set(struct device *dev, if (ret != 1) return -EINVAL; - mutex_lock(&odd.mutex); - if (freq > sgxfreq_get_freq_max()) freq = sgxfreq_get_freq_max(); usd.freq_user = sgxfreq_set_freq_request(freq); trace_printk("USERSPACE: new freq=%luHz.\n", usd.freq_user); - mutex_unlock(&odd.mutex); - return count; } @@ -100,8 +87,6 @@ int userspace_init(void) { int ret; - mutex_init(&odd.mutex); - ret = sgxfreq_register_governor(&userspace_gov); if (ret) return ret; @@ -133,48 +118,7 @@ static int userspace_start(struct sgxfreq_sgx_data *data) static void userspace_stop(void) { - usd.freq_user = sgxfreq_set_freq_request(sgxfreq_get_freq_min()); sysfs_remove_group(sgxfreq_kobj, &userspace_attr_group); trace_printk("USERSPACE: stopped.\n"); } - - -static void userspace_sgx_clk_on(void) -{ - mutex_lock(&ood.mutex); - - sgxfreq_set_freq_request(usd.freq_user); - - mutex_unlock(&ood.mutex); -} - - -static void userspace_sgx_clk_off(void) -{ - mutex_lock(&ood.mutex); - - sgxfreq_set_freq_request(sgxfreq_get_freq_min()); - - mutex_unlock(&ood.mutex); -} - - -static void userspace_sgx_active(void) -{ - mutex_lock(&aid.mutex); - - sgxfreq_set_freq_request(usd.freq_user); - - mutex_unlock(&aid.mutex); -} - - -static void userspace_sgx_idle(void) -{ - mutex_lock(&aid.mutex); - - sgxfreq_set_freq_request(sgxfreq_get_freq_min()); - - mutex_unlock(&aid.mutex); -} diff --git a/pvr-source/services4/system/omap4/sysconfig.c b/pvr-source/services4/system/omap4/sysconfig.c index e9fd069..175252d 100644 --- a/pvr-source/services4/system/omap4/sysconfig.c +++ b/pvr-source/services4/system/omap4/sysconfig.c @@ -50,7 +50,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "ocpdefs.h" +#if (SGX_CORE_REV == 105) #define OMAP5430_CORE_REV 0x10005 +#elif (SGX_CORE_REV == 116) +#define OMAP5430_CORE_REV 0x10106 +#endif /* top level system data anchor point*/ SYS_DATA* gpsSysData = (SYS_DATA*)IMG_NULL; diff --git a/pvr-source/services4/system/omap4/sysutils_linux.c b/pvr-source/services4/system/omap4/sysutils_linux.c index 1bef2ee..bae1048 100644 --- a/pvr-source/services4/system/omap4/sysutils_linux.c +++ b/pvr-source/services4/system/omap4/sysutils_linux.c @@ -738,6 +738,7 @@ IMG_VOID SysSGXIdleEntered(IMG_VOID) IMG_VOID SysSGXCommandPending(IMG_BOOL bSGXIdle) { #if defined(SYS_OMAP4_HAS_DVFS_FRAMEWORK) + if (bSGXIdle) sgxfreq_notif_sgx_active(); #else PVR_UNREFERENCED_PARAMETER(bSGXIdle); |