From: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
To: "daniel@ffwll.ch" <daniel@ffwll.ch>
Cc: "dri-devel@lists.freedesktop.org"
<dri-devel@lists.freedesktop.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"airlied@linux.ie" <airlied@linux.ie>
Subject: Re: [PATCH 1/3] drm: introduce drm_connector_plug_all() helper
Date: Fri, 18 Mar 2016 21:58:49 +0000 [thread overview]
Message-ID: <1458338329.2994.8.camel@synopsys.com> (raw)
In-Reply-To: <20160318180609.GM14170@phenom.ffwll.local>
Hi Daniel,
On Fri, 2016-03-18 at 19:06 +0100, Daniel Vetter wrote:
> On Fri, Mar 18, 2016 at 01:01:42PM +0300, Alexey Brodkin wrote:
> >
> > As a pair to already existing drm_connector_unplug_all() we're adding
> > generic implementation of what is already done in some drivers.
> >
> > Once this helper is implemented we'll be ready to switch existing
> > driver-specific implementations with generic one.
> >
> > Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> > Cc: Daniel Vetter <daniel@ffwll.ch>
> > Cc: David Airlie <airlied@linux.ie>
> > ---
> > drivers/gpu/drm/drm_crtc.c | 44 +++++++++++++++++++++++++++++++++++++++++++-
> > drivers/gpu/drm/drm_drv.c | 3 ++-
> > include/drm/drm_crtc.h | 3 ++-
> > 3 files changed, 47 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
> > index 65258ac..ce27420 100644
> > --- a/drivers/gpu/drm/drm_crtc.c
> > +++ b/drivers/gpu/drm/drm_crtc.c
> > @@ -1080,6 +1080,46 @@ void drm_connector_unregister(struct drm_connector *connector)
> > }
> > EXPORT_SYMBOL(drm_connector_unregister);
> >
> > +/**
> > + * drm_connector_plug_all - register connector userspace interfaces
> > + * @dev: drm device
> > + *
> > + * This function registers all connector userspace interfaces in sysfs. Should
> > + * be call when the device is disconnected, e.g. from an usb driver's
> Still talks about disconnect ;-) Please also mention that this just calls
> drm_connector_register() exactly like this including () to generate a
> kerneldoc hyperlink.
Well I intentionally left in description of drm_connector_register_all():
"Should be call when the device is disconnected, e.g. from an usb driver's
->connect callback."
I did mean it. Or is this statement is incorrect and example of invocation of
drm_connector_register_all() should be different? Which one works better then?
> >
> > + * ->connect callback.
> Returns: section is missing, specifying how this can fail. Just copy the
> one from connector_register().
Yeah, correct. Blind copy-paste doesn't work equally good always :(
> >
> > + */
> > +int drm_connector_plug_all(struct drm_device *dev)
> > +{
> > + struct drm_connector *connector, *failed;
> > + int ret;
> > +
> > + mutex_lock(&dev->mode_config.mutex);
> > +
> > + list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
> for_each_connector here please. And the s/plug/register/ naming discussion
> we've had.
Ok.
> >
> > + ret = drm_connector_register(connector);
> > + if (ret) {
> > + failed = connector;
> > + goto err;
> > + }
> > + }
> > +
> > + mutex_unlock(&dev->mode_config.mutex);
> > +
> > + return 0;
> > +
> > +err:
> > + list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
> > + if (failed == connector)
> > + break;
> > +
> > + drm_connector_unregister(connector);
> > + }
> > +
> > + mutex_unlock(&dev->mode_config.mutex);
> > +
> > + return ret;
> > +}
> > +EXPORT_SYMBOL(drm_connector_plug_all);
> >
> > /**
> > * drm_connector_unplug_all - unregister connector userspace interfaces
> > @@ -1093,10 +1133,12 @@ void drm_connector_unplug_all(struct drm_device *dev)
> > {
> > struct drm_connector *connector;
> >
> > - /* FIXME: taking the mode config mutex ends up in a clash with sysfs */
> > + mutex_lock(&dev->mode_config.mutex);
> You can't drop that FIXME, the bug is still there.
That's clear given your explanation in the previous email.
> >
> > +
> > list_for_each_entry(connector, &dev->mode_config.connector_list, head)
> > drm_connector_unregister(connector);
> >
> > + mutex_unlock(&dev->mode_config.mutex);
> > }
> > EXPORT_SYMBOL(drm_connector_unplug_all);
> >
> > diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
> > index 167c8d3..4a559c6 100644
> > --- a/drivers/gpu/drm/drm_drv.c
> > +++ b/drivers/gpu/drm/drm_drv.c
> > @@ -715,7 +715,8 @@ EXPORT_SYMBOL(drm_dev_unref);
> > *
> > * Register the DRM device @dev with the system, advertise device to user-space
> > * and start normal device operation. @dev must be allocated via drm_dev_alloc()
> > - * previously.
> > + * previously and right after drm_dev_register() driver should call
> It'd do 2 sentences here for simplicity, not connect them with and. Also
> "... _the_ driver should ..."
Ok.
> >
> > + * drm_connector_plug_all() to register all connectors in sysfs.
> Maybe mention why this is separate: "This is a separate call for backwards
> compatibility with drivers still using the deprecated ->load() callback,
> where connectors are registered from within the ->load() callback."
Ok.
-Alexey
next prev parent reply other threads:[~2016-03-18 21:58 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-18 10:01 [PATCH 0/3] drm: introduce drm_connector_plug_all() helper Alexey Brodkin
2016-03-18 10:01 ` [PATCH 1/3] " Alexey Brodkin
2016-03-18 18:06 ` Daniel Vetter
2016-03-18 18:06 ` Daniel Vetter
2016-03-18 21:58 ` Alexey Brodkin [this message]
2016-03-19 10:02 ` Daniel Vetter
2016-03-19 10:02 ` Daniel Vetter
2016-03-21 11:02 ` Alexey Brodkin
2016-03-21 17:12 ` Daniel Vetter
2016-03-18 10:01 ` [PATCH 2/3] drm: atmel_hldc - use generic " Alexey Brodkin
2016-03-18 10:01 ` [PATCH 3/3] drm: rcar-du " Alexey Brodkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1458338329.2994.8.camel@synopsys.com \
--to=alexey.brodkin@synopsys.com \
--cc=airlied@linux.ie \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.