Commit Graph

847476 Commits

Author SHA1 Message Date
Guochun Huang
7dd63e4010 drm/rockchip: calculate lanes and rate for Main Link Lanes
the numbers and rate of Main Link lanes depend on
the panel display resolution and corlor depth, it
is recommended that the minimum number of lanes be
used, using the minimum link rate allowed for that
lane configuration.

Change-Id: Id207410589e1f77ebff79615f3367f153a9b2755
Signed-off-by: Guochun Huang <hero.huang@rock-chips.com>
2019-11-19 15:53:27 +08:00
Sugar Zhang
13963fed0b ASoC: rockchip: i2s: Adds properties to specify playback/capture capability
- 'rockchip,playback-only': support playback only.
- 'rockchip,capture-only': support capture only.

Change-Id: I0daee4dc5bda8bacc63201972b57c8d401fb8703
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2019-11-19 10:09:48 +08:00
Xing Zheng
70ab12578d ASoC: rk3308_codec: add support ADC grps and DAC endisable for testing
Some times, we need to enable/disable ADC grps or DAC
directly to debug.

Change-Id: I53b9fa94733d84f7101e299d3fcb6f9160e36112
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2019-11-19 10:09:48 +08:00
Xing Zheng
e5ec404571 ASoC: multicodecs&rk3308_codec: handle the request during no codec instance and hp det
If there is no codec instance or headphone jack, we
should not request headphone jack from machine driver.

Change-Id: If05ac2f4bbfd3fc495a75c0701a44a325e5010cd
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2019-11-19 10:09:48 +08:00
Xing Zheng
ab30c1bf0d ASoC: rk3308_codec: add support reversed headphone jack
Change-Id: I4752c935684e3b745185cc43b826cad06ff429c5
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2019-11-19 10:09:48 +08:00
Xing Zheng
6eba7ada5a ASoC: rk3308_codec: increase some delays to be stabe enabling DAC
From the suggest of IP vendor, we need more delays to
adapt to the playing scene in different temperature
environments.

Change-Id: I95abe2bac43de19241092d6e785f28960760dacd
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2019-11-19 10:09:48 +08:00
Xing Zheng
782f00a43a ASoC: rk3308_codec: add support checking external micbias
Change-Id: I644faff116184ee3fb927cff6531f8d4ac497edc
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2019-11-19 10:09:48 +08:00
Xing Zheng
b96531209c ASoC: rk3308_codec: add some delay to wait micbias is stable
To avoid bring some noise dues to unstable micbias.

Change-Id: I0127505f0adeacda5d852ae3cefae2fb5f4ee9d2
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2019-11-19 10:09:48 +08:00
Xiaotan Luo
5494c856b9 ASoC: rockchip: i2s: fixed PCM DSP format
DSP_A: PCM delay 1 bit mode,L data MSB after FRM LRC
DSP_B: PCM no delay mode,L data MSB during FRM LRC

Change-Id: I198519c431815de3ca1fc154da78773ca705f0e0
Signed-off-by: Xiaotan Luo <lxt@rock-chips.com>
2019-11-19 10:09:48 +08:00
Xiaotan Luo
ce779a4fc4 ASoC: codec: dummy-codec: add setting mclk
Many devices require MCLK to work, So add mclk

Change-Id: I666e46c8968330afd81506d0c64769b59ad0837d
Signed-off-by: Xiaotan Luo <lxt@rock-chips.com>
2019-11-19 10:09:48 +08:00
Sugar Zhang
47986340e4 dt-bindings: sound: add compatible for rk1808es vad
Change-Id: I9eff5ec7ff87f2c26fdd4264cad1169a42889992
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2019-11-19 10:09:48 +08:00
Sugar Zhang
24d4d9dc6d ASoC: rockchip: vad: compatible with rk1808es/rk1808
Change-Id: I54c968f8fcf37cc4d7a52137ac0aac57d4367dc7
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2019-11-19 10:09:48 +08:00
Binyuan Lan
343f00608d ASoC: rockchip: rk817-codec: solve sound L/R channel conversion problem
There is playback's sound L/R channel conversion problem when recording is opened

