From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.3 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F105DC2D0EA for ; Wed, 8 Apr 2020 08:50:58 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D0D4E2074F for ; Wed, 8 Apr 2020 08:50:58 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D0D4E2074F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 62B726E9D5; Wed, 8 Apr 2020 08:50:58 +0000 (UTC) Received: from asavdk3.altibox.net (asavdk3.altibox.net [109.247.116.14]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4DEEC6E9D5 for ; Wed, 8 Apr 2020 08:50:56 +0000 (UTC) Received: from ravnborg.org (unknown [158.248.194.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by asavdk3.altibox.net (Postfix) with ESMTPS id 26E6420027; Wed, 8 Apr 2020 10:50:51 +0200 (CEST) Date: Wed, 8 Apr 2020 10:50:44 +0200 From: Sam Ravnborg To: Thomas Zimmermann Subject: Re: [PATCH v2 10/10] drm/fb-helper: Remove return value from drm_fbdev_generic_setup() Message-ID: <20200408085044.GA23972@ravnborg.org> References: <20200408082641.590-1-tzimmermann@suse.de> <20200408082641.590-11-tzimmermann@suse.de> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20200408082641.590-11-tzimmermann@suse.de> User-Agent: Mutt/1.10.1 (2018-07-13) X-CMAE-Score: 0 X-CMAE-Analysis: v=2.3 cv=eMA9ckh1 c=1 sm=1 tr=0 a=UWs3HLbX/2nnQ3s7vZ42gw==:117 a=UWs3HLbX/2nnQ3s7vZ42gw==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=8nJEP1OIZ-IA:10 a=VwQbUJbxAAAA:8 a=7gkXJVJtAAAA:8 a=SJz97ENfAAAA:8 a=20KFwNOVAAAA:8 a=WWwATztPrksA4Y1E-tMA:9 a=QzO-csg1wH-vQt3R:21 a=suLgOCcywbrmcIq3:21 a=wPNLvfGTeEIA:10 a=AjGcO6oz07-iQ99wixmX:22 a=E9Po1WZjFZOl8hwRPBS3:22 a=vFet0B0WnEQeilDPIY6i:22 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: airlied@linux.ie, dri-devel@lists.freedesktop.org, paul@crapouillou.net, kraxel@redhat.com, emil.velikov@collabora.com, xinliang.liu@linaro.org, kong.kongxinwei@hisilicon.com, tomi.valkeinen@ti.com, chunkuang.hu@kernel.org, puck.chen@hisilicon.com, hdegoede@redhat.com, jsarha@ti.com, matthias.bgg@gmail.com, sean@poorly.run, zourongrong@gmail.com, tiantao6@hisilicon.com Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Hi Thomas. You missed my ack on the first 9 patches: https://lore.kernel.org/dri-devel/20200407101354.GA12686@ravnborg.org/ Not that it matters as others have acked/reviewed them. On Wed, Apr 08, 2020 at 10:26:41AM +0200, Thomas Zimmermann wrote: > Generic fbdev emulation is a DRM client. Drivers should invoke the > setup function, but not depend on its success. Hence remove the return > value. > = > v2: > * warn if fbdev device has not been registered yet > * document the new behavior > * convert the existing warning to the new dev_ interface > = > Signed-off-by: Thomas Zimmermann > Reviewed-by: Sam Ravnborg > Reviewed-by: Noralf Tr=F8nnes > Acked-by: Gerd Hoffmann > --- > drivers/gpu/drm/drm_fb_helper.c | 25 +++++++++++++------------ > include/drm/drm_fb_helper.h | 5 +++-- > 2 files changed, 16 insertions(+), 14 deletions(-) > = > diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_hel= per.c > index 165c8dab50797..97f5e43837486 100644 > --- a/drivers/gpu/drm/drm_fb_helper.c > +++ b/drivers/gpu/drm/drm_fb_helper.c > @@ -2169,7 +2169,9 @@ static const struct drm_client_funcs drm_fbdev_clie= nt_funcs =3D { > * @dev->mode_config.preferred_depth is used if this is = zero. > * > * This function sets up generic fbdev emulation for drivers that suppor= ts > - * dumb buffers with a virtual address and that can be mmap'ed. > + * dumb buffers with a virtual address and that can be mmap'ed. It's sup= posed > + * to run after the DRM driver registered the new DRM device with > + * drm_dev_register(). OR maybe be more explicit - something like: drm_fbdev_generic_setup() shall be called after the DRM is registered with drm_dev_register(). Either way is fine. Sam > * > * Restore, hotplug events and teardown are all taken care of. Drivers t= hat do > * suspend/resume need to call drm_fb_helper_set_suspend_unlocked() them= selves. > @@ -2186,29 +2188,30 @@ static const struct drm_client_funcs drm_fbdev_cl= ient_funcs =3D { > * Setup will be retried on the next hotplug event. > * > * The fbdev is destroyed by drm_dev_unregister(). > - * > - * Returns: > - * Zero on success or negative error code on failure. > */ > -int drm_fbdev_generic_setup(struct drm_device *dev, unsigned int preferr= ed_bpp) > +void drm_fbdev_generic_setup(struct drm_device *dev, > + unsigned int preferred_bpp) > { > struct drm_fb_helper *fb_helper; > int ret; > = > - WARN(dev->fb_helper, "fb_helper is already set!\n"); > + drm_WARN(dev, !dev->registered, "Device has not been registered.\n"); > + drm_WARN(dev, dev->fb_helper, "fb_helper is already set!\n"); > = > if (!drm_fbdev_emulation) > - return 0; > + return; > = > fb_helper =3D kzalloc(sizeof(*fb_helper), GFP_KERNEL); > - if (!fb_helper) > - return -ENOMEM; > + if (!fb_helper) { > + drm_err(dev, "Failed to allocate fb_helper\n"); > + return; > + } > = > ret =3D drm_client_init(dev, &fb_helper->client, "fbdev", &drm_fbdev_cl= ient_funcs); > if (ret) { > kfree(fb_helper); > drm_err(dev, "Failed to register client: %d\n", ret); > - return ret; > + return; > } > = > if (!preferred_bpp) > @@ -2222,8 +2225,6 @@ int drm_fbdev_generic_setup(struct drm_device *dev,= unsigned int preferred_bpp) > drm_dbg_kms(dev, "client hotplug ret=3D%d\n", ret); > = > drm_client_register(&fb_helper->client); > - > - return 0; > } > EXPORT_SYMBOL(drm_fbdev_generic_setup); > = > diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h > index 208dbf87afa3e..fb037be83997d 100644 > --- a/include/drm/drm_fb_helper.h > +++ b/include/drm/drm_fb_helper.h > @@ -269,7 +269,8 @@ int drm_fb_helper_debug_leave(struct fb_info *info); > void drm_fb_helper_lastclose(struct drm_device *dev); > void drm_fb_helper_output_poll_changed(struct drm_device *dev); > = > -int drm_fbdev_generic_setup(struct drm_device *dev, unsigned int preferr= ed_bpp); > +void drm_fbdev_generic_setup(struct drm_device *dev, > + unsigned int preferred_bpp); > #else > static inline void drm_fb_helper_prepare(struct drm_device *dev, > struct drm_fb_helper *helper, > @@ -443,7 +444,7 @@ static inline void drm_fb_helper_output_poll_changed(= struct drm_device *dev) > { > } > = > -static inline int > +static inline void > drm_fbdev_generic_setup(struct drm_device *dev, unsigned int preferred_b= pp) > { > return 0; > -- = > 2.26.0 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel