On Thu, Jul 13, 2023 at 9:04 AM Uwe Kleine-König
wrote:
>
> hello Sean,
>
> On Wed, Jul 12, 2023 at 02:31:02PM -0400, Sean Paul wrote:
> > I'd really prefer this patch (series or single) is not accepted. This
> > will cause problems for everyone cherry-picking patches to
On Wed, Jul 12, 2023 at 10:52 AM Jani Nikula wrote:
>
> On Wed, 12 Jul 2023, Uwe Kleine-König wrote:
> > Hello,
> >
> > while I debugged an issue in the imx-lcdc driver I was constantly
> > irritated about struct drm_device pointer variables being named "dev"
> > because with that name I usually
dy an unwind action registered.
> > *
> > * A special form of unregistering for hotpluggable devices is
> > drm_dev_unplug(),
> > * which can be called while there are still open users of @dev.
> > --
> > 2.40.0.634.g4ca3ef3211-goog
> >
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
--
Sean Paul, Software Engineer, Google / Chromium OS
WARN_ONCE(ret != 0,
> + "driver disabled vblank in self-refresh\n");
> + else
> + WARN_ONCE(ret != -EINVAL,
> + "driver forgot to call
> drm_crtc_vblank_off()\n");
> if (ret == 0)
> drm_crtc_vblank_put(crtc);
> }
> --
> 2.39.0.314.g84b9a713c41-goog
>
--
Sean Paul, Software Engineer, Google / Chromium OS
On Thu, Apr 27, 2023 at 5:59 AM Daniel Vetter wrote:
>
> On Fri, Apr 21, 2023 at 12:27:47PM -0400, Mark Yacoub wrote:
> > From: Mark Yacoub
> >
> > [Why]
> > User space might need to inject data into the kernel without allowing it
> > to be read again by any user space.
> > An example of where
On Thu, Jan 19, 2023 at 11:35:32AM +0100, Krzysztof Kozlowski wrote:
> On 18/01/2023 20:30, Mark Yacoub wrote:
> > From: Sean Paul
> >
> > This patch adds the register ranges required for HDCP key injection and
>
> Do not use "This commit/patch".
>
On Thu, Jan 19, 2023 at 11:37:52AM +0100, Krzysztof Kozlowski wrote:
> On 18/01/2023 20:30, Mark Yacoub wrote:
> > From: Sean Paul
> >
> > This patch moves the hdcp atomic check from i915 to drm_hdcp so other
> > drivers can use it. No functional changes, just clea
On Tue, Jan 03, 2023 at 06:32:58PM +, Simon Ser wrote:
> Nice!
>
> Reviewed-by: Simon Ser
Thanks for the review, Simon! Applied to drm-misc-next.
--
Sean Paul, Software Engineer, Google / Chromium OS
From: Sean Paul
Add a paragraph explaining that the default behavior for areas which
are not covered by planes or where planes are blending with the CRTC
background, is black.
This is alluded to in the "pixel blend mode" property docs, but not
called out explicitly.
Signed-off-by:
alid,
> + .atomic_check = it6505_bridge_atomic_check,
> .atomic_enable = it6505_bridge_atomic_enable,
> .atomic_disable = it6505_bridge_atomic_disable,
> .atomic_pre_enable = it6505_bridge_atomic_pre_enable,
> @@ -3354,6 +3407,7 @@ static int it6505_i2c_probe(struct i2c_client *client,
> it6505->bridge.type = DRM_MODE_CONNECTOR_DisplayPort;
> it6505->bridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID |
>DRM_BRIDGE_OP_HPD;
> + it6505->bridge.support_hdcp = true;
> drm_bridge_add(>bridge);
>
> return 0;
> --
> 2.38.1.584.g0f3c55d4c2-goog
>
--
Sean Paul, Software Engineer, Google / Chromium OS
On Wed, Nov 02, 2022 at 07:11:47PM +0800, Hsin-Yi Wang wrote:
> Set support_hdcp so the connector can register content protect proterty
> when it's initializing.
>
Reviewed-by: Sean Paul
> Signed-off-by: Hsin-Yi Wang
> ---
> drivers/gpu/drm/bridge/analogix/anx7625.c | 1 +
ized and before the connector is
> registered.
>
> If there exists a bridge that supports HDCP, add the property to the
> bridge connector.
>
Reviewed-by: Sean Paul
> Signed-off-by: Hsin-Yi Wang
> ---
> v2->v3:
> Only register the property when there exists any bridge t
patch does to mediatek what the following patch
> https://www.spinics.net/lists/stable/msg590605.html
> did for qualcomm.
>
Reviewed-by: Sean Paul
> Signed-off-by: Gil Dekel
> Tested-by: Gil Dekel
> ---
> v2: Fix copy-paste errors in commit message so it's relevant for
On Mon, Oct 17, 2022 at 9:49 AM Hsin-Yi Wang wrote:
>
> On Wed, Oct 12, 2022 at 12:20 PM Hsin-Yi Wang wrote:
> >
> > Some bridges are able to update HDCP status from userspace request if
> > they support HDCP.
> >
> > HDCP property is the same as other connector properties that need to be
> >
->possible_crtcs,
> + config_crtc->crtc_config_idx)) {
> + encoder_entry->encoder->possible_crtcs |=
> + drm_crtc_mask(_crtc->base);
> + }
> + }
> +
> + if (card->vkms_device->config.writeback) {
> + ret = vkms_enable_writeback_connector(card, vkms_crtc);
> + if (ret)
> + DRM_WARN(
> + "Failed to init writeback connector for
> config crtc: %s",
> + item->ci_name);
Nit: drm_dbg and please print the error message.
> + }
> }
>
> - memset(output, 0, sizeof(struct vkms_output));
> + drm_mode_config_reset(dev);
> +
> + return 0;
>
> +cleanup_output:
> + vkms_output_clear(card);
> + resume_device_irqs(); // REMOVE
REMOVE?
> return ret;
> }
>
> -int vkms_output_init(struct vkms_card *card, int index)
> +void vkms_output_clear(struct vkms_card *card)
> {
> - return -ENOTSUPP;
> + struct vkms_output *output = >output;
> +
> + for (int i = 0; i < output->num_crtcs; i++) {
> + drm_crtc_cleanup(>crtcs[i].base);
> + }
> + for (int i = 0; i < output->num_encoders; i++) {
> + drm_encoder_cleanup(>encoders[i]);
> + }
> + for (int i = 0; i < output->num_connectors; i++) {
> + drm_connector_cleanup(>connectors[i]);
> + }
> + for (int i = 0; i < output->num_planes; i++) {
> + drm_plane_cleanup(>planes[i].base);
> + }
Nit: braces for all of these
> +
> + memset(output, 0, sizeof(*output));
Same concerns about memset as before.
> }
> --
> 2.37.1.359.gd136c6c3e2-goog
>
--
Sean Paul, Software Engineer, Google / Chromium OS
g CRTC configs, e.g.
> /config/vkms/card/crtcs/ */
> + struct config_group crtcs_group;
> + /* Directory group containing encoder configs, e.g.
> /config/vkms/card/encoders/ */
> + struct config_group encoders_group;
> + /* Directory group containing plane configs, e.g.
> /config/vkms/card/planes/ */
> + struct config_group planes_group;
> +
> + unsigned long allocated_crtcs;
> + unsigned long allocated_encoders;
For bitmasks you probably want to explicitly specify their length by using
u32/u64 types. This probably applies elsewhere too.
> +
> + struct vkms_card *card;
> +};
> +
> struct vkms_card {
> struct platform_device *platform;
> struct drm_device drm;
> struct list_head node;
> struct vkms_output output;
> + struct vkms_configfs *configfs;
> struct vkms_device *vkms_device;
> /* storage for the value of drm->unique, giving this dev a unique busid
> */
> char name_buf[64];
> @@ -149,8 +199,27 @@ struct vkms_device {
> #define to_vkms_plane_state(target)\
> container_of(target, struct vkms_plane_state, base.base)
>
> +#define item_to_configfs(item)\
> + container_of(to_config_group(item), struct vkms_configfs, card_group)
> +
> +#define item_to_config_connector(item)\
> + container_of(to_config_group(item), struct vkms_config_connector,
> config_group)
> +
> +#define item_to_config_crtc(item) \
> + container_of(to_config_group(item), struct vkms_config_crtc,
> config_group)
> +
> +#define item_to_config_encoder(item) \
> + container_of(to_config_group(item), struct vkms_config_encoder,
> config_group)
> +
> +#define item_to_config_plane(item) \
> + container_of(to_config_group(item), struct vkms_config_plane,
> config_group)
> +
> +#define item_to_config_links(item) \
> + container_of(to_config_group(item), struct vkms_config_links, group)
> +
> /* Cards */
> -struct vkms_card *vkms_card_init(const char *name, bool is_default);
> +struct vkms_card *vkms_card_init(const char *name,
> + struct vkms_configfs *configfs);
> void vkms_card_destroy(struct vkms_card *card);
>
> /* CRTC */
> @@ -176,4 +245,8 @@ void vkms_set_composer(struct vkms_crtc *vkms_crtc, bool
> enabled);
> /* Writeback */
> int vkms_enable_writeback_connector(struct vkms_card *card, struct vkms_crtc
> *vkms_crtc);
>
> +/* ConfigFS Support */
> +int vkms_init_configfs(void);
> +void vkms_unregister_configfs(void);
> +
> #endif /* _VKMS_DRV_H_ */
> diff --git a/drivers/gpu/drm/vkms/vkms_output.c
> b/drivers/gpu/drm/vkms/vkms_output.c
> index 2b72d8e763a8..e343a9c1f311 100644
> --- a/drivers/gpu/drm/vkms/vkms_output.c
> +++ b/drivers/gpu/drm/vkms/vkms_output.c
> @@ -1,10 +1,14 @@
> // SPDX-License-Identifier: GPL-2.0+
>
> -#include "vkms_drv.h"
> +#include
> +#include
> +
> #include
> #include
> #include
>
> +#include "vkms_drv.h"
> +
> static void vkms_connector_destroy(struct drm_connector *connector)
> {
> drm_connector_cleanup(connector);
> @@ -171,3 +175,8 @@ int vkms_output_init_default(struct vkms_card *card, int
> index)
>
> return ret;
> }
> +
> +int vkms_output_init(struct vkms_card *card, int index)
> +{
> + return -ENOTSUPP;
> +}
I think you can drop this from the patch and introduce it when it's useful.
> --
> 2.37.1.359.gd136c6c3e2-goog
>
--
Sean Paul, Software Engineer, Google / Chromium OS
void vkms_wb_cleanup_job(struct
> drm_writeback_connector *connector,
> struct drm_writeback_job *job)
> {
> struct vkms_writeback_job *vkmsjob = job->priv;
> - struct vkms_card *card;
> + struct vkms_crtc *vkms_crtc = container_of(connector, struct vkms_crtc,
> wb_connector);
>
> if (!job->fb)
> return;
>
> drm_gem_fb_vunmap(job->fb, vkmsjob->map);
>
> - card = drm_device_to_vkms_card(job->fb->dev);
> - vkms_set_composer(>output, false);
> + vkms_set_composer(vkms_crtc, false);
> kfree(vkmsjob);
> }
>
> @@ -111,21 +111,20 @@ static void vkms_wb_atomic_commit(struct drm_connector
> *conn,
> {
> struct drm_connector_state *connector_state =
> drm_atomic_get_new_connector_state(state,
>
> conn);
> - struct vkms_card *card = drm_device_to_vkms_card(conn->dev);
> - struct vkms_output *output = >output;
> - struct drm_writeback_connector *wb_conn = >wb_connector;
> + struct vkms_crtc *vkms_crtc =
> drm_crtc_to_vkms_crtc(connector_state->crtc);
> + struct drm_writeback_connector *wb_conn = _crtc->wb_connector;
> struct drm_connector_state *conn_state = wb_conn->base.state;
> - struct vkms_crtc_state *crtc_state = output->composer_state;
> + struct vkms_crtc_state *crtc_state = vkms_crtc->composer_state;
>
> if (!conn_state)
> return;
>
> - vkms_set_composer(>output, true);
> + vkms_set_composer(vkms_crtc, true);
>
> - spin_lock_irq(>composer_lock);
> + spin_lock_irq(_crtc->composer_lock);
> crtc_state->active_writeback = conn_state->writeback_job->priv;
> crtc_state->wb_pending = true;
> - spin_unlock_irq(>composer_lock);
> + spin_unlock_irq(_crtc->composer_lock);
> drm_writeback_queue_job(wb_conn, connector_state);
> }
>
> @@ -136,11 +135,11 @@ static const struct drm_connector_helper_funcs
> vkms_wb_conn_helper_funcs = {
> .atomic_commit = vkms_wb_atomic_commit,
> };
>
> -int vkms_enable_writeback_connector(struct vkms_card *card)
> +int vkms_enable_writeback_connector(struct vkms_card *card, struct vkms_crtc
> *vkms_crtc)
> {
> - struct drm_writeback_connector *wb = >output.wb_connector;
> + struct drm_writeback_connector *wb = _crtc->wb_connector;
>
> - card->output.wb_connector.encoder.possible_crtcs = 1;
> + vkms_crtc->wb_connector.encoder.possible_crtcs = 1;
> drm_connector_helper_add(>base, _wb_conn_helper_funcs);
>
> return drm_writeback_connector_init(>drm, wb,
> --
> 2.37.1.359.gd136c6c3e2-goog
>
--
Sean Paul, Software Engineer, Google / Chromium OS
e(job->fb->dev);
> - vkms_set_composer(>output, false);
> + card = drm_device_to_vkms_card(job->fb->dev);
> + vkms_set_composer(>output, false);
> kfree(vkmsjob);
> }
>
> @@ -111,8 +111,8 @@ static void vkms_wb_atomic_commit(struct drm_con
On Fri, Aug 05, 2022 at 06:27:08PM +, Sean Paul wrote:
> On Fri, Jul 22, 2022 at 05:32:10PM -0400, Jim Shargo wrote:
> > This is a small refactor to make ConfigFS support easier.
> >
> > We now store the vkms_device statically, and maintain a list of
> > "cards
_vkms_card(job->fb->dev);
> + vkms_set_composer(>output, false);
> kfree(vkmsjob);
> }
>
> @@ -111,8 +111,8 @@ static void vkms_wb_atomic_commit(struct drm_connector
> *conn,
> {
> struct drm_connector_state *connector_state =
> drm_atomic_get_new_connector_state(state,
>
> conn);
> - struct vkms_device *vkmsdev = drm_device_to_vkms_device(conn->dev);
> - struct vkms_output *output = >output;
> + struct vkms_card *card = drm_device_to_vkms_card(conn->dev);
> + struct vkms_output *output = >output;
> struct drm_writeback_connector *wb_conn = >wb_connector;
> struct drm_connector_state *conn_state = wb_conn->base.state;
> struct vkms_crtc_state *crtc_state = output->composer_state;
> @@ -120,7 +120,7 @@ static void vkms_wb_atomic_commit(struct drm_connector
> *conn,
> if (!conn_state)
> return;
>
> - vkms_set_composer(>output, true);
> + vkms_set_composer(>output, true);
>
> spin_lock_irq(>composer_lock);
> crtc_state->active_writeback = conn_state->writeback_job->priv;
> @@ -136,14 +136,14 @@ static const struct drm_connector_helper_funcs
> vkms_wb_conn_helper_funcs = {
> .atomic_commit = vkms_wb_atomic_commit,
> };
>
> -int vkms_enable_writeback_connector(struct vkms_device *vkmsdev)
> +int vkms_enable_writeback_connector(struct vkms_card *card)
> {
> - struct drm_writeback_connector *wb = >output.wb_connector;
> + struct drm_writeback_connector *wb = >output.wb_connector;
>
> - vkmsdev->output.wb_connector.encoder.possible_crtcs = 1;
> + card->output.wb_connector.encoder.possible_crtcs = 1;
> drm_connector_helper_add(>base, _wb_conn_helper_funcs);
>
> - return drm_writeback_connector_init(>drm, wb,
> + return drm_writeback_connector_init(>drm, wb,
> _wb_connector_funcs,
> _wb_encoder_helper_funcs,
> vkms_wb_formats,
> --
> 2.37.1.359.gd136c6c3e2-goog
>
--
Sean Paul, Software Engineer, Google / Chromium OS
device *vkmsdev, int index)
> }
> }
>
> - if (vkmsdev->config->cursor) {
> + if (vkmsdev->config.cursor) {
> cursor = vkms_plane_init(vkmsdev, DRM_PLANE_TYPE_CURSOR, index);
> if (IS_ERR(cursor))
> return PTR_ERR(cursor);
> @@ -103,7 +103,7 @@ int vkms_output_init(struct vkms_device *vkmsdev, int
> index)
> goto err_attach;
> }
>
> - if (vkmsdev->config->writeback) {
> + if (vkmsdev->config.writeback) {
> writeback = vkms_enable_writeback_connector(vkmsdev);
> if (writeback)
> DRM_ERROR("Failed to init writeback connector\n");
> --
> 2.37.1.359.gd136c6c3e2-goog
>
--
Sean Paul, Software Engineer, Google / Chromium OS
ady guard this
> with a WARN_ON() instead of crashing, so let's do that here too.
>
> Signed-off-by: Brian Norris
Thanks for this patch!
Reviewed-by: Sean Paul
> ---
>
> drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers
ium tracker.)
>
> Ping
Apologies for the delay. Please in future ping on irc/chat if you're
waiting for review from me, my inbox is often neglected.
The set still looks good to me,
Reviewed-by: Sean Paul
Sean
f8d4ffce51a7708a8092f8a6f9c929092@changeid
>
> Signed-off-by: Douglas Anderson
> Reviewed-by: Abhinav Kumar
Reviewed-by: Sean Paul
>
> ---
> I put Abhinav's Reviewed-by tag from v2 here since this is nearly the
> same as v2. Hope this is OK.
>
> Changes in v4:
> - Code
On Wed, May 25, 2022 at 9:26 AM Daniel Vetter wrote:
>
> On Mon, May 23, 2022 at 05:59:02PM -0700, Doug Anderson wrote:
> > Hi,
> >
> > On Fri, May 20, 2022 at 5:01 PM Doug Anderson wrote:
> > >
> > > Hi,
> > >
> > > On Mon, May 16, 2022 at 3:28 AM Thomas Zimmermann
> > > wrote:
> > > >
> > >
On Tue, Apr 12, 2022 at 09:41:35AM -0400, Rodrigo Vivi wrote:
> On Mon, Apr 11, 2022 at 08:47:29PM +0000, Sean Paul wrote:
> > From: Sean Paul
> >
> > Rebased set from November. Fixed a nit from Stephen in the msm patch and
> > moved hdcp registers into the trogdor dts
On Tue, Apr 12, 2022 at 09:25:59AM -0400, Rodrigo Vivi wrote:
> On Mon, Apr 11, 2022 at 08:47:32PM +0000, Sean Paul wrote:
> > From: Sean Paul
> >
> > This patch updates the connector's property value in 2 cases which were
> > previously missed:
> >
> > 1-
From: Sean Paul
This patch adds HDCP 1.x support to msm DP connectors using the new HDCP
helpers.
Cc: Stephen Boyd
Cc: Abhinav Kumar
Reviewed-by: Stephen Boyd
Signed-off-by: Sean Paul
Link:
https://patchwork.freedesktop.org/patch/msgid/20210913175747.47456-15-s...@poorly.run
#v1
Link
From: Sean Paul
This patch adds the register ranges required for HDCP key injection and
HDCP TrustZone interaction as described in the dt-bindings for the
sc7180 dp controller. Now that these are supported, change the
compatible string to "dp-hdcp".
Signed-off-by: Sean Paul
Li
From: Sean Paul
This patch adds the bindings for the MSM DisplayPort HDCP registers
which are required to write the HDCP key into the display controller as
well as the registers to enable HDCP authentication/key
exchange/encryption.
We'll use a new compatible string for this since the fields
From: Sean Paul
Now that all of the HDCP 1.x logic has been migrated to the central HDCP
helpers, use it in the i915 driver.
The majority of the driver code for HDCP 1.x will live in intel_hdcp.c,
however there are a few helper hooks which are connector-specific and
need to be partially
From: Sean Paul
The shim functions return error codes, but they are discarded in
intel_hdcp.c. This patch plumbs the return codes through so they are
properly handled.
Acked-by: Jani Nikula
Signed-off-by: Sean Paul
Link:
https://patchwork.freedesktop.org/patch/msgid/20210913175747.47456-7-s
From: Sean Paul
Stick all of the setup for HDCP into a dedicated function. No functional
change, but this will facilitate moving HDCP logic into helpers.
Acked-by: Jani Nikula
Signed-off-by: Sean Paul
Link:
https://patchwork.freedesktop.org/patch/msgid/20210913175747.47456-6-s...@poorly.run
From: Sean Paul
This patch expands upon the HDCP helper library to manage HDCP
enable, disable, and check.
Previous to this patch, the majority of the state management and sink
interaction is tucked inside the Intel driver with the understanding
that once a new platform supported HDCP we could
From: Sean Paul
This patch updates the connector's property value in 2 cases which were
previously missed:
1- Content type changes. The value should revert back to DESIRED from
ENABLED in case the driver must re-authenticate the link due to the
new content type.
2- Userspace sets value
From: Sean Paul
Instead of forcing a modeset in the hdcp atomic check, simply return
true if the content protection value is changing and let the driver
decide whether a modeset is required or not.
Acked-by: Jani Nikula
Signed-off-by: Sean Paul
Link:
https://patchwork.freedesktop.org/patch
From: Sean Paul
This patch moves the hdcp atomic check from i915 to drm_hdcp so other
drivers can use it. No functional changes, just cleaned up some of the
code when moving it over.
Acked-by: Jani Nikula
Acked-by: Jani Nikula
Reviewed-by: Abhinav Kumar
Signed-off-by: Sean Paul
Link:
https
From: Sean Paul
Rebased set from November. Fixed a nit from Stephen in the msm patch and
moved hdcp registers into the trogdor dtsi file to avoid differences
with sc7180-based windows devices. The set is 4 patches lighter since
some of the changes were accepted into msm.
I'm still waiting
From: Sean Paul
ATOMIC and DRIVER log categories do not typically contain per-frame log
messages. This patch re-classifies some messages in amd to chattier
categories to keep ATOMIC/DRIVER quiet.
Signed-off-by: Sean Paul
---
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 5 +++--
drivers
From: Sean Paul
This patch adds the necessary hooks to make amdgpu aware of privacy
screens. On devices with privacy screen drivers (such as thinkpad-acpi),
the amdgpu driver will defer probe until it's ready and then sync the sw
and hw state on each commit the connector is involved and enabled
From: Sean Paul
This patch adds the necessary hooks to make amdgpu aware of privacy
screens. On devices with privacy screen drivers (such as thinkpad-acpi),
the amdgpu driver will defer probe until it's ready and then sync the sw
and hw state on each commit the connector is involved and enabled
From: Sean Paul
This patch adds the bindings for the MSM DisplayPort HDCP registers
which are required to write the HDCP key into the display controller as
well as the registers to enable HDCP authentication/key
exchange/encryption.
We'll use a new compatible string for this since the fields
From: Sean Paul
This patch adds HDCP 1.x support to msm DP connectors using the new HDCP
helpers.
Cc: Stephen Boyd
Cc: Abhinav Kumar
Signed-off-by: Sean Paul
Link:
https://patchwork.freedesktop.org/patch/msgid/20210913175747.47456-15-s...@poorly.run
#v1
Link:
https
From: Sean Paul
This patch adds the register ranges required for HDCP key injection and
HDCP TrustZone interaction as described in the dt-bindings for the
sc7180 dp controller. Now that these are supported, change the
compatible string to "dp-hdcp".
Signed-off-by: Sean Paul
Li
From: Sean Paul
This patch adds the bindings for the MSM DisplayPort HDCP registers
which are required to write the HDCP key into the display controller as
well as the registers to enable HDCP authentication/key
exchange/encryption.
We'll use a new compatible string for this since the fields
From: Sean Paul
Audio is initialized last, it should be de-initialized first to match
the order in dp_init_sub_modules().
Reviewed-by: Abhinav Kumar
Reviewed-by: Stephen Boyd
Reviewed-by: Dmitry Baryshkov
Signed-off-by: Sean Paul
Link:
https://patchwork.freedesktop.org/patch/msgid
From: Sean Paul
encoder->commit() was being misused because there were some global
resources which needed to be tweaked in encoder->enable() which were not
accessible in dpu_encoder.c. That is no longer true and the redirect
serves no purpose any longer. So remove the indirection.
From: Sean Paul
A couple more useless checks to remove in dpu_encoder.
Reviewed-by: Stephen Boyd
Reviewed-by: Abhinav Kumar
Reviewed-by: Dmitry Baryshkov
Signed-off-by: Sean Paul
Link:
https://patchwork.freedesktop.org/patch/msgid/20210913175747.47456-10-s...@poorly.run
#v1
Link:
https
From: Sean Paul
Make includes alphabetical in dpu_kms.c
Reviewed-by: Abhinav Kumar
Reviewed-by: Stephen Boyd
Reviewed-by: Dmitry Baryshkov
Signed-off-by: Sean Paul
Link:
https://patchwork.freedesktop.org/patch/msgid/20210913175747.47456-9-s...@poorly.run
#v1
Link:
https
From: Sean Paul
Now that all of the HDCP 1.x logic has been migrated to the central HDCP
helpers, use it in the i915 driver.
The majority of the driver code for HDCP 1.x will live in intel_hdcp.c,
however there are a few helper hooks which are connector-specific and
need to be partially
From: Sean Paul
The shim functions return error codes, but they are discarded in
intel_hdcp.c. This patch plumbs the return codes through so they are
properly handled.
Acked-by: Jani Nikula
Signed-off-by: Sean Paul
Link:
https://patchwork.freedesktop.org/patch/msgid/20210913175747.47456-7-s
From: Sean Paul
Stick all of the setup for HDCP into a dedicated function. No functional
change, but this will facilitate moving HDCP logic into helpers.
Acked-by: Jani Nikula
Signed-off-by: Sean Paul
Link:
https://patchwork.freedesktop.org/patch/msgid/20210913175747.47456-6-s...@poorly.run
From: Sean Paul
This patch expands upon the HDCP helper library to manage HDCP
enable, disable, and check.
Previous to this patch, the majority of the state management and sink
interaction is tucked inside the Intel driver with the understanding
that once a new platform supported HDCP we could
From: Sean Paul
This patch updates the connector's property value in 2 cases which were
previously missed:
1- Content type changes. The value should revert back to DESIRED from
ENABLED in case the driver must re-authenticate the link due to the
new content type.
2- Userspace sets value
From: Sean Paul
Instead of forcing a modeset in the hdcp atomic check, simply return
true if the content protection value is changing and let the driver
decide whether a modeset is required or not.
Acked-by: Jani Nikula
Signed-off-by: Sean Paul
Link:
https://patchwork.freedesktop.org/patch
From: Sean Paul
This patch moves the hdcp atomic check from i915 to drm_hdcp so other
drivers can use it. No functional changes, just cleaned up some of the
code when moving it over.
Acked-by: Jani Nikula
Acked-by: Jani Nikula
Reviewed-by: Abhinav Kumar
Signed-off-by: Sean Paul
Link:
https
From: Sean Paul
Just me with another revision of HDCP support for msm.
This v4 patch series is mostly a retread of v3 with the following
changes:
- rebased on Bjorn's displayport-controller register refactor
- another change to the dt bindings to remove the compatible string added in v3
ckchip RK3399 Gru Kevin),
> where this saves about 60ms of latency, for PSR-exit that used to
> take about 80ms.
>
> Fixes: 6c836d965bad ("drm/rockchip: Use the helpers for PSR")
> Cc:
> Cc: Zain Wang
> Cc: Tomasz Figa
> Cc: Heiko Stuebner
> Cc: Sean Paul
On Mon, Oct 04, 2021 at 02:58:41PM -0500, Bjorn Andersson wrote:
> On Fri 01 Oct 10:11 CDT 2021, Sean Paul wrote:
>
> > From: Sean Paul
> >
> > This patch adds the bindings for the MSM DisplayPort HDCP registers
> > which are required to write the HDCP k
On Thu, Oct 28, 2021 at 11:03:54PM -0400, Mark Yacoub wrote:
> On Thu, Oct 28, 2021 at 8:42 PM Sean Paul wrote:
> >
> > On Tue, Oct 26, 2021 at 03:21:00PM -0400, Mark Yacoub wrote:
> > > From: Mark Yacoub
> > >
> > > [Why]
> > > This funct
ove all the NULL checks which precede this call above and this function
will be less of a toy.
I'd probably just lift the intel function into drm_color_mgmt.c with the
improved docbook and export it.
> + return drm_color_lut_size(lut) != expected_size ? -EINVAL : 0;
> +}
> +
> enu
OR_LUT_EQUAL_CHANNELS:
> *
> @@ -119,5 +119,6 @@ enum drm_color_lut_tests {
> DRM_COLOR_LUT_NON_DECREASING = BIT(1),
> };
>
> -int drm_color_lut_check(const struct drm_property_blob *lut, u32 tests);
> +int drm_color_lut_channels_check(const struct drm_property_blob *lut,
> + u32 tests);
> #endif
> --
> 2.33.0.1079.g6e70778dc9-goog
>
--
Sean Paul, Software Engineer, Google / Chromium OS
On Mon, Oct 25, 2021 at 09:11:54PM -0400, Sean Paul wrote:
> On Fri, Oct 22, 2021 at 12:54:02PM -0400, Mark Yacoub wrote:
> > From: Mark Yacoub
> >
> > [Why]
> > The Rotation prob is a bitmask value. It must always have a valid value.
>
> nit: s/prob/prop/
>
m_property_blob *lut, u32 tests);
> +int drm_color_lut_channels_check(const struct drm_property_blob *lut,
> + u32 tests);
> #endif
> diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
> index 2deb15d7e1610..cabd3ef1a6e32 100644
> --- a/include/drm/drm_crtc.h
> +++ b/include/drm/drm_crtc.h
> @@ -1072,6 +1072,17 @@ struct drm_crtc {
> /** @funcs: CRTC control functions */
> const struct drm_crtc_funcs *funcs;
>
> + /**
> + * @degamma_lut_size: Size of degamma LUT.
> + */
> + uint32_t degamma_lut_size;
> +
> + /**
> + * @gamma_lut_size: Size of Gamma LUT. Not used by legacy userspace
> such as
> + * X, which doesn't support large lut sizes.
> + */
> + uint32_t gamma_lut_size;
> +
> /**
>* @gamma_size: Size of legacy gamma ramp reported to userspace. Set up
>* by calling drm_mode_crtc_set_gamma_size().
> --
> 2.33.0.882.g93a45727a2-goog
>
--
Sean Paul, Software Engineer, Google / Chromium OS
MAL right after creating
> the prop.
Reviewed-by: Sean Paul
>
> Tested on Jacuzzi(MTK)
> Fixes IGT@kms_properties@get_properties-sanity-{atomic,non-atomic}
>
> Signed-off-by: Mark Yacoub
> ---
> drivers/gpu/drm/mediatek/mtk_dsi.c | 2 ++
> 1 file changed, 2 inser
iatek/mtk_drm_plane.c
> index e6dcb34d30522..accd26481b9fb 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_plane.c
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_plane.c
> @@ -44,9 +44,10 @@ static void mtk_plane_reset(struct drm_plane *plane)
> state = kzalloc(sizeof(*state), GFP_KERNEL);
> if (!state)
> return;
> - plane->state = >base;
> }
>
> + __drm_atomic_helper_plane_reset(plane, >base);
> +
> state->base.plane = plane;
> state->pending.format = DRM_FORMAT_RGB565;
> }
> --
> 2.33.0.1079.g6e70778dc9-goog
>
--
Sean Paul, Software Engineer, Google / Chromium OS
ne with the
> downstream ("mainline-derived") variant of the driver currently deployed
> to Chrome OS Rockchip systems.
>
> Tested on a Samsung Chromebook Plus (i.e., Rockchip RK3399 Gru Kevin).
>
> Fixes: 6c836d965bad ("drm/rockchip: Use the helpers for PSR")
>
out.
>
Nice catch!
Reviewed-by: Sean Paul
(fwiw)
> Signed-off-by: Brian Norris
> ---
>
> MAINTAINERS | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 100d7f93a15b..811d8d3e35fb 100644
> --- a/MAINTAINE
erify LUT sizes and use DRM Core function
> instead.
>
> Tested on ChromeOS Zork.
>
> v1:
> Remove amdgpu_dm_verify_lut_sizes everywhere.
>
Reviewed-by: Sean Paul
> Signed-off-by: Mark Yacoub
> ---
> .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 8 ++---
> ...
On Mon, Oct 04, 2021 at 12:41:00PM +0300, Ville Syrjälä wrote:
> On Sat, Oct 02, 2021 at 11:45:41AM -0400, Sean Paul wrote:
> > From: Sean Paul
> >
> > This reverts commit 399190e70816886e2bca1f3f3bc3d9c544af88e7.
> >
> > This patchset breaks on intel pl
From: Sean Paul
This reverts commit 21dde40902d2636f70766b3154931de57e1215e9.
This patchset breaks on intel platforms and was previously NACK'd by
Ville.
Cc: Ville Syrjälä
Cc: Fernando Ramos
Signed-off-by: Sean Paul
---
drivers/gpu/drm/drm_client_modeset.c | 9 ++---
1 file changed, 6
From: Sean Paul
This reverts commit 399190e70816886e2bca1f3f3bc3d9c544af88e7.
This patchset breaks on intel platforms and was previously NACK'd by
Ville.
Cc: Ville Syrjälä
Cc: Fernando Ramos
Signed-off-by: Sean Paul
---
drivers/gpu/drm/i915/display/intel_display.c | 18
From: Sean Paul
This reverts commit 7c5f2eecc21f44fba1b1f13ce09c2533db9d781a.
This patchset breaks on intel platforms and was previously NACK'd by
Ville.
Cc: Ville Syrjälä
Cc: Fernando Ramos
Signed-off-by: Sean Paul
---
drivers/gpu/drm/drm_client_modeset.c | 5 ++---
drivers/gpu/drm
From: Sean Paul
This reverts commit 4c048437ef7adb2d81fe4ddc5c04179126eefcf2.
This patchset breaks on intel platforms and was previously NACK'd by
Ville.
Cc: Ville Syrjälä
Cc: Fernando Ramos
Signed-off-by: Sean Paul
---
drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c | 12 ++--
1
From: Sean Paul
This reverts commit 6b92e77156c5adf6606c8ad825c71404417d88af.
This patchset breaks on intel platforms and was previously NACK'd by
Ville.
Cc: Ville Syrjälä
Cc: Fernando Ramos
Signed-off-by: Sean Paul
---
drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c | 11 ---
drivers/gpu
From: Sean Paul
This reverts commit a2cd9947d99b54c959fce20dc19d81af53f4674e.
This patchset breaks on intel platforms and was previously NACK'd by
Ville.
Cc: Ville Syrjälä
Cc: Fernando Ramos
Signed-off-by: Sean Paul
---
drivers/gpu/drm/tegra/dsi.c | 6 ++
drivers/gpu/drm/tegra/hdmi.c
From: Sean Paul
This reverts commit 9b8c437ef1a5f34686fc96b391c201a80f1a2ea0.
This patchset breaks on intel platforms and was previously NACK'd by
Ville.
Cc: Ville Syrjälä
Cc: Fernando Ramos
Signed-off-by: Sean Paul
---
drivers/gpu/drm/shmobile/shmob_drm_drv.c | 6 ++
1 file changed, 2
From: Sean Paul
This reverts commit 26723c3d6b930775f9a85521d09655c533a839e6.
This patchset breaks on intel platforms and was previously NACK'd by
Ville.
Cc: Ville Syrjälä
Cc: Fernando Ramos
Signed-off-by: Sean Paul
---
drivers/gpu/drm/radeon/radeon_device.c | 21
From: Sean Paul
This reverts commit 6067fddc1a4fdf155787ab6182c192e4b360b73c.
This patchset breaks on intel platforms and was previously NACK'd by
Ville.
Cc: Ville Syrjälä
Cc: Fernando Ramos
Signed-off-by: Sean Paul
---
drivers/gpu/drm/omapdrm/omap_fb.c | 9 +++--
1 file changed, 3
From: Sean Paul
This reverts commit 6aa2daae589b63e8b39fe6f7f2b59fb3063efa05.
This patchset breaks on intel platforms and was previously NACK'd by
Ville.
Cc: Ville Syrjälä
Cc: Fernando Ramos
Signed-off-by: Sean Paul
---
drivers/gpu/drm/nouveau/dispnv50/disp.c | 15 +--
1 file
From: Sean Paul
This reverts commit fd49ef52e2db015ce69ad02bab0702489d141a41.
This patchset breaks on intel platforms and was previously NACK'd by
Ville.
Cc: Ville Syrjälä
Cc: Fernando Ramos
Signed-off-by: Sean Paul
---
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 10 --
1 file
From: Sean Paul
This reverts commit 746826bcf8fdf682668ff1c415d6b91dbf5858be.
This patchset breaks on intel platforms and was previously NACK'd by
Ville.
Cc: Ville Syrjälä
Cc: Fernando Ramos
Signed-off-by: Sean Paul
---
drivers/gpu/drm/i915/display/intel_audio.c| 16 +++
drivers
From: Sean Paul
This reverts commit 984c9949f1c4cf36c35aa2de5ee2b65c39379fd9.
This patchset breaks on intel platforms and was previously NACK'd by
Ville.
Cc: Ville Syrjälä
Cc: Fernando Ramos
Signed-off-by: Sean Paul
---
drivers/gpu/drm/i915/display/intel_overlay.c | 40
From: Sean Paul
This reverts commit 4f9e860e6ad65ff4ea8ce165a1407d96ff1b2211.
This patchset breaks on intel platforms and was previously NACK'd by
Ville.
Cc: Ville Syrjälä
Cc: Fernando Ramos
Signed-off-by: Sean Paul
---
drivers/gpu/drm/gma500/psb_device.c | 18 ++
1 file
From: Sean Paul
This reverts commit 299f040e855b69c29522cde446777902381a07f5.
This patchset breaks on intel platforms and was previously NACK'd by
Ville.
Cc: Ville Syrjälä
Cc: Fernando Ramos
Signed-off-by: Sean Paul
---
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 21 +++-
.../gpu
From: Sean Paul
This reverts commit 8d813d1a535c8c7503a5f4061654a73026be8c5e.
This patchset breaks on intel platforms and was previously NACK'd by
Ville.
Cc: Ville Syrjälä
Cc: Fernando Ramos
Signed-off-by: Sean Paul
---
drivers/gpu/drm/drm_modeset_lock.c | 94
On Fri, Oct 01, 2021 at 04:34:34PM -0400, Sean Paul wrote:
> On Wed, Sep 29, 2021 at 03:39:25PM -0400, Mark Yacoub wrote:
> > From: Mark Yacoub
> >
> > [Why]
> > 1. drm_atomic_helper_check doesn't check for the LUT sizes of either Gamma
> > or Degamma props in
On Fri, Oct 01, 2021 at 10:00:50PM +0300, Ville Syrjälä wrote:
> On Fri, Oct 01, 2021 at 02:36:55PM -0400, Sean Paul wrote:
> > On Fri, Sep 24, 2021 at 08:43:07AM +0200, Fernando Ramos wrote:
> > > Hi all,
> > >
> > > One of the things in the DRM TO
EV_ERROR(dp->dev, "Failed to unprepare panel (%d)\n",
> ret2);
What's the reasoning for not propagating unprepare failures? I feel like that
should be fair game.
> +
> + return ret;
> }
>
> struct analogix_dp_device *
> --
> 2.33.0.685.g46640cef36-goog
>
--
Sean Paul, Software Engineer, Google / Chromium OS
w_state_lut_size != gamma_lut_size)
fail;
doesn't that imply that gamma_size and gamma_lut_size must always be equal? If
so, perhaps turf this new state and rename degamma_lut_size to degamma_size to
be consistent.
De-duping this and initializing crtc->gamma_size in the initialization would
mean the if (crtc->gamma_size) check in drm_crtc_supports_legacy_check() is no
longer useful (and possibly other similar checks), so some care will need to be
taken to avoid regression. I think the effort is worthwhile to avoid introducing
new state.
> /**
>* @gamma_size: Size of legacy gamma ramp reported to userspace. Set up
>* by calling drm_mode_crtc_set_gamma_size().
> --
> 2.33.0.685.g46640cef36-goog
>
--
Sean Paul, Software Engineer, Google / Chromium OS
ll from amdgpu_dm_update_crtc_color_mgmt() is not possible to remove,
you could replace it with a call to the new helper function. And if _that_ is
not possible, please make amdgpu_dm_verify_lut_sizes() static :-)
Sean
> - if (ret)
> - goto fail;
> -
>
| 6 +-
> drivers/gpu/drm/tegra/hdmi.c | 6 +-
> drivers/gpu/drm/tegra/sor.c | 11 ++-
> drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c | 11 ++-
> drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 12 ++-
> include/drm/drm_modeset_lock.h| 2 -
> 30 files changed, 265 insertions(+), 292 deletions(-)
>
>
> base-commit: 6880fa6c56601bb8ed59df6c30fd390cc5f6dd8f
> --
> 2.33.0
>
--
Sean Paul, Software Engineer, Google / Chromium OS
From: Sean Paul
This patch adds HDCP 1.x support to msm DP connectors using the new HDCP
helpers.
Cc: Stephen Boyd
Cc: Abhinav Kumar
Signed-off-by: Sean Paul
Link:
https://patchwork.freedesktop.org/patch/msgid/20210913175747.47456-15-s...@poorly.run
#v1
Link:
https
From: Sean Paul
This patch adds the register ranges required for HDCP key injection and
HDCP TrustZone interaction as described in the dt-bindings for the
sc7180 dp controller. Now that these are supported, change the
compatible string to "dp-hdcp".
Signed-off-by: Sean Paul
Li
From: Sean Paul
This patch adds the bindings for the MSM DisplayPort HDCP registers
which are required to write the HDCP key into the display controller as
well as the registers to enable HDCP authentication/key
exchange/encryption.
We'll use a new compatible string for this since the fields
From: Sean Paul
Audio is initialized last, it should be de-initialized first to match
the order in dp_init_sub_modules().
Reviewed-by: Abhinav Kumar
Reviewed-by: Stephen Boyd
Signed-off-by: Sean Paul
Link:
https://patchwork.freedesktop.org/patch/msgid/20210913175747.47456-12-s...@poorly.run
From: Sean Paul
encoder->commit() was being misused because there were some global
resources which needed to be tweaked in encoder->enable() which were not
accessible in dpu_encoder.c. That is no longer true and the redirect
serves no purpose any longer. So remove the indirection.
Re
From: Sean Paul
A couple more useless checks to remove in dpu_encoder.
Reviewed-by: Stephen Boyd
Signed-off-by: Sean Paul
Link:
https://patchwork.freedesktop.org/patch/msgid/20210913175747.47456-10-s...@poorly.run
#v1
Link:
https://patchwork.freedesktop.org/patch/msgid/20210915203834.1439
From: Sean Paul
Make includes alphabetical in dpu_kms.c
Reviewed-by: Abhinav Kumar
Reviewed-by: Stephen Boyd
Signed-off-by: Sean Paul
Link:
https://patchwork.freedesktop.org/patch/msgid/20210913175747.47456-9-s...@poorly.run
#v1
Link:
https://patchwork.freedesktop.org/patch/msgid
From: Sean Paul
Now that all of the HDCP 1.x logic has been migrated to the central HDCP
helpers, use it in the i915 driver.
The majority of the driver code for HDCP 1.x will live in intel_hdcp.c,
however there are a few helper hooks which are connector-specific and
need to be partially
1 - 100 of 3250 matches
Mail list logo