diff mbox

drm/radeon: Extended DDC Probing for Toshiba L300D Radeon Mobility X1100 HDMI-A Connector

Message ID 1313571812-31357-1-git-send-email-reimth@gmail.com (mailing list archive)
State Accepted
Headers show

Commit Message

Thomas Reim Aug. 17, 2011, 9:03 a.m. UTC
Toshiba Satellite L300D with ATI Mobility Radeon X1100 sends data
   to i2c bus for a HDMI connector that is not implemented/existent
   on the notebook's board.

   Fix by applying extented DDC probing for this connector.

   Requires [PATCH] drm/radeon: Extended DDC Probing for Connectors
   with Improperly Wired DDC Lines

   Tested for kernel 2.6.38 on Toshiba Satellite L300D notebook

   BugLink: http://bugs.launchpad.net/bugs/826677

Signed-off-by: Thomas Reim <reimth@gmail.com>
Acked-by: Chris Routh <routhy@gmail.com>
Cc: <stable@kernel.org>
---
 drivers/gpu/drm/radeon/radeon_connectors.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

Comments

Alex Deucher Aug. 17, 2011, 3:08 p.m. UTC | #1
On Wed, Aug 17, 2011 at 5:03 AM, Thomas Reim <reimth@googlemail.com> wrote:
>   Toshiba Satellite L300D with ATI Mobility Radeon X1100 sends data
>   to i2c bus for a HDMI connector that is not implemented/existent
>   on the notebook's board.

If the laptop doesn't actually have the port, it would be better to
just add a connector table quirk to just remove it.  However, the HDMI
port may be on a docking station.

Alex

>
>   Fix by applying extented DDC probing for this connector.
>
>   Requires [PATCH] drm/radeon: Extended DDC Probing for Connectors
>   with Improperly Wired DDC Lines
>
>   Tested for kernel 2.6.38 on Toshiba Satellite L300D notebook
>
>   BugLink: http://bugs.launchpad.net/bugs/826677
>
> Signed-off-by: Thomas Reim <reimth@gmail.com>
> Acked-by: Chris Routh <routhy@gmail.com>
> Cc: <stable@kernel.org>
> ---
>  drivers/gpu/drm/radeon/radeon_connectors.c |   10 ++++++++++
>  1 files changed, 10 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
> index 6d6b5f1..ef5a6f0 100644
> --- a/drivers/gpu/drm/radeon/radeon_connectors.c
> +++ b/drivers/gpu/drm/radeon/radeon_connectors.c
> @@ -464,6 +464,16 @@ static bool radeon_connector_needs_extended_probe(struct radeon_device *dev,
>                    (supported_device == ATOM_DEVICE_DFP2_SUPPORT))
>                        return true;
>        }
> +       /* TOSHIBA Satellite L300D with ATI Mobility Radeon x1100
> +        * (RS690M) sends data to i2c bus for a HDMI connector that
> +        * is not implemented */
> +       if ((dev->pdev->device == 0x791f) &&
> +           (dev->pdev->subsystem_vendor == 0x1179) &&
> +           (dev->pdev->subsystem_device == 0xff68)) {
> +               if ((connector_type == DRM_MODE_CONNECTOR_HDMIA) &&
> +                   (supported_device == ATOM_DEVICE_DFP2_SUPPORT))
> +                       return true;
> +       }
>
>        /* Default: no EDID header probe required for DDC probing */
>        return false;
> --
> 1.7.1
>
>
Thomas Reim Aug. 17, 2011, 9:18 p.m. UTC | #2
Dear Alex, 

I try to get the information from Chris. 

Were would you add the quirk? Currently we collect all these floating
chip realisations in the "requires extended DDC probing" function. But
this function just sets the related flag. If we go for a connector
specific quirk we would need to separate this laptop from the others,
wouldn't we? 

And if I remember correctly, the ECS board had also two versions: one
with HDMI connector and one without. The latter had the floating bus,
but IDs were the same.

Best regards

Thomas

