Thread (11 messages) 11 messages, 3 authors, 2023-05-16

Re: [PATCH v7 1/7] fbdev/hitfb: Cast I/O offset to address

From: Thomas Zimmermann <tzimmermann@suse.de>
Date: 2023-05-12 11:45:35
Also in: dri-devel, linux-arch, linux-m68k, lkml, loongarch, sparclinux

Hi

Am 12.05.23 um 13:16 schrieb David Laight:
From: Thomas Zimmermann
quoted
Sent: 12 May 2023 11:25

Cast I/O offsets to pointers to use them with I/O functions. The I/O
functions expect pointers of type 'volatile void __iomem *', but the
offsets are plain integers. Build warnings are

   ../drivers/video/fbdev/hitfb.c: In function 'hitfb_accel_wait':
   ../arch/x86/include/asm/hd64461.h:18:33: warning: passing argument 1 of 'fb_readw' makes pointer
from integer without a cast [-Wint-conversion]
    18 | #define HD64461_IO_OFFSET(x)    (HD64461_IOBASE + (x))
       |                                 ^~~~~~~~~~~~~~~~~~~~~~
...
quoted
    52 | static inline u16 fb_readw(const volatile void __iomem *addr)
       |                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~

This patch only fixes the build warnings. It's not clear if the I/O
offsets can legally be passed to the I/O helpers. It was apparently
broken in 2007 when custom inw()/outw() helpers got removed by
commit 34a780a0afeb ("sh: hp6xx pata_platform support."). Fixing the
driver would require setting the I/O base address.
Did you try changing the definition of HD64461_IOBASE to include
a (volatile void __iomem *) cast?
I thought about it, but didn't try it. I didn't want bend the meaning of 
OFFSET and IOBASE too much. They sound like integer constants to me.
A lot less churn...

I'm guessing that 'sh' deosn't have in/out instructions so this
is something that is always mapped at a fixed kernel virtual address?
No idea. I cannot try the driver and was only able to build it by 
hacking up something that makes COMPILE_TEST work.

The current patch seemed like the safest bet, even with the churn.

Best regards
Thomas
	David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help