Commit Graph

1080222 Commits

Author SHA1 Message Date
baiywt 5a87141112 arm64: dts: rockchip: opi3b/cm4: Add rk356x-pwm15-m1.dts 2023-08-16 20:00:18 +08:00
baiywt 830a0c3a9a arm64: dts: rockchip: opi3b/cm4: Update for dt overlay 2023-08-10 17:20:52 +08:00
baiywt 1cd5afc7e4 arm64: dts: rockchip: opi3b/cm4: Fixed the issue of not recognizing the SPI flash 2023-07-19 20:04:03 +08:00
baiywt a0d54e5536 Revert "PCIe: dw: rockchip: Delaying the link training after hot reset"
This reverts commit 679557456b.
2023-07-17 21:02:08 +08:00
baiywt ff23255bad scripts: Update gcc-wrapper.py 2023-07-17 21:02:07 +08:00
baiywt fb489320e3 arm64: dts: rockchip: opicm4/opi3b: Support uwe5622 2023-07-17 21:02:07 +08:00
Paolo Sabatino 8d3a2361a0 fix spreadtrum (sprd) broken bluetooth park link status 2023-07-17 21:02:07 +08:00
baiywt 9da8e5017b net: wireless: Add uwe5622 driver 2023-07-17 21:02:07 +08:00
baiywt 935e3e69e6 drm/rockchip: dsi: Fixed raspberry pi screen display issue 2023-07-17 21:02:07 +08:00
baiywt f52a614fc2 arm64: dts: rockchip: Add dts for Orange Pi CM4/3B 2023-07-17 21:02:02 +08:00
baiywt 7103c96083 media: i2c: Update ov5647 driver 2023-07-07 15:03:02 +08:00
Stephen Chen ca1427c522 drm/panel/raspberrypi-touchscreen: keep power for touch when panel is disabled
Signed-off-by: Stephen Chen <stephen@radxa.com>
2023-07-07 15:03:02 +08:00
Stephen Chen aca1e1e825 drm/panel/raspberrypi-touchscreen: change modeline
Signed-off-by: Stephen Chen <stephen@radxa.com>
2023-07-07 15:03:02 +08:00
Stephen Chen 1260107bad drm/panel/raspberrypi-touchscreen: update modeline
Signed-off-by: Stephen Chen <stephen@radxa.com>
2023-07-07 15:03:02 +08:00
Stephen Chen cc85ea9786 input: touchscreen: add Raspberry Pi touchscreen IC FT5426 driver
Signed-off-by: Stephen Chen <stephen@radxa.com>
2023-07-07 15:03:02 +08:00
orangepi-xunlong 377902de1d net: ethernet: Use serial number to generate mac address 2023-07-07 15:03:02 +08:00
orangepi-xunlong 94bb56ba77 opi5plus: Support gc5035 camera 2023-07-07 15:03:01 +08:00
orangepi-xunlong 49b8ddea2b media: i2c: gc5035: Disable some logs 2023-07-07 15:03:01 +08:00
orangepi-xunlong c03d7eda7b opi5/opi5b: Add rk3588-disable-led.dts 2023-07-07 15:03:01 +08:00
orangepi-xunlong 080e16a91f opi5plus: Add rk3588-opi5plus-disable-leds.dts 2023-07-07 15:03:01 +08:00
baiywt e7c0620380 Fixed cannot install zfs 2023-07-07 15:03:01 +08:00
orangepi-xunlong fba77f9a27 Support Orange Pi 5 Plus 2023-07-07 15:03:01 +08:00
baiywt 054e7f7707 Fix some boards cannot enter deep sleep mode 2023-07-07 15:03:01 +08:00
Joshua Riek 151a752bf1 enable hardware cursor and change vops 2023-07-07 15:03:00 +08:00
Icecream95 20a210999b drm/rockchip: Re-add implicit fencing support for planes
Similar to 63d5e06aa3 ("drm/rockchip: Add implicit fencing support
for planes") but after the code was removed and VOP2 was added in the
downstream kernel.

Note that upstream VOP2 does not have this line as it was added since
29a840842743 ("drm/<driver>: drm_gem_plane_helper_prepare_fb is now
the default") removed the need.
2023-07-07 15:03:00 +08:00
Jason Ekstrand 576ce6e9e7 dma-buf: Add an API for importing sync files (v10)
This patch is analogous to the previous sync file export patch in that
it allows you to import a sync_file into a dma-buf.  Unlike the previous
patch, however, this does add genuinely new functionality to dma-buf.
Without this, the only way to attach a sync_file to a dma-buf is to
submit a batch to your driver of choice which waits on the sync_file and
claims to write to the dma-buf.  Even if said batch is a no-op, a submit
is typically way more overhead than just attaching a fence.  A submit
may also imply extra synchronization with other work because it happens
on a hardware queue.

In the Vulkan world, this is useful for dealing with the out-fence from
vkQueuePresent.  Current Linux window-systems (X11, Wayland, etc.) all
rely on dma-buf implicit sync.  Since Vulkan is an explicit sync API, we
get a set of fences (VkSemaphores) in vkQueuePresent and have to stash
those as an exclusive (write) fence on the dma-buf.  We handle it in
Mesa today with the above mentioned dummy submit trick.  This ioctl
would allow us to set it directly without the dummy submit.

This may also open up possibilities for GPU drivers to move away from
implicit sync for their kernel driver uAPI and instead provide sync
files and rely on dma-buf import/export for communicating with other
implicit sync clients.

We make the explicit choice here to only allow setting RW fences which
translates to an exclusive fence on the dma_resv.  There's no use for
read-only fences for communicating with other implicit sync userspace
and any such attempts are likely to be racy at best.  When we got to
insert the RW fence, the actual fence we set as the new exclusive fence
is a combination of the sync_file provided by the user and all the other
fences on the dma_resv.  This ensures that the newly added exclusive
fence will never signal before the old one would have and ensures that
we don't break any dma_resv contracts.  We require userspace to specify
RW in the flags for symmetry with the export ioctl and in case we ever
want to support read fences in the future.

There is one downside here that's worth documenting:  If two clients
writing to the same dma-buf using this API race with each other, their
actions on the dma-buf may happen in parallel or in an undefined order.
Both with and without this API, the pattern is the same:  Collect all
the fences on dma-buf, submit work which depends on said fences, and
then set a new exclusive (write) fence on the dma-buf which depends on
said work.  The difference is that, when it's all handled by the GPU
driver's submit ioctl, the three operations happen atomically under the
dma_resv lock.  If two userspace submits race, one will happen before
the other.  You aren't guaranteed which but you are guaranteed that
they're strictly ordered.  If userspace manages the fences itself, then
these three operations happen separately and the two render operations
may happen genuinely in parallel or get interleaved.  However, this is a
case of userspace racing with itself.  As long as we ensure userspace
can't back the kernel into a corner, it should be fine.

v2 (Jason Ekstrand):
 - Use a wrapper dma_fence_array of all fences including the new one
   when importing an exclusive fence.

v3 (Jason Ekstrand):
 - Lock around setting shared fences as well as exclusive
 - Mark SIGNAL_SYNC_FILE as a read-write ioctl.
 - Initialize ret to 0 in dma_buf_wait_sync_file

v4 (Jason Ekstrand):
 - Use the new dma_resv_get_singleton helper

v5 (Jason Ekstrand):
 - Rename the IOCTLs to import/export rather than wait/signal
 - Drop the WRITE flag and always get/set the exclusive fence

v6 (Jason Ekstrand):
 - Split import and export into separate patches
 - New commit message

v7 (Daniel Vetter):
 - Fix the uapi header to use the right struct in the ioctl
 - Use a separate dma_buf_import_sync_file struct
 - Add kerneldoc for dma_buf_import_sync_file

v8 (Jason Ekstrand):
 - Rebase on Christian König's fence rework

v9 (Daniel Vetter):
 - Fix -EINVAL checks for the flags parameter
 - Add documentation about read/write fences
 - Add documentation about the expected usage of import/export and
   specifically call out the possible userspace race.

v10 (Simon Ser):
 - Fix a typo in the docs

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Signed-off-by: Jason Ekstrand <jason.ekstrand@intel.com>
Signed-off-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Simon Ser <contact@emersion.fr>
Link: https://patchwork.freedesktop.org/patch/msgid/20220608152142.14495-3-jason@jlekstrand.net
(cherry picked from commit 594740497e998d30477ab26093bfb81c28cd3ff1)
2023-07-07 15:03:00 +08:00
Jason Ekstrand 85355df51a dma-buf: Add an API for exporting sync files (v14)
Modern userspace APIs like Vulkan are built on an explicit
synchronization model.  This doesn't always play nicely with the
implicit synchronization used in the kernel and assumed by X11 and
Wayland.  The client -> compositor half of the synchronization isn't too
bad, at least on intel, because we can control whether or not i915
synchronizes on the buffer and whether or not it's considered written.

The harder part is the compositor -> client synchronization when we get
the buffer back from the compositor.  We're required to be able to
provide the client with a VkSemaphore and VkFence representing the point
in time where the window system (compositor and/or display) finished
using the buffer.  With current APIs, it's very hard to do this in such
a way that we don't get confused by the Vulkan driver's access of the
buffer.  In particular, once we tell the kernel that we're rendering to
the buffer again, any CPU waits on the buffer or GPU dependencies will
wait on some of the client rendering and not just the compositor.

This new IOCTL solves this problem by allowing us to get a snapshot of
the implicit synchronization state of a given dma-buf in the form of a
sync file.  It's effectively the same as a poll() or I915_GEM_WAIT only,
instead of CPU waiting directly, it encapsulates the wait operation, at
the current moment in time, in a sync_file so we can check/wait on it
later.  As long as the Vulkan driver does the sync_file export from the
dma-buf before we re-introduce it for rendering, it will only contain
fences from the compositor or display.  This allows to accurately turn
it into a VkFence or VkSemaphore without any over-synchronization.

By making this an ioctl on the dma-buf itself, it allows this new
functionality to be used in an entirely driver-agnostic way without
having access to a DRM fd. This makes it ideal for use in driver-generic
code in Mesa or in a client such as a compositor where the DRM fd may be
hard to reach.

v2 (Jason Ekstrand):
 - Use a wrapper dma_fence_array of all fences including the new one
   when importing an exclusive fence.

v3 (Jason Ekstrand):
 - Lock around setting shared fences as well as exclusive
 - Mark SIGNAL_SYNC_FILE as a read-write ioctl.
 - Initialize ret to 0 in dma_buf_wait_sync_file

v4 (Jason Ekstrand):
 - Use the new dma_resv_get_singleton helper

v5 (Jason Ekstrand):
 - Rename the IOCTLs to import/export rather than wait/signal
 - Drop the WRITE flag and always get/set the exclusive fence

v6 (Jason Ekstrand):
 - Drop the sync_file import as it was all-around sketchy and not nearly
   as useful as import.
 - Re-introduce READ/WRITE flag support for export
 - Rework the commit message

v7 (Jason Ekstrand):
 - Require at least one sync flag
 - Fix a refcounting bug: dma_resv_get_excl() doesn't take a reference
 - Use _rcu helpers since we're accessing the dma_resv read-only

v8 (Jason Ekstrand):
 - Return -ENOMEM if the sync_file_create fails
 - Predicate support on IS_ENABLED(CONFIG_SYNC_FILE)

v9 (Jason Ekstrand):
 - Add documentation for the new ioctl

v10 (Jason Ekstrand):
 - Go back to dma_buf_sync_file as the ioctl struct name

v11 (Daniel Vetter):
 - Go back to dma_buf_export_sync_file as the ioctl struct name
 - Better kerneldoc describing what the read/write flags do

v12 (Christian König):
 - Document why we chose to make it an ioctl on dma-buf

v13 (Jason Ekstrand):
 - Rebase on Christian König's fence rework

v14 (Daniel Vetter & Christian König):
 - Use dma_rev_usage_rw to get the properly inverted usage to pass to
   dma_resv_get_singleton()
 - Clean up the sync_file and fd if copy_to_user() fails

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Signed-off-by: Jason Ekstrand <jason.ekstrand@intel.com>
Signed-off-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Acked-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Simon Ser <contact@emersion.fr>
Link: https://patchwork.freedesktop.org/patch/msgid/20220608152142.14495-2-jason@jlekstrand.net
(cherry picked from commit 20e10881a043af63f2962a9e6bca64661225b383)
2023-07-07 15:03:00 +08:00
Christian König 2a12accd42 dma-buf: add dma_resv_get_singleton v2
Add a function to simplify getting a single fence for all the fences in
the dma_resv object.

v2: fix ref leak in error handling

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20220321135856.1331-3-christian.koenig@amd.com
(cherry picked from commit 92cedee6a6a3e6fcc3ffc0e3866baae5f6f76ac1)
2023-07-07 15:03:00 +08:00
Joshua Riek c33c73bca7 suppress wl_cfg80211_netdev_notifier_call 2023-07-07 15:03:00 +08:00
Joshua Riek 818362d37c supress drm warning 2023-07-07 15:03:00 +08:00
orangepi-xunlong cf82189f70 arm64: dts: rockchip: rk3588s: enable av1d node 2023-07-07 15:02:59 +08:00
orangepi-xunlong 627f46fc40 arm64: dts: rockchip: Enable hdmi cec for orangepi5b 2023-07-07 15:02:59 +08:00
baiywt ba4ff24562 arm64: dts: rockchip: Enable hdmi cec for orangepi5 2023-07-07 15:02:59 +08:00
orangepi-xunlong 1e0f4d00c7 Support Orange Pi 5B 2023-07-07 15:02:59 +08:00
orangepi-xunlong 3f7db5fc02 scsi: lpfc: Fix gcc -Wstringop-overread warning 2023-07-07 15:02:59 +08:00
orangepi-xunlong aefe970785 Update wireless drivers for gcc11 2023-07-07 15:02:59 +08:00
orangepi-xunlong 3e2cd3a252 dts: overlay: Add rk3588-dmc.dts 2023-07-07 15:02:58 +08:00
baiywt 5a85ba6bdd net: stmmac: Remove STMMAC_VLAN_TAG_USED feature 2023-07-07 15:02:58 +08:00
WillzenZou feff6147e4 Fix dclk parent clock for hdmi vop0
Fix dclk parent for hdmi vop0 to solve tty terminal out of screen, and most dclk of resolutions was not supported in hdmiphy clock from parent clock by default.
2023-07-07 15:02:58 +08:00
orangepi-xunlong 1a7f0c6214 orangepi5: Update rk3588-lcd1.dts and rk3588-lcd2.dts 2023-07-07 15:02:58 +08:00
orangepi-xunlong d2ec819375 orangepi5: support ov13855 2023-07-07 15:02:58 +08:00
orangepi-xunlong 7ff5b3c7a6 Add rk3588-ssd-sata.dts 2023-07-07 15:02:58 +08:00
orangepi-xunlong e73a0ae2fc Prepare for Orange Pi 5 2023-07-07 15:02:44 +08:00
Sandy Huang ce5da098c4 drm/rockchip: vop2: update rk3568 max height limit
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: Ic323e783452e1d97a0b4df955ad7d11ead8da17a
2023-06-27 20:40:08 +08:00
Sandy Huang 96a4ade24f drm/rockchip: lvds: update MEDIA_BUS_FMT_RGB666_1X7X3_SPWG description
Refer to the following information:

https://www.kernel.org/doc/Documentation/devicetree/bindings/display/panel/panel-lvds.txt

Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: I9ea389605940911d576e5ed0c0be20f892f41390
2023-06-27 20:40:08 +08:00
Yifeng Zhao 4fa16359d6 mmc: sdhci-of-dwcmshc: support HS400ES for RK3568
Signed-off-by: Yifeng Zhao <yifeng.zhao@rock-chips.com>
Change-Id: I0491bcb3def6e1f5975a94b8e8921027a9d6e271
2023-06-27 20:37:32 +08:00
Sandy Huang 79f0bdb4fc Revert "arm64: rockchip_defconfig: enable CONFIG_ROCKCHIP_DRM_CUBIC_LUT"
This reverts commit d7c77171a7.

Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: Ifff2f6bccc17c78fd6d449613da8b9c352293c70
2023-06-27 20:31:20 +08:00
Sandy Huang 7f9e600004 Revert "FROMLIST: drm: Extend color correction to support 3D-CLU"
This reverts commit 4b81d4e560.

Change-Id: I501bc346b574df3143a505abb509e331a5afc7b6
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2023-06-27 20:30:33 +08:00
Sandy Huang 3325b43a1a drm/rockchip: vop2: move cubic lut to rockchip drm driver
move cubic lut support from drm croe to rockchip drm driver and remove
depend on NO_GKI.

Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: I8fb6ba4fc927bf9f7e1b38c180986b1e25393347
2023-06-27 20:30:23 +08:00
Yingsong Ye be4fe51d5b media: i2c: add ar0822 driver
Change-Id: I8a860b248528cb6ad1e263ea5e10b89efd503bf9
Signed-off-by: Yingsong Ye <alexhazel.ye@rock-chips.com>
2023-06-27 20:08:26 +08:00