Am Mittwoch, den 17.08.2011, 11:08 -0400 schrieb Alex Deucher:
> On Wed, Aug 17, 2011 at 5:03 AM, Thomas Reim <reimth@googlemail.com> wrote:
> >   Toshiba Satellite L300D with ATI Mobility Radeon X1100 sends data
> >   to i2c bus for a HDMI connector that is not implemented/existent
> >   on the notebook's board.
> 
> If the laptop doesn't actually have the port, it would be better to
> just add a connector table quirk to just remove it.  However, the HDMI
> port may be on a docking station.
> 
> Alex
> 
> >
> >   Fix by applying extented DDC probing for this connector.
> >
> >   Requires [PATCH] drm/radeon: Extended DDC Probing for Connectors
> >   with Improperly Wired DDC Lines
> >
> >   Tested for kernel 2.6.38 on Toshiba Satellite L300D notebook
> >
> >   BugLink: http://bugs.launchpad.net/bugs/826677
> >
> > Signed-off-by: Thomas Reim <reimth@gmail.com>
> > Acked-by: Chris Routh <routhy@gmail.com>
> > Cc: <stable@kernel.org>
> > ---
> >  drivers/gpu/drm/radeon/radeon_connectors.c |   10 ++++++++++
> >  1 files changed, 10 insertions(+), 0 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
> > index 6d6b5f1..ef5a6f0 100644
> > --- a/drivers/gpu/drm/radeon/radeon_connectors.c
> > +++ b/drivers/gpu/drm/radeon/radeon_connectors.c
> > @@ -464,6 +464,16 @@ static bool radeon_connector_needs_extended_probe(struct radeon_device *dev,
> >                    (supported_device == ATOM_DEVICE_DFP2_SUPPORT))
> >                        return true;
> >        }
> > +       /* TOSHIBA Satellite L300D with ATI Mobility Radeon x1100
> > +        * (RS690M) sends data to i2c bus for a HDMI connector that
> > +        * is not implemented */
> > +       if ((dev->pdev->device == 0x791f) &&
> > +           (dev->pdev->subsystem_vendor == 0x1179) &&
> > +           (dev->pdev->subsystem_device == 0xff68)) {
> > +               if ((connector_type == DRM_MODE_CONNECTOR_HDMIA) &&
> > +                   (supported_device == ATOM_DEVICE_DFP2_SUPPORT))
> > +                       return true;
> > +       }
> >
> >        /* Default: no EDID header probe required for DDC probing */
> >        return false;
> > --
> > 1.7.1
> >
> >
Thomas Reim Aug. 17, 2011, 9:48 p.m. UTC | #3
Here's the information from Chris:
Hdmi connector - no
Docking station - no
Toshiba Sattelite L300D

In the meantime I've checked Toshiba's manuals:
---
Quote:
Some models are equipped with HDMI out port than can send/receive
video, audio and control signals by connecting with external
display/audio
devices. 1080p, 720p, 576p and 480p signal formats are supported, but
actually available signal format depends on each HDMI devices. To
connect external devices, follow the steps as detailed below:
As the port operation of all HDMI (High-Definition Multimedia Interface)
monitors has not been confirmed, some HDMI monitors may not function
properly.
---

I would leave the patch as it is. There are more than 30 models
(L300D-xyz) of this laptop on the market. If we remove the connector, we
may harm other people that have a laptop with HDMI port.

If we just do extended DDC probing, people like Chris will not
experience the EDID flooding anymore. Systems with HDMI monitor
connected will not recognize the difference, as we just do an additional
quick check of the monitor's EDID header. Even in case of a wrong EDID
header, the patch is beneficial, as the EDID checksum check by drm would
fail lateron with periodic error notification and EDID dump.

Can't we go on with the proposed patch?

Best regards

Thomas


