Skip to content

Commit

Permalink
Merge tag 'drm-misc-next-2024-10-09' of https://gitlab.freedesktop.or…
Browse files Browse the repository at this point in the history
…g/drm/misc/kernel into drm-next

drm-misc-next for v6.13:

UAPI Changes:
- Add drm fdinfo support to panthor, and add sysfs knob to toggle.

Cross-subsystem Changes:
- Convert fbdev drivers to use backlight power constants.
- Some small dma-fence fixes.
- Some kernel-doc fixes.

Core Changes:
- Small drm client fixes.
- Document requirements that you need to file a bug before marking a test as flaky.
- Remove swapped and pinned bo's from TTM lru list.

Driver Changes:
- Assorted small fixes to panel/elida-kd35t133, nouveau, vc4, imx.
- Fix some bridges to drop cached edids on power off.
- Add Jenson BL-JT60050-01A, Samsung s6e3ha8 & AMS639RQ08 panels.
- Make 180° rotation work on ilitek-ili9881c, even for already-rotated
  panels.
-

Signed-off-by: Dave Airlie <airlied@redhat.com>

# Conflicts:
#	drivers/gpu/drm/panthor/panthor_drv.c
From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/8dc111ca-d20c-4e0d-856e-c12d208cbf2a@linux.intel.com
  • Loading branch information
Dave Airlie committed Oct 10, 2024
2 parents 54bc1d3 + 4c93ede commit aa628eb
Show file tree
Hide file tree
Showing 76 changed files with 1,759 additions and 216 deletions.
10 changes: 10 additions & 0 deletions Documentation/ABI/testing/sysfs-driver-panthor-profiling
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
What: /sys/bus/platform/drivers/panthor/.../profiling
Date: September 2024
KernelVersion: 6.11.0
Contact: Adrian Larumbe <adrian.larumbe@collabora.com>
Description:
Bitmask to enable drm fdinfo's job profiling measurements.
Valid values are:
0: Don't enable fdinfo job profiling sources.
1: Enable GPU cycle measurements for running jobs.
2: Enable GPU timestamp sampling for running jobs.
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ properties:
- hannstar,hsd101pww2
# Hydis Technologies 7" WXGA (800x1280) TFT LCD LVDS panel
- hydis,hv070wx2-1e0
# Jenson Display BL-JT60050-01A 7" WSVGA (1024x600) color TFT LCD LVDS panel
- jenson,bl-jt60050-01a
- tbs,a711-panel

- const: panel-lvds
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/panel/samsung,ams639rq08.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Samsung AMS639RQ08 EA8076-based 6.39" 1080x2340 MIPI-DSI Panel

maintainers:
- Danila Tikhonov <danila@jiaxyga.com>
- Jens Reidel <adrian@travitia.xyz>

description:
The Samsung AMS639RQ08 is a 6.39 inch 1080x2340 MIPI-DSI CMD mode AMOLED panel.

allOf:
- $ref: panel-common.yaml#

properties:
compatible:
const: samsung,ams639rq08

reg:
maxItems: 1

vdd3p3-supply:
description: 3.3V source voltage rail

vddio-supply:
description: I/O source voltage rail

vsn-supply:
description: Negative source voltage rail

vsp-supply:
description: Positive source voltage rail

reset-gpios: true
port: true

required:
- compatible
- reg
- vdd3p3-supply
- vddio-supply
- vsn-supply
- vsp-supply
- reset-gpios
- port

additionalProperties: false

examples:
- |
#include <dt-bindings/gpio/gpio.h>
dsi {
#address-cells = <1>;
#size-cells = <0>;
panel@0 {
compatible = "samsung,ams639rq08";
reg = <0>;
vdd3p3-supply = <&vreg_l18a_2p8>;
vddio-supply = <&vreg_l13a_1p8>;
vsn-supply = <&vreg_ibb>;
vsp-supply = <&vreg_lab>;
reset-gpios = <&pm6150l_gpios 9 GPIO_ACTIVE_LOW>;
port {
panel_in: endpoint {
remote-endpoint = <&mdss_dsi0_out>;
};
};
};
};
...
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/panel/samsung,s6e3ha8.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Samsung s6e3ha8 AMOLED DSI panel

description: The s6e3ha8 is a 1440x2960 DPI display panel from Samsung Mobile
Displays (SMD).

