Message ID | 20230801101541.900-2-tzimmermann@suse.de (mailing list archive) |
---|---|
State | Not Applicable |
Headers |
Received: from vger.kernel.org ([23.128.96.18]) by www.linuxtv.org with esmtp (Exim 4.92) (envelope-from <linux-media-owner@vger.kernel.org>) id 1qQmQC-008Lfa-Sp; Tue, 01 Aug 2023 10:16:09 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233934AbjHAKQG (ORCPT <rfc822;mkrufky@linuxtv.org> + 1 other); Tue, 1 Aug 2023 06:16:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38438 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232392AbjHAKQA (ORCPT <rfc822;linux-media@vger.kernel.org>); Tue, 1 Aug 2023 06:16:00 -0400 Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DE73212B; Tue, 1 Aug 2023 03:15:48 -0700 (PDT) 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-out1.suse.de (Postfix) with ESMTPS id 57EC121DD9; Tue, 1 Aug 2023 10:15:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1690884947; 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=oymGB6vCGc5JeQeLtqYH19E7C7qe4DJT4d3hACY0spA=; b=ZCmAM5ev9EJ6aziUSHNbrVs8SR9y/ru+22a7u1ygopnBAwNf+wDHyOhdvS4RdGNxKMqGyg 2DjxmFhCvxjODqNfZDKT686f88IGuYVBPWoEFKgY5MjUq2KHjOUKUVappGV3sEKkv0IcVz qa6zPbTHZv3HMC5J8FHUtMqF3KjLsew= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1690884947; 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=oymGB6vCGc5JeQeLtqYH19E7C7qe4DJT4d3hACY0spA=; b=mvLtEMzL+4gJD8/AoPakmsfHe82HMCC2DUC5LLbwhng6T5D2oa7i34aQhrFPCGCsI2jmlm XpWYPlYqhXgnHjDA== 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 18653139C8; Tue, 1 Aug 2023 10:15:47 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id KDgdBVPbyGQBXQAAMHmgww (envelope-from <tzimmermann@suse.de>); Tue, 01 Aug 2023 10:15:47 +0000 From: Thomas Zimmermann <tzimmermann@suse.de> To: deller@gmx.de, javierm@redhat.com, sam@ravnborg.org Cc: linux-media@vger.kernel.org, linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-geode@lists.infradead.org, linux-omap@vger.kernel.org, kvm@vger.kernel.org, Thomas Zimmermann <tzimmermann@suse.de>, Hans Verkuil <hverkuil@xs4all.nl>, Mauro Carvalho Chehab <mchehab@kernel.org> Subject: [PATCH v2 01/47] media/vivid: Use fbdev I/O helpers Date: Tue, 1 Aug 2023 12:13:06 +0200 Message-ID: <20230801101541.900-2-tzimmermann@suse.de> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230801101541.900-1-tzimmermann@suse.de> References: <20230801101541.900-1-tzimmermann@suse.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-media.vger.kernel.org> X-Mailing-List: linux-media@vger.kernel.org X-LSpam-Score: -2.5 (--) X-LSpam-Report: No, score=-2.5 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_NONE=-0.0001 autolearn=ham autolearn_force=no |
Series |
fbdev: Use I/O helpers
|
|
Commit Message
Thomas Zimmermann
Aug. 1, 2023, 10:13 a.m. UTC
Set struct fb_ops and with FB_DEFAULT_IO_OPS, fbdev's initializer for I/O memory. Sets the callbacks to the cfb_ and fb_io_ functions. Select the correct modules with Kconfig's FB_IO_HELPERS token. The macro and token set the currently selected values, so there is no functional change. v2: * updated to use _IOMEM_ tokens Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Sam Ravnborg <sam@ravnborg.org> Acked-by: Helge Deller <deller@gmx.de> Cc: Hans Verkuil <hverkuil@xs4all.nl> Cc: Mauro Carvalho Chehab <mchehab@kernel.org> --- drivers/media/test-drivers/vivid/Kconfig | 4 +--- drivers/media/test-drivers/vivid/vivid-osd.c | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-)
Comments
On 01/08/2023 12:13, Thomas Zimmermann wrote: > Set struct fb_ops and with FB_DEFAULT_IO_OPS, fbdev's initializer > for I/O memory. Sets the callbacks to the cfb_ and fb_io_ functions. > Select the correct modules with Kconfig's FB_IO_HELPERS token. > > The macro and token set the currently selected values, so there is > no functional change. > > v2: > * updated to use _IOMEM_ tokens > > Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> > Reviewed-by: Sam Ravnborg <sam@ravnborg.org> > Acked-by: Helge Deller <deller@gmx.de> > Cc: Hans Verkuil <hverkuil@xs4all.nl> > Cc: Mauro Carvalho Chehab <mchehab@kernel.org> > --- > drivers/media/test-drivers/vivid/Kconfig | 4 +--- > drivers/media/test-drivers/vivid/vivid-osd.c | 4 +--- > 2 files changed, 2 insertions(+), 6 deletions(-) > > diff --git a/drivers/media/test-drivers/vivid/Kconfig b/drivers/media/test-drivers/vivid/Kconfig > index 318799d317ba..5b08a5ad291e 100644 > --- a/drivers/media/test-drivers/vivid/Kconfig > +++ b/drivers/media/test-drivers/vivid/Kconfig > @@ -3,11 +3,9 @@ config VIDEO_VIVID > tristate "Virtual Video Test Driver" > depends on VIDEO_DEV && !SPARC32 && !SPARC64 && FB > depends on HAS_DMA > + select FB_IOMEM_HELPERS > select FONT_SUPPORT > select FONT_8x16 > - select FB_CFB_FILLRECT > - select FB_CFB_COPYAREA > - select FB_CFB_IMAGEBLIT > select VIDEOBUF2_VMALLOC > select VIDEOBUF2_DMA_CONTIG > select VIDEO_V4L2_TPG > diff --git a/drivers/media/test-drivers/vivid/vivid-osd.c b/drivers/media/test-drivers/vivid/vivid-osd.c > index 051f1805a16d..5c931b94a7b5 100644 > --- a/drivers/media/test-drivers/vivid/vivid-osd.c > +++ b/drivers/media/test-drivers/vivid/vivid-osd.c > @@ -246,12 +246,10 @@ static int vivid_fb_blank(int blank_mode, struct fb_info *info) > > static const struct fb_ops vivid_fb_ops = { > .owner = THIS_MODULE, > + FB_DEFAULT_IOMEM_OPS, This macro also sets fb_read and fb_write ops here, in addition to the cfb_* ops, based on this patch: https://lore.kernel.org/all/20230729193157.15446-2-tzimmermann@suse.de/#Z2e.:20230729193157.15446-2-tzimmermann::40suse.de:1include:linux:fb.h But those two ops were never set in this driver before. It's been ages since I last worked with this, so I can't tell whether that's good or bad, all I know is that it makes what appears to be a functional change. Can you explain a bit more? Am I missing something? Regards, Hans > .fb_check_var = vivid_fb_check_var, > .fb_set_par = vivid_fb_set_par, > .fb_setcolreg = vivid_fb_setcolreg, > - .fb_fillrect = cfb_fillrect, > - .fb_copyarea = cfb_copyarea, > - .fb_imageblit = cfb_imageblit, > .fb_cursor = NULL, > .fb_ioctl = vivid_fb_ioctl, > .fb_pan_display = vivid_fb_pan_display,
Hi Am 01.08.23 um 13:22 schrieb Hans Verkuil: > On 01/08/2023 12:13, Thomas Zimmermann wrote: >> Set struct fb_ops and with FB_DEFAULT_IO_OPS, fbdev's initializer >> for I/O memory. Sets the callbacks to the cfb_ and fb_io_ functions. >> Select the correct modules with Kconfig's FB_IO_HELPERS token. >> >> The macro and token set the currently selected values, so there is >> no functional change. >> >> v2: >> * updated to use _IOMEM_ tokens >> >> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> >> Reviewed-by: Sam Ravnborg <sam@ravnborg.org> >> Acked-by: Helge Deller <deller@gmx.de> >> Cc: Hans Verkuil <hverkuil@xs4all.nl> >> Cc: Mauro Carvalho Chehab <mchehab@kernel.org> >> --- >> drivers/media/test-drivers/vivid/Kconfig | 4 +--- >> drivers/media/test-drivers/vivid/vivid-osd.c | 4 +--- >> 2 files changed, 2 insertions(+), 6 deletions(-) >> >> diff --git a/drivers/media/test-drivers/vivid/Kconfig b/drivers/media/test-drivers/vivid/Kconfig >> index 318799d317ba..5b08a5ad291e 100644 >> --- a/drivers/media/test-drivers/vivid/Kconfig >> +++ b/drivers/media/test-drivers/vivid/Kconfig >> @@ -3,11 +3,9 @@ config VIDEO_VIVID >> tristate "Virtual Video Test Driver" >> depends on VIDEO_DEV && !SPARC32 && !SPARC64 && FB >> depends on HAS_DMA >> + select FB_IOMEM_HELPERS >> select FONT_SUPPORT >> select FONT_8x16 >> - select FB_CFB_FILLRECT >> - select FB_CFB_COPYAREA >> - select FB_CFB_IMAGEBLIT >> select VIDEOBUF2_VMALLOC >> select VIDEOBUF2_DMA_CONTIG >> select VIDEO_V4L2_TPG >> diff --git a/drivers/media/test-drivers/vivid/vivid-osd.c b/drivers/media/test-drivers/vivid/vivid-osd.c >> index 051f1805a16d..5c931b94a7b5 100644 >> --- a/drivers/media/test-drivers/vivid/vivid-osd.c >> +++ b/drivers/media/test-drivers/vivid/vivid-osd.c >> @@ -246,12 +246,10 @@ static int vivid_fb_blank(int blank_mode, struct fb_info *info) >> >> static const struct fb_ops vivid_fb_ops = { >> .owner = THIS_MODULE, >> + FB_DEFAULT_IOMEM_OPS, > > This macro also sets fb_read and fb_write ops here, in addition to the > cfb_* ops, based on this patch: > > https://lore.kernel.org/all/20230729193157.15446-2-tzimmermann@suse.de/#Z2e.:20230729193157.15446-2-tzimmermann::40suse.de:1include:linux:fb.h > > But those two ops were never set in this driver before. > > It's been ages since I last worked with this, so I can't tell whether that's > good or bad, all I know is that it makes what appears to be a functional change. > > Can you explain a bit more? Am I missing something? That change is intentional and welcome. If no fb_read/fb_write pointers are given fbdev uses them as their default. See https://elixir.bootlin.com/linux/v6.5-rc1/source/drivers/video/fbdev/core/fbmem.c#L773 and below. Once all drivers set these pointers explicitly, we can drop the default and make the helpers optional and modular. For the drivers in this patchset there's no functional change. Best regards Thomas > > Regards, > > Hans > >> .fb_check_var = vivid_fb_check_var, >> .fb_set_par = vivid_fb_set_par, >> .fb_setcolreg = vivid_fb_setcolreg, >> - .fb_fillrect = cfb_fillrect, >> - .fb_copyarea = cfb_copyarea, >> - .fb_imageblit = cfb_imageblit, >> .fb_cursor = NULL, >> .fb_ioctl = vivid_fb_ioctl, >> .fb_pan_display = vivid_fb_pan_display, >
On 01/08/2023 18:54, Thomas Zimmermann wrote: > Hi > > Am 01.08.23 um 13:22 schrieb Hans Verkuil: >> On 01/08/2023 12:13, Thomas Zimmermann wrote: >>> Set struct fb_ops and with FB_DEFAULT_IO_OPS, fbdev's initializer >>> for I/O memory. Sets the callbacks to the cfb_ and fb_io_ functions. >>> Select the correct modules with Kconfig's FB_IO_HELPERS token. >>> >>> The macro and token set the currently selected values, so there is >>> no functional change. >>> >>> v2: >>> * updated to use _IOMEM_ tokens >>> >>> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> >>> Reviewed-by: Sam Ravnborg <sam@ravnborg.org> >>> Acked-by: Helge Deller <deller@gmx.de> >>> Cc: Hans Verkuil <hverkuil@xs4all.nl> >>> Cc: Mauro Carvalho Chehab <mchehab@kernel.org> >>> --- >>> drivers/media/test-drivers/vivid/Kconfig | 4 +--- >>> drivers/media/test-drivers/vivid/vivid-osd.c | 4 +--- >>> 2 files changed, 2 insertions(+), 6 deletions(-) >>> >>> diff --git a/drivers/media/test-drivers/vivid/Kconfig b/drivers/media/test-drivers/vivid/Kconfig >>> index 318799d317ba..5b08a5ad291e 100644 >>> --- a/drivers/media/test-drivers/vivid/Kconfig >>> +++ b/drivers/media/test-drivers/vivid/Kconfig >>> @@ -3,11 +3,9 @@ config VIDEO_VIVID >>> tristate "Virtual Video Test Driver" >>> depends on VIDEO_DEV && !SPARC32 && !SPARC64 && FB >>> depends on HAS_DMA >>> + select FB_IOMEM_HELPERS >>> select FONT_SUPPORT >>> select FONT_8x16 >>> - select FB_CFB_FILLRECT >>> - select FB_CFB_COPYAREA >>> - select FB_CFB_IMAGEBLIT >>> select VIDEOBUF2_VMALLOC >>> select VIDEOBUF2_DMA_CONTIG >>> select VIDEO_V4L2_TPG >>> diff --git a/drivers/media/test-drivers/vivid/vivid-osd.c b/drivers/media/test-drivers/vivid/vivid-osd.c >>> index 051f1805a16d..5c931b94a7b5 100644 >>> --- a/drivers/media/test-drivers/vivid/vivid-osd.c >>> +++ b/drivers/media/test-drivers/vivid/vivid-osd.c >>> @@ -246,12 +246,10 @@ static int vivid_fb_blank(int blank_mode, struct fb_info *info) >>> static const struct fb_ops vivid_fb_ops = { >>> .owner = THIS_MODULE, >>> + FB_DEFAULT_IOMEM_OPS, >> >> This macro also sets fb_read and fb_write ops here, in addition to the >> cfb_* ops, based on this patch: >> >> https://lore.kernel.org/all/20230729193157.15446-2-tzimmermann@suse.de/#Z2e.:20230729193157.15446-2-tzimmermann::40suse.de:1include:linux:fb.h >> >> But those two ops were never set in this driver before. >> >> It's been ages since I last worked with this, so I can't tell whether that's >> good or bad, all I know is that it makes what appears to be a functional change. >> >> Can you explain a bit more? Am I missing something? > > That change is intentional and welcome. If no fb_read/fb_write pointers are given fbdev uses them as their default. See > > > https://elixir.bootlin.com/linux/v6.5-rc1/source/drivers/video/fbdev/core/fbmem.c#L773 > > and below. Once all drivers set these pointers explicitly, we can drop the default and make the helpers optional and modular. For the drivers in this patchset there's no functional change. Ah, that explains it! I wonder if it wouldn't be a good idea to include that information in the commit log. In any case, for this patch: Reviewed-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Regards, Hans > > Best regards > Thomas > >> >> Regards, >> >> Hans >> >>> .fb_check_var = vivid_fb_check_var, >>> .fb_set_par = vivid_fb_set_par, >>> .fb_setcolreg = vivid_fb_setcolreg, >>> - .fb_fillrect = cfb_fillrect, >>> - .fb_copyarea = cfb_copyarea, >>> - .fb_imageblit = cfb_imageblit, >>> .fb_cursor = NULL, >>> .fb_ioctl = vivid_fb_ioctl, >>> .fb_pan_display = vivid_fb_pan_display, >> >
diff --git a/drivers/media/test-drivers/vivid/Kconfig b/drivers/media/test-drivers/vivid/Kconfig index 318799d317ba..5b08a5ad291e 100644 --- a/drivers/media/test-drivers/vivid/Kconfig +++ b/drivers/media/test-drivers/vivid/Kconfig @@ -3,11 +3,9 @@ config VIDEO_VIVID tristate "Virtual Video Test Driver" depends on VIDEO_DEV && !SPARC32 && !SPARC64 && FB depends on HAS_DMA + select FB_IOMEM_HELPERS select FONT_SUPPORT select FONT_8x16 - select FB_CFB_FILLRECT - select FB_CFB_COPYAREA - select FB_CFB_IMAGEBLIT select VIDEOBUF2_VMALLOC select VIDEOBUF2_DMA_CONTIG select VIDEO_V4L2_TPG diff --git a/drivers/media/test-drivers/vivid/vivid-osd.c b/drivers/media/test-drivers/vivid/vivid-osd.c index 051f1805a16d..5c931b94a7b5 100644 --- a/drivers/media/test-drivers/vivid/vivid-osd.c +++ b/drivers/media/test-drivers/vivid/vivid-osd.c @@ -246,12 +246,10 @@ static int vivid_fb_blank(int blank_mode, struct fb_info *info) static const struct fb_ops vivid_fb_ops = { .owner = THIS_MODULE, + FB_DEFAULT_IOMEM_OPS, .fb_check_var = vivid_fb_check_var, .fb_set_par = vivid_fb_set_par, .fb_setcolreg = vivid_fb_setcolreg, - .fb_fillrect = cfb_fillrect, - .fb_copyarea = cfb_copyarea, - .fb_imageblit = cfb_imageblit, .fb_cursor = NULL, .fb_ioctl = vivid_fb_ioctl, .fb_pan_display = vivid_fb_pan_display,