From: Shubhangi Shrivastava <shubhangi.shrivastava@intel.com>
To: Ander Conselvan De Oliveira <conselvan2@gmail.com>,
intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 5/6] drm/i915: read sink_count dpcd always
Date: Tue, 19 Jan 2016 14:06:09 +0530 [thread overview]
Message-ID: <569DF579.6010707@intel.com> (raw)
In-Reply-To: <1453122034.2756.12.camel@gmail.com>
On Monday 18 January 2016 06:30 PM, Ander Conselvan De Oliveira wrote:
> On Mon, 2016-01-18 at 18:14 +0530, Shubhangi Shrivastava wrote:
>> On Thursday 14 January 2016 06:34 PM, Ander Conselvan De Oliveira wrote:
>>> On Tue, 2016-01-05 at 18:20 +0530, Shubhangi Shrivastava wrote:
>>>> This patch reads sink_count dpcd always and removes its
>>>> read operation based on values in downstream port dpcd.
>>>>
>>>> SINK_COUNT dpcd is not dependent on DOWNSTREAM_PORT_PRESENT dpcd.
>>>> SINK_COUNT denotes if a display is attached, while
>>>> DOWNSTREAM_PORT_PRESET indicates how many ports are available
>>>> in the dongle where display can be attached. so it is possible
>>>> for sink count to change irrespective of value in downstream
>>>> port dpcd.
>>>>
>>>> Here is a table of possible values and scenarios
>>>>
>>>> sink_count downstream_port
>>>> present
>>>> 0 0 no display is attached
>>>> 0 1 dongle is connected without display
>>>> 1 0 display connected directly
>>>> 1 1 display connected through dongle
>>>>
>>>> Tested-by: Nathan D Ciobanu <nathan.d.ciobanu@intel.com>
>>>> Signed-off-by: Sivakumar Thulasimani <sivakumar.thulasimani@intel.com>
>>>> Signed-off-by: Shubhangi Shrivastava <shubhangi.shrivastava@intel.com>
>>>> ---
>>>> drivers/gpu/drm/i915/intel_dp.c | 11 +++++++----
>>>> 1 file changed, 7 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/i915/intel_dp.c
>>>> b/drivers/gpu/drm/i915/intel_dp.c
>>>> index c2e8516..0d58bfd 100644
>>>> --- a/drivers/gpu/drm/i915/intel_dp.c
>>>> +++ b/drivers/gpu/drm/i915/intel_dp.c
>>>> @@ -3865,6 +3865,13 @@ intel_dp_get_dpcd(struct intel_dp *intel_dp)
>>>> if (intel_dp->dpcd[DP_DPCD_REV] == 0)
>>>> return false; /* DPCD not present */
>>>>
>>>> + if (intel_dp_dpcd_read_wake(&intel_dp->aux, DP_SINK_COUNT,
>>>> + &intel_dp->sink_count, 1) < 0)
>>>> + return false;
>>>> +
>>>> + if (!DP_GET_SINK_COUNT(intel_dp->sink_count))
>>>> + return false;
>>>> +
>>> My understanding is that this function should only read the DPCD data while
>>> detection based on that data is done in intel_dp_detect_dpcd(). With the
>>> return
>>> on sink_count == 0 here, we skip the end of the function, which updates the
>>> cached downstream port information. Is there a reason why we need this early
>>> return here?
>>>
>>> Also, I think this could be squashed with the previous patch.
>>>
>>> Ander
>> As described in the commit message, if sink_count is 0, then there is no
>> display present. So, irrespective of value of downstream port, we should
>> terminate the function and thus, an early return is present here.
> You wrote that "SINK_COUNT dpcd is not dependent on DOWNSTREAM_PORT_PRESENT
> dpcd". Now, the get_dpcd() function is called from different places with the
> purpose of retrieving information stored in dpcd. By adding the early return,
> the downstream port information, which you claimed is independent from sink
> count, is not updated.
>
> The way I see it, you should terminate detection when sink count is 0, not the
> reading of DPCD. That way the logical split between intel_dp_get_dpcd() and
> intel_dp_detect_dpcd() is maintained. The former reads DPCD and the latter
> reasons about it.
>
> Ander
Yes, that's how it is.. But, SINK_COUNT == 0 and DOWNSTREAM_PORT_PRESENT
== 1 implies that a dongle is present but no display. Unless we require
to know if a dongle is present or not, we don't need to update
downstream port information. So, an early return here saves time from
performing other operations which are not required.
>>>> /* Check if the panel supports PSR */
>>>> memset(intel_dp->psr_dpcd, 0, sizeof(intel_dp->psr_dpcd));
>>>> if (is_edp(intel_dp)) {
>>>> @@ -4386,10 +4393,6 @@ intel_dp_detect_dpcd(struct intel_dp *intel_dp)
>>>> if (intel_dp->dpcd[DP_DPCD_REV] >= 0x11 &&
>>>> intel_dp->downstream_ports[0] & DP_DS_PORT_HPD) {
>>>>
>>>> - if (intel_dp_dpcd_read_wake(&intel_dp->aux,
>>>> DP_SINK_COUNT,
>>>> - &intel_dp->sink_count, 1) <
>>>> 0)
>>>> - return connector_status_unknown;
>>>> -
>>>> return DP_GET_SINK_COUNT(intel_dp->sink_count) ?
>>>> connector_status_connected :
>>>> connector_status_disconnected;
>>>> }
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2016-01-19 8:34 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-05 12:50 [PATCH 0/6] Fixing sink count related detection over Shubhangi Shrivastava
2016-01-05 12:50 ` [PATCH 1/6] drm/i915: Splitting intel_dp_detect Shubhangi Shrivastava
2016-01-13 11:20 ` Ander Conselvan De Oliveira
2016-01-13 13:33 ` Ander Conselvan De Oliveira
2016-01-14 13:50 ` Shubhangi Shrivastava
2016-01-15 10:07 ` Ander Conselvan De Oliveira
2016-01-18 10:24 ` [PATCH] " Shubhangi Shrivastava
2016-01-19 8:51 ` [PATCH 1/6] " Shubhangi Shrivastava
2016-01-05 12:50 ` [PATCH 2/6] drm/i915: Cleaning up intel_dp_hpd_pulse Shubhangi Shrivastava
2016-01-13 14:05 ` Ander Conselvan De Oliveira
2016-01-05 12:50 ` [PATCH 3/6] drm/i915: Splitting intel_dp_check_link_status Shubhangi Shrivastava
2016-01-13 15:04 ` Ander Conselvan De Oliveira
2016-01-18 10:52 ` [PATCH] " Shubhangi Shrivastava
2016-01-18 21:05 ` Lukas Wunner
2016-01-19 4:44 ` Thulasimani, Sivakumar
2016-01-19 8:44 ` Daniel Vetter
2016-01-19 8:59 ` Thulasimani, Sivakumar
2016-01-19 9:05 ` Daniel Vetter
2016-01-19 9:11 ` Thulasimani, Sivakumar
2016-01-19 9:55 ` [PATCH] drm/i915: Reorganizing intel_dp_check_link_status Shubhangi Shrivastava
2016-01-19 8:53 ` [PATCH 3/6] drm/i915: Splitting intel_dp_check_link_status Shubhangi Shrivastava
2016-01-05 12:50 ` [PATCH 4/6] drm/i915: Save sink_count for tracking changes to it Shubhangi Shrivastava
2016-01-14 13:00 ` Ander Conselvan De Oliveira
2016-01-19 8:56 ` Shubhangi Shrivastava
2016-01-05 12:50 ` [PATCH 5/6] drm/i915: read sink_count dpcd always Shubhangi Shrivastava
2016-01-14 13:04 ` Ander Conselvan De Oliveira
2016-01-18 12:44 ` Shubhangi Shrivastava
2016-01-18 12:46 ` Shubhangi Shrivastava
2016-01-18 12:49 ` [PATCH] drm/i915: Save sink_count for tracking changes to it and " Shubhangi Shrivastava
2016-01-18 13:00 ` [PATCH 5/6] drm/i915: " Ander Conselvan De Oliveira
2016-01-19 8:36 ` Shubhangi Shrivastava [this message]
2016-01-05 12:50 ` [PATCH 6/6] drm/i915: force full detect on sink count change Shubhangi Shrivastava
2016-01-14 13:50 ` Ander Conselvan De Oliveira
2016-01-19 8:40 ` Shubhangi Shrivastava
2016-01-05 13:49 ` ✗ warning: Fi.CI.BAT Patchwork
2016-01-18 10:49 ` ✗ Fi.CI.BAT: warning for Fixing sink count related detection over (rev6) Patchwork
2016-01-18 11:01 ` ✗ Fi.CI.BAT: failure for Fixing sink count related detection over (rev7) Patchwork
2016-01-18 13:01 ` ✗ Fi.CI.BAT: failure for Fixing sink count related detection over (rev8) Patchwork
2016-01-19 9:38 ` Ander Conselvan De Oliveira
2016-01-19 10:22 ` Shrivastava, Shubhangi
2016-01-19 10:01 ` ✗ Fi.CI.BAT: failure for Fixing sink count related detection over (rev9) Patchwork
-- strict thread matches above, loose matches on Subject: below --
2015-11-06 12:28 [PATCH 0/6] Fixing sink count related detection over Shubhangi Shrivastava
2015-11-06 12:28 ` [PATCH 5/6] drm/i915: read sink_count dpcd always Shubhangi Shrivastava
2015-11-02 12:55 [PATCH 0/6] Fixing sink count related detection over Shubhangi Shrivastava
2015-11-02 12:55 ` [PATCH 5/6] drm/i915: read sink_count dpcd always Shubhangi Shrivastava
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=569DF579.6010707@intel.com \
--to=shubhangi.shrivastava@intel.com \
--cc=conselvan2@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).