Am Mittwoch, den 17.08.2011, 23:18 +0200 schrieb Thomas Reim:
> Dear Alex, 
> 
> I try to get the information from Chris. 
> 
> Were would you add the quirk? Currently we collect all these floating
> chip realisations in the "requires extended DDC probing" function. But
> this function just sets the related flag. If we go for a connector
> specific quirk we would need to separate this laptop from the others,
> wouldn't we? 
> 
> And if I remember correctly, the ECS board had also two versions: one
> with HDMI connector and one without. The latter had the floating bus,
> but IDs were the same.
> 
> Best regards
> 
> Thomas
> 
> Am Mittwoch, den 17.08.2011, 11:08 -0400 schrieb Alex Deucher:
> > On Wed, Aug 17, 2011 at 5:03 AM, Thomas Reim <reimth@googlemail.com> wrote:
> > >   Toshiba Satellite L300D with ATI Mobility Radeon X1100 sends data
> > >   to i2c bus for a HDMI connector that is not implemented/existent
> > >   on the notebook's board.
> > 
> > If the laptop doesn't actually have the port, it would be better to
> > just add a connector table quirk to just remove it.  However, the HDMI
> > port may be on a docking station.
> > 
> > Alex
> > 
> > >
> > >   Fix by applying extented DDC probing for this connector.
> > >
> > >   Requires [PATCH] drm/radeon: Extended DDC Probing for Connectors
> > >   with Improperly Wired DDC Lines
> > >
> > >   Tested for kernel 2.6.38 on Toshiba Satellite L300D notebook
> > >
> > >   BugLink: http://bugs.launchpad.net/bugs/826677
> > >
> > > Signed-off-by: Thomas Reim <reimth@gmail.com>
> > > Acked-by: Chris Routh <routhy@gmail.com>
> > > Cc: <stable@kernel.org>
> > > ---
> > >  drivers/gpu/drm/radeon/radeon_connectors.c |   10 ++++++++++
> > >  1 files changed, 10 insertions(+), 0 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
> > > index 6d6b5f1..ef5a6f0 100644
> > > --- a/drivers/gpu/drm/radeon/radeon_connectors.c
> > > +++ b/drivers/gpu/drm/radeon/radeon_connectors.c
> > > @@ -464,6 +464,16 @@ static bool radeon_connector_needs_extended_probe(struct radeon_device *dev,
> > >                    (supported_device == ATOM_DEVICE_DFP2_SUPPORT))
> > >                        return true;
> > >        }
> > > +       /* TOSHIBA Satellite L300D with ATI Mobility Radeon x1100
> > > +        * (RS690M) sends data to i2c bus for a HDMI connector that
> > > +        * is not implemented */
> > > +       if ((dev->pdev->device == 0x791f) &&
> > > +           (dev->pdev->subsystem_vendor == 0x1179) &&
> > > +           (dev->pdev->subsystem_device == 0xff68)) {
> > > +               if ((connector_type == DRM_MODE_CONNECTOR_HDMIA) &&
> > > +                   (supported_device == ATOM_DEVICE_DFP2_SUPPORT))
> > > +                       return true;
> > > +       }
> > >
> > >        /* Default: no EDID header probe required for DDC probing */
> > >        return false;
> > > --
> > > 1.7.1
> > >
> > >
>
Alex Deucher Aug. 17, 2011, 9:49 p.m. UTC | #4
On Wed, Aug 17, 2011 at 5:18 PM, Thomas Reim <reimth@gmail.com> wrote:
> Dear Alex,
>
> I try to get the information from Chris.
>
> Were would you add the quirk? Currently we collect all these floating
> chip realisations in the "requires extended DDC probing" function. But
> this function just sets the related flag. If we go for a connector
> specific quirk we would need to separate this laptop from the others,
> wouldn't we?

There are already a number of systems with connector quirks.  See
radeon_atom_apply_quirks() in radeon_atombios.c.

>
> And if I remember correctly, the ECS board had also two versions: one
> with HDMI connector and one without. The latter had the floating bus,
> but IDs were the same.

Right, usually the HDMI port was sold as a PCIE card and a lot of
vendors sold the same board both with and without the hdmi card.

Alex

