30 Apr, 2018
1 commit
-
- For i.MX 6 and 7 check if the Secure Firmware (OPTEE) is present.
If present don't do the RNG instantation in the CAAM driverReviewed-by: Silvano Di Ninno
Signed-off-by: Cedric Neveux
(cherry picked from commit 2b9489d18b6eca5b1f72689602f0eed16e88db84)
27 Apr, 2018
8 commits
-
Add some necessary configs for qualcomm wifi QCA6174 qcacld-2.0
and remove the ath10k configs.
(Run "make savedefconfig" to change the defconfig)Reviewed-by: Andy Tian
Signed-off-by: Fugang Duan -
Fix the build warning with [-Wpointer-compare] parameters.
Reviewed-by: Bough Chen
Signed-off-by: Fugang Duan
(cherry picked from commit:414b9eb9d5dd309988e409698ae4173967305a74) -
If enable _BLIT0:SC_C_SEL0, the prg for _BLIT0
will connect to _BLIT1, so _BLIT1 will have two prgs,
and _BLIT1 could works for multi planes conversion.
Check the plane num and dynamic enable or disable SC_C_SEL0.Signed-off-by: yuchou gan
-
This patch adds prg_put_auxiliary() helper support so that users may
set a particular PRG not serve as an auxiliary one.Signed-off-by: Yuchou Gan
-
As the display will also use dprc0-irq, which will disturb the
interrupt for blit engine if blit engine use irq.
Refine the first frame process so that blit engine never use irq any more.Signed-off-by: yuchou gan
-
On qxp b0 board, _BLIT1 will have aux_prg if enable PRG0_SEL.
Signed-off-by: yuchou gan
-
On QXP B0 board, prg1 can alternative connect to
dpr_channel1 and channel2. And if enable PRG0_SEL:BLIT0,
prg1 will connect to channel2, so it could
support 2-plane format tile to linear convert.Signed-off-by: yuchou gan
-
Add SC_C_SEL0 for imx8qm/qxp B0.
Signed-off-by: yuchou gan
26 Apr, 2018
6 commits
-
there are 2 test failed on 8QXP FB. CL151757 fixed bug #20196,
for image objects using host ptr, set the cacheable flag correctly.merged CL151774 fix build error cause by CL151757.
Signed-off-by: Xianzhong
(cherry picked from commit 0be7546b8798645cea95e7dc935c43380f763458) -
When pm is running power ON to OFF (not broadcast), gckCOMMAND_Stall is called for synchronization.
But it does not blocks more events.Signed-off-by: Xianzhong
(cherry picked from commit 1e2fae3d33a5e4b0690722dc112fd5a77eb90eac) -
When power ON to other mode with broadcast (SUSPEND_BROADCAST,
IDLE_BROADCAST, OFF_BROADCAST), command->powerSemaphore is acquired after check idle.
code sequence:
check commit atom
check idle
>>> at this point, other thread may have new commits at this
>>> point.
Acquire command->powerSemaphore
... do clock offThis can cause unexpected interrupts after clock OFF or power
OFF.To fix: try to acquire powerSemaphore before check commit atom,
abort when failure, because command commit is in progress.fix bug #19216, #19230.
Signed-off-by: Xianzhong
(cherry picked from commit 5228271314e8f575e4bbd9d3087c220b6a344b7d) -
When pm (SetPowerManagementState) is running power ON to
SUSPEND_BROADCAST, it only checks wait-link FE, but not Async FE. Clock
can be off when read AsyncFE Acknowledge register and other.pm thread:
...
check commit atom ok
>> check idle OK
(former stopIsr before cl144673 is here)
set GPU clock off
...isr:
gcmkONERROR(ReadRegister(AQ_INTR_ACKNOWLEDGE_Address));
gckEVENT_Interrupt
>>> here, at this point, all interrupt comes, check idle in
>>> pm thread can pass.
gcmkONERROR(ReadRegister(AQ_INTR_ACKNOWLEDGE_EX_Address));
gckFE_UpdateAvaiable -> ReadRegister(GCREG_FE_ASYNC_STATUS_Address)If gcmkONERROR(ReadRegister(AQ_INTR_ACKNOWLEDGE_EX_Address))
fail of clock off, then gckHARDWARE_Interrupt fails. In isrRoutine, it
won't wake up threadRoutine. Then it's stuck!
ReadRegister(GCREG_FE_ASYNC_STATUS_Address) failure can cause
unexpected behavior, too.Former stopIsr (free_irq, before cl144673) can remove isr before
GPU clock off. So the issue is hidden.To fix:
1. We should return success when either FE or AsyncFE reports
correct interrupts, so that isr can wake up threadRoutine for either FE.
That means, only need return ERROR when both FEs reports ERROR.
2. Add check for status of
ReadRegister(GCREG_FE_ASYNC_STATUS_Address).Fix bug #19216, #19230.
merged BUG#19216 BUG#19230 CL152073 add missing part for CL151955
Signed-off-by: Xianzhong
(cherry picked from commit 274841e0b05704726e28cc10185b6fb5973969f4) -
1. slightly increate performance for interrupt handler
2. refine powerMutex lock
3. remove obsolete power management mode
4. code refinement preparing fix for bug #19216, #19230Signed-off-by: Xianzhong
(cherry picked from commit e002022c3143b3e266af893b02bb913e3d156c54) -
Using uninitialized value minf when calling snprintf.
Initilize it to fix.Date: 25th Apr, 2018
Signed-off-by: Yuchou Gan
25 Apr, 2018
3 commits
-
Currently, WiFi only work on SDIO2.0 mode, so add property
"no-1-8-v", otherwise following warning log will be printsdhci-esdhc-imx 40380000.usdhc: could not get ultra high speed state, work on normal mode
The regulator reg_vsd_3v3 and reg_sd1_vmmc has the same
regulator name, so will trigger the following error log:VSD_3V3: Failed to create debugfs directory
So change the regulator name of reg_sd1_vmmc.
According to the spec suggestion, ibe need to be enabled
for usdhc clock pin, and clock is better to pull down.Signed-off-by: Haibo Chen
(cherry picked from commit b62dd733a100e35e93543642149bcf8b61e13242) -
When CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=n, the call path
hrtimer_reprogram -> clockevents_program_event ->
clockevents_program_min_delta will not retry if the clock event driver
returns -ETIME.If the driver could not satisfy the program_min_delta for any reason, the
lack of a retry means the CPU may not receive a tick interrupt, potentially
until the counter does a full period. This leads to rcu_sched timeout
messages as the stalled CPU is detected by other CPUs, and other issues if
the CPU is holding locks or other resources at the point at which it
stalls.There have been a couple of observed mechanisms through which a clock event
driver could not satisfy the requested min_delta and return -ETIME.With the MIPS GIC driver, the shared execution resource within MT cores
means inconventient latency due to execution of instructions from other
hardware threads in the core, within gic_next_event, can result in an event
being set in the past.Additionally under virtualisation it is possible to get unexpected latency
during a clockevent device's set_next_event() callback which can make it
return -ETIME even for a delta based on min_delta_ns.It isn't appropriate to use MIN_ADJUST in the virtualisation case as
occasional hypervisor induced high latency will cause min_delta_ns to
quickly increase to the maximum.Instead, borrow the retry pattern from the MIN_ADJUST case, but without
making adjustments. Retry up to 10 times, each time increasing the
attempted delta by min_delta, before giving up.[ Matt: Reworked the loop and made retry increase the delta. ]
Signed-off-by: James Hogan
Signed-off-by: Matt Redfearn
Signed-off-by: Thomas Gleixner
Cc: linux-mips@linux-mips.org
Cc: Daniel Lezcano
Cc: "Martin Schwidefsky"
Cc: James Hogan
Link: https://lkml.kernel.org/r/1508422643-6075-1-git-send-email-matt.redfearn@mips.com -
Dump the error info only when there is an error. If the gcdALLOC_ON_FAULT is not enabled, still need to check
the HW status to decide whether to dump the exception info or notSigned-off-by: Ella Feng
Reviewed-by: Xianzhong Li
24 Apr, 2018
3 commits
-
Save the meta data info in the _gcsVIDMEM_NODE.
DCSS can query the meta data, and get the tile statust buffer info.Date: Apr 13, 2018
Signed-off-by: Yong Gan yong.gan@nxp.com
(cherry picked from commit cea92256fec8380e6e185d65c7746988e7c6426e) -
For overlay framebuffer, when its grayscale is '0' and the format
bpp is 32, enable the global alpha blending by default which can
make the overlay fb can display the framebuffer content as long as
it is unblanked.Signed-off-by: Fancy Fang
(cherry picked from commit fede70b9066b03c24347619775fd7d007c5ddafb) -
fix audio bus mode hang issue on imx6sl. The root cause of
this issue is that busfreq mode passed to TEE side is wrong,
it will lead to ccm setting is wrong in TEE.Signed-off-by: Bai Ping
Tested-by: Anson huang
20 Apr, 2018
6 commits
-
Fixes: a6fd1613cca4 ("MLK-18036-2 Delete *optee.dts files")
Signed-off-by: Leonard Crestez
Reviewed-by: Clement Faure
(cherry picked from commit 4706425bb745850c8d28608ebcaffd239a945e63) -
A specific node for OCRAM mapping in optee as been added in
the device tree. These dedicated optee device trees can be
removed.Signed-off-by: Clement Faure
Acked-by: Peng Fan
(cherry picked from commit a6fd1613cca4a5008c347d4473b92b119385644c) -
This node will be used by the OCRAM driver in optee to:
* Get the OCRAM start address for power management in optee.
* Add an entry that will overwrite ocrams nodes and dynamically reduce
the OCRAM available for mmio-sram in Linux.That way we do not touch the legacy Linux boot and remove the dedicated
optee device tree.Signed-off-by: Clement Faure
Reviewed-by: Peng Fan
(cherry picked from commit e96a3bcd754dee0aef3519bc08979985493be52c) -
This change affects all i.MX 6 with PL310 L2 Cache controller.
When Linux runs in Non-secure World the PL310 has already
been initialized by the ARM secure World running OP-TEE os.
However, in order to have a proper Linux Initialization all the
L2 cache ways have been locked by the secure world.This patch unlock all the ways during pl310 initialization.
Signed-off-by: Cedric Neveux
(cherry picked from commit be7971b62e0c77cf70f828868a5d5a4184a926d2) -
7ULP uses the same mmdc profiling block as i.mx6q. Added the
"fsl,imx6q-mmdc" compatible string to enable the mmdc profiling
feature.Signed-off-by: Shenwei Wang
-
Linus reported hitting the bandwidth warning, but it is indeed
pretty useless - improve it by printing the rate configuration
and make it only warn once, for both warnings here.Reported-by: Linus Torvalds
Signed-off-by: Johannes Berg
19 Apr, 2018
1 commit
-
Incorrect condition check causes -ETIME return only
happen when next event is equal to current counter, and
it would cause various system issue like RCU stalls etc.,
the correct case should be whenever next event is less
than current counter, -ETIME should be returned. Correct
the type cast during return condition check to make it
work right.Signed-off-by: Anson Huang
Reviewed-by: Bai Ping
18 Apr, 2018
2 commits
-
Signed-off-by: Franck LENORMAND
(cherry picked from commit 0b122f882429a82274fc99439b5d73986b731672) -
Fix the following warnings in CAAM SM:
drivers/crypto/caam/sm_store.c: In function 'blacken_key_jobdesc':
drivers/crypto/caam/sm_store.c:141:19: warning: cast from pointer
to integer of different size [-Wpointer-to-int-cast]
tmpdesc[idx++] = (u32)key;
^
drivers/crypto/caam/sm_store.c:153:19: warning: cast from pointer
to integer of different size [-Wpointer-to-int-cast]
tmpdesc[idx++] = (u32)key;
^
drivers/crypto/caam/sm_store.c: In function 'blob_encap_jobdesc':
drivers/crypto/caam/sm_store.c:274:19: warning: cast from pointer
to integer of different size [-Wpointer-to-int-cast]
tmpdesc[idx++] = (u32)secretbuf;
^
drivers/crypto/caam/sm_store.c: In function 'blob_decap_jobdesc':
drivers/crypto/caam/sm_store.c:390:19: warning: cast from pointer
to integer of different size [-Wpointer-to-int-cast]
tmpdesc[idx++] = (u32)outbuf;
^
drivers/crypto/caam/sm_store.c: In function 'slot_get_base':
drivers/crypto/caam/sm_store.c:569:9: warning: cast from pointer
to integer of different size [-Wpointer-to-int-cast]
return (u32)(ksdata->base_address);
^
drivers/crypto/caam/sm_store.c: In function 'sm_keystore_slot_load':
drivers/crypto/caam/sm_store.c:789:6:
warning: unused variable 'i' [-Wunused-variable]
u32 i;Signed-off-by: Franck LENORMAND
(cherry picked from commit b6bd87e624bbe30b9be19c3f8ccb8f5526e4186b)
17 Apr, 2018
2 commits
-
On the i.MX7ULP EVK Rev.B baord, the backlight brigntness driver circuit
is updated. A RC filter is added on the MP3301's EN pin. So the PWM's frequency
should be change to 20KHZ. for EN pin, A DC voltage from 0.7V to 1.4V can control
the LED current from 0% to 100%. the backlight brightness level also need to be
updated.Signed-off-by: Bai Ping
Reviewed-by: Anson Huang
(cherry picked from commit 82555e15a5f958c09492d0103425dc30bc7cd927) -
In i.MX7ULP TPM PWM module, it has a pre-scale divider,
this divider setting is missed, so fix it.Signed-off-by: Bai Ping
Reviewed-by: Anson Huang
(cherry picked from commit 3ffd915e44320a8142698ca3f6e19c30ec434f61)
13 Apr, 2018
3 commits
-
The default display interface on i.MX7ULP EVK board is the HDMI
interface, and a hardware rework is required to support the MIPI
panel. To match the current board design, added the HDMI node in
the imx7ulp-evk.dts and created a new file named imx7ulp-evk-mipi.dts.Signed-off-by: Shenwei Wang
Reviewed-by: Andy Duan -
commit a56e6e190015 ("MLK-17961 dts: imx7ulp-evk: add non-removable
property for wifi sdio") add non-removable property, sd1 slot on
base board share the same usdhc with wifi, and the sd1 slot support
card detect, so for sd1 slot, need to remove the non-removable
property.Signed-off-by: Haibo Chen
Reviewed-by: Andy Duan
(cherry picked from commit 2a40d8123aff4b4fb7a5cbf286d0c308a42c2fc7) -
This patch fix resume failure in freeze suspend mode on i.mx7ULP
("echo freeze > /sys/power/state") while pressing onoff key or
enabling rtc alarm wakeup. In freeze mode, kernel can only be woken
up by drivers which register wakup source such as 'device_init_wakeup'
or 'irq_set_irq_wake', otherwise, kernel will wait for irq handler
freeze_wake(). Unfortunately, our NMI interrupt which used to wakeup
A7 by M4 is not a common device and request irq as 'IRQF_NO_SUSPEND'
which means feeze_wake() never get chance to run while wakeup by any
event from M4 such as RTC, ONOFF. In this case, use pm_system_wakeup()
instead in NMI interrupt handle to trigger freeze_wake() directly.Signed-off-by: Robin Gong
Reviewed-by: Anson Huang
12 Apr, 2018
5 commits
-
The microphone only connect to left input, when record stereo channel
data, the right channel is mute. Add 'ADC Data Output Select' mixer
control that user can select the wanted configure. The default setting
is 'Left Data = Left ADC; Right Data = Left ADC'.Signed-off-by: Shengjiu Wang
(cherry picked from commit cce63c3e843b7d705df6e36adffc0226bfe40e42) -
The logic of 'if' check for the mult is wrong, this will lead
to set rate to PLL type failed. Additionally, remove the
unnecessary 'CLK_IS_CRITICAL' flags.Signed-off-by: Bai Ping
Reviewed-by: Anson Huang
(cherry picked from commit a67aa226b9d0d294b51cfc43371fe78a005dfae4) -
The gpu3d/2d clock rate for 7ulp B0 board is 400M, increase it
Signed-off-by: yuchou gan
(cherry picked from commit b51ae7e98ccfd9e25697d3e5b9795699917496ea) -
the original patch will skip CMA memory allocation with CMA_LIMIT flag,
that enforces GPU memory allocation from virtual pool with MMU mapping,
then both 2D and 3D performance will have performance regression on i.MX6.Revert "6.2.4.p1-0044-CL142820-check-flag-match-even-try-to-allocate-from-"
This reverts commit 8a8cbf389ad56dc49685ea078698087be867655a.
Signed-off-by: Xianzhong
(cherry picked from commit 951e42c0ec05d4cdaf739eadd5fd40c2b8321b10) -
Add poweron key support on i.mx7ulp-evk board since M4 take
over snvs on B0 chip.Signed-off-by: Robin Gong
Reviewed-by: Anson Huang