additional minor changes:
* rename PAGE_SIZE register MH_PAGE_SIZE in yamato/22/yamato_genreg.h (although this is an unused debug file so far)
* remove references to stdio files in gsl_debug_pm4.c (will come in handy later)
gpu: pull in some command stream differences from Qualcomm's MSM kernel (might fix some intermittent GPU hangs)
display: enable quick testing of non-mmu operation (hangs X right now)
* mutex, events, sleeps, process id unabstracted
* defines for function types (inline, extern) unabstracted
* defines for debug assert change name (KOS_ASSERT -> DEBUG_ASSERT) and left disabled
* driver now warns, if logging is enabled, that interruptible mutex locks are interrupted (which never happens in reality but it fixes a warning)
* remove fine grained locking "feature" since it's not enabled (and Qualcomm's public driver does not even implement it)
* refine mutex initialization where it's still present - don't try and allocate mutex structures where they're always used, just make them parts of the structure (struct mutex * -> struct mutex)
* whitespace police
apertures instead of PHYS and EMEM1/MMU and EMEM2. Modify setup to utilize all of reserved memory for PHYS
aperture instead of splitting. Now, a 32MB (in platform fixup, mx51_efikamx.c) reserved block is utilized as
the PHYS, or an 8MB chunk is carved out of coherent memory space (DMA allocation) if reservation is disabled.
Normal memory usage for a desktop with browser, office and media player is well over 64MB but the Xorg driver
will evict unused pixmaps where necessary to keep the current performance pixmaps in place.
The new microcode fix some easy hang issues.
Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
(cherry picked from commit a48455dbea90720cba4be3e827e8b90e6abffd7d)
(cherry picked from commit cf09e2bac1cac560c6019332c37676b919700dda)
With MMU enabled, there is no need to reserve memory for GPU
at boot time
Signed-off-by: Zhou, Jie <b30303@freescale.com>
(cherry picked from commit 326da1d885108399f4e22d10a8fe341a7a110ffc)
pending indicate the timer has been fired but clock not yet disabled.
This patch fixs the bug that sometimes in irq handle it tries to enable
clock and cause BUG.
Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
(cherry picked from commit 4b73c7a14fdebbd1240dbb1f5e4efa5b7a65f63c)
seperate interrupt handling and clk_enable for Z160 and Z430
Signed-off-by: Zhou, Jie <b30303@freescale.com>
(cherry picked from commit 7da21af984a50ffb166ab1a088cd2c5d4313537b)
The root cause is endless GSL_INTR_BLOCK_YDX_CP interrupt.
Apply interrupt status read work around only when yamato started.
Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
The GPU hang when run two cubes together with one video playback.
According to the suggestion from AMD, we'd better not read register
when GPU active, especially for CP block.
Signed-off-by: Zhou, Jie <b30303@freescale.com>
When bus is busy, for example vpu is working too, the timestamp is
possiblly not yet refreshed to memory by yamato when we get
GSL_INTR_YDX_CP_RING_BUFFER. For most cases, it will hit on first
loop cycle. So it don't effect performance.
Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
(cherry picked from commit e97cab9b93d3e3f125684577f2522404da77872e)
For timer based power autogating, we have to move clk_enable/disable out of
timer handler, because they become may sleep.
Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
If GPU error interrupt detected, related device will be destroyed.
In the destory function, device_idle and mutex_lock may cause sleep,
which may cause kernel crash, so delay the device destroy to the
workqueue to avoid this.
Signed-off-by: Jie Zhou <b30303@freescale.com>