Message ID | 20231115102954.7102-21-tzimmermann@suse.de (mailing list archive) |
---|---|
State | Not Applicable |
Delegated to: | Hans Verkuil |
Headers |
Received: from am.mirrors.kernel.org ([147.75.80.249]) by www.linuxtv.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <linux-media+bounces-362-patchwork=linuxtv.org@vger.kernel.org>) id 1r3DA9-0080d0-W0 for patchwork@linuxtv.org; Wed, 15 Nov 2023 10:30:27 +0000 Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id D48901F2563F for <patchwork@linuxtv.org>; Wed, 15 Nov 2023 10:30:23 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A2AC914AB2; Wed, 15 Nov 2023 10:30:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.b="Z9uMZRoR"; dkim=permerror (0-bit key) header.d=suse.de header.i=@suse.de header.b="ZQZ4nxaz" X-Original-To: linux-media@vger.kernel.org Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net [23.128.96.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6A1911171E; Wed, 15 Nov 2023 10:30:05 +0000 (UTC) Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 94D27183; Wed, 15 Nov 2023 02:30:01 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id E9C8320509; Wed, 15 Nov 2023 10:29:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1700044199; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MkdPY1iVeLg5+M9CmVWe38fY8DrZsFQB+byTm7arYPk=; b=Z9uMZRoRamklofmUJutMya5N/kLm3XUTQ6s/xg3S/3eYTSAyUs7o8KO4CUDd25iO8mTvxQ oyWfsEg5wzNfY60dR2I9hrPBdfmPSRzu1oHlke7HXp9q99Z8uUg2k2uQWAyjQLns2VG9ec 0ySNmmQVf8zmHAreuoceammuJE6BL2Q= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1700044199; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MkdPY1iVeLg5+M9CmVWe38fY8DrZsFQB+byTm7arYPk=; b=ZQZ4nxazc/gL2ZSUj+M1vJE3esvrBxdE03UD9XARld/ItNn9aBUsfH4HptksUEzz39bghq LMwMX0YbbB+Kf5CA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id C1DAF13A6F; Wed, 15 Nov 2023 10:29:59 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id gGFyLqedVGV+UAAAMHmgww (envelope-from <tzimmermann@suse.de>); Wed, 15 Nov 2023 10:29:59 +0000 From: Thomas Zimmermann <tzimmermann@suse.de> To: deller@gmx.de, javierm@redhat.com Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, Thomas Zimmermann <tzimmermann@suse.de>, Andy Walls <awalls@md.metrocast.net>, Mauro Carvalho Chehab <mchehab@kernel.org>, linux-media@vger.kernel.org Subject: [PATCH 20/32] media/ivtvfb: Initialize fb_ops to fbdev I/O-memory helpers Date: Wed, 15 Nov 2023 11:19:25 +0100 Message-ID: <20231115102954.7102-21-tzimmermann@suse.de> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231115102954.7102-1-tzimmermann@suse.de> References: <20231115102954.7102-1-tzimmermann@suse.de> Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: <linux-media.vger.kernel.org> List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Authentication-Results: smtp-out2.suse.de; none X-Spam-Level: X-Spam-Score: -6.10 X-Spamd-Result: default: False [-6.10 / 50.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; FREEMAIL_ENVRCPT(0.00)[gmx.de]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; R_MISSING_CHARSET(2.50)[]; REPLY(-4.00)[]; BROKEN_CONTENT_TYPE(1.50)[]; NEURAL_HAM_LONG(-3.00)[-1.000]; R_RATELIMIT(0.00)[to_ip_from(RLhj387a44qpajt9e5qpoeukef)]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-1.00)[-1.000]; RCPT_COUNT_SEVEN(0.00)[8]; MID_CONTAINS_FROM(1.00)[]; FREEMAIL_TO(0.00)[gmx.de,redhat.com]; FUZZY_BLOCKED(0.00)[rspamd.com]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; BAYES_HAM(-3.00)[100.00%] X-LSpam-Score: -3.2 (---) X-LSpam-Report: No, score=-3.2 required=5.0 tests=BAYES_00=-1.9,DKIM_SIGNED=0.1,DKIM_VALID=-0.1,DKIM_VALID_AU=-0.1,HEADER_FROM_DIFFERENT_DOMAINS=0.5,MAILING_LIST_MULTI=-1,RCVD_IN_DNSWL_LOW=-0.7 autolearn=unavailable autolearn_force=no |
Series |
None
|
|
Commit Message
Thomas Zimmermann
Nov. 15, 2023, 10:19 a.m. UTC
Initialize the instance of struct fb_ops with fbdev initializer
macros for framebuffers in I/O address space. This explictily sets
the read/write, draw and mmap callbacks to the correct default
implementation.
Fbdev drivers sometimes rely on the callbacks being NULL for a
default implementation to be invoked; hence requireing the I/O
helpers to be built in any case. Setting all callbacks in all
drivers explicitly will allow to make the I/O helpers optional.
This benefits systems that do not use these functions.
Set the callbacks via macros. No functional changes.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Andy Walls <awalls@md.metrocast.net>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: linux-media@vger.kernel.org
---
drivers/media/pci/ivtv/Kconfig | 4 +---
drivers/media/pci/ivtv/ivtvfb.c | 6 +++---
2 files changed, 4 insertions(+), 6 deletions(-)
Comments
Thomas Zimmermann <tzimmermann@suse.de> writes: > Initialize the instance of struct fb_ops with fbdev initializer > macros for framebuffers in I/O address space. This explictily sets > the read/write, draw and mmap callbacks to the correct default > implementation. > > Fbdev drivers sometimes rely on the callbacks being NULL for a > default implementation to be invoked; hence requireing the I/O > helpers to be built in any case. Setting all callbacks in all > drivers explicitly will allow to make the I/O helpers optional. > This benefits systems that do not use these functions. > > Set the callbacks via macros. No functional changes. > > Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> > Cc: Andy Walls <awalls@md.metrocast.net> > Cc: Mauro Carvalho Chehab <mchehab@kernel.org> > Cc: linux-media@vger.kernel.org > --- Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Hi Thomas, On 15/11/2023 11:19, Thomas Zimmermann wrote: > Initialize the instance of struct fb_ops with fbdev initializer > macros for framebuffers in I/O address space. This explictily sets > the read/write, draw and mmap callbacks to the correct default > implementation. > > Fbdev drivers sometimes rely on the callbacks being NULL for a > default implementation to be invoked; hence requireing the I/O > helpers to be built in any case. Setting all callbacks in all > drivers explicitly will allow to make the I/O helpers optional. > This benefits systems that do not use these functions. > > Set the callbacks via macros. No functional changes. Makes sense, shall I pick up this patch? If you prefer to take it, then you can add: Reviewed-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Regards, Hans > > Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> > Cc: Andy Walls <awalls@md.metrocast.net> > Cc: Mauro Carvalho Chehab <mchehab@kernel.org> > Cc: linux-media@vger.kernel.org > --- > drivers/media/pci/ivtv/Kconfig | 4 +--- > drivers/media/pci/ivtv/ivtvfb.c | 6 +++--- > 2 files changed, 4 insertions(+), 6 deletions(-) > > diff --git a/drivers/media/pci/ivtv/Kconfig b/drivers/media/pci/ivtv/Kconfig > index 9be52101bc4f2..2498f9079b756 100644 > --- a/drivers/media/pci/ivtv/Kconfig > +++ b/drivers/media/pci/ivtv/Kconfig > @@ -48,9 +48,7 @@ config VIDEO_IVTV_ALSA > config VIDEO_FB_IVTV > tristate "Conexant cx23415 framebuffer support" > depends on VIDEO_IVTV && FB > - select FB_CFB_FILLRECT > - select FB_CFB_COPYAREA > - select FB_CFB_IMAGEBLIT > + select FB_IOMEM_HELPERS > help > This is a framebuffer driver for the Conexant cx23415 MPEG > encoder/decoder. > diff --git a/drivers/media/pci/ivtv/ivtvfb.c b/drivers/media/pci/ivtv/ivtvfb.c > index 23c8c094e791b..410477e3e6216 100644 > --- a/drivers/media/pci/ivtv/ivtvfb.c > +++ b/drivers/media/pci/ivtv/ivtvfb.c > @@ -927,17 +927,17 @@ static int ivtvfb_blank(int blank_mode, struct fb_info *info) > > static const struct fb_ops ivtvfb_ops = { > .owner = THIS_MODULE, > + .fb_read = fb_io_read, > .fb_write = ivtvfb_write, > .fb_check_var = ivtvfb_check_var, > .fb_set_par = ivtvfb_set_par, > .fb_setcolreg = ivtvfb_setcolreg, > - .fb_fillrect = cfb_fillrect, > - .fb_copyarea = cfb_copyarea, > - .fb_imageblit = cfb_imageblit, > + __FB_DEFAULT_IOMEM_OPS_DRAW, > .fb_cursor = NULL, > .fb_ioctl = ivtvfb_ioctl, > .fb_pan_display = ivtvfb_pan_display, > .fb_blank = ivtvfb_blank, > + __FB_DEFAULT_IOMEM_OPS_MMAP, > }; > > /* Restore hardware after firmware restart */
Hi Am 20.11.23 um 09:52 schrieb Hans Verkuil: > Hi Thomas, > > On 15/11/2023 11:19, Thomas Zimmermann wrote: >> Initialize the instance of struct fb_ops with fbdev initializer >> macros for framebuffers in I/O address space. This explictily sets >> the read/write, draw and mmap callbacks to the correct default >> implementation. >> >> Fbdev drivers sometimes rely on the callbacks being NULL for a >> default implementation to be invoked; hence requireing the I/O >> helpers to be built in any case. Setting all callbacks in all >> drivers explicitly will allow to make the I/O helpers optional. >> This benefits systems that do not use these functions. >> >> Set the callbacks via macros. No functional changes. > > Makes sense, shall I pick up this patch? > > If you prefer to take it, then you can add: > > Reviewed-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Thanks. The series' final patches depend on this one. I'd preferably merge it at once through drm-misc. Best regards Thomas > > Regards, > > Hans > >> >> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> >> Cc: Andy Walls <awalls@md.metrocast.net> >> Cc: Mauro Carvalho Chehab <mchehab@kernel.org> >> Cc: linux-media@vger.kernel.org >> --- >> drivers/media/pci/ivtv/Kconfig | 4 +--- >> drivers/media/pci/ivtv/ivtvfb.c | 6 +++--- >> 2 files changed, 4 insertions(+), 6 deletions(-) >> >> diff --git a/drivers/media/pci/ivtv/Kconfig b/drivers/media/pci/ivtv/Kconfig >> index 9be52101bc4f2..2498f9079b756 100644 >> --- a/drivers/media/pci/ivtv/Kconfig >> +++ b/drivers/media/pci/ivtv/Kconfig >> @@ -48,9 +48,7 @@ config VIDEO_IVTV_ALSA >> config VIDEO_FB_IVTV >> tristate "Conexant cx23415 framebuffer support" >> depends on VIDEO_IVTV && FB >> - select FB_CFB_FILLRECT >> - select FB_CFB_COPYAREA >> - select FB_CFB_IMAGEBLIT >> + select FB_IOMEM_HELPERS >> help >> This is a framebuffer driver for the Conexant cx23415 MPEG >> encoder/decoder. >> diff --git a/drivers/media/pci/ivtv/ivtvfb.c b/drivers/media/pci/ivtv/ivtvfb.c >> index 23c8c094e791b..410477e3e6216 100644 >> --- a/drivers/media/pci/ivtv/ivtvfb.c >> +++ b/drivers/media/pci/ivtv/ivtvfb.c >> @@ -927,17 +927,17 @@ static int ivtvfb_blank(int blank_mode, struct fb_info *info) >> >> static const struct fb_ops ivtvfb_ops = { >> .owner = THIS_MODULE, >> + .fb_read = fb_io_read, >> .fb_write = ivtvfb_write, >> .fb_check_var = ivtvfb_check_var, >> .fb_set_par = ivtvfb_set_par, >> .fb_setcolreg = ivtvfb_setcolreg, >> - .fb_fillrect = cfb_fillrect, >> - .fb_copyarea = cfb_copyarea, >> - .fb_imageblit = cfb_imageblit, >> + __FB_DEFAULT_IOMEM_OPS_DRAW, >> .fb_cursor = NULL, >> .fb_ioctl = ivtvfb_ioctl, >> .fb_pan_display = ivtvfb_pan_display, >> .fb_blank = ivtvfb_blank, >> + __FB_DEFAULT_IOMEM_OPS_MMAP, >> }; >> >> /* Restore hardware after firmware restart */ >
diff --git a/drivers/media/pci/ivtv/Kconfig b/drivers/media/pci/ivtv/Kconfig index 9be52101bc4f2..2498f9079b756 100644 --- a/drivers/media/pci/ivtv/Kconfig +++ b/drivers/media/pci/ivtv/Kconfig @@ -48,9 +48,7 @@ config VIDEO_IVTV_ALSA config VIDEO_FB_IVTV tristate "Conexant cx23415 framebuffer support" depends on VIDEO_IVTV && FB - select FB_CFB_FILLRECT - select FB_CFB_COPYAREA - select FB_CFB_IMAGEBLIT + select FB_IOMEM_HELPERS help This is a framebuffer driver for the Conexant cx23415 MPEG encoder/decoder. diff --git a/drivers/media/pci/ivtv/ivtvfb.c b/drivers/media/pci/ivtv/ivtvfb.c index 23c8c094e791b..410477e3e6216 100644 --- a/drivers/media/pci/ivtv/ivtvfb.c +++ b/drivers/media/pci/ivtv/ivtvfb.c @@ -927,17 +927,17 @@ static int ivtvfb_blank(int blank_mode, struct fb_info *info) static const struct fb_ops ivtvfb_ops = { .owner = THIS_MODULE, + .fb_read = fb_io_read, .fb_write = ivtvfb_write, .fb_check_var = ivtvfb_check_var, .fb_set_par = ivtvfb_set_par, .fb_setcolreg = ivtvfb_setcolreg, - .fb_fillrect = cfb_fillrect, - .fb_copyarea = cfb_copyarea, - .fb_imageblit = cfb_imageblit, + __FB_DEFAULT_IOMEM_OPS_DRAW, .fb_cursor = NULL, .fb_ioctl = ivtvfb_ioctl, .fb_pan_display = ivtvfb_pan_display, .fb_blank = ivtvfb_blank, + __FB_DEFAULT_IOMEM_OPS_MMAP, }; /* Restore hardware after firmware restart */