maintainers:
- Dzmitry Sankouski <dsankouski@gmail.com>

allOf:
- $ref: panel-common.yaml#

properties:
compatible:
const: samsung,s6e3ha8

reg:
maxItems: 1

reset-gpios: true

port: true

vdd3-supply:
description: VDD regulator

vci-supply:
description: VCI regulator

vddr-supply:
description: VDDR regulator

required:
- compatible
- reset-gpios
- vdd3-supply
- vci-supply
- vddr-supply

unevaluatedProperties: false

examples:
- |
#include <dt-bindings/gpio/gpio.h>
dsi {
#address-cells = <1>;
#size-cells = <0>;
panel@0 {
compatible = "samsung,s6e3ha8";
reg = <0>;
vci-supply = <&s2dos05_ldo4>;
vddr-supply = <&s2dos05_buck1>;
vdd3-supply = <&s2dos05_ldo1>;
te-gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
reset-gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&sde_dsi_active &sde_te_active_sleep>;
pinctrl-1 = <&sde_dsi_suspend &sde_te_active_sleep>;
pinctrl-names = "default", "sleep";
port {
panel_in: endpoint {
remote-endpoint = <&mdss_dsi0_out>;
};
};
};
};
...
2 changes: 2 additions & 0 deletions Documentation/devicetree/bindings/vendor-prefixes.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -752,6 +752,8 @@ patternProperties:
description: Japan Display Inc.
"^jedec,.*":
description: JEDEC Solid State Technology Association
"^jenson,.*":
description: Jenson Display Co. Ltd.
"^jesurun,.*":
description: Shenzhen Jesurun Electronics Business Dept.
"^jethome,.*":
Expand Down
14 changes: 10 additions & 4 deletions Documentation/gpu/automated_testing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -68,19 +68,25 @@ known to behave unreliably. These tests won't cause a job to fail regardless of
the result. They will still be run.

Each new flake entry must be associated with a link to the email reporting the
bug to the author of the affected driver, the board name or Device Tree name of
the board, the first kernel version affected, the IGT version used for tests,
and an approximation of the failure rate.
bug to the author of the affected driver or the relevant GitLab issue. The entry
must also include the board name or Device Tree name, the first kernel version
affected, the IGT version used for tests, and an approximation of the failure rate.

They should be provided under the following format::

# Bug Report: $LORE_OR_PATCHWORK_URL
# Bug Report: $LORE_URL_OR_GITLAB_ISSUE
# Board Name: broken-board.dtb
# Linux Version: 6.6-rc1
# IGT Version: 1.28-gd2af13d9f
# Failure Rate: 100
flaky-test

Use the appropriate link below to create a GitLab issue:
amdgpu driver: https://gitlab.freedesktop.org/drm/amd/-/issues
i915 driver: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues
msm driver: https://gitlab.freedesktop.org/drm/msm/-/issues
xe driver: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues

drivers/gpu/drm/ci/${DRIVER_NAME}-${HW_REVISION}-skips.txt
-----------------------------------------------------------

Expand Down
5 changes: 5 additions & 0 deletions Documentation/gpu/drm-usage-stats.rst
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,11 @@ scope of each device, in which case `drm-pdev` shall be present as well.
Userspace should make sure to not double account any usage statistics by using
the above described criteria in order to associate data to individual clients.

- drm-client-name: <valstr>

String optionally set by userspace using DRM_IOCTL_SET_CLIENT_NAME.


Utilization
^^^^^^^^^^^

Expand Down
46 changes: 46 additions & 0 deletions Documentation/gpu/panthor.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
.. SPDX-License-Identifier: GPL-2.0+
=========================
drm/Panthor CSF driver
=========================

.. _panfrost-usage-stats:

Panthor DRM client usage stats implementation
==============================================

The drm/Panthor driver implements the DRM client usage stats specification as
documented in :ref:`drm-client-usage-stats`.

Example of the output showing the implemented key value pairs and entirety of
the currently possible format options:

::
pos: 0
flags: 02400002
mnt_id: 29
ino: 491
drm-driver: panthor
drm-client-id: 10
drm-engine-panthor: 111110952750 ns
drm-cycles-panthor: 94439687187
drm-maxfreq-panthor: 1000000000 Hz
drm-curfreq-panthor: 1000000000 Hz
drm-total-memory: 16480 KiB
drm-shared-memory: 0
drm-active-memory: 16200 KiB
drm-resident-memory: 16480 KiB
drm-purgeable-memory: 0

Possible `drm-engine-` key names are: `panthor`.
`drm-curfreq-` values convey the current operating frequency for that engine.

Users must bear in mind that engine and cycle sampling are disabled by default,
because of power saving concerns. `fdinfo` users and benchmark applications which
query the fdinfo file must make sure to toggle the job profiling status of the
driver by writing into the appropriate sysfs node::

echo <N> > /sys/bus/platform/drivers/panthor/[a-f0-9]*.gpu/profiling

Where `N` is a bit mask where cycle and timestamp sampling are respectively
enabled by the first and second bits.
6 changes: 6 additions & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -7383,6 +7383,12 @@ S: Maintained
F: Documentation/devicetree/bindings/display/panel/samsung,s6d7aa0.yaml
F: drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c

DRM DRIVER FOR SAMSUNG S6E3HA8 PANELS
M: Dzmitry Sankouski <dsankouski@gmail.com>
S: Maintained
F: Documentation/devicetree/bindings/display/panel/samsung,s6e3ha8.yaml
F: drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c

DRM DRIVER FOR SITRONIX ST7586 PANELS
M: David Lechner <david@lechnology.com>
S: Maintained
Expand Down
4 changes: 2 additions & 2 deletions drivers/dma-buf/dma-fence.c
Original file line number Diff line number Diff line change
Expand Up @@ -412,7 +412,7 @@ int dma_fence_signal_timestamp(struct dma_fence *fence, ktime_t timestamp)
unsigned long flags;
int ret;

if (!fence)
if (WARN_ON(!fence))
return -EINVAL;

spin_lock_irqsave(fence->lock, flags);
Expand Down Expand Up @@ -464,7 +464,7 @@ int dma_fence_signal(struct dma_fence *fence)
int ret;
bool tmp;

if (!fence)
if (WARN_ON(!fence))
return -EINVAL;

tmp = dma_fence_begin_signalling();
Expand Down
6 changes: 0 additions & 6 deletions drivers/dma-buf/sw_sync.c
Original file line number Diff line number Diff line change
Expand Up @@ -173,11 +173,6 @@ static bool timeline_fence_signaled(struct dma_fence *fence)
return !__dma_fence_is_later(fence->seqno, parent->value, fence->ops);
}

static bool timeline_fence_enable_signaling(struct dma_fence *fence)
{
return true;
}

static void timeline_fence_value_str(struct dma_fence *fence,
char *str, int size)
{
Expand Down Expand Up @@ -211,7 +206,6 @@ static void timeline_fence_set_deadline(struct dma_fence *fence, ktime_t deadlin
static const struct dma_fence_ops timeline_fence_ops = {
.get_driver_name = timeline_fence_get_driver_name,
.get_timeline_name = timeline_fence_get_timeline_name,
.enable_signaling = timeline_fence_enable_signaling,
.signaled = timeline_fence_signaled,
.release = timeline_fence_release,
.fence_value_str = timeline_fence_value_str,
Expand Down
2 changes: 2 additions & 0 deletions drivers/gpu/drm/bridge/analogix/anx7625.c
Original file line number Diff line number Diff line change
Expand Up @@ -2551,6 +2551,8 @@ static int __maybe_unused anx7625_runtime_pm_suspend(struct device *dev)
mutex_lock(&ctx->lock);

anx7625_stop_dp_work(ctx);
if (!ctx->pdata.panel_bridge)
anx7625_remove_edid(ctx);
anx7625_power_standby(ctx);

mutex_unlock(&ctx->lock);
Expand Down
2 changes: 2 additions & 0 deletions drivers/gpu/drm/bridge/ite-it6505.c
Original file line number Diff line number Diff line change
Expand Up @@ -3107,6 +3107,8 @@ static __maybe_unused int it6505_bridge_suspend(struct device *dev)
{
struct it6505 *it6505 = dev_get_drvdata(dev);

it6505_remove_edid(it6505);

return it6505_poweroff(it6505);
}

Expand Down
Loading

0 comments on commit aa628eb

Please sign in to comment.