Try to keep the same as develop-5.10 code for easily
compare files.
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Change-Id: I19bf821f17d06ad9d46d3319e33c2e3c7823fdce
The operation of reading back flash cache after programing is not
universal. At present, only ESMT devices are found to have this anomaly.
Change-Id: I3ec21eebc4aa7b8a259129ed2c036e1168553f27
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
For rk3568, ddr timings adjustment is no longer supported in dmc drive.
Signed-off-by: YouMin Chen <cym@rock-chips.com>
Change-Id: I63f0c5fea8c5acf8e6ef8f44b62968deb7bd823e
Add dmc_fsp node for initialize dmc frequency set point on U-Boot.
Signed-off-by: YouMin Chen <cym@rock-chips.com>
Change-Id: I9fcd1ae498a64b5a4698c42ad05af96740b59e61
Add ddr parameters for initialize dmc frequency set point.
Signed-off-by: YouMin Chen <cym@rock-chips.com>
Change-Id: I3445fa2dbabca5774306cc1052cd3c1d472b6867
Race detected between psi_trigger_destroy/create as shown below, which
cause panic by accessing invalid psi_system->poll_wait->wait_queue_entry
and psi_system->poll_timer->entry->next. Under this modification, the
race window is removed by initialising poll_wait and poll_timer in
group_init which are executed only once at beginning.
psi_trigger_destroy() psi_trigger_create()
mutex_lock(trigger_lock);
rcu_assign_pointer(poll_task, NULL);
mutex_unlock(trigger_lock);
mutex_lock(trigger_lock);
if (!rcu_access_pointer(group->poll_task)) {
timer_setup(poll_timer, poll_timer_fn, 0);
rcu_assign_pointer(poll_task, task);
}
mutex_unlock(trigger_lock);
synchronize_rcu();
del_timer_sync(poll_timer); <-- poll_timer has been reinitialized by
psi_trigger_create()
So, trigger_lock/RCU correctly protects destruction of
group->poll_task but misses this race affecting poll_timer and
poll_wait.
Change-Id: I256e7679052ff960683b096e6d804cd4719cfa12
Fixes: 461daba06b ("psi: eliminate kthread_worker from psi trigger scheduling mechanism")
Co-developed-by: ziwei.dai <ziwei.dai@unisoc.com>
Signed-off-by: ziwei.dai <ziwei.dai@unisoc.com>
Co-developed-by: ke.wang <ke.wang@unisoc.com>
Signed-off-by: ke.wang <ke.wang@unisoc.com>
Signed-off-by: Zhaoyang Huang <zhaoyang.huang@unisoc.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Suren Baghdasaryan <surenb@google.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Link: https://lkml.kernel.org/r/1623371374-15664-1-git-send-email-huangzhaoyang@gmail.com
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
(cherry picked from commit 8f91efd870)
Each psi group requires a dedicated kthread_delayed_work and
kthread_worker. Since no other work can be performed using psi_group's
kthread_worker, the same result can be obtained using a task_struct and
a timer directly. This makes psi triggering simpler by removing lists
and locks involved with kthread_worker usage and eliminates the need for
poll_scheduled atomic use in the hot path.
Change-Id: Ib28d84949de068a8bc97dccb187ac3e68980a319
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20200528195442.190116-1-surenb@google.com
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
(cherry picked from commit 461daba06b)
For RV1109/RV1126 platforms, it resizes the tx fifos for
all of the usb device endpoints by default, it aims to
support UVC composite device, so just only set 16 bytes
for the tx fifo of the intr endpoints. But for the other
USB functions, like MTP function, it requires 64 bytes
tx fifo for its intr endpoint.
Signed-off-by: William Wu <william.wu@rock-chips.com>
Change-Id: I27634dab473dad9a3e3d500cde7156c3eda514e8
Because the PM-runtime status of the device is not updated in
__rpm_callback(), attempts to suspend the suppliers of the given
device triggered by the rpm_put_suppliers() call in there may
cause a supplier to be suspended completely before the status of
the consumer is updated to RPM_SUSPENDED, which is confusing.
To avoid that (1) modify __rpm_callback() to only decrease the
PM-runtime usage counter of each supplier and (2) make rpm_suspend()
try to suspend the suppliers after changing the consumer's status to
RPM_SUSPENDED, in analogy with the device's parent.
Change-Id: I2dbdf3999bc8a06bbbe29f57eb9cc1c49ec1aeff
Link: https://lore.kernel.org/linux-pm/CAPDyKFqm06KDw_p8WXsM4dijDbho4bb6T4k50UqqvR1_COsp8g@mail.gmail.com/
Fixes: 21d5c57b37 ("PM / runtime: Use device links")
Reported-by: elaine.zhang <zhangqing@rock-chips.com>
Diagnosed-by: Ulf Hansson <ulf.hansson@linaro.org>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
(cherry picked from commit 5244f5e2d8)
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
https://source.android.com/security/bulletin/2021-10-01
CVE-2020-29368
CVE-2020-29660
CVE-2021-0707
CVE-2020-10768
CVE-2021-29647
* tag 'ASB-2021-10-05_4.19-stable': (1087 commits)
Linux 4.19.206
net: don't unconditionally copy_from_user a struct ifreq for socket ioctls
Revert "floppy: reintroduce O_NDELAY fix"
KVM: x86/mmu: Treat NX as used (not reserved) for all !TDP shadow MMUs
fbmem: add margin check to fb_check_caps()
vt_kdsetmode: extend console locking
net/rds: dma_map_sg is entitled to merge entries
drm/nouveau/disp: power down unused DP links during init
drm: Copy drm_wait_vblank to user before returning
qed: Fix null-pointer dereference in qed_rdma_create_qp()
qed: qed ll2 race condition fixes
vringh: Use wiov->used to check for read/write desc order
virtio_pci: Support surprise removal of virtio pci device
virtio: Improve vq->broken access to avoid any compiler optimization
opp: remove WARN when no valid OPPs remain
usb: gadget: u_audio: fix race condition on endpoint stop
net: hns3: fix get wrong pfc_en when query PFC configuration
net: marvell: fix MVNETA_TX_IN_PRGRS bit number
xgene-v2: Fix a resource leak in the error handling path of 'xge_probe()'
ip_gre: add validation for csum_start
...
Change-Id: Ib7da21059ab763a87255147340e4cba92e6b3f61
Conflicts:
arch/arm/boot/dts/rk322x.dtsi
arch/arm/boot/dts/rk3288.dtsi
drivers/dma/pl330.c
drivers/regulator/core.c
drivers/staging/android/ion/ion.c
drivers/usb/dwc3/core.c
drivers/usb/dwc3/ep0.c
drivers/usb/gadget/function/u_audio.c
Move mpp_session_deinit out of the lock range.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I46c3aaeb96c67ed04630b0da0a71385546dd5e7c
By comparing icm40608 datasheet with icm42600, it can
use icm426xx driver directly.
Change-Id: If856076ed4f57df6ba5bbb339a35b119937c6385
Signed-off-by: Shunqian Zheng <zhengsq@rock-chips.com>
make ARCH=arm rv1126_defconfig rv1126-uvc-spi-nor.config
Change-Id: Ie3258ecf353d1c3430a10909a4da66e2cce109eb
Signed-off-by: Mark Huang <huangjc@rock-chips.com>
at a high frame rate (120fps), the fast switch test has a higher probability of the following errors:
Failed to get runtime pm, -22
Signed-off-by: Yiqing Zeng <zack.zeng@rock-chips.com>
Change-Id: I6d9fdd86cc69368ba340ab7e43d2b6030a72ce8c
According the commit 729dcffd1e ("usb: dwc3: gadget: Add
support for disabling U1 and U2 entries"), it's necessary
to disable the U1 and U2 low power state to improve USB 3.0
performance for mass storage gadget and uvc gadget.
In addition, it can help to avoid the dwc3 wakeup failed
from U1 or U2 state when connect to the Host USB 3.0 interface.
android_work: sent uevent USB_STATE=CONNECTED
dwc3 fcc00000.dwc3: failed to send remote wakeup
dwc3 fcc00000.dwc3: wakeup failed --> -22
WARNING: CPU: 0 PID: 427 at drivers/usb/dwc3/gadget.c:319 dwc3_send_gadget_ep_cmd+0x198/0x93c
...
Call trace:
dwc3_send_gadget_ep_cmd+0x198/0x93c
dwc3_ep0_complete_status+0xe8/0x294
dwc3_ep0_interrupt+0x2ac/0x3d4
dwc3_process_event_entry+0x7c/0x610
dwc3_process_event_buf+0x6c/0x374
dwc3_thread_interrupt+0x38/0x64
irq_thread_fn+0x34/0x88
irq_thread+0x1a4/0x248
kthread+0x13c/0x344
ret_from_fork+0x10/0x30
dwc3 fcc00000.dwc3: failed to send remote wakeup
android_work: sent uevent USB_STATE=CONFIGURED
Signed-off-by: William Wu <william.wu@rock-chips.com>
Change-Id: I7887c782a0320abe768079b098eab17ee846dcf6
According the commit 729dcffd1e ("usb: dwc3: gadget: Add
support for disabling U1 and U2 entries"), it's necessary
to disable the U1 and U2 low power state to improve USB 3.0
performance for mass storage gadget and uvc gadget.
In addition, it can help to avoid the dwc3 wakeup failed
from U1 or U2 state when connect to the Host USB 3.0 interface.
android_work: sent uevent USB_STATE=CONNECTED
dwc3 fcc00000.dwc3: failed to send remote wakeup
dwc3 fcc00000.dwc3: wakeup failed --> -22
WARNING: CPU: 0 PID: 427 at drivers/usb/dwc3/gadget.c:319 dwc3_send_gadget_ep_cmd+0x198/0x93c
...
Call trace:
dwc3_send_gadget_ep_cmd+0x198/0x93c
dwc3_ep0_complete_status+0xe8/0x294
dwc3_ep0_interrupt+0x2ac/0x3d4
dwc3_process_event_entry+0x7c/0x610
dwc3_process_event_buf+0x6c/0x374
dwc3_thread_interrupt+0x38/0x64
irq_thread_fn+0x34/0x88
irq_thread+0x1a4/0x248
kthread+0x13c/0x344
ret_from_fork+0x10/0x30
dwc3 fcc00000.dwc3: failed to send remote wakeup
android_work: sent uevent USB_STATE=CONFIGURED
Signed-off-by: William Wu <william.wu@rock-chips.com>
Change-Id: Ic63ee7852fbe1bcb3563b6dec455c0aee53522f1
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