[PATCH] drm/i2c: tda998x: Choose between atomic or non atomic dpms helper
Liviu.Dudau at arm.com
Liviu.Dudau at arm.com
Thu Feb 25 10:20:27 UTC 2016
On Thu, Feb 25, 2016 at 12:09:39PM +0200, Jyri Sarha wrote:
> Hi,
> Based on discussion around this patch:
>
> https://lists.freedesktop.org/archives/dri-devel/2016-February/100685.html
>
> I think the patch below should be applied to tda988x development branch.
> Would you take it or do you prefer some other approach?
You should send it to David Airlie after you get an Ack from Russell.
Best regards,
Liviu
>
> Best regards,
> Jyri
>
> On 01/16/16 22:17, Jyri Sarha wrote:
> >Choose between atomic or non atomic connector dpms helper. If tda998x
> >is connected to a drm driver that does not support atomic modeset
> >calling drm_atomic_helper_connector_dpms() causes a crash when the
> >connectors atomic state is not initialized. The patch implements a
> >driver specific connector dpms helper that calls
> >drm_atomic_helper_connector_dpms() if driver supports DRIVER_ATOMIC
> >and otherwise it calls the legacy drm_helper_connector_dpms().
> >
> >Fixes commit 9736e988d328 ("drm/i2c: tda998x: Add support for atomic
> >modesetting").
> >
> >Signed-off-by: Jyri Sarha <jsarha at ti.com>
> >---
> >
> >Ok, so this is the second approach to solve this issue. The first
> >attempt can be found here [1] with the follow from Liviu Dudau that
> >suggested this approach.
> >
> >It just makes me wonder if drm_atomic_helper_connector_dpms() should
> >call the legacy callback automatically if DRIVER_ATOMIC is not set or
> >at least bail out gracefully with an error message. Then again it may
> >be overkill if the tda998x is the only driver that need to support
> >both situations.
> >
> >Best regards,
> >Jyri
> >
> >[1] http://www.spinics.net/lists/dri-devel/msg98514.html
> >
> > drivers/gpu/drm/i2c/tda998x_drv.c | 10 +++++++++-
> > 1 file changed, 9 insertions(+), 1 deletion(-)
> >
> >diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c
> >index 012d36d..bb7d507 100644
> >--- a/drivers/gpu/drm/i2c/tda998x_drv.c
> >+++ b/drivers/gpu/drm/i2c/tda998x_drv.c
> >@@ -1382,8 +1382,16 @@ static void tda998x_connector_destroy(struct drm_connector *connector)
> > drm_connector_cleanup(connector);
> > }
> >
> >+static int tda998x_connector_dpms(struct drm_connector *connector, int mode)
> >+{
> >+ if (drm_core_check_feature(connector->dev, DRIVER_ATOMIC))
> >+ return drm_atomic_helper_connector_dpms(connector, mode);
> >+ else
> >+ return drm_helper_connector_dpms(connector, mode);
> >+}
> >+
> > static const struct drm_connector_funcs tda998x_connector_funcs = {
> >- .dpms = drm_atomic_helper_connector_dpms,
> >+ .dpms = tda998x_connector_dpms,
> > .reset = drm_atomic_helper_connector_reset,
> > .fill_modes = drm_helper_probe_single_connector_modes,
> > .detect = tda998x_connector_detect,
> >
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
====================
| I would like to |
| fix the world, |
| but they're not |
| giving me the |
\ source code! /
---------------
¯\_(ツ)_/¯
More information about the dri-devel
mailing list