lkml.org 
[lkml]   [2019]   [Aug]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v7 7/9] drm: tegra: use cec_notifier_conn_(un)register
    From
    Date
    On 8/14/19 12:45 PM, Dariusz Marcinkiewicz wrote:
    > Use the new cec_notifier_conn_(un)register() functions to
    > (un)register the notifier for the HDMI connector, and fill in
    > the cec_connector_info.
    >
    > Changes since v4:
    > - only create a CEC notifier for HDMI connectors
    >
    > Signed-off-by: Dariusz Marcinkiewicz <darekm@google.com>
    > Tested-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>

    Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>

    Regards,

    Hans

    > ---
    > drivers/gpu/drm/tegra/output.c | 28 +++++++++++++++++++++-------
    > 1 file changed, 21 insertions(+), 7 deletions(-)
    >
    > diff --git a/drivers/gpu/drm/tegra/output.c b/drivers/gpu/drm/tegra/output.c
    > index bdcaa4c7168cf..34373734ff689 100644
    > --- a/drivers/gpu/drm/tegra/output.c
    > +++ b/drivers/gpu/drm/tegra/output.c
    > @@ -70,6 +70,11 @@ tegra_output_connector_detect(struct drm_connector *connector, bool force)
    >
    > void tegra_output_connector_destroy(struct drm_connector *connector)
    > {
    > + struct tegra_output *output = connector_to_output(connector);
    > +
    > + if (output->cec)
    > + cec_notifier_conn_unregister(output->cec);
    > +
    > drm_connector_unregister(connector);
    > drm_connector_cleanup(connector);
    > }
    > @@ -163,18 +168,11 @@ int tegra_output_probe(struct tegra_output *output)
    > disable_irq(output->hpd_irq);
    > }
    >
    > - output->cec = cec_notifier_get(output->dev);
    > - if (!output->cec)
    > - return -ENOMEM;
    > -
    > return 0;
    > }
    >
    > void tegra_output_remove(struct tegra_output *output)
    > {
    > - if (output->cec)
    > - cec_notifier_put(output->cec);
    > -
    > if (output->hpd_gpio)
    > free_irq(output->hpd_irq, output);
    >
    > @@ -184,6 +182,7 @@ void tegra_output_remove(struct tegra_output *output)
    >
    > int tegra_output_init(struct drm_device *drm, struct tegra_output *output)
    > {
    > + int connector_type;
    > int err;
    >
    > if (output->panel) {
    > @@ -199,6 +198,21 @@ int tegra_output_init(struct drm_device *drm, struct tegra_output *output)
    > if (output->hpd_gpio)
    > enable_irq(output->hpd_irq);
    >
    > + connector_type = output->connector.connector_type;
    > + /*
    > + * Create a CEC notifier for HDMI connector.
    > + */
    > + if (connector_type == DRM_MODE_CONNECTOR_HDMIA ||
    > + connector_type == DRM_MODE_CONNECTOR_HDMIB) {
    > + struct cec_connector_info conn_info;
    > +
    > + cec_fill_conn_info_from_drm(&conn_info, &output->connector);
    > + output->cec = cec_notifier_conn_register(output->dev, NULL,
    > + &conn_info);
    > + if (!output->cec)
    > + return -ENOMEM;
    > + }
    > +
    > return 0;
    > }
    >
    >

    \
     
     \ /
      Last update: 2019-08-19 11:36    [W:4.183 / U:1.424 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site