From: Jani Nikula <jani.nikula@linux.intel.com>
To: Imre Deak <imre.deak@intel.com>, intel-gfx@lists.freedesktop.org
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH v3 1/2] drm/dp: Factor out a function to probe a DPCD address
Date: Thu, 14 Apr 2022 13:30:05 +0300 [thread overview]
Message-ID: <8735igez4i.fsf@intel.com> (raw)
In-Reply-To: <20220411132539.984647-1-imre.deak@intel.com>
On Mon, 11 Apr 2022, Imre Deak <imre.deak@intel.com> wrote:
> Factor out from drm_dp_dpcd_read() a function to probe a DPCD address
> with a 1-byte read access. This will be needed by the next patch doing a
> read from an LTTPR address, which must happen without the preceding
> wake-up read in drm_dp_dpcd_read().
>
> While at it add tracing for the 1 byte read even if the read was
> successful.
Let's see if that's going to be annoying and confusing...
>
> v2: Add a probe function instead of exporting drm_dp_dpcd_access(). (Jani)
> v3: Add tracing for the 1-byte read even if the read was successful. (Khaled)
>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Khaled Almahallawy <khaled.almahallawy@intel.com>
> Cc: dri-devel@lists.freedesktop.org
> Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/dp/drm_dp.c | 33 ++++++++++++++++++++++++++++-----
> include/drm/dp/drm_dp_helper.h | 1 +
> 2 files changed, 29 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/dp/drm_dp.c b/drivers/gpu/drm/dp/drm_dp.c
> index 580016a1b9eb7..2a1f5ff6633cc 100644
> --- a/drivers/gpu/drm/dp/drm_dp.c
> +++ b/drivers/gpu/drm/dp/drm_dp.c
> @@ -527,6 +527,31 @@ static int drm_dp_dpcd_access(struct drm_dp_aux *aux, u8 request,
> return ret;
> }
>
> +/**
> + * drm_dp_dpcd_probe() - probe a given DPCD address with a 1-byte read access
> + * @aux: DisplayPort AUX channel (SST)
> + * @offset: address of the register to probe
> + *
> + * Probe the provided DPCD address by reading 1 byte from it. The function can
> + * be used to trigger some side-effect the read access has, like waking up the
> + * sink, without the need for the read-out value.
> + *
> + * Returns 0 if the read access suceeded, or a negative error code on failure.
> + */
> +int drm_dp_dpcd_probe(struct drm_dp_aux *aux, unsigned int offset)
> +{
> + u8 buffer;
> + int ret;
> +
> + ret = drm_dp_dpcd_access(aux, DP_AUX_NATIVE_READ, offset, &buffer, 1);
> + WARN_ON(ret == 0);
> +
> + drm_dp_dump_access(aux, DP_AUX_NATIVE_READ, offset, &buffer, ret);
> +
> + return ret < 0 ? ret : 0;
> +}
> +EXPORT_SYMBOL(drm_dp_dpcd_probe);
> +
> /**
> * drm_dp_dpcd_read() - read a series of bytes from the DPCD
> * @aux: DisplayPort AUX channel (SST or MST)
> @@ -559,10 +584,9 @@ ssize_t drm_dp_dpcd_read(struct drm_dp_aux *aux, unsigned int offset,
> * monitor doesn't power down exactly after the throw away read.
> */
> if (!aux->is_remote) {
> - ret = drm_dp_dpcd_access(aux, DP_AUX_NATIVE_READ, DP_DPCD_REV,
> - buffer, 1);
> - if (ret != 1)
> - goto out;
> + ret = drm_dp_dpcd_probe(aux, DP_DPCD_REV);
> + if (ret < 0)
> + return ret;
> }
>
> if (aux->is_remote)
> @@ -571,7 +595,6 @@ ssize_t drm_dp_dpcd_read(struct drm_dp_aux *aux, unsigned int offset,
> ret = drm_dp_dpcd_access(aux, DP_AUX_NATIVE_READ, offset,
> buffer, size);
>
> -out:
> drm_dp_dump_access(aux, DP_AUX_NATIVE_READ, offset, buffer, ret);
> return ret;
> }
> diff --git a/include/drm/dp/drm_dp_helper.h b/include/drm/dp/drm_dp_helper.h
> index 1eccd97419436..91af98e6617c6 100644
> --- a/include/drm/dp/drm_dp_helper.h
> +++ b/include/drm/dp/drm_dp_helper.h
> @@ -2053,6 +2053,7 @@ struct drm_dp_aux {
> bool is_remote;
> };
>
> +int drm_dp_dpcd_probe(struct drm_dp_aux *aux, unsigned int offset);
> ssize_t drm_dp_dpcd_read(struct drm_dp_aux *aux, unsigned int offset,
> void *buffer, size_t size);
> ssize_t drm_dp_dpcd_write(struct drm_dp_aux *aux, unsigned int offset,
--
Jani Nikula, Intel Open Source Graphics Center
WARNING: multiple messages have this Message-ID (diff)
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Imre Deak <imre.deak@intel.com>, intel-gfx@lists.freedesktop.org
Cc: dri-devel@lists.freedesktop.org,
Khaled Almahallawy <khaled.almahallawy@intel.com>
Subject: Re: [PATCH v3 1/2] drm/dp: Factor out a function to probe a DPCD address
Date: Thu, 14 Apr 2022 13:30:05 +0300 [thread overview]
Message-ID: <8735igez4i.fsf@intel.com> (raw)
In-Reply-To: <20220411132539.984647-1-imre.deak@intel.com>
On Mon, 11 Apr 2022, Imre Deak <imre.deak@intel.com> wrote:
> Factor out from drm_dp_dpcd_read() a function to probe a DPCD address
> with a 1-byte read access. This will be needed by the next patch doing a
> read from an LTTPR address, which must happen without the preceding
> wake-up read in drm_dp_dpcd_read().
>
> While at it add tracing for the 1 byte read even if the read was
> successful.
Let's see if that's going to be annoying and confusing...
>
> v2: Add a probe function instead of exporting drm_dp_dpcd_access(). (Jani)
> v3: Add tracing for the 1-byte read even if the read was successful. (Khaled)
>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Khaled Almahallawy <khaled.almahallawy@intel.com>
> Cc: dri-devel@lists.freedesktop.org
> Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/dp/drm_dp.c | 33 ++++++++++++++++++++++++++++-----
> include/drm/dp/drm_dp_helper.h | 1 +
> 2 files changed, 29 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/dp/drm_dp.c b/drivers/gpu/drm/dp/drm_dp.c
> index 580016a1b9eb7..2a1f5ff6633cc 100644
> --- a/drivers/gpu/drm/dp/drm_dp.c
> +++ b/drivers/gpu/drm/dp/drm_dp.c
> @@ -527,6 +527,31 @@ static int drm_dp_dpcd_access(struct drm_dp_aux *aux, u8 request,
> return ret;
> }
>
> +/**
> + * drm_dp_dpcd_probe() - probe a given DPCD address with a 1-byte read access
> + * @aux: DisplayPort AUX channel (SST)
> + * @offset: address of the register to probe
> + *
> + * Probe the provided DPCD address by reading 1 byte from it. The function can
> + * be used to trigger some side-effect the read access has, like waking up the
> + * sink, without the need for the read-out value.
> + *
> + * Returns 0 if the read access suceeded, or a negative error code on failure.
> + */
> +int drm_dp_dpcd_probe(struct drm_dp_aux *aux, unsigned int offset)
> +{
> + u8 buffer;
> + int ret;
> +
> + ret = drm_dp_dpcd_access(aux, DP_AUX_NATIVE_READ, offset, &buffer, 1);
> + WARN_ON(ret == 0);
> +
> + drm_dp_dump_access(aux, DP_AUX_NATIVE_READ, offset, &buffer, ret);
> +
> + return ret < 0 ? ret : 0;
> +}
> +EXPORT_SYMBOL(drm_dp_dpcd_probe);
> +
> /**
> * drm_dp_dpcd_read() - read a series of bytes from the DPCD
> * @aux: DisplayPort AUX channel (SST or MST)
> @@ -559,10 +584,9 @@ ssize_t drm_dp_dpcd_read(struct drm_dp_aux *aux, unsigned int offset,
> * monitor doesn't power down exactly after the throw away read.
> */
> if (!aux->is_remote) {
> - ret = drm_dp_dpcd_access(aux, DP_AUX_NATIVE_READ, DP_DPCD_REV,
> - buffer, 1);
> - if (ret != 1)
> - goto out;
> + ret = drm_dp_dpcd_probe(aux, DP_DPCD_REV);
> + if (ret < 0)
> + return ret;
> }
>
> if (aux->is_remote)
> @@ -571,7 +595,6 @@ ssize_t drm_dp_dpcd_read(struct drm_dp_aux *aux, unsigned int offset,
> ret = drm_dp_dpcd_access(aux, DP_AUX_NATIVE_READ, offset,
> buffer, size);
>
> -out:
> drm_dp_dump_access(aux, DP_AUX_NATIVE_READ, offset, buffer, ret);
> return ret;
> }
> diff --git a/include/drm/dp/drm_dp_helper.h b/include/drm/dp/drm_dp_helper.h
> index 1eccd97419436..91af98e6617c6 100644
> --- a/include/drm/dp/drm_dp_helper.h
> +++ b/include/drm/dp/drm_dp_helper.h
> @@ -2053,6 +2053,7 @@ struct drm_dp_aux {
> bool is_remote;
> };
>
> +int drm_dp_dpcd_probe(struct drm_dp_aux *aux, unsigned int offset);
> ssize_t drm_dp_dpcd_read(struct drm_dp_aux *aux, unsigned int offset,
> void *buffer, size_t size);
> ssize_t drm_dp_dpcd_write(struct drm_dp_aux *aux, unsigned int offset,
--
Jani Nikula, Intel Open Source Graphics Center
next prev parent reply other threads:[~2022-04-14 10:30 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-08 17:21 [Intel-gfx] [PATCH v2 1/2] drm/dp: Factor out a function to probe a DPCD address Imre Deak
2022-04-08 17:21 ` Imre Deak
2022-04-08 17:21 ` [Intel-gfx] [PATCH v2 2/2] drm/i915/dp: Add workaround for spurious AUX timeouts/hotplugs on LTTPR links Imre Deak
2022-04-08 22:46 ` [Intel-gfx] [PATCH v3 " Imre Deak
2022-04-14 10:49 ` Jani Nikula
2022-04-26 9:49 ` Imre Deak
2022-04-26 11:31 ` Jani Nikula
2022-04-26 11:59 ` Imre Deak
2022-04-26 14:23 ` Jani Nikula
2022-04-08 21:12 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [v2,1/2] drm/dp: Factor out a function to probe a DPCD address Patchwork
2022-04-08 21:43 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2022-04-08 22:47 ` [Intel-gfx] [v2, 1/2] " Almahallawy, Khaled
2022-04-08 22:47 ` [v2,1/2] " Almahallawy, Khaled
2022-04-08 23:02 ` [Intel-gfx] [v2, 1/2] " Imre Deak
2022-04-08 23:02 ` [v2,1/2] " Imre Deak
2022-04-08 23:22 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [v2,1/2] drm/dp: Factor out a function to probe a DPCD address (rev2) Patchwork
2022-04-08 23:24 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2022-04-08 23:50 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-04-09 1:17 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2022-04-11 13:25 ` [Intel-gfx] [PATCH v3 1/2] drm/dp: Factor out a function to probe a DPCD address Imre Deak
2022-04-11 13:25 ` Imre Deak
2022-04-14 10:30 ` Jani Nikula [this message]
2022-04-14 10:30 ` Jani Nikula
2022-04-11 17:02 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [v3,1/2] drm/dp: Factor out a function to probe a DPCD address (rev3) Patchwork
2022-04-11 17:02 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2022-04-11 17:22 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-04-11 20:18 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2022-04-14 18:32 ` Imre Deak
2022-04-14 21:18 ` Vudum, Lakshminarayana
2022-04-14 20:13 ` [Intel-gfx] ✓ Fi.CI.IGT: success " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8735igez4i.fsf@intel.com \
--to=jani.nikula@linux.intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=imre.deak@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.