| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
|
| |
Add a macro for signed mixer with two registers and tlv array.
Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
(cherry picked from commit cd21b123346c6a2f033d8c3bd2bf240198b5712a)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some codecs use signed volume control representation with non standard
register sizes, e.g. 6 or 7 bit signed integers.
This patch adds generic signed register volume control logic to
soc-core. Instead of a fixed width signed register control, this
implementation uses a 'min' value and the signed bit location to translate
it to an absolute volume. Using the 'sign_bit' we can calculate a
correct mask for the register values and translate it back into signed
integers of standard size.
Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
(cherry picked from commit f227b88f0fce5f9b82aa934f8829a741c2e06d82)
|
|
|
|
|
|
|
|
|
|
| |
rot_pos==1
This is a typing error by mistake in a previous patch.
Obviously, the out_lrc settings should not be the same
between rot_pos == 0 and rot_pos == 1.
Signed-off-by: Fancy Fang <chen.fang@freescale.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
sdma can't work for p2p when "dma_request0 < 31, dma_request1 > 31".
The context parameter for p_2_p script is described in RM A.3.2.5.1
r0: LWML event mask, combined with bit28 of INFO
r1: HWML event mask, combined with bit29 of INFO
r7: INFO: bit 28: LWML Event (0 - LWE in EVENTS, 1 - LWE in EVENTS2);
bit 29: HWML event (0 - HWE in EVENTS, 1 - HWE in EVENTS2);
In sdma_load_context(), we set r0 = event_mask1, r1 = event_mask0.
which means the event_mask1 is LWML event mask, event_mask0 is HWML event mask.
In sdma_config_channel() Event_id0 set the bit 28, which means event_id0 is
corresponding to event_mask1, event_id1 is corresponding to event_mask0.
So here we need to correct the wrong setting in sdma_config_channel(), for some
setting didn't follow this principle.
Signed-off-by: Shengjiu Wang <b02247@freescale.com>
|
|
|
|
|
|
|
| |
Reset struct of pxp_conf_state to zero before pxp channel configuration,
in case some application miss configuration struct ol_param.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
|
|
|
|
|
| |
Pass overlay parameter to pxp dma, otherwise struct of ol_param
will remain the value as last pxp task.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
|
|
|
|
|
| |
Enable csi data swap function when csi v4l2 need do csc
between YUYV and UYVY.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
green line at the bottom when play with 'gplay' and 'gplay-1.0'
This issue is due to the incorrect settings for PXP_SCALE register.
On the previous settings, when the PXP need to do interpolation
operation in SCALE engine, it has out-of-range image access. So we
need to adjust the scaling settings to make this issue not happen
through sacrifising some unnoticed image precise.
Signed-off-by: Fancy Fang <chen.fang@freescale.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enable cpufreq support for i.MX6SX, currently three setpoints
are supported, the freq/volt table are as below:
VDDARM_CAP VDDSOC_CAP
996M: 1.250V 1.175V
792M: 1.175V 1.175V
396M: 1.075V 1.175V
All upper voltages are 25mV higher then the minimum value defined
in datasheet, this 25mV is to cover board level IR drop.
Signed-off-by: Anson Huang <b20788@freescale.com>
|
|
|
|
|
|
|
|
| |
PU regulator is not a necessary regulator for cpufreq, not all
i.MX6 SoCs have PU regulator, so remove the dependency to support
i.MX6SX which has NO PU regulator.
Signed-off-by: Anson Huang <b20788@freescale.com>
|
|
|
|
|
|
|
| |
Add cpufreq related opp info to support cpufreq
driver for i.MX6SX.
Signed-off-by: Anson Huang <b20788@freescale.com>
|
|
|
|
|
|
|
|
|
| |
The reason of pop noise is that we change the sysclk in hw_free, which is
for another wm8962 issue. So in currently the pop noise can't be resolved
with no confliction. So for Android, because the samplerate is fixed. we can
use other workaround for this issue: change the sysclk in the set_bias().
Signed-off-by: Shengjiu Wang <b02247@freescale.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
-ES11 conformance "Must Pass test" and "LogicOp Function test" failed b
-This patch from vivante. Vivante Comments:"If gcdCMD_NO_2D_CONTEXT is
Patch content
-Remove context->dirty2D flag setting when gcdCMD_NO_2D_CONTEXT is set.
Date: May 05, 2014
Signed-off-by: Loren Huang <b02279@freescale.com>
Acked-by: Shawn Guo
|
|
|
|
|
|
|
| |
Set DDR/IO to low power mode for i.MX6SX when system enter
DSM mode, it can save ~8mW power(from 25mA lower to 19mA).
Signed-off-by: Anson Huang <b20788@freescale.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Move wl_surface_commit to work thread.
Add wl_display_sync after commit buffer.
Fix memory leak in wl_egl_window_resize.
Enable triple buffer rendering.
Disable skip worker in veglSwapWorker.
Date: Apr 21, 2014
Signed-off-by Yong Gan <B45748@freescale.com>
|
|
|
|
|
|
|
|
| |
Add width and height zero check to avoid kernel dump by the error
"Division by zero in kernel" when user application call the s_fmt api
with zero height and width
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
|
|
|
|
|
|
| |
Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com>
Acked-by: Nicolin Chen <Guangyu.Chen@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
(cherry picked from commit 236014ac7a6524f9f466139c2e47af70cb340ba3)
Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com>
|
|
|
|
|
|
|
|
|
| |
This patch is from Vivante (part of #831). It adds missing ioctls to VG
kernel driver. Now VG355 can be enabled for X11.
Date: Apr 24, 2014
Signed-off-by: Zhenyong Chen <b07273@freescale.com>
Acked-by: Jason Liu
|
|
|
|
|
|
|
|
|
|
| |
Create standalone dts for a9 when m4 is running, since there
are some conflictions in the following modules
* i2c3
* flexcan1&2
* uart2
Signed-off-by: Richard Zhu <r65037@freescale.com>
|
|
|
|
|
|
|
| |
Android need driver to export several kcontrol. "Support channels",
"Support Rates", "Support Formats".
Signed-off-by: Shengjiu Wang <b02247@freescale.com>
|
|
|
|
|
|
|
|
|
| |
Add busfreq support for i.MX6SX, add a new ddr3 asm code
and use a busfreq info structure to pass necessary info
for low level busfreq change function, the structure will be
placed in front of ocram function.
Signed-off-by: Anson Huang <b20788@freescale.com>
|
|
|
|
|
|
|
|
|
|
| |
From reference manual, periph2_pre's parent list option 3 is
pll4_audio_div, not pll2_198m. And periph2_clk2 's parent of
option 1 should be osc, not pll2.
Need to mask handshake of mmdc ch0.
Signed-off-by: Anson Huang <b20788@freescale.com>
|
|
|
|
|
|
| |
Add busfreq support;
Signed-off-by: Anson Huang <b20788@freescale.com>
|
|
|
|
|
|
| |
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Huang Shijie <b32955@freescale.com>
|
|
|
|
|
|
| |
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Huang Shijie <b32955@freescale.com>
|
|
|
|
|
|
| |
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Huang Shijie <b32955@freescale.com>
|
|
|
|
|
|
|
|
|
| |
Use devm_ioremap_resource() in order to make the code simpler and
it gives proper codes on errors.
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Huang Shijie <b32955@freescale.com>
|
|
|
|
|
|
| |
mclk of cs42888 is changed for slx.
Signed-off-by: Shengjiu Wang <b02247@freescale.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cherry-picked commit is 43d24e76b69826ce32292f47060ad78cdd0197fa
Header of this commit is "ASoC: fsl_esai: Add ESAI CPU DAI driver", use upstream
driver to replace current one.
Merged feature is:
1. Move setting of PRRC and PCRC to the end of hw_params, and disable it in
shutdown function.
2. Merged the xrun handler with this commit.
3. Use dma init with NO_RESIDUE|NO_DT|COMPAT.
4. Add spba clock for ESAI
Signed-off-by: Shengjiu Wang <b02247@freescale.com>
|
|
|
|
|
|
|
| |
There are three clock for ESAI, esai_extal, esai_ipg, esai_mem.
Make the clock for ESAI more clear.
Signed-off-by: Shengjiu Wang <b02247@freescale.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
We disable spdif and sai in imx6sx-*-arm2.dts and only enable them
in their sub-dts like imx6sx-17x17-arm2-spdif.dts while we haven't
put the sound nodes into the sub-dts because the dependancy between
sound and spdif/sai. This would result people get the frequent -517
probe error everytime they insert a new device or module.
So this patch puts them to the sub-dts.
Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LDISCs shouldn't call tty->ops->write() from within
->write_wakeup().
->write_wakeup() is called with port lock taken and
IRQs disabled, tty->ops->write() will try to acquire
the same port lock and we will deadlock.
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Reviewed-by: Peter Hurley <peter@hurleysoftware.com>
Reported-by: Huang Shijie <b32955@freescale.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Tested-by: Andreas Bießmann <andreas@biessmann.de>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Huang Shijie <b32955@freescale.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the uart_handle_cts_change(), uart_write_wakeup() is called after
we call @uart_port->ops->start_tx().
The Documentation/serial/driver tells us:
-----------------------------------------------
start_tx(port)
Start transmitting characters.
Locking: port->lock taken.
Interrupts: locally disabled.
-----------------------------------------------
So when the uart_write_wakeup() is called, the port->lock is taken by
the upper. See the following callstack:
|_ uart_write_wakeup
|_ tty_wakeup
|_ ld->ops->write_wakeup
With the port->lock held, we call the @write_wakeup. Some implemetation of
the @write_wakeup does not notice that the port->lock is held, and it still
tries to send data with uart_write() which will try to grab the prot->lock.
A dead lock occurs, see the following log caught in the Bluetooth by uart:
--------------------------------------------------------------------
BUG: spinlock lockup suspected on CPU#0, swapper/0/0
lock: 0xdc3f4410, .magic: dead4ead, .owner: swapper/0/0, .owner_cpu: 0
CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 3.10.17-16839-ge4a1bef #1320
[<80014cbc>] (unwind_backtrace+0x0/0x138) from [<8001251c>] (show_stack+0x10/0x14)
[<8001251c>] (show_stack+0x10/0x14) from [<802816ac>] (do_raw_spin_lock+0x108/0x184)
[<802816ac>] (do_raw_spin_lock+0x108/0x184) from [<806a22b0>] (_raw_spin_lock_irqsave+0x54/0x60)
[<806a22b0>] (_raw_spin_lock_irqsave+0x54/0x60) from [<802f5754>] (uart_write+0x38/0xe0)
[<802f5754>] (uart_write+0x38/0xe0) from [<80455270>] (hci_uart_tx_wakeup+0xa4/0x168)
[<80455270>] (hci_uart_tx_wakeup+0xa4/0x168) from [<802dab18>] (tty_wakeup+0x50/0x5c)
[<802dab18>] (tty_wakeup+0x50/0x5c) from [<802f81a4>] (imx_rtsint+0x50/0x80)
[<802f81a4>] (imx_rtsint+0x50/0x80) from [<802f88f4>] (imx_int+0x158/0x17c)
[<802f88f4>] (imx_int+0x158/0x17c) from [<8007abe0>] (handle_irq_event_percpu+0x50/0x194)
[<8007abe0>] (handle_irq_event_percpu+0x50/0x194) from [<8007ad60>] (handle_irq_event+0x3c/0x5c)
--------------------------------------------------------------------
This patch adds more limits to the @write_wakeup, the one who wants to
implemet the @write_wakeup should follow the limits which avoid the deadlock.
Signed-off-by: Huang Shijie <b32955@freescale.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
|
|
|
|
|
|
| |
this patch fix gpu database query failure with gmem_info
Date: Apr 28, 2014
Signed-off-by: Xianzhong <b07117@freescale.com>
Acked-by: Jason Liu
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch fix the failure when OTG port switch from host to device mode
after removes ID cable with usb device(e.g usb hub) connected.
How to reproduce:
- Enable console wakeup:
echo enabled > /sys/class/tty/ttymxc0/power/wakeup
- Connect a usb hub with ID cable to OTG port.
- Suspend the system:
ehco mem > /sys/power/state
- Wakeup the system by console.
- Remove ID cable together with usb hub.
- OTG port cannot switch to device role.
Root cause:
In this case, ID change interrupt generates before port change interrupt,
so with irq disabled, ci_handle_id_switch() will find there is usb device
still connected and wait it to disconnect by sleep, but disconnect will not
happen since usb irq still disabled so port change irq has no chance to be
handled.
How this patch is fixing this issue:
This patch enables irq before sleep and disables irq after, thus port change
irq can be handled and usb device disconnection can timely happen, then
ci_handle_id_switch() can stop host and switch to device role correctly.
meanwhile change the delay time to 10~15 ms to avoid too frequent connection
check and irq enable/disable.
Signed-off-by: Li Jun <b47624@freescale.com>
|
|
|
|
|
|
|
|
| |
On i.MX6SX, when CA9 and CM4 are working together, CA9 can
NOT disable those shared modules' clock, so keep those
clocks CM4 needs always enabled.
Signed-off-by: Anson Huang <b20788@freescale.com>
|
|
|
|
|
|
|
|
|
| |
-Remove parameter crop_current and replace by cam->crop_current.
-Remove parameter win_current and update pxp buffer initialize code.
-Move csi config code from s_fmt function to s_param.
-Correct crop_bound setting for vadc.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
|
|
|
|
|
|
|
| |
Replace raw lines with active lines.
return active lines to v4l2 capture driver.
For csi capture driver, the capture size is setting to
active lines and don't care raw lines.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In VDOA PP mode, the input resolution would be changed to be VDOA's output
for PP to use as its input resolution to go on to do resizing or color space
conversion. The input resolution will be different from the original one
when VDOA input cropping is enabled. And, this finally causes a wrong input
resolution being used if the users do rotation by calling the S_CTRL ioctrl
in runtime. In order to fix this issue, this patch sets the original input
resolution back after PP task check and process. The issue can be reproduced
by the following command line(enable VDOA mode in the gst plugin configuration
file first):
gplay AVC_MP30_854x356_23.976_679_AACLC_44.1_96_2_TRON_LEGACY.flv
(Enter 't 90' to change to rotate 90 degrees in runtime.)
In this case, VDOA input cropping(854x356 -> 848x352) is enabled because VDOA
input resolution should align to macro block size.
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
this patch can fix NULL pointer issue in GPU kernel driver with the following log
[<7f240438>] (gckEVENT_AddList+0x0/0x810 [galcore]) from [<7f239ebc>] (gckCOMMAND_Commit+0xf28/0x118c [galcore])
[<7f238f94>] (gckCOMMAND_Commit+0x0/0x118c [galcore]) from [<7f2362dc>] (gckKERNEL_Dispatch+0x120c/0x24e4 [galcore])
[<7f2350d0>] (gckKERNEL_Dispatch+0x0/0x24e4 [galcore]) from [<7f222280>] (drv_ioctl+0x390/0x540 [galcore])
[<7f221ef0>] (drv_ioctl+0x0/0x540 [galcore]) from [<800facd0>] (vfs_ioctl+0x30/0x44)
The false code is at 0x217bc where the 0-pointer happens (r3 = 0)
gcuVIDMEM_NODE_PTR node = (gcuVIDMEM_NODE_PTR)(gcmUINT64_TO_PTR(Record->info.u.FreeVideoMemory.node));
217b8: e5953028 ldr r3, [r5, #40] ; 0x28
if (node->VidMem.memory->object.type == gcvOBJ_VIDMEM)
217bc: e5932000 ldr r2, [r3]
217c0: e5922000 ldr r2, [r2]
217c4: e152000a cmp r2, sl
{
gcmkVERIFY_OK(gckKERNEL_RemoveProcessDB(Event->kernel,
Date: Apr 23, 2014
Signed-off-by: Xianzhong <b07117@freescale.com>
Acked-by: Jason Liu
|
|
|
|
|
|
|
|
| |
Since we've fixed the clock's shared-gate issue, we no longer
need this gate clock. Thus drop it.
Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since we no longer use clk_set_rate() in spdif driver, the rate we provide
to it on imx6q/sl platforms is no more contented for its supporting sample
rates.
By setting the clock to 22736841Hz, we can get the sample rates:
48008Hz for 48000Hz
32005Hz for 32000Hz
43859Hz for 44100Hz
The results for 48KHz and 32KHz has changed comparing to the previous
release, but the one for 44100Hz has a bit lose even though it should
be the best we can get based on the current clock rate. If user want
to playback a perfect 44100Hz, they need to change the parent clock
rate.
Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Shawn's patch -- ARM: imx: shared gate support for i.MX clk_gate2 clocko
has fixed the problem of clock conflicts due to sharing a same gate.
So from now on, we can no longer need to take care the shared gate clock
for each audio clock route. Thus this patch separates them by using the
new clock registering helper function. And meanwhile, we set a proper
rate for each route so as to support each module.
For S/PDIF, we use 98304000Hz so that the current driver would perfectly
get 32000Hz and 48000Hz sample rate playback support, even though we
can only get 43885Hz for 44100Hz sample rate in this way -- If user
want to playback 44100Hz group sample rates, they need to change the
parent rate.
Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com>
|
|
|
|
|
|
|
| |
The current return value is not right beacause there may have irq
interrupt that is processed. So correct the return value.
Signed-off-by: Fugang Duan <B38611@freescale.com>
|
|
|
|
|
|
| |
Enable g_ncm as module for use g_ncm gadget driver.
Signed-off-by: Li Jun <b47624@freescale.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's quite common on i.MX that one gate bit controls the gating of
multiple clocks, i.e. this is a shared gate. The patch adds the
function imx_clk_gate2_shared() for such case. The clocks controlled
by the same gate bits should call this function with a pointer to a
single share count variable, so that the gate bits will only be
operated on the first enabling and the last disabling of these shared
gate clocks.
Thanks to Gerhard Sittig <gsi@denx.de> for this idea.
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com>
|
|
|
|
|
|
|
|
| |
The imx specific clk_gate2 always has a valid lock with the clock. So
the validation on gate->lock is not really needed. Remove it.
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The imx clk-gate2 driver implements an i.MX specific gate clock, which
has two bits controlling the gate states. While this is a completely
separate gate driver from the common clk-gate one, it reuses the common
clk_gate structure. Such reusing makes the extending of clk_gate2
clumsy. Let's define struct clk_gate2 on our own to make the driver
independent of the common clk-gate one, and ease the clk_gate2 extending
at a later time.
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com>
|
|
|
|
|
|
| |
Add imx6sx-17x17-arm2-mlb.dtb in devicetree makefile list
Signed-off-by: Luwei Zhou <b45643@freescale.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The issue can be reproduced after overninght test, reproduced
step: nfs mount rootfs, don't do any other ethernet test cases.
If the issue generates, there has log:
fec 2188000.ethernet eth0: MDIO read timeout
The origin interrupt handler may ignore to process mdio interrupt
in current irq handler until the next irq action. If the next irq
comes in time that is less than the mdio wait time, the next irq
handler wake up a single thread waiting on this completion, MDIO
read function can get the single before time expired. Otherwise,
MDIO read generate timeout issue. The patch just to fix the issue.
Signed-off-by: Fugang Duan <B38611@freescale.com>
|