Icm42600 was backported from upstream kernel.
Let icm24600 adopt kernel version 4.19 with minimal changes.
Signed-off-by: Shunqian Zheng <zhengsq@rock-chips.com>
Change-Id: I5d4717bdd2e8d04732015d01a9587868165fea9a
Add a timestamping mechanism for buffer that provides accurate
event timestamps when using watermark. This mechanism estimates
device internal clock by comparing FIFO interrupts delta time and
device elapsed time computed by parsing FIFO data.
Take interrupt timestamp in hard irq handler and add IIO device
specific timestamp structures in device private allocation.
Signed-off-by: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
(cherry picked from commit ec74ae9fd3)
Signed-off-by: Shunqian Zheng <zhengsq@rock-chips.com>
Change-Id: I2606414aaaecb5e6b16a729376bad374e3cdd024
Add all FIFO parsing and reading functions. Add accel and gyro
kfifo buffer and FIFO data parsing. Use device interrupt for
reading data FIFO and launching accel and gyro parsing.
Support hwfifo watermark by multiplexing gyro and accel settings.
Support hwfifo flush.
Signed-off-by: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
(cherry picked from commit 7f85e42a6c)
Signed-off-by: Shunqian Zheng <zhengsq@rock-chips.com>
Change-Id: I7d259cc0a4fa6da00c2014e40cd57c60232bcd5a
Add INT1 interrupt support. Support interrupt edge and level,
active high or low. Push-pull or open-drain configurations.
Interrupt will be used to read data from the FIFO.
Signed-off-by: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
(cherry picked from commit e5efa1049b)
Signed-off-by: Shunqian Zheng <zhengsq@rock-chips.com>
Change-Id: Ic6c19caa25e67a44d4d6ab7dd876fc023388bc31
Add temperature channel in gyroscope and accelerometer devices.
Temperature is available in full 16 bits resolution when reading
register and in low 8 bits resolution in the FIFO. Return full
precision raw temperature with corresponding scale and offset.
Signed-off-by: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
(cherry picked from commit bc3eb0207f)
Signed-off-by: Shunqian Zheng <zhengsq@rock-chips.com>
Change-Id: I76b7a140b4d504289cdc433f2e36835ad5f1984d
Add SPI driver for InvenSense ICM-426xxx devices.
Configure bus signal slew rates as indicated in the datasheet.
Signed-off-by: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
(cherry picked from commit 9f9ff91b77)
Signed-off-by: Shunqian Zheng <zhengsq@rock-chips.com>
Change-Id: Id948c314093f28a3bc90d22f0a174dc8d115ca9d
Add I2C driver for InvenSense ICM-426xxx devices.
Configure bus signal slew rates as indicated in the datasheet.
Signed-off-by: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
(cherry picked from commit 7297ef1e26)
Signed-off-by: Shunqian Zheng <zhengsq@rock-chips.com>
Change-Id: I0e05a41113ad450b9bb6fe252e380dca381a2580
Core component of a new driver for InvenSense ICM-426xx devices.
It includes registers definition, main probe/setup, and device
utility functions.
ICM-426xx devices are latest generation of 6-axis IMU,
gyroscope+accelerometer and temperature sensor. This device
includes a 2K FIFO, supports I2C/I3C/SPI, and provides
intelligent motion features like pedometer, tilt detection,
and tap detection.
Signed-off-by: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
(cherry picked from commit 31c24c1e93)
Signed-off-by: Shunqian Zheng <zhengsq@rock-chips.com>
Change-Id: Iefe5c28aadd1ca4c75496f6090c3858090cd1c30
At present, there is no requirement for PD3.0 PPS function,
the driver has not verified this function.
Change-Id: Ib78bf1f96f806cca4a20567db2a7cbaf0fba01af
Signed-off-by: Wang Jie <dave.wang@rock-chips.com>
used_layers should reset to 0 before count
port_mux.
And also fix the follow warning:
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c:2538:26: warning: Value
stored to 'vp' during its initialization is never read
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c:2537:21: warning: Value
stored to 'layer' during its initialization is never read
Fixes: 2120901346 ("drm/rockchip: vop2: Assign plane for vp by
plane_mask")
Change-Id: I56b1576070392b7b262ef65b19cf14d1bfde0586
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
The MT7668 WIFI/BT can't be detected by xHCI controller
on Rockchip platforms when the LPM is enabled.
This patch adds an USB_QUIRK_NO_LPM quirk for this device.
Signed-off-by: William Wu <william.wu@rock-chips.com>
Change-Id: Iacaf6d050ece06e09c2d286206860c2214c52661
Refer to the UAC 2.0 spec "Table 5-7: 4-byte Control RANGE
Parameter Block", the range size of sampling frequency control
is wNumSubRanges + n * (dMIN + dMAX + dRES), n is the total
of the sampling frequency.
Signed-off-by: William Wu <william.wu@rock-chips.com>
Change-Id: Iababf610914688f178621915e03bdabe58fe310b
Add this config option to reduce memory usage, if it was not necessary.
./ksize.sh net
before size: 716596 Bytes
after size: 673095 Bytes
save size: 43501 Bytes
Signed-off-by: David Wu <david.wu@rock-chips.com>
Change-Id: I012d926a7a8be9a4897a85fbf47f7fbbab1e43c4
Add this config option to reduce memory usage, if it was not necessary.
./ksize.sh net
before size: 739668 Bytes
after size: 716596 Bytes
save size: 23073 Bytes
Signed-off-by: David Wu <david.wu@rock-chips.com>
Change-Id: I3e3c515f6b88d2ebf04cb8976d061591caca201e
Add this config option to reduce memory usage, if it was not necessary.
./ksize.sh drivers/net/ethernet/stmicro/
before size: 59075 Bytes
after size: 55366 Bytes
save size: 3709 Bytes
Signed-off-by: David Wu <david.wu@rock-chips.com>
Change-Id: I82c404a41a7abde6adf38557d8b2096b17b4b6e5
color_key is passed by atomic_set_property with a uint64_t val.
Change-Id: Idc66dc1632f3c00f353d05016aa79f362506fef5
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
enable ROCKCHIP_HDMI ASoC driver to report jack status.
Signed-off-by: XiaoTan Luo <lxt@rock-chips.com>
Change-Id: I61dd19266747cfa2eb97030c107d95924f80f03d
enable ROCKCHIP_HDMI ASoC driver to report jack status.
Signed-off-by: XiaoTan Luo <lxt@rock-chips.com>
Change-Id: I180161b64878c34bda0e5b7bd354cc993d8abee9
this patch is used for rockchip HDMI audio output.
Signed-off-by: XiaoTan Luo <lxt@rock-chips.com>
Change-Id: I577179e7563ad241014d023da12af1e622e84c9a
Saradc interrupt status may exist forever if read saradc
when system suspending which disable clock that finally
lead to interrupt system dead. Add mutex in suspend to
avoid this issue.
Change-Id: I6a83e4bd79db90a79985685b5e94df2209b5ae81
Signed-off-by: Simon Xue <xxm@rock-chips.com>
This patch changes the function uvc_video_pump to be a separate
scheduled worker. This way the completion handler of each usb request
and every direct caller of the pump has only to schedule the worker
instead of doing the request handling by itself.
Moving the request handling to one thread solves the locking problems
between the three queueing cases in the completion handler, v4l2_qbuf
and video_enable.
Many drivers handle the completion handlers directly in their interrupt
handlers. This patch also reduces the workload on each interrupt.
Test on RK3568 EVB1 USB 3.0 UVC, use the high priority dedicated
workqueue instead of the system_wq can help to improve the uvc
transfer performance.
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
Signed-off-by: William Wu <william.wu@rock-chips.com>
Change-Id: I3c7ab421f8f58dad0a36e005edf8640f7b0a0402
(cherry picked from commit 43cd002387)
If miss isoc event happens, the current code just move the
current req to the tail of the pending list, and then stop
the active transfer with cmd DWC3_DEPCMD_ENDTRANSFER. After
these operations, the isoc endpoint wait for a XferNotReady
event to restart the transfer with the first pending req
from the pending_list.
If there are already reqs in the pending list when move the
miss isoc reqs to the tail of the pending list, some of the
reqs are out of order.
This patch first moves all of the reqs in the started list
to the tail of the cancelled list, and then move all of the
reqs in the pending list to the tail of the cancelled list.
At last move all of the reqs in the cancelled list to the
pending list. This can make sure all of the reqs are in order
when restart the isoc transfer later.
Signed-off-by: William Wu <william.wu@rock-chips.com>
Change-Id: Idf38d9fd4d483854473c18f792d1996fb5fcab4b
Configuration is flexible than hard code, and minimal changes.
Change-Id: I15835fcbf198252410feb3feb6080ca047388ce1
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
if CONFIG_IOMMU_SUPPORT=n, log:
error: 'const struct iommu_ops' has no member named 'flush_iotlb_all'
if (domain && domain->ops && domain->ops->flush_iotlb_all)
Change-Id: I8268e0b5d5a513d1c55b0c755c479049b13bdeb7
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
Add this config option to reduce memory usage, if it was not necessary.
./ksize.sh drivers/net/ethernet/stmicro/
before size: 82879 Bytes
after size: 59075 Bytes
save size: 23804 Bytes
Change-Id: I5f6b4573d7358c3b6f046e960c7ddf7d53541b14
Signed-off-by: David Wu <david.wu@rock-chips.com>