Change-Id: Iae7160e25bdd834df9904fbd34fe964449c93560
Signed-off-by: Binyuan Lan <lby@rock-chips.com>
2019-11-19 10:09:48 +08:00
Tao Huang
3d8f1c168d arm64: rockchip_defconfig: disable WQ_POWER_EFFICIENT_DEFAULT
From floral_defconfig

Change-Id: I2cb38826efe14229110b8d6864fa3c3089ebc608
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2019-11-18 16:37:01 +08:00
Algea Cao
76f27bdd76 drm: bridge: dw-hdmi: using extcon instead of switch
Switch is no longer available in kernel 4.19, so
we use extcon instead.

the hdmi connect status node:

/sys/class/extcon/extconX/state

HDMI=0:
	hdmi is disconnected
HDMI=1:
	hdmi is connected

Change-Id: I806d8fd5b9b4b36f15aa6aec275fad2ecf122e91
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
2019-11-18 15:29:39 +08:00
Tao Huang
513c60a1ba extcon: Add named extcon link
Allow Android access by name.

Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: Ia81c1887f41a0ad587d7f78683213e9716e9806b
2019-11-18 15:28:44 +08:00
Tao Huang
c653aafaf9 video: rockchip: remove unused vcodec driver
Change-Id: Ibc186e02c2e3d390056fd79066e27af61233798e
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2019-11-18 15:25:12 +08:00
Tao Huang
79a601c2be arm64: rockchip_defconfig: enable CPU_FREQ_STAT and CPU_FREQ_TIMES
Change-Id: I0fa41814e2501cff95fc2e743725b0635b2503d5
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2019-11-18 15:24:44 +08:00
Tao Huang
f44b4ac6a0 ARM: rockchip_defconfig: enable CPU_FREQ_STAT and CPU_FREQ_TIMES
Change-Id: I8dd538d0c55bfbfc71f10af56645b13796390ec6
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2019-11-18 14:35:38 +08:00
Tao Huang
316a419908 ARM: rockchip_defconfig: cleanup by savedefconfig
Change-Id: I7219025f62661c886e4cb287a05cfc30e85211a8
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2019-11-18 14:31:53 +08:00
Tao Huang
cdc6f7d0b0 media: remove unused video drivers
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: Ic8d08dc1c2e41a97fd1baf874efaa05f9b5de9d9
2019-11-18 14:13:42 +08:00
Sandy Huang
5dad1298c3 drm/rockchip: vop: reset 10bit config after exit 10bit video
Change-Id: I4bf0a68c7f851e745607901ff2cf426902edf467
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-11-18 14:12:01 +08:00
Sandy Huang
c28375d507 drm/rockchip: vop: use pm_runtime_put_sync
Change-Id: Id1a67096a12518c24f6cf7a548fe78cf40fa25e1
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-11-18 14:04:56 +08:00
Zhen Chen
a803fa6605 Mali: utgard: fix memory(fences) leaks
In deed, Zhixiong Lin missed these codes when he picking source codes
from DDK r9 to port utgard device driver of r7 to kernel 4.19.

Change-Id: If140b478b4ea8a4f72d532b8e8216ab53856be08
Signed-off-by: Zhen Chen <chenzhen@rock-chips.com>
2019-11-18 09:10:15 +08:00
Wang Panzhenzhuan
1e178b2030 arm64: dts: rk3399-evb-ind-lpddr4-android: add camera configs
Change-Id: Ie0d008eb3ef839ff526c242e2412fbf879268659
Signed-off-by: Wang Panzhenzhuan <randy.wang@rock-chips.com>
2019-11-15 19:13:48 +08:00
Ding Wei
1bbea0db47 video: rockchip: mpp: fix error when queue_work
When different devices are running, there will be use wrong
device to deal with task.The reasion is that the true device
is task->queue->mpp.

