Re: [PATCH 0/1] This patch fixes connection detection for monitors w/o DDC.

From: maxime.ripard@xxxxxxxxxxxxxxxxxx
Date: Thu Jul 25 2019 - 14:07:21 EST

On Thu, Jul 25, 2019 at 11:05:23AM +0000, Oleksandr Suvorov wrote:
> Even in source code of this driver there is an author's description:
> /*
> * Even if we have an I2C bus, we can't assume that the cable
> * is disconnected if drm_probe_ddc fails. Some cables don't
> * wire the DDC pins, or the I2C bus might not be working at
> * all.
> */
> That's true. DDC and VGA channels are independent, and therefore
> we cannot decide whether the monitor is connected or not,
> depending on the information from the DDC.
> So the monitor should always be considered connected.

Well, no. Like you said, we cannot decided whether is connected or

> Thus there is no reason to use connector detect callback for this
> driver: DRM sub-system considers monitor always connected if there
> is no detect() callback registered with drm_connector_init().
> How to reproduce the bug:
> * setup: i.MX8QXP, LCDIF video module + gpu/drm/mxsfb driver,
> adv712x VGA DAC + dumb-vga-dac driver, VGA-connector w/o DDC;
> * try to use drivers chain mxsfb-drm + dumb-vga-dac;
> * any DRM applications consider the monitor is not connected:
> ===========
> $ weston-start
> $ cat /var/log/weston.log
> ...
> DRM: head 'VGA-1' found, connector 32 is disconnected.
> ...
> $ cat /sys/devices/platform/5a180000.lcdif/drm/card0/card0-VGA-1/status
> unknown

And that's exactly what's being reported here: we cannot decide if it
is connected or not, so it's unknown.

If weston chooses to ignore connectors that are in an unknown state,
I'd say it's weston's problem, since it's much broader than this
particular device.


Maxime Ripard, Bootlin
Embedded Linux and Kernel engineering