There are independent LRCK_RX and LRCK_TX in rockchip i2s-tdm,
so that it supports the asymmetric LRCKs when the CKR[29:28]
is 2'b00.
Change-Id: Ib06d1b833e23d4266f8606d5f1f261cf1357238d
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
If isoc split in transfer with no data (the length of DATA0
packet is zero), we can't simply return immediately. Because
the DATA0 can be the first transaction or the second transaction
for the isoc split in transaction. If the DATA0 packet with no
data is in the first transaction, we can return immediately.
But if the DATA0 packet with no data is in the second transaction
of isoc split in transaction sequence, we need to increase the
qtd->isoc_frame_index and giveback urb to device driver if needed,
otherwise, the MDATA packet will be lost.
A typical test case is that connect the dwc2 controller with an
usb hs Hub (GL852G-12), and plug an usb fs audio device (Plantronics
headset) into the downstream port of Hub. Then use the usb mic
to record, we can find noise when playback.
In the case, the isoc split in transaction sequence like this:
- SSPLIT IN transaction
- CSPLIT IN transaction
- MDATA packet (176 bytes)
- CSPLIT IN transaction
- DATA0 packet (0 byte)
This patch use both the length of DATA0 and qtd->isoc_split_offset
to check if the DATA0 is in the second transaction.
Change-Id: Ie36cf25c4026f45db719c6eed036028159748b9f
Signed-off-by: William Wu <william.wu@rock-chips.com>
(am from https://patchwork.kernel.org/patch/10393777/)
The commit 3bc04e28a0 ("usb: dwc2: host: Get aligned DMA in
a more supported way") rips out a lot of code to simply the
allocation of aligned DMA. However, it also introduces a new
issue when use isoc split in transfer.
In my test case, I connect the dwc2 controller with an usb hs
Hub (GL852G-12), and plug an usb fs audio device (Plantronics
headset) into the downstream port of Hub. Then use the usb mic
to record, we can find noise when playback.
It's because that the usb Hub uses an MDATA for the first
transaction and a DATA0 for the second transaction for the isoc
split in transaction. An typical isoc split in transaction sequence
like this:
- SSPLIT IN transaction
- CSPLIT IN transaction
- MDATA packet
- CSPLIT IN transaction
- DATA0 packet
The DMA address of MDATA (urb->dma) is always DWORD-aligned, but
the DMA address of DATA0 (urb->dma + qtd->isoc_split_offset) may
not be DWORD-aligned, it depends on the qtd->isoc_split_offset (the
length of MDATA). In my test case, the length of MDATA is usually
unaligned, this cause DATA0 packet transmission error.
This patch use kmem_cache to allocate aligned DMA buf for isoc
split in transaction. Note that according to usb 2.0 spec, the
maximum data payload size is 1023 bytes for each fs isoc ep,
and the maximum allowable interrupt data payload size is 64 bytes
or less for fs interrupt ep. So we set the size of object to be
1024 bytes in the kmem cache.
Change-Id: If842ad1b6ff2d59e4b8e5bb444246a1e6a8a3a85
Signed-off-by: William Wu <william.wu@rock-chips.com>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
(am from https://patchwork.kernel.org/patch/10393775/)
This patch fix imx219 sensor settings:
1.Fix GAIN wrong settings before.
2.update 1080p_30fps initialize register list from Asus(sony).
Change-Id: I6fb5e16b3a9cf01bf87382de8130592c6dfbbb97
Signed-off-by: Nickey Yang <nickey.yang@rock-chips.com>
do not let the kernel go to sleep while TCP packets are being sent.
Change-Id: I31b86af06f97816d28e4ad691ac6d37973724329
Signed-off-by: Alex Zhao <zzc@rock-chips.com>
This patch depends on iram node and 'rockchip,force-iram' property.
the example on rk3399 to active this feature is as follows:
iram: sram@ff8d0000 {
compatible = "mmio-sram";
reg = <0x0 0xff8d0000 0x0 0x20000>; /* 128k */
};
&dmac_bus {
iram = <&iram>;
rockchip,force-iram;
};
if the 'rockchip,force-iram' not defined, fallthrough to normal usage.
Change-Id: I625a50835a6ea91dd2a66698bec087551be8a12c
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
if there has multiple codec,we need set the sysclk for each codec
Change-Id: Ieb56710aeff070a58c7d566d428507ecf852a3e2
Signed-off-by: Xinhuang Li <buluess.li@rock-chips.com>
rk3399-evb-rev3-android-lp4.dts add center-supply, otherwise customer
follow this dts file may leave out it. and cause
rockchip_dmcfreq_probe() fail, then lpddr4 lose scale frequency function
and cannot find /sys/class/devfreq/dmc
Change-Id: I05f36a80fd5f95e29f1083f956a799149e88b1f3
Signed-off-by: CanYang He <hcy@rock-chips.com>
The values of the coefficients are the ones in px30.dtsi,
according to Rocky Hao.
Change-Id: I1843b999a3b93fd5791e556db8733596c75ef8ac
Signed-off-by: Zhen Chen <chenzhen@rock-chips.com>
This patch handle the force-iram function by devicetree.
Change-Id: I95fe96091c560507a37cd0833cf2507e4d2bc636
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
For now, many users would like to switch to HPOUT or
LINEOUT when the headphone plugged or unplugged, we
need to switch path directly.
Change-Id: I7e81396ac42519b1101a8c8757069ac0d8bc65ea
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
The Lontium LT8912 MIPI-DSI to LVDS and HDMI/MHL bridge features a
single-channel MIPI D-PHY receiver front-end configuration with 4 data
lanes per channel operating at 1.5Gbps per data lane and a maximum
input bandwidth of 6Gbps.
Change-Id: I7733ea5f33094151bb62e62406561cc0025cf900
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Currently the protection #ifdef CONFIG_DEVFREQ_THERMAL cuts the needed
structures devfreq_cooling_ops and devfreq_cooling_device.
The functions which are supposed to provide the empty implementation complain
about unknown structures.
Similar solution is present in include/linux/devfreq.h.
Change-Id: I4ed7161734944799443fd43c56394e62eb3c499f
Reviewed-by: Ørjan Eide <orjan.eide@arm.com>
Signed-off-by: Lukasz Luba <lukasz.luba@arm.com>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
(cherry picked from commit 1cea4e7776)
Here the -ENOTSUPP is not an error if there is no set_sysclk
implement in codec_dai and cpu_dai, we need to return 0 that
it's correct.
Change-Id: I969e3eacba39ac8d6c94ddcc27c60cc110d66156
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Add the 'regulator-always-on' property for vdd_gpu on rk3399-tve1030g/
rk3399-tve1205g/rk3399-mid-818-android
Change-Id: I22938c7041bc56b53983447a00e83144411b4cca
Signed-off-by: Bin Yang <yangbin@rock-chips.com>
We need to clear previous residual configuration for
ADC/DAC digital registers before enable them, otherwise,
the acodec maybe abnormal.
Change-Id: I2eeb6ccf1508cf10d214d97c29273d70d16f3417
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Show a accumulation of wfi time of every suspend sate
since system bootup:
$ cat /sys/kernel/wakeup_reasons/total_suspend_wfi_time
Change-Id: I2856faabe2e883a7120931ed49bc0c4f0776600d
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>