Change-Id: I8fe4dd59d2525f02d010b32299ee0b82815d210a
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
2019-11-15 14:00:22 +08:00
Wyon Bi
6f86fc8c00 drm/rockchip: cdn-dp: Reject non-32-bits-aligned mode widths
Change-Id: I8f6b94baef9fd5db2090e36dc8974769b7d469f7
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
2019-11-15 08:52:28 +08:00
Wenping Zhang
43fd724887 drm/rockchip: cdn_dp: fix issue 1 lane dp device can't output audio.
Change-Id: Ic148a2c5a5bf12ded9f83201d9a4dffe406b4e3f
Signed-off-by: Wenping Zhang <wenping.zhang@rock-chips.com>
2019-11-15 08:52:22 +08:00
Wang Jie
8c51e8bb0e arm64: dts: rockchip: modify rk3399-evb-ind.dtsi.
modify the layout value of mpu6500 and ak8963.

Change-Id: I2968a71343ad2c004690b6cd9ecab4e900ba320b
Signed-off-by: Wang Jie <dave.wang@rock-chips.com>
2019-11-14 19:24:57 +08:00
Weiguo Hu
0e3aed9b03 net: rockchip_wlan: add rtl8822bs driver: v5.8.7_35628.20191031_COEX20190625-7272
Change-Id: If9d481a4873d7bd3b6255f0d68723374281f73ee
Signed-off-by: Weiguo Hu <hwg@rock-chips.com>
2019-11-14 19:23:17 +08:00
Nick Bray
008704c50f ANDROID: initramfs: call free_initrd() when skipping init
Memory allocated for initrd would not be reclaimed if initializing ramfs
was skipped.

Bug: 69901741
Test: "grep MemTotal /proc/meminfo" increases by a few MB on an Android
device with a/b boot.

Change-Id: Ifbe094d303ed12cfd6de6aa004a8a19137a2f58a
Signed-off-by: Nick Bray <ncbray@google.com>
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2019-11-14 19:17:07 +08:00
Rom Lemarchand
79f3326944 ANDROID: initramfs: Add skip_initramfs command line option
Add a skip_initramfs option to allow choosing whether to boot using
the initramfs or not at runtime.

Change-Id: If30428fa748c1d4d3d7b9d97c1f781de5e4558c3
Signed-off-by: Rom Lemarchand <romlem@google.com>
Signed-off-by: Dayao Ji <jdy@rock-chips.com>
2019-11-14 19:17:07 +08:00
Ding Wei
7f124ab617 arm64: dts: rockchip: rk3328: dtsi for video codec
Change-Id: I08b2be091c85a4ccf005f835da09657df66f815b
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
2019-11-14 17:04:34 +08:00
Ding Wei
9dc4984769 video: rockchip: mpp: clear cache before run hardware
Change-Id: Ifbac051031433106c26de82d1fe691e5b7ac2429
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
2019-11-14 17:04:14 +08:00
Zhen Chen
69c7c17655 MALI: rockchip: upgrade bifrost DDK to r21p0-01rel0, from r20p0-01rel0
Change-Id: Ibdb2508859f24df1014fc485097685bcecb7b31b
Signed-off-by: Zhen Chen <chenzhen@rock-chips.com>
2019-11-14 11:38:21 +08:00
Sandy Huang
6704c0590d drm/rockchip: vop: fix plane number calc error
before this commit, the plane number to dmc is error, this
will lead to DDR freq is too low and lead to display splash.

Change-Id: Iaa285b36d41b6e86c97260ac83c5d9a21ef62a05
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-11-14 11:37:34 +08:00
William Wu
b43b8174c1 usb: gadget: composite: fix dead lock when uvc disconnect
When test uvc hotplug, it may caused a dead lock in the
following case:

1. Test on Rockchip platforms used USB DWC2 controller.
2. Set USB as UVC gadget and connect to PC.
3. Open UVC to preview picture, and then disconnect USB.

