* [PATCH 00/15] ASoC: hdac_hdmi: Add DP & notification support
@ 2015-12-01 17:42 Subhransu S. Prusty
[not found] ` <1448992031-8271-1-git-send-email-subhransu.s.prusty@intel.com>
0 siblings, 1 reply; 9+ messages in thread
From: Subhransu S. Prusty @ 2015-12-01 17:42 UTC (permalink / raw)
To: alsa-devel
Cc: tiwai, David Airlie, lgirdwood, dri-devel, patches.audio, broonie,
Daniel Vetter, Subhransu S. Prusty
This patch series adds DP audio and hotplug notification
support.
On Skylake two DP ports are available and to enable DP on both
ports all pins need to be enabled.
There is a special vendor widget which need to be programmed to
enable all pins and converters. This series adds hotplug
notification, read/set constraint based on ELD, enable all
pin/cvts, DP1.2, programs the audio infoframe for DP. There is
a one to one mapping between converter and stream, so the dais
are created based on the no of streams supported on hdmi codec.
Even though cvts can be mapped dynamically to the streams,
currently it is statically mapped as simultaneous playback on
both DP and HDMI is not supported as of now.
Pin muxes and controls are created dynamically to map converter
to pin widget. So at run time specific pin is mapped to the dai
based on the control selected (based on the display type DP/HDMI
connected).
Finally the DP audio infoframe programming is added to support
the DP feature.
Also with hotplug notification support, ELD is read and
capabilities are set for rate, formats and channels. drm_eld
sound/core framework is updated to limit the formats based on
ELD.
There are few fixes one fixing the static checker warning and
other one not to fail if no connection list is found for a pin
widget.
Pls note, the 12th patch is adding a small macro for getting
connection type in drm header, we have CCed drm folks on that and
this one. Pls ack so that we can have this series merged thru
sound trees
Jeeja KP (1):
ASoC: hdac_hdmi: Add codec suspend/resume handler
Ramesh Babu (1):
ASoC: hdac_hdmi: Keep display active while enumerating codec
Subhransu S. Prusty (13):
ASoC: hdac_hdmi: Fix to check num nodes correctly
ASoC: hdac_hdmi: Fix to warn instead of err for no connected nids
ASoC: hdac_hdmi - Use list to add pins and converters
ALSA: hda - Add helper to read eld data
ASoC: hdac_hdmi: Add hotplug notification and read eld
ALSA: pcm: Add DRM helper to set constraint for format
ASoC: hdac_hdmi: Apply constraints based on ELD
ASoC: hdac_hdmi: Enable DP1.2 and all converters/pins
ASoC: hdac_hdmi - create dais based on number of streams
ASoC: hdac_hdmi: Create widget/route based on nodes enumerated
ASoC: hdac_hdmi: Assign pin for stream based on dapm connection
drm/edid: Add API to help find connection type
ASoC: hdac_hdmi: Add infoframe support for dp audio
include/drm/drm_edid.h | 10 +
include/sound/hdaudio.h | 3 +
sound/core/pcm_drm_eld.c | 42 +-
sound/hda/Makefile | 2 +-
sound/hda/hdac_eld.c | 95 +++++
sound/soc/codecs/Kconfig | 1 +
sound/soc/codecs/hdac_hdmi.c | 908 ++++++++++++++++++++++++++++++++++++-------
7 files changed, 908 insertions(+), 153 deletions(-)
create mode 100644 sound/hda/hdac_eld.c
--
1.9.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 12/15] drm/edid: Add API to help find connection type
[not found] ` <1448992031-8271-1-git-send-email-subhransu.s.prusty@intel.com>
@ 2015-12-01 17:47 ` Subhransu S. Prusty
2015-12-02 9:53 ` Jani Nikula
0 siblings, 1 reply; 9+ messages in thread
From: Subhransu S. Prusty @ 2015-12-01 17:47 UTC (permalink / raw)
To: alsa-devel
Cc: tiwai, David Airlie, lgirdwood, dri-devel, patches.audio, broonie,
Daniel Vetter, Vinod Koul, Subhransu S. Prusty
To fill the audio infoframe it is required to identify the connection type
as DP or HDMI. So parse the required bits in ELD to find the connection
type.
Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Cc: David Airlie <airlied@linux.ie>
Cc: dri-devel@lists.freedesktop.org
Cc: Daniel Vetter <daniel.vetter@intel.com>
---
include/drm/drm_edid.h | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h
index 2af9769..c7595a5 100644
--- a/include/drm/drm_edid.h
+++ b/include/drm/drm_edid.h
@@ -403,6 +403,16 @@ static inline int drm_eld_size(const uint8_t *eld)
return DRM_ELD_HEADER_BLOCK_SIZE + eld[DRM_ELD_BASELINE_ELD_LEN] * 4;
}
+/**
+ * drm_eld_get_conn_type - Get device type hdmi/dp connected
+ * @eld: pointer to an eld memory structure
+ */
+static inline int drm_eld_get_conn_type(const uint8_t *eld)
+{
+ return (eld[DRM_ELD_SAD_COUNT_CONN_TYPE] & DRM_ELD_CONN_TYPE_MASK) >>
+ DRM_ELD_CONN_TYPE_SHIFT;
+}
+
struct edid *drm_do_get_edid(struct drm_connector *connector,
int (*get_edid_block)(void *data, u8 *buf, unsigned int block,
size_t len),
--
1.9.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 12/15] drm/edid: Add API to help find connection type
2015-12-01 17:47 ` [PATCH 12/15] drm/edid: Add API to help find connection type Subhransu S. Prusty
@ 2015-12-02 9:53 ` Jani Nikula
2015-12-02 17:07 ` Thierry Reding
2015-12-02 17:16 ` Subhransu S. Prusty
0 siblings, 2 replies; 9+ messages in thread
From: Jani Nikula @ 2015-12-02 9:53 UTC (permalink / raw)
To: alsa-devel
Cc: patches.audio, lgirdwood, dri-devel, Vinod Koul, broonie,
Daniel Vetter, Subhransu S. Prusty
On Tue, 01 Dec 2015, "Subhransu S. Prusty" <subhransu.s.prusty@intel.com> wrote:
> To fill the audio infoframe it is required to identify the connection type
> as DP or HDMI. So parse the required bits in ELD to find the connection
> type.
>
> Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
> Cc: David Airlie <airlied@linux.ie>
> Cc: dri-devel@lists.freedesktop.org
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> ---
> include/drm/drm_edid.h | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h
> index 2af9769..c7595a5 100644
> --- a/include/drm/drm_edid.h
> +++ b/include/drm/drm_edid.h
> @@ -403,6 +403,16 @@ static inline int drm_eld_size(const uint8_t *eld)
> return DRM_ELD_HEADER_BLOCK_SIZE + eld[DRM_ELD_BASELINE_ELD_LEN] * 4;
> }
>
> +/**
> + * drm_eld_get_conn_type - Get device type hdmi/dp connected
> + * @eld: pointer to an eld memory structure
> + */
> +static inline int drm_eld_get_conn_type(const uint8_t *eld)
> +{
> + return (eld[DRM_ELD_SAD_COUNT_CONN_TYPE] & DRM_ELD_CONN_TYPE_MASK) >>
> + DRM_ELD_CONN_TYPE_SHIFT;
> +}
I'm not sure how much this helps when the caller still needs to
magically know what the return value means... Indeed the next patch
with /* 0 is hdmi and 1 is DP */ and "conn_type == 0" is a bit ugly.
How about just not shifting the return value, and using
DRM_ELD_CONN_TYPE_HDMI and DRM_ELD_CONN_TYPE_DP in the caller? Bonus
points for referencing those in the kernel-doc above.
BR,
Jani.
> +
> struct edid *drm_do_get_edid(struct drm_connector *connector,
> int (*get_edid_block)(void *data, u8 *buf, unsigned int block,
> size_t len),
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 12/15] drm/edid: Add API to help find connection type
2015-12-02 9:53 ` Jani Nikula
@ 2015-12-02 17:07 ` Thierry Reding
2015-12-03 16:08 ` [alsa-devel] " Subhransu S. Prusty
2015-12-02 17:16 ` Subhransu S. Prusty
1 sibling, 1 reply; 9+ messages in thread
From: Thierry Reding @ 2015-12-02 17:07 UTC (permalink / raw)
To: Jani Nikula
Cc: alsa-devel, patches.audio, lgirdwood, dri-devel, Vinod Koul,
broonie, Daniel Vetter, Subhransu S. Prusty
[-- Attachment #1.1: Type: text/plain, Size: 2115 bytes --]
On Wed, Dec 02, 2015 at 11:53:02AM +0200, Jani Nikula wrote:
> On Tue, 01 Dec 2015, "Subhransu S. Prusty" <subhransu.s.prusty@intel.com> wrote:
> > To fill the audio infoframe it is required to identify the connection type
> > as DP or HDMI. So parse the required bits in ELD to find the connection
> > type.
> >
> > Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
> > Signed-off-by: Vinod Koul <vinod.koul@intel.com>
> > Cc: David Airlie <airlied@linux.ie>
> > Cc: dri-devel@lists.freedesktop.org
> > Cc: Daniel Vetter <daniel.vetter@intel.com>
> > ---
> > include/drm/drm_edid.h | 10 ++++++++++
> > 1 file changed, 10 insertions(+)
> >
> > diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h
> > index 2af9769..c7595a5 100644
> > --- a/include/drm/drm_edid.h
> > +++ b/include/drm/drm_edid.h
> > @@ -403,6 +403,16 @@ static inline int drm_eld_size(const uint8_t *eld)
> > return DRM_ELD_HEADER_BLOCK_SIZE + eld[DRM_ELD_BASELINE_ELD_LEN] * 4;
> > }
> >
> > +/**
> > + * drm_eld_get_conn_type - Get device type hdmi/dp connected
> > + * @eld: pointer to an eld memory structure
> > + */
> > +static inline int drm_eld_get_conn_type(const uint8_t *eld)
> > +{
> > + return (eld[DRM_ELD_SAD_COUNT_CONN_TYPE] & DRM_ELD_CONN_TYPE_MASK) >>
> > + DRM_ELD_CONN_TYPE_SHIFT;
> > +}
>
> I'm not sure how much this helps when the caller still needs to
> magically know what the return value means... Indeed the next patch
> with /* 0 is hdmi and 1 is DP */ and "conn_type == 0" is a bit ugly.
>
> How about just not shifting the return value, and using
> DRM_ELD_CONN_TYPE_HDMI and DRM_ELD_CONN_TYPE_DP in the caller? Bonus
> points for referencing those in the kernel-doc above.
We already have a similar function for detecting HDMI vs. DVI (see the
drm_detect_hdmi_monitor()), so perhaps adhering to that convention might
be preferable. This could be:
static inline bool drm_eld_detect_dp(const u8 *eld)
{
u8 type = eld[DRM_ELD_SAD_COUNT_CONN_TYPE] & DRM_ELD_CONN_TYPE_MASK;
return type == DRM_ELD_CONN_TYPE_DP;
}
Thierry
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
[-- Attachment #2: Type: text/plain, Size: 159 bytes --]
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 12/15] drm/edid: Add API to help find connection type
2015-12-02 9:53 ` Jani Nikula
2015-12-02 17:07 ` Thierry Reding
@ 2015-12-02 17:16 ` Subhransu S. Prusty
1 sibling, 0 replies; 9+ messages in thread
From: Subhransu S. Prusty @ 2015-12-02 17:16 UTC (permalink / raw)
To: Jani Nikula
Cc: alsa-devel, patches.audio, lgirdwood, dri-devel, Vinod Koul,
broonie, Daniel Vetter
On Wed, Dec 02, 2015 at 11:53:02AM +0200, Jani Nikula wrote:
> On Tue, 01 Dec 2015, "Subhransu S. Prusty" <subhransu.s.prusty@intel.com> wrote:
> > To fill the audio infoframe it is required to identify the connection type
> > as DP or HDMI. So parse the required bits in ELD to find the connection
> > type.
> >
> > Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
> > Signed-off-by: Vinod Koul <vinod.koul@intel.com>
> > Cc: David Airlie <airlied@linux.ie>
> > Cc: dri-devel@lists.freedesktop.org
> > Cc: Daniel Vetter <daniel.vetter@intel.com>
> > ---
> > include/drm/drm_edid.h | 10 ++++++++++
> > 1 file changed, 10 insertions(+)
> >
> > diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h
> > index 2af9769..c7595a5 100644
> > --- a/include/drm/drm_edid.h
> > +++ b/include/drm/drm_edid.h
> > @@ -403,6 +403,16 @@ static inline int drm_eld_size(const uint8_t *eld)
> > return DRM_ELD_HEADER_BLOCK_SIZE + eld[DRM_ELD_BASELINE_ELD_LEN] * 4;
> > }
> >
> > +/**
> > + * drm_eld_get_conn_type - Get device type hdmi/dp connected
> > + * @eld: pointer to an eld memory structure
> > + */
> > +static inline int drm_eld_get_conn_type(const uint8_t *eld)
> > +{
> > + return (eld[DRM_ELD_SAD_COUNT_CONN_TYPE] & DRM_ELD_CONN_TYPE_MASK) >>
> > + DRM_ELD_CONN_TYPE_SHIFT;
> > +}
>
> I'm not sure how much this helps when the caller still needs to
> magically know what the return value means... Indeed the next patch
> with /* 0 is hdmi and 1 is DP */ and "conn_type == 0" is a bit ugly.
>
> How about just not shifting the return value, and using
> DRM_ELD_CONN_TYPE_HDMI and DRM_ELD_CONN_TYPE_DP in the caller? Bonus
> points for referencing those in the kernel-doc above.
Sure, will update and submit again.
Regards,
Subhransu
>
> BR,
> Jani.
>
>
> > +
> > struct edid *drm_do_get_edid(struct drm_connector *connector,
> > int (*get_edid_block)(void *data, u8 *buf, unsigned int block,
> > size_t len),
>
> --
> Jani Nikula, Intel Open Source Technology Center
--
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [alsa-devel] [PATCH 12/15] drm/edid: Add API to help find connection type
2015-12-03 16:08 ` [alsa-devel] " Subhransu S. Prusty
@ 2015-12-03 11:09 ` Jani Nikula
2015-12-03 11:21 ` Thierry Reding
0 siblings, 1 reply; 9+ messages in thread
From: Jani Nikula @ 2015-12-03 11:09 UTC (permalink / raw)
To: Subhransu S. Prusty, Thierry Reding
Cc: alsa-devel, patches.audio, lgirdwood, dri-devel, Vinod Koul,
broonie, Daniel Vetter
On Thu, 03 Dec 2015, "Subhransu S. Prusty" <subhransu.s.prusty@intel.com> wrote:
> On Wed, Dec 02, 2015 at 06:07:01PM +0100, Thierry Reding wrote:
>> On Wed, Dec 02, 2015 at 11:53:02AM +0200, Jani Nikula wrote:
>> > On Tue, 01 Dec 2015, "Subhransu S. Prusty" <subhransu.s.prusty@intel.com> wrote:
>> > > To fill the audio infoframe it is required to identify the connection type
>> > > as DP or HDMI. So parse the required bits in ELD to find the connection
>> > > type.
>> > >
>> > > Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
>> > > Signed-off-by: Vinod Koul <vinod.koul@intel.com>
>> > > Cc: David Airlie <airlied@linux.ie>
>> > > Cc: dri-devel@lists.freedesktop.org
>> > > Cc: Daniel Vetter <daniel.vetter@intel.com>
>> > > ---
>> > > include/drm/drm_edid.h | 10 ++++++++++
>> > > 1 file changed, 10 insertions(+)
>> > >
>> > > diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h
>> > > index 2af9769..c7595a5 100644
>> > > --- a/include/drm/drm_edid.h
>> > > +++ b/include/drm/drm_edid.h
>> > > @@ -403,6 +403,16 @@ static inline int drm_eld_size(const uint8_t *eld)
>> > > return DRM_ELD_HEADER_BLOCK_SIZE + eld[DRM_ELD_BASELINE_ELD_LEN] * 4;
>> > > }
>> > >
>> > > +/**
>> > > + * drm_eld_get_conn_type - Get device type hdmi/dp connected
>> > > + * @eld: pointer to an eld memory structure
>> > > + */
>> > > +static inline int drm_eld_get_conn_type(const uint8_t *eld)
>> > > +{
>> > > + return (eld[DRM_ELD_SAD_COUNT_CONN_TYPE] & DRM_ELD_CONN_TYPE_MASK) >>
>> > > + DRM_ELD_CONN_TYPE_SHIFT;
>> > > +}
>> >
>> > I'm not sure how much this helps when the caller still needs to
>> > magically know what the return value means... Indeed the next patch
>> > with /* 0 is hdmi and 1 is DP */ and "conn_type == 0" is a bit ugly.
>> >
>> > How about just not shifting the return value, and using
>> > DRM_ELD_CONN_TYPE_HDMI and DRM_ELD_CONN_TYPE_DP in the caller? Bonus
>> > points for referencing those in the kernel-doc above.
>>
>> We already have a similar function for detecting HDMI vs. DVI (see the
>> drm_detect_hdmi_monitor()), so perhaps adhering to that convention might
>> be preferable. This could be:
>>
>> static inline bool drm_eld_detect_dp(const u8 *eld)
>> {
>> u8 type = eld[DRM_ELD_SAD_COUNT_CONN_TYPE] & DRM_ELD_CONN_TYPE_MASK;
>>
>> return type == DRM_ELD_CONN_TYPE_DP;
>> }
>
> With this approach it needs two APIs to be added for HDMI or DP
> detection. So I prefer what Jani suggested and caller compares
> whether it is HDMI/DP connection type. Will updae the kernel doc
> for the same as well.
I presume Thierry means you'd assume HDMI if drm_eld_detect_dp() returns
false.
I'm fine with either approach.
BR,
Jani.
>
>>
>> Thierry
>
>
>
>> _______________________________________________
>> Alsa-devel mailing list
>> Alsa-devel@alsa-project.org
>> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [alsa-devel] [PATCH 12/15] drm/edid: Add API to help find connection type
2015-12-03 11:09 ` Jani Nikula
@ 2015-12-03 11:21 ` Thierry Reding
2015-12-03 17:14 ` Subhransu S. Prusty
0 siblings, 1 reply; 9+ messages in thread
From: Thierry Reding @ 2015-12-03 11:21 UTC (permalink / raw)
To: Jani Nikula
Cc: alsa-devel, patches.audio, lgirdwood, dri-devel, Vinod Koul,
broonie, Daniel Vetter, Subhransu S. Prusty
[-- Attachment #1.1: Type: text/plain, Size: 3503 bytes --]
On Thu, Dec 03, 2015 at 01:09:16PM +0200, Jani Nikula wrote:
> On Thu, 03 Dec 2015, "Subhransu S. Prusty" <subhransu.s.prusty@intel.com> wrote:
> > On Wed, Dec 02, 2015 at 06:07:01PM +0100, Thierry Reding wrote:
> >> On Wed, Dec 02, 2015 at 11:53:02AM +0200, Jani Nikula wrote:
> >> > On Tue, 01 Dec 2015, "Subhransu S. Prusty" <subhransu.s.prusty@intel.com> wrote:
> >> > > To fill the audio infoframe it is required to identify the connection type
> >> > > as DP or HDMI. So parse the required bits in ELD to find the connection
> >> > > type.
> >> > >
> >> > > Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
> >> > > Signed-off-by: Vinod Koul <vinod.koul@intel.com>
> >> > > Cc: David Airlie <airlied@linux.ie>
> >> > > Cc: dri-devel@lists.freedesktop.org
> >> > > Cc: Daniel Vetter <daniel.vetter@intel.com>
> >> > > ---
> >> > > include/drm/drm_edid.h | 10 ++++++++++
> >> > > 1 file changed, 10 insertions(+)
> >> > >
> >> > > diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h
> >> > > index 2af9769..c7595a5 100644
> >> > > --- a/include/drm/drm_edid.h
> >> > > +++ b/include/drm/drm_edid.h
> >> > > @@ -403,6 +403,16 @@ static inline int drm_eld_size(const uint8_t *eld)
> >> > > return DRM_ELD_HEADER_BLOCK_SIZE + eld[DRM_ELD_BASELINE_ELD_LEN] * 4;
> >> > > }
> >> > >
> >> > > +/**
> >> > > + * drm_eld_get_conn_type - Get device type hdmi/dp connected
> >> > > + * @eld: pointer to an eld memory structure
> >> > > + */
> >> > > +static inline int drm_eld_get_conn_type(const uint8_t *eld)
> >> > > +{
> >> > > + return (eld[DRM_ELD_SAD_COUNT_CONN_TYPE] & DRM_ELD_CONN_TYPE_MASK) >>
> >> > > + DRM_ELD_CONN_TYPE_SHIFT;
> >> > > +}
> >> >
> >> > I'm not sure how much this helps when the caller still needs to
> >> > magically know what the return value means... Indeed the next patch
> >> > with /* 0 is hdmi and 1 is DP */ and "conn_type == 0" is a bit ugly.
> >> >
> >> > How about just not shifting the return value, and using
> >> > DRM_ELD_CONN_TYPE_HDMI and DRM_ELD_CONN_TYPE_DP in the caller? Bonus
> >> > points for referencing those in the kernel-doc above.
> >>
> >> We already have a similar function for detecting HDMI vs. DVI (see the
> >> drm_detect_hdmi_monitor()), so perhaps adhering to that convention might
> >> be preferable. This could be:
> >>
> >> static inline bool drm_eld_detect_dp(const u8 *eld)
> >> {
> >> u8 type = eld[DRM_ELD_SAD_COUNT_CONN_TYPE] & DRM_ELD_CONN_TYPE_MASK;
> >>
> >> return type == DRM_ELD_CONN_TYPE_DP;
> >> }
> >
> > With this approach it needs two APIs to be added for HDMI or DP
> > detection. So I prefer what Jani suggested and caller compares
> > whether it is HDMI/DP connection type. Will updae the kernel doc
> > for the same as well.
>
> I presume Thierry means you'd assume HDMI if drm_eld_detect_dp() returns
> false.
Yes, that's what I was implying. This is probably highly subjective, but
I personally find boolean return values much easier to deal with because
of the limited set of values. With drm_eld_get_conn_type() you'd need to
explicitly check == DRM_ELD_CONN_TYPE_HDMI and == DRM_ELD_CONN_TYPE_DP
and then still have special code to reject all other values. Unless of
course if you consider != DRM_ELD_CONN_TYPE_DP as being HDMI, in which
case a boolean is much more concise.
But like I said, this is just my opinion, and I don't feel strongly
enough to object to the current patch.
Thierry
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
[-- Attachment #2: Type: text/plain, Size: 159 bytes --]
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [alsa-devel] [PATCH 12/15] drm/edid: Add API to help find connection type
2015-12-02 17:07 ` Thierry Reding
@ 2015-12-03 16:08 ` Subhransu S. Prusty
2015-12-03 11:09 ` Jani Nikula
0 siblings, 1 reply; 9+ messages in thread
From: Subhransu S. Prusty @ 2015-12-03 16:08 UTC (permalink / raw)
To: Thierry Reding
Cc: alsa-devel, patches.audio, lgirdwood, dri-devel, Vinod Koul,
broonie, Daniel Vetter
On Wed, Dec 02, 2015 at 06:07:01PM +0100, Thierry Reding wrote:
> On Wed, Dec 02, 2015 at 11:53:02AM +0200, Jani Nikula wrote:
> > On Tue, 01 Dec 2015, "Subhransu S. Prusty" <subhransu.s.prusty@intel.com> wrote:
> > > To fill the audio infoframe it is required to identify the connection type
> > > as DP or HDMI. So parse the required bits in ELD to find the connection
> > > type.
> > >
> > > Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
> > > Signed-off-by: Vinod Koul <vinod.koul@intel.com>
> > > Cc: David Airlie <airlied@linux.ie>
> > > Cc: dri-devel@lists.freedesktop.org
> > > Cc: Daniel Vetter <daniel.vetter@intel.com>
> > > ---
> > > include/drm/drm_edid.h | 10 ++++++++++
> > > 1 file changed, 10 insertions(+)
> > >
> > > diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h
> > > index 2af9769..c7595a5 100644
> > > --- a/include/drm/drm_edid.h
> > > +++ b/include/drm/drm_edid.h
> > > @@ -403,6 +403,16 @@ static inline int drm_eld_size(const uint8_t *eld)
> > > return DRM_ELD_HEADER_BLOCK_SIZE + eld[DRM_ELD_BASELINE_ELD_LEN] * 4;
> > > }
> > >
> > > +/**
> > > + * drm_eld_get_conn_type - Get device type hdmi/dp connected
> > > + * @eld: pointer to an eld memory structure
> > > + */
> > > +static inline int drm_eld_get_conn_type(const uint8_t *eld)
> > > +{
> > > + return (eld[DRM_ELD_SAD_COUNT_CONN_TYPE] & DRM_ELD_CONN_TYPE_MASK) >>
> > > + DRM_ELD_CONN_TYPE_SHIFT;
> > > +}
> >
> > I'm not sure how much this helps when the caller still needs to
> > magically know what the return value means... Indeed the next patch
> > with /* 0 is hdmi and 1 is DP */ and "conn_type == 0" is a bit ugly.
> >
> > How about just not shifting the return value, and using
> > DRM_ELD_CONN_TYPE_HDMI and DRM_ELD_CONN_TYPE_DP in the caller? Bonus
> > points for referencing those in the kernel-doc above.
>
> We already have a similar function for detecting HDMI vs. DVI (see the
> drm_detect_hdmi_monitor()), so perhaps adhering to that convention might
> be preferable. This could be:
>
> static inline bool drm_eld_detect_dp(const u8 *eld)
> {
> u8 type = eld[DRM_ELD_SAD_COUNT_CONN_TYPE] & DRM_ELD_CONN_TYPE_MASK;
>
> return type == DRM_ELD_CONN_TYPE_DP;
> }
With this approach it needs two APIs to be added for HDMI or DP
detection. So I prefer what Jani suggested and caller compares
whether it is HDMI/DP connection type. Will updae the kernel doc
for the same as well.
>
> Thierry
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
--
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [alsa-devel] [PATCH 12/15] drm/edid: Add API to help find connection type
2015-12-03 11:21 ` Thierry Reding
@ 2015-12-03 17:14 ` Subhransu S. Prusty
0 siblings, 0 replies; 9+ messages in thread
From: Subhransu S. Prusty @ 2015-12-03 17:14 UTC (permalink / raw)
To: Thierry Reding
Cc: alsa-devel, patches.audio, lgirdwood, dri-devel, Vinod Koul,
broonie, Daniel Vetter
On Thu, Dec 03, 2015 at 12:21:42PM +0100, Thierry Reding wrote:
> On Thu, Dec 03, 2015 at 01:09:16PM +0200, Jani Nikula wrote:
> > On Thu, 03 Dec 2015, "Subhransu S. Prusty" <subhransu.s.prusty@intel.com> wrote:
> > > On Wed, Dec 02, 2015 at 06:07:01PM +0100, Thierry Reding wrote:
> > >> On Wed, Dec 02, 2015 at 11:53:02AM +0200, Jani Nikula wrote:
> > >> > On Tue, 01 Dec 2015, "Subhransu S. Prusty" <subhransu.s.prusty@intel.com> wrote:
> > >> > > To fill the audio infoframe it is required to identify the connection type
> > >> > > as DP or HDMI. So parse the required bits in ELD to find the connection
> > >> > > type.
> > >> > >
> > >> > > Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
> > >> > > Signed-off-by: Vinod Koul <vinod.koul@intel.com>
> > >> > > Cc: David Airlie <airlied@linux.ie>
> > >> > > Cc: dri-devel@lists.freedesktop.org
> > >> > > Cc: Daniel Vetter <daniel.vetter@intel.com>
> > >> > > ---
> > >> > > include/drm/drm_edid.h | 10 ++++++++++
> > >> > > 1 file changed, 10 insertions(+)
> > >> > >
> > >> > > diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h
> > >> > > index 2af9769..c7595a5 100644
> > >> > > --- a/include/drm/drm_edid.h
> > >> > > +++ b/include/drm/drm_edid.h
> > >> > > @@ -403,6 +403,16 @@ static inline int drm_eld_size(const uint8_t *eld)
> > >> > > return DRM_ELD_HEADER_BLOCK_SIZE + eld[DRM_ELD_BASELINE_ELD_LEN] * 4;
> > >> > > }
> > >> > >
> > >> > > +/**
> > >> > > + * drm_eld_get_conn_type - Get device type hdmi/dp connected
> > >> > > + * @eld: pointer to an eld memory structure
> > >> > > + */
> > >> > > +static inline int drm_eld_get_conn_type(const uint8_t *eld)
> > >> > > +{
> > >> > > + return (eld[DRM_ELD_SAD_COUNT_CONN_TYPE] & DRM_ELD_CONN_TYPE_MASK) >>
> > >> > > + DRM_ELD_CONN_TYPE_SHIFT;
> > >> > > +}
> > >> >
> > >> > I'm not sure how much this helps when the caller still needs to
> > >> > magically know what the return value means... Indeed the next patch
> > >> > with /* 0 is hdmi and 1 is DP */ and "conn_type == 0" is a bit ugly.
> > >> >
> > >> > How about just not shifting the return value, and using
> > >> > DRM_ELD_CONN_TYPE_HDMI and DRM_ELD_CONN_TYPE_DP in the caller? Bonus
> > >> > points for referencing those in the kernel-doc above.
> > >>
> > >> We already have a similar function for detecting HDMI vs. DVI (see the
> > >> drm_detect_hdmi_monitor()), so perhaps adhering to that convention might
> > >> be preferable. This could be:
> > >>
> > >> static inline bool drm_eld_detect_dp(const u8 *eld)
> > >> {
> > >> u8 type = eld[DRM_ELD_SAD_COUNT_CONN_TYPE] & DRM_ELD_CONN_TYPE_MASK;
> > >>
> > >> return type == DRM_ELD_CONN_TYPE_DP;
> > >> }
> > >
> > > With this approach it needs two APIs to be added for HDMI or DP
> > > detection. So I prefer what Jani suggested and caller compares
> > > whether it is HDMI/DP connection type. Will updae the kernel doc
> > > for the same as well.
> >
> > I presume Thierry means you'd assume HDMI if drm_eld_detect_dp() returns
> > false.
>
> Yes, that's what I was implying. This is probably highly subjective, but
> I personally find boolean return values much easier to deal with because
> of the limited set of values. With drm_eld_get_conn_type() you'd need to
> explicitly check == DRM_ELD_CONN_TYPE_HDMI and == DRM_ELD_CONN_TYPE_DP
> and then still have special code to reject all other values. Unless of
I don't know what does the second bit mean in the connection type. So was
just planning to reject anything other that DP/HDMI. If that bit doesn't
carry any information, then yes I would also prefer returning a boolean.
> course if you consider != DRM_ELD_CONN_TYPE_DP as being HDMI, in which
> case a boolean is much more concise.
>
> But like I said, this is just my opinion, and I don't feel strongly
> enough to object to the current patch.
>
> Thierry
--
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2015-12-03 11:43 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-01 17:42 [PATCH 00/15] ASoC: hdac_hdmi: Add DP & notification support Subhransu S. Prusty
[not found] ` <1448992031-8271-1-git-send-email-subhransu.s.prusty@intel.com>
2015-12-01 17:47 ` [PATCH 12/15] drm/edid: Add API to help find connection type Subhransu S. Prusty
2015-12-02 9:53 ` Jani Nikula
2015-12-02 17:07 ` Thierry Reding
2015-12-03 16:08 ` [alsa-devel] " Subhransu S. Prusty
2015-12-03 11:09 ` Jani Nikula
2015-12-03 11:21 ` Thierry Reding
2015-12-03 17:14 ` Subhransu S. Prusty
2015-12-02 17:16 ` Subhransu S. Prusty
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox