When compile rk-vcodec as ko some unexported functions will fail the
compiling. This patch will fix this issue.
Change-Id: I8afcb4bc3858f0e9efa54e4996cdcb6a45bbe1e1
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This patch fliter the playback for vad, because vad only
handle capture.
Change-Id: I96ec24870adc4441081b39030056ed9361477bf3
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
If the VAD which using ACODEC and AMIC is active,
we need to keep ACODEC ADCs enabled during suspend,
otherwise, the system can not be waken up.
Change-Id: I0e6d07608f5ec514f94013a255d9061a138fbee2
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
The 'userspace' governor adds a sysfs entry, which is removed when
the governor is changed, or the devfreq device is released. However,
when the latter occurs via device_unregister(), device_del() is
called first, which removes the sysfs entries recursively and deletes
the kobject.
This means we get an Oops when the governor calls
sysfs_remove_group() on the deleted kobject. Fix this by only doing
the call when kobj *hasn't* been kobject_del()'d.
Note that we can't just remove the call to sysfs_remove_group()
entirely - it's needed for when the governor is changed to one which
doesn't need a sysfs entry.
Change-Id: I2ddad9d062ebb1a64582a15cd5b9efc5882bc848
Signed-off-by: Chris Diamand <chris.diamand@arm.com>
Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
(cherry picked from commit 924b9111a1)
Signed-off-by: Liang Chen <cl@rock-chips.com>
There can be a race, if receive_buf call comes before
tty initialization completes in n_tty_open and tty->disc_data
may be NULL.
CPU0 CPU1
---- ----
000|n_tty_receive_buf_common() n_tty_open()
-001|n_tty_receive_buf2() tty_ldisc_open.isra.3()
-002|tty_ldisc_receive_buf(inline) tty_ldisc_setup()
Using ldisc semaphore lock in tty_init_dev till disc_data
initializes completely.
Reviewed-by: Alan Cox <alan@linux.intel.com>
Cc: stable <stable@vger.kernel.org>
Change-Id: I3ba3cbd7dcb867a110878c8d0c47e6b920edd0b9
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Gaurav Kohli <gkohli@codeaurora.org>
(cherry-picked from commit b027e2298b)
This board exposes a bunch of nice peripherals, including MIPI CSI/CIF,
Ethernet, WIFI, two VOPs and USB HOST/OTG....
Change-Id: I8ca3bc231875c92e5a5b9ed8016bc89feb134fb0
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
If we would like to wake up via VAD with ACODEC and AMIC,
we need to keep enabling aocdec ADCs after close audio
capture stream, otherwise, the DUT can not be waken up.
This patch can help us to specify the needed ADCs which
are just used for VAD, other ADCs can be closed during
stop capture stream.
Change-Id: I621343902b8c603a5fcbd7875aaa562a29386b04
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
The fbdev_helper would not be available when CONFIG_DRM_FBDEV_EMULATION
is disabled.
Change-Id: I9f79c170e862f24eb717c7940d8acaefd060740f
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Px3se-evb board has two codecs es8396 and rk312x-codec.
ES8396 is enable by default. One can switch to rk312x-codec
via hardware rework: R7007, R7005, R7214, R7215.
This adds both es8396 and rk312x-codec but makes the latter one
disabled.
Change-Id: I51cad8bc50da8500c527d10ed52465c8f55d77c7
Signed-off-by: Shunqian Zheng <zhengsq@rock-chips.com>
This enables CONFIG_VIDEO_ROCKCHIP_CIF and CONFIG_VIDEO_ADV7181D
for rockchip_linux_defconfig.
Change-Id: I657e757d80a8e2a581631eedd2b3a19254658883
Signed-off-by: Shunqian Zheng <zhengsq@rock-chips.com>
This patch adds a new cif driver that is based on the
media controller, async subdev and vb2.
It now works in oneframe mode to receive yuv or bayer raw data.
Change-Id: I34047715405ac8b4eaafc71cc8983b9afa3c0006
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: Shunqian Zheng <zhengsq@rock-chips.com>
replace tab by spaces.
Fixes: 23c2ba084d ("Use standard lz4 format for Image.lz4 on ARM64")
Change-Id: I77ebb48ed0c9fa8bd427e10856065d681070bb6b
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
If the usb otg work as host mode or work as peripheral mode
with vbus always on, the otg_sm_work won't be initialized,
so flush the otg_sm_work in rockchip_usb2phy_exit() will
casuse the following lock warning:
[<ffffff800808b1e0>] dump_backtrace+0x0/0x1ec
[<ffffff800808b3e0>] show_stack+0x14/0x1c
[<ffffff8008403f3c>] dump_stack+0xb8/0xf4
[<ffffff8008107f40>] __lock_acquire+0x670/0x1984
[<ffffff8008109a60>] lock_acquire+0x1a4/0x264
[<ffffff8008129d2c>] del_timer_sync+0x48/0xb8
[<ffffff80080c3c94>] flush_delayed_work+0x20/0x50
[<ffffff80084344ac>] rockchip_usb2phy_exit+0x48/0x58
[<ffffff8008432bc4>] phy_exit+0x64/0xb4
[<ffffff80086733b8>] dwc3_core_exit+0x44/0x98
[<ffffff80086736c4>] dwc3_remove+0x90/0xe4
[<ffffff80085a5a5c>] platform_drv_remove+0x28/0x48
[<ffffff80085a3d14>] __device_release_driver+0xac/0x114
[<ffffff80085a3da4>] device_release_driver+0x28/0x3c
[<ffffff80085a2f38>] bus_remove_device+0x110/0x128
[<ffffff80085a0404>] device_del+0x160/0x1f8
[<ffffff80085a5954>] platform_device_del+0x20/0x88
[<ffffff80085a59d0>] platform_device_unregister+0x14/0x28
[<ffffff80088820f4>] of_platform_device_destroy+0x54/0xa8
[<ffffff800859f790>] device_for_each_child+0x68/0x98
[<ffffff8008882084>] of_platform_depopulate+0x30/0x4c
[<ffffff8008680030>] dwc3_rockchip_probe+0x4d4/0x574
[<ffffff80085a5ad4>] platform_drv_probe+0x58/0xa4
[<ffffff80085a396c>] driver_probe_device+0x118/0x2b0
[<ffffff80085a3b70>] __driver_attach+0x6c/0x98
[<ffffff80085a29d0>] bus_for_each_dev+0x80/0xb0
[<ffffff80085a34a0>] driver_attach+0x20/0x28
[<ffffff80085a3038>] bus_add_driver+0xe8/0x1e4
[<ffffff80085a4ad4>] driver_register+0x94/0xe0
[<ffffff80085a5a2c>] __platform_driver_register+0x48/0x50
[<ffffff8009222224>] dwc3_rockchip_driver_init+0x18/0x20
[<ffffff80080839f4>] do_one_initcall+0x17c/0x198
[<ffffff80091f0e48>] kernel_init_freeable+0x1f8/0x2b0
[<ffffff8008c61810>] kernel_init+0x10/0xf8
[<ffffff80080832c0>] ret_from_fork+0x10/0x50
This patch only allows to flush the otg_sm_work when the usb
bvalid irq is valid.
Fixes: f6fac8b68a ("phy: rockchip: rockchip-inno-usb2: flush otg work when exit")
Change-Id: I4dbe34fa9a330f22abb24ccd625da33425a9f753
Signed-off-by: William Wu <william.wu@rock-chips.com>
Add a basic wide-temperature control model for device to adjust opp
table and max frequency.
Change-Id: I23f29ac1892093c527e730164eba086f02667de3
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Sometimes pvtm thermal zone is different from wide-temperature control
thermal zone, so let pvtm parse 'rockchip,pvtm-thermal-zone' first.
Change-Id: Ia6bdfbabb99b053864cbc3cbf14aac675e26483c
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
the mcu init cmd should be sent from crtc mcu interface,
so we add the rockchip_drm_crtc_send_mcu_cmd to do this.
Change-Id: I7fedfb90c6074e8837a825d10e0dcd9c16bfc1d0
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Fix the negative data before enabling loopback.
Change-Id: I8f4ef1e83b38f17c80f9b4109984c6560e570d20
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
This patch use the master chan as the sync pointer. and in some case,
one or more sub dai may not start at the same time, or one sub dai
works always which leading the pointer of each sub dai is different,
it depends on the fifo available count and waterlevel. the maximum is
the whole fifo size. report the pointer(dma_pos - max_fifo_size) to
make sure each sub buffer have been filled out.
Change-Id: I5a6d8b3f3c63f8ed7b55b0402429904368adf557
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
Newer high definition cameras, and cameras with multiple lenses such as
the range of stereo-vision cameras now available have ever increasing
data rates.
The inclusion of a variable length packet header in URB packets mean
that we must memcpy the frame data out to our destination 'manually'.
This can result in data rates of up to 2 gigabits per second being
processed.
To improve efficiency, and maximise throughput, handle the URB decode
processing through a work queue to move it from interrupt context, and
allow multiple processors to work on URBs in parallel.
Change-Id: I825a107e706a964525dcabba4faa9434f499fd96
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: William Wu <william.wu@rock-chips.com>
(am from https://patchwork.kernel.org/patch/10311055/)
The buffer queue interface currently operates sequentially, processing
buffers after they have fully completed.
In preparation for supporting parallel tasks operating on the buffers,
we will need to support buffers being processed on multiple CPUs.
Adapt the uvc_queue_next_buffer() such that a reference count tracks the
active use of the buffer, returning the buffer to the VB2 stack at
completion.
Change-Id: Ia42cca9bed7852175202017b042590d844e8c6b0
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: William Wu <william.wu@rock-chips.com>
(am from https://patchwork.kernel.org/patch/10311051/)
Both uvc_start_streaming(), and uvc_stop_streaming() are called from
userspace context, with interrupts enabled. As such, they do not need to
save the IRQ state, and can use spin_lock_irq() and spin_unlock_irq()
respectively.
Change-Id: I1cde5a8d9a8890cc2b671d1e32d3b6b4b0eac635
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: William Wu <william.wu@rock-chips.com>
(am from https://patchwork.kernel.org/patch/10311047/)