Then a dead lock happens.

1. usb_function_deactivate() hold the cdev->lock;
2. usb_function_deactivate() --> usb_gadget_deactivate()
   --> usb_gadget_disconnect() --> dwc2_hsotg_disconnect()
   --> composite_disconnect() try to get the cdev->lock again.

According to the comment for cdev->lock, it's used to protect
deactivations and delayed_status count, so we can drop the
spinlock safely before do usb_gadget_deactivate(), and hold
the spinlock again after usb_gadget_deactivate() done to
protect the deactivations.

Change-Id: I24310434f0a11f9e981817de5e31b36cdbad7344
Signed-off-by: William Wu <william.wu@rock-chips.com>
2019-11-14 11:17:26 +08:00
Zain Wang
78bbe26092 dt-bindings: phy-rockchip-inno-usb2: add wakeup-source property for u2phy
Change-Id: I4a7e5ec96a4244ee74f9560baacc1d25bf451c5c
Signed-off-by: Zain Wang <wzz@rock-chips.com>
2019-11-14 11:17:26 +08:00
Zain Wang
c34ee93382 phy: phy-rockchip-inno-usb2: add force IRQ wakeup control
Some chips like rk3328 not support wakeup-config in dts,
So we should set wakeup IRQ enable in driver if we need
new wakeup source.

Change-Id: I735eee54bb4943b8c85a9a477f1cf9d255fc4312
Signed-off-by: Zain Wang <wzz@rock-chips.com>
2019-11-14 11:17:26 +08:00
William Wu
2249412583 usb: gadget: f_uac1: add iad descriptor
According to the spec "USB Interface Association Descriptor Device
Class Code and Use Model"[1], the Interface Association Descriptor
(IAD) is needed for composite device which has multiple interfaces
controlled independently of each other. Without the IAD, the device
may not work as expected because the USB system software will not
properly bind the interfaces with drivers (e.g UAC1 && UVC composite
device not recognized in Win10).

[1] https://www.usb.org/sites/default/files/iadclasscode_r10.pdf

Change-Id: I446c771fe182bd556a054d9ae0ada1374442d1d0
Signed-off-by: William Wu <william.wu@rock-chips.com>
2019-11-14 11:17:26 +08:00
William Wu
503cd7b1b7 usb: dwc3: gadget: support to resize TxFIFOs dynamically
We need to dynamically resize the TxFIFOs for some cases
where the default values don't match.

Test on RK1808-stick board, configurate the usb with four
functions "rndis, ntb, mass_storage, acm", the default
values of TxFIFOs is:

GTXFIFOSIZ(0) = 0x00000042
GTXFIFOSIZ(1) = 0x00420184
GTXFIFOSIZ(2) = 0x01c60184
GTXFIFOSIZ(3) = 0x034a0184
GTXFIFOSIZ(4) = 0x04ce0184
GTXFIFOSIZ(5) = 0x06520184
GTXFIFOSIZ(6) = 0x07d6002a

The ep6-in is used for acm ep-in which maxpacket is 1024B,
but the default fifo size of ep6-in is only 336B, less than
the length of the ep maxpacket, it cause acm works abnormally.

This patch creates a simple function to allocate enough TxFIFO
space for each of the enabled endpoints.

Change-Id: I389ffdba4f3721ed6ef192f0c85f41fdeff645ce
Signed-off-by: William Wu <william.wu@rock-chips.com>
2019-11-14 11:17:26 +08:00
William Wu
268d32fef4 dt-bindings: usb: dwc3: add a property to resize tx fifo
This patch adds a new property "snps,tx-fifo-resize" to
enable resize the TxFIFOs dynamically.

Change-Id: I0714b8a5b3a7f461ae0527c99729db8cf202e066
Signed-off-by: William Wu <william.wu@rock-chips.com>
2019-11-14 11:17:26 +08:00
William Wu
3f2358d458 usb: dwc3: gadget: avoid multiple calls to free_irq
When we use /sys/class/udc/<udc>/soft_connect to do
a logical disconnection from the USB Host on RK3399
Excavator Board, it dumps the warning log:

Trying to free already-free IRQ 231
WARNING: CPU: 2 PID: 1308 at kernel/irq/manage.c:1628 __free_irq+0xa0/0x2e0
Modules linked in:
CPU: 2 PID: 1308 Comm: adbd Not tainted 4.19.80 #49
Hardware name: Rockchip RK3399 Excavator Board edp avb (Android) (DT)
pstate: 40400085 (nZcv daIf +PAN -UAO)
pc : __free_irq+0xa0/0x2e0
lr : __free_irq+0xa0/0x2e0
...
Call trace:
__free_irq+0xa0/0x2e0
free_irq+0x38/0x90
dwc3_gadget_stop+0x58/0x80
usb_gadget_remove_driver+0x50/0x70
usb_gadget_unregister_driver+0xc0/0x110
unregister_gadget+0x20/0x50
unregister_gadget_item+0x24/0x38
ffs_data_clear+0x120/0x130
ffs_data_reset+0x14/0x50
ffs_data_closed+0x88/0xd8
ffs_epfile_release+0x20/0x30

To solve the problem, don't call free_irq() in
dwc3_gadget_stop() if dwc->gadget_driver is NULL.

Change-Id: I9d5b5b354612c3ce3677b3d15cf6af1fcbf3f399
Signed-off-by: William Wu <william.wu@rock-chips.com>
2019-11-14 11:17:26 +08:00
William Wu
b7d5426deb usb: gadget: uvc: support streaming bulk transfer
This patch adds bulk endpoint for uvc to be used as
video streaming transfer. By default, the uvc gadget
still uses isoc endpoint for video streaming.

The important difference between the bulk and isoc
method is that, alt-settings in a video streaming
interface are supported only for isoc endpoints as
there are different alt-settings for zero-bandwidth
and full-bandwidth use-cases, but the same is not
true for bulk endpoints, as they support only a single
alt-setting.

How to use:
1. Enable the bulk transfer:
   echo 1 >  /config/usb-gadget/g1/functions/uvc.name/streaming_bulk

2. Disable the bulk transfer:
   echo 0 >  /config/usb-gadget/g1/functions/uvc.name/streaming_bulk

3. Testing the uvc bulk function transfer:
   device: run the uvc-gadget program
   # uvc-gadget -b -u /dev/video<uvc video node #> -v /dev/video<vivid video node #>

   where uvc-gadget is this program:
        http://git.ideasonboard.org/uvc-gadget.git

   with these patches:

        http://www.spinics.net/lists/linux-usb/msg99220.html

Change-Id: Ifedfe3f5c4354dd2bdf07382290107e9bcc89f59
Signed-off-by: William Wu <william.wu@rock-chips.com>
2019-11-14 11:17:26 +08:00
William Wu
dc70652f46 usb: gadget: f_uac2: fix some issues for Windows recognized
We find that the UAC2 gadget can't be recognized on Windows 10.
It's because that the descriptors of UAC2 doesn't meet the
requirements of Windows.

According to the USB Audio 2.0 Drivers of Windows [1], if the
bmAttributes of OUT-EP in the audio stream interface is set
to asynchronous (use USB_ENDPOINT_SYNC_ASYNC), then a feedback
endpoint must be implemented in the respective alternate setting
of the AS interface. The Windows driver does not support implicit
feedback.

However, it's difficult to implement the feedback endpoint now.
So the patch changes the bmAttributes of OUT-EP to adaptive, and
changes the bmAttributes of IN-EP to synchronous at the same time.

This patch also sets the wTerminalType of terminal descriptor to
microphone and speaker by default.

With this patch, we also fix the wTotalLength of the ac_hdr_desc.

[1] https://docs.microsoft.com/en-us/windows-hardware/drivers/audio/usb-2-0-audio-drivers

Change-Id: I3597d5f321235fcbce56dbfbfe95172d02e58892
Signed-off-by: William Wu <william.wu@rock-chips.com>
2019-11-14 11:15:51 +08:00
Andreas Pape
01c1d8f735 UPSTREAM: usb: gadget: f_uac2: disable IN/OUT ep if unused
Via p_chmask/c_chmask the user can define whether uac2 shall support
playback and/or capture. This has only effect on the  created ALSA device,
but not on the USB descriptor. This patch adds playback/capture descriptors
dependent on that parameter.

Change-Id: I396b4238e6a8f2b4a32a57780acea4f23dc0c081
Signed-off-by: Andreas Pape <apape@de.adit-jv.com>
Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: William Wu <william.wu@rock-chips.com>
(cherry picked from commit 3fa4eaa6c0)
2019-11-14 11:15:51 +08:00
William Wu
f3db2b6e55 usb: uas: ignore UAS for Seagate Expansion Portable Drive
The Seagate Expansion Portable Drive HDD (idVendor=0bc2, idProduct=2321) is reported to fail to work on rockchip platforms
with the following error message when do read/write operation by dd command:

xhci-hcd xhci-hcd.11.auto: Ring expansion failed

According to tkaiser's suggestion[1], we can try to increase the kernel's
coherent-pool memory size to fix this issue. The kernel coherent-pool memory
size was limited at 256KB by default. When set the DEFAULT_DMA_COHERENT_POOL_SIZE
to 1MB, the error "Ring expansion failed" can be fixed, but it still not
work with the other error message:

xhci-hcd xhci-hcd.12.auto: ERROR Unknown event condition 34 for slot 1 ep 3 , HC probably busted
sd 0:0:0:0: [sda] tag#16 uas_eh_abort_handler 0 uas-tag 17 inflight: CMD OUT
...
scsi host0: uas_eh_bus_reset_handler start
xhci-hcd xhci-hcd.12.auto: ERROR Transfer event for disabled endpoint slot 1 ep 6 or incorrect stream ring

Falling back to USB mass storage can solve this problem, so ignore UAS
function of this HDD.

[1] https://forum.armbian.com/topic/4811-uas-mainline-kernel-coherent-pool-memory-size/

Change-Id: I0d817cc3aaea548c2060b323c3077c6cbbd3bb6e
Signed-off-by: William Wu <william.wu@rock-chips.com>
2019-11-14 11:15:51 +08:00
Wu Liang feng
349bb1466b usb: gadget: accessory: add compat_ioctl
Add compat_ioctl for accessory to work on 64-bit platforms.

Change-Id: I805395c35017111bf0c462847f11765c7088d266
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
2019-11-14 11:15:51 +08:00
William Wu
ccc5c5b34c usb: gadget: uvc: add compat_ioctl
This allows 32 bit owners of uvc video to make ioctls
into a 64 bit kernel.

All of the current uvc ioctls can be handled with the
same struct definitions as regular ioctl.

Change-Id: Ia31b26147ab619f0673f94b6662eaf181a9eb5dd
Signed-off-by: William Wu <william.wu@rock-chips.com>
2019-11-14 11:15:51 +08:00
William Wu
cbb0b7c4f6 phy: rockchip-inno-combphy: avoid reinit usb3 phy
When the combphy work as USB3 PHY (e.g. RK1808 EVB USB3 port),
the PHY init and exit ops are called dynamically in the runtime
process of USB3 controller driver.

Because it only needs to init the USB3 PHY once in the PHY init,
and reinit the USB3 PHY in the runtime process may cause USB3 work
abnormally, so this patch doesn't clear the phy_initialized flag
for USB3 in the PHY exit ops.

Change-Id: Ifc2eb3edac25bd10db6d47b4c9e197cc15c4aef7
Signed-off-by: William Wu <william.wu@rock-chips.com>
2019-11-14 11:15:51 +08:00