gpu: pvr: fix locking on SGX load calculating thread
authorImre Deak <imre.deak@nokia.com>
Mon, 5 Apr 2010 15:08:05 +0000 (18:08 +0300)
committerGrazvydas Ignotas <notasas@gmail.com>
Sun, 20 May 2012 18:09:40 +0000 (21:09 +0300)
psDeviceNodeList et al is protected by pvr_lock, so we need to
acquire it here.

Signed-off-by: Imre Deak <imre.deak@nokia.com>
CC: Mark Underwood <mark.underwood@imgtec.com>
CC: Mark Riding <mark.riding@imgtec.com>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@nokia.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@nokia.com>
pvr/sysutils.c

index 52c2584..6aa8ac1 100644 (file)
@@ -41,6 +41,7 @@
 #include "syslocal.h"
 #include "env_data.h"
 #include "ocpdefs.h"
+#include "pvr_bridge_km.h"
 
 #define        HZ_TO_MHZ(m) ((m) / 1000000)
 
@@ -265,7 +266,9 @@ static void sgx_lock_perf(struct work_struct *work)
        struct ENV_DATA *psEnvData =
            container_of(d_work, struct ENV_DATA, sPerfWork);
 
+       pvr_lock();
        load = sgx_current_load();
+       pvr_unlock();
        if (load) {
                vdd1 = 500000000;
                vdd2 = 400000;