>
> Best regards
>
> Thomas
>
> Am Mittwoch, den 17.08.2011, 11:08 -0400 schrieb Alex Deucher:
>> On Wed, Aug 17, 2011 at 5:03 AM, Thomas Reim <reimth@googlemail.com> wrote:
>> >   Toshiba Satellite L300D with ATI Mobility Radeon X1100 sends data
>> >   to i2c bus for a HDMI connector that is not implemented/existent
>> >   on the notebook's board.
>>
>> If the laptop doesn't actually have the port, it would be better to
>> just add a connector table quirk to just remove it.  However, the HDMI
>> port may be on a docking station.
>>
>> Alex
>>
>> >
>> >   Fix by applying extented DDC probing for this connector.
>> >
>> >   Requires [PATCH] drm/radeon: Extended DDC Probing for Connectors
>> >   with Improperly Wired DDC Lines
>> >
>> >   Tested for kernel 2.6.38 on Toshiba Satellite L300D notebook
>> >
>> >   BugLink: http://bugs.launchpad.net/bugs/826677
>> >
>> > Signed-off-by: Thomas Reim <reimth@gmail.com>
>> > Acked-by: Chris Routh <routhy@gmail.com>
>> > Cc: <stable@kernel.org>
>> > ---
>> >  drivers/gpu/drm/radeon/radeon_connectors.c |   10 ++++++++++
>> >  1 files changed, 10 insertions(+), 0 deletions(-)
>> >
>> > diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
>> > index 6d6b5f1..ef5a6f0 100644
>> > --- a/drivers/gpu/drm/radeon/radeon_connectors.c
>> > +++ b/drivers/gpu/drm/radeon/radeon_connectors.c
>> > @@ -464,6 +464,16 @@ static bool radeon_connector_needs_extended_probe(struct radeon_device *dev,
>> >                    (supported_device == ATOM_DEVICE_DFP2_SUPPORT))
>> >                        return true;
>> >        }
>> > +       /* TOSHIBA Satellite L300D with ATI Mobility Radeon x1100
>> > +        * (RS690M) sends data to i2c bus for a HDMI connector that
>> > +        * is not implemented */
>> > +       if ((dev->pdev->device == 0x791f) &&
>> > +           (dev->pdev->subsystem_vendor == 0x1179) &&
>> > +           (dev->pdev->subsystem_device == 0xff68)) {
>> > +               if ((connector_type == DRM_MODE_CONNECTOR_HDMIA) &&
>> > +                   (supported_device == ATOM_DEVICE_DFP2_SUPPORT))
>> > +                       return true;
>> > +       }
>> >
>> >        /* Default: no EDID header probe required for DDC probing */
>> >        return false;
>> > --
>> > 1.7.1
>> >
>> >
>
>
Alex Deucher Aug. 17, 2011, 9:55 p.m. UTC | #5
On Wed, Aug 17, 2011 at 5:48 PM, Thomas Reim <reimth@gmail.com> wrote:
> Here's the information from Chris:
> Hdmi connector - no
> Docking station - no
> Toshiba Sattelite L300D
>
> In the meantime I've checked Toshiba's manuals:
> ---
> Quote:
> Some models are equipped with HDMI out port than can send/receive
> video, audio and control signals by connecting with external
> display/audio
> devices. 1080p, 720p, 576p and 480p signal formats are supported, but
> actually available signal format depends on each HDMI devices. To
> connect external devices, follow the steps as detailed below:
> As the port operation of all HDMI (High-Definition Multimedia Interface)
> monitors has not been confirmed, some HDMI monitors may not function
> properly.
> ---
>
> I would leave the patch as it is. There are more than 30 models
> (L300D-xyz) of this laptop on the market. If we remove the connector, we
> may harm other people that have a laptop with HDMI port.
>
> If we just do extended DDC probing, people like Chris will not
> experience the EDID flooding anymore. Systems with HDMI monitor
> connected will not recognize the difference, as we just do an additional
> quick check of the monitor's EDID header. Even in case of a wrong EDID
> header, the patch is beneficial, as the EDID checksum check by drm would
> fail lateron with periodic error notification and EDID dump.
>
> Can't we go on with the proposed patch?

OK, sounds fine.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

At this point we may just want to quirk ATOM_DEVICE_DFP2_SUPPORT on
all rs690/rs740 systems as this seems to be the only output that
causes problems.

Alex

>
> Best regards
>
> Thomas
>
>
> Am Mittwoch, den 17.08.2011, 23:18 +0200 schrieb Thomas Reim:
>> Dear Alex,
>>
>> I try to get the information from Chris.
>>
>> Were would you add the quirk? Currently we collect all these floating
>> chip realisations in the "requires extended DDC probing" function. But
>> this function just sets the related flag. If we go for a connector
>> specific quirk we would need to separate this laptop from the others,
>> wouldn't we?
>>
>> And if I remember correctly, the ECS board had also two versions: one
>> with HDMI connector and one without. The latter had the floating bus,
>> but IDs were the same.
>>
>> Best regards
>>
>> Thomas
>>
>> Am Mittwoch, den 17.08.2011, 11:08 -0400 schrieb Alex Deucher:
>> > On Wed, Aug 17, 2011 at 5:03 AM, Thomas Reim <reimth@googlemail.com> wrote:
>> > >   Toshiba Satellite L300D with ATI Mobility Radeon X1100 sends data
>> > >   to i2c bus for a HDMI connector that is not implemented/existent
>> > >   on the notebook's board.
>> >
>> > If the laptop doesn't actually have the port, it would be better to
>> > just add a connector table quirk to just remove it.  However, the HDMI
>> > port may be on a docking station.
>> >
>> > Alex
>> >
>> > >
>> > >   Fix by applying extented DDC probing for this connector.
>> > >
>> > >   Requires [PATCH] drm/radeon: Extended DDC Probing for Connectors
>> > >   with Improperly Wired DDC Lines
>> > >
>> > >   Tested for kernel 2.6.38 on Toshiba Satellite L300D notebook
>> > >
>> > >   BugLink: http://bugs.launchpad.net/bugs/826677
>> > >
>> > > Signed-off-by: Thomas Reim <reimth@gmail.com>
>> > > Acked-by: Chris Routh <routhy@gmail.com>
>> > > Cc: <stable@kernel.org>
>> > > ---
>> > >  drivers/gpu/drm/radeon/radeon_connectors.c |   10 ++++++++++
>> > >  1 files changed, 10 insertions(+), 0 deletions(-)
>> > >
>> > > diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
>> > > index 6d6b5f1..ef5a6f0 100644
>> > > --- a/drivers/gpu/drm/radeon/radeon_connectors.c
>> > > +++ b/drivers/gpu/drm/radeon/radeon_connectors.c
>> > > @@ -464,6 +464,16 @@ static bool radeon_connector_needs_extended_probe(struct radeon_device *dev,
>> > >                    (supported_device == ATOM_DEVICE_DFP2_SUPPORT))
>> > >                        return true;
>> > >        }
>> > > +       /* TOSHIBA Satellite L300D with ATI Mobility Radeon x1100
>> > > +        * (RS690M) sends data to i2c bus for a HDMI connector that
>> > > +        * is not implemented */
>> > > +       if ((dev->pdev->device == 0x791f) &&
>> > > +           (dev->pdev->subsystem_vendor == 0x1179) &&
>> > > +           (dev->pdev->subsystem_device == 0xff68)) {
>> > > +               if ((connector_type == DRM_MODE_CONNECTOR_HDMIA) &&
>> > > +                   (supported_device == ATOM_DEVICE_DFP2_SUPPORT))
>> > > +                       return true;
>> > > +       }
>> > >
>> > >        /* Default: no EDID header probe required for DDC probing */
>> > >        return false;
>> > > --
>> > > 1.7.1
>> > >
>> > >
>>
>
>
diff mbox

Patch

diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
index 6d6b5f1..ef5a6f0 100644
--- a/drivers/gpu/drm/radeon/radeon_connectors.c
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -464,6 +464,16 @@  static bool radeon_connector_needs_extended_probe(struct radeon_device *dev,
 		    (supported_device == ATOM_DEVICE_DFP2_SUPPORT))
 			return true;
 	}
+	/* TOSHIBA Satellite L300D with ATI Mobility Radeon x1100
+	 * (RS690M) sends data to i2c bus for a HDMI connector that
+	 * is not implemented */
+	if ((dev->pdev->device == 0x791f) &&
+	    (dev->pdev->subsystem_vendor == 0x1179) &&
+	    (dev->pdev->subsystem_device == 0xff68)) {
+		if ((connector_type == DRM_MODE_CONNECTOR_HDMIA) &&
+		    (supported_device == ATOM_DEVICE_DFP2_SUPPORT))
+			return true;
+	}
 
 	/* Default: no EDID header probe required for DDC probing */
 	return false;