[PATCH:xf86-video-mga 2/2] Use correct type in function call.
Thomas Klausner
wiz at netbsd.org
Tue Jul 28 09:00:03 PDT 2015
On Tue, Feb 24, 2015 at 07:47:09AM +0100, Mark Kettenis wrote:
> > On Mon, Feb 23, 2015 at 4:28 AM, Thomas Klausner <wiz at netbsd.org> wrote:
> > > Fixes
> > > passing argument 2 of 'pci_device_cfg_read_u32' from incompatible
> > > pointer type
> > > pciaccess.h:153:5: note: expected '__uint32_t *' but argument is of type
> > > 'CARD32 *'
> > >
> > > Signed-off-by: Thomas Klausner <wiz at NetBSD.org>
> > > ---
> > > src/mga_dac3026.c | 6 +++++-
> > > 1 file changed, 5 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/src/mga_dac3026.c b/src/mga_dac3026.c
> > > index 97c2c7a..e825702 100644
> > > --- a/src/mga_dac3026.c
> > > +++ b/src/mga_dac3026.c
> > > @@ -852,8 +852,12 @@ MGA3026Save(ScrnInfoPtr pScrn, vgaRegPtr vgaReg,
> > > MGARegPtr mgaReg,
> > > mgaReg->DacRegs[i] = inTi3026(MGADACregs[i]);
> > >
> > > #ifdef XSERVER_LIBPCIACCESS
> > > - pci_device_cfg_read_u32(pMga->PciInfo, & mgaReg->Option,
> > > + {
> > > + uint32_t Option;
> > > + pci_device_cfg_read_u32(pMga->PciInfo, & Option,
> > > PCI_OPTION_REG);
> > > + mgaReg->Option = Option;
> >
> > I don't understand why the previous code generated that warning (isn't
> > __uint32_t* implicitly castable to CARD32*?)
>
> On 32-bit systems, CARD32 is "unsigned long", whereas uint32_t is usually
> "unsigned int". And since "int" and "long" might differ in size on other
> systems, the compiler (rightfully) complains.
>
> > but even so, why isn't a cast the appropriate solution?
>
> Because casts almost never are the appropriate solution if they can be
> avoided?
Anything I can do to make progress with this patch?
Thomas
More information about the xorg-devel
mailing list