sgx.git
13 years agogpu: pvr: fix locking in pvr_dbg_reset
Imre Deak [Wed, 31 Mar 2010 14:19:22 +0000 (17:19 +0300)]
gpu: pvr: fix locking in pvr_dbg_reset

HWRecoverResetSGX needs to be called with the pvr_lock held.

Signed-off-by: Imre Deak <imre.deak@nokia.com>
13 years agogpu: pvr: acquire the pvr lock on the SGX HW recovery path
Imre Deak [Wed, 31 Mar 2010 12:50:28 +0000 (15:50 +0300)]
gpu: pvr: acquire the pvr lock on the SGX HW recovery path

We need to take the lock protecting all SW and HW state tracking
objects on the recovery reset path, since we are accessing objects
like the SGX command queue, or the per process memory and resource
management contexts.

Signed-off-by: Imre Deak <imre.deak@nokia.com>
13 years agogpu: pvr: fix locking on the HW interrupt path
Imre Deak [Wed, 31 Mar 2010 13:56:53 +0000 (16:56 +0300)]
gpu: pvr: fix locking on the HW interrupt path

- take pvr_lock in the interrupt handling work (MISR) thread, as from
  there we can call functions accessing HW and SW state tracking objects.
  An example is the SGX HW recovery function.

- make SGXOSTimerCancel asynchronous. This is safe now as a previous
  patch made sure that the timer will not run after cancelled. We can't
  do synchronous cancellation, because there would be an ABBA lockdep
  problem involving the SGXOSTimer's mutex and pvr_lock:

  MISR / IOCTL thread:
    1. pvr_lock in PVRSRV_BridgeDispatchKM
    2. timer's lock through SGXPrePowerState -> SGXOSTimerCancel

  SGXOSTimer's thread:
    1. timer's lock already taken when SGXOSTimer is called
    2. pvr_lock in SGXOSTimer

Signed-off-by: Imre Deak <imre.deak@nokia.com>
13 years agogpu: pvr: bail out from SGXOSTimer if it's been canceled
Imre Deak [Wed, 31 Mar 2010 14:53:20 +0000 (17:53 +0300)]
gpu: pvr: bail out from SGXOSTimer if it's been canceled

At the moment cancelling the timer is done in a synchronous way, so
we don't need to have the extra check. But a later patch will add
additional locking around the HW interrupt from where the timer can
be cancelled as well. Because of lock dependency issues described
in that patch we have to switch to an asynchronous way of cancelling
this timer and it means we need to have the extra check.

Also reset the flag indicating that the timer is cancelled when
destroying it. Currently we are both cancelling and destroying the
timer, but we really should just require calling the destroy function.

Signed-off-by: Imre Deak <imre.deak@nokia.com>
13 years agogpu: pvr: add pvr_lock/remove unneeded lock headers
Imre Deak [Wed, 31 Mar 2010 11:55:54 +0000 (14:55 +0300)]
gpu: pvr: add pvr_lock/remove unneeded lock headers

- Add a public interface for accessing this lock. It has been used
  as a public interface anyway and an upcoming patch needs to access
  it as well.

- Remove headers becoming unnecessary by this refactoring.

Note:
  Currently this lock provides for a course level locking protecting
  all HW and SW state tracking objects. We'll need to revise the use
  of the following additional locks in the driver. Their existance
  might not be justified, in which case we could just substitute
  them with pvr_lock:

  PVRSRVDvfsLock
  PVRSRVPowerLock

Signed-off-by: Imre Deak <imre.deak@nokia.com>
13 years agogpu: pvr: add support to set board specific max SGX functional clk rate
Imre Deak [Fri, 19 Mar 2010 22:08:32 +0000 (23:08 +0100)]
gpu: pvr: add support to set board specific max SGX functional clk rate

Signed-off-by: Imre Deak <imre.deak@nokia.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
13 years agogpu: pvr: move device registration into board file
Carsten Valdemar Munk [Wed, 15 Dec 2010 14:24:25 +0000 (09:24 -0500)]
gpu: pvr: move device registration into board file

Needed by an upcoming patch adding board specific device parameters.

Signed-off-by: Imre Deak <imre.deak@nokia.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
Adapt for Nokia N900 MeeGo kernel

Signed-off-by: Carsten Munk <carsten@maemo.org>
13 years agogpu: pvr: compilation fixes for kernel > 2.6.33
Ameya Palande [Wed, 2 Jun 2010 12:04:01 +0000 (15:04 +0300)]
gpu: pvr: compilation fixes for kernel > 2.6.33

Signed-off-by: Ameya Palande <ameya.palande@nokia.com>
13 years agomeego-device-adaptation import version
Nokia [Sat, 19 May 2012 14:13:28 +0000 (17:13 +0300)]
meego-device-adaptation import version

  * PVR: upgrade to version 1.4
  * PVR: fix memory corruption due to incorrect cache flushing
  * pvr: fix SGX HW recovery resets seen during boot
  * pvr: preparation for page flipping
  * PVR: SGX 530r125 support
  * PVR: add support for runtime detection of SGX HW revision
  * PVR: fix SGX power management
  * Fixes: NB#156444 - PVR: kernel crash when binding large texture

13 years ago20100903+0m5
Nokia [Sat, 19 May 2012 13:39:19 +0000 (16:39 +0300)]
20100903+0m5

  * Fixes: NB#149006 - PVR: fix kernel crash due to freeing resource still in
    use
  * Increase stability by removing race conditions in the PVR driver
  * Fixes: NB#150134 - PVR: Fix races in the SGXOSTimer path
  * Fixes: NB#140581 - PVR crashes kernel when flushing the Dcache

13 years ago20094803.3+0m5
Nokia [Sat, 19 May 2012 13:19:45 +0000 (16:19 +0300)]
20094803.3+0m5

  * Fixes: NB#141271 - Reduce MPU wakeups caused by SGX lockup
    monitoring
  * Fixes: NB#140010 - Fix PVR driver's cache flush IOCTL checking
  * Fixes: NB#140591 - Fix PVR driver reading regs when the SGX HW is
    off

13 years ago20094102.3+0m5
Nokia [Sat, 19 May 2012 13:00:19 +0000 (16:00 +0300)]
20094102.3+0m5

  * Fixes: NB#144114 - SGX HW locking up due to errors in PVR driver
    memory mapping
  * Fixes: NB#106381 - PVR kernel driver source incompatible with Linux
    standards

13 years ago20093908+0m5+flat+Lindent
Nokia [Sat, 19 May 2012 12:52:35 +0000 (15:52 +0300)]
20093908+0m5+flat+Lindent

  * Fixes: NB#129392 - fix object reference counting in the PVR video
    driver
  * Fixes: NB#132086 - Framebuffer resets are ignored by the PVR driver
  * Preparation for a change in the SGX library
  * Fixes: NB#129389 - fix random PVR driver breakage
  * Fixes: NB#128247 - fix size checking for PVR memory mapping requests
  * Fixes: NB#126777 - PVR module can cause dead-lock at reboot time
  * Fixes: NB#125756 - PVR triggers a lockdep warning
  * Fixes: NB#111084 - SGX compilation warnings
  * Fixes: NB#122294 - Performance regression in SGX operations caused
    by DVFS
  * Fixes: NB#121668 - PVR: error returned by drm_ttm_create is ignored
  * Fixes: NB#121947 - PVR: memory should not be released twice
  * Fixes: NB#119655 - PVR: random allocation failure for sizes > 4k
  * Introduce a patch related to NB#108042 -
    PVR: wrapped memory space runs out (not a complete fix)
  * Fixes: NB#112118 - Fix PVR breakage when using DVFS
  * Fix crashes due to power/clock state transitions in PVR
  * Fixes: NB#110835 - PVR: lock dependency bug
  * Enable dynamic power management for SGX
  * upgrade to SGX 1.3 (fingers crossed)

13 years ago1.3.13.1607/3_00_00_08+flat+Lindent
Imagination Technologies/TI [Sat, 19 May 2012 12:47:09 +0000 (15:47 +0300)]
1.3.13.1607/3_00_00_08+flat+Lindent