From d23c78aec75f049484b6916d27b6804ce858bb2c Mon Sep 17 00:00:00 2001 From: NicJA Date: Sat, 27 Aug 2011 12:09:11 +0000 Subject: [PATCH] Fix IO memory access .. SB128 driver makes noises in VMWare - CMI is untested (Current tree doesnt boot on native machine) Probably some endian-ness fixes still needed in the interrupt code. git-svn-id: https://svn.aros.org/svn/aros/trunk/AROS@40913 fb15a70f-31f2-0310-bbcc-cdcc74a49acc --- workbench/devs/AHI/Drivers/CMI8738/pci_aros.c | 17 ++++++++--------- workbench/devs/AHI/Drivers/SB128/pci_aros.c | 20 +++++++++----------- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/workbench/devs/AHI/Drivers/CMI8738/pci_aros.c b/workbench/devs/AHI/Drivers/CMI8738/pci_aros.c index ea221f4c38..097d7d1cd5 100644 --- a/workbench/devs/AHI/Drivers/CMI8738/pci_aros.c +++ b/workbench/devs/AHI/Drivers/CMI8738/pci_aros.c @@ -1,10 +1,10 @@ #define __OOP_NOATTRBASES__ -//#include #include #include -#include +#include +#include #include #include #include @@ -20,7 +20,6 @@ struct Library *OOPBase; - static OOP_AttrBase __IHidd_PCIDev; static OOP_Object *pciobj, *irqobj; @@ -140,32 +139,32 @@ APTR ahi_pci_find_device(ULONG vendorid, ULONG deviceid, APTR dev) ULONG pci_inl(ULONG addr, struct CMI8738_DATA *card) { - return (*((ULONG *)(card->iobase + addr))); + return LONGIN(card->iobase + addr); } UWORD pci_inw(ULONG addr, struct CMI8738_DATA *card) { - return (*((UWORD *)(card->iobase + addr))); + return WORDIN(card->iobase + addr); } UBYTE pci_inb(ULONG addr, struct CMI8738_DATA *card) { - return (*((UBYTE *)(card->iobase + addr))); + return BYTEIN(card->iobase + addr); } void pci_outl(ULONG value, ULONG addr, struct CMI8738_DATA *card) { - *((ULONG *)(card->iobase + addr)) = (value); + LONGOUT(card->iobase + addr, value); } void pci_outw(UWORD value, ULONG addr, struct CMI8738_DATA *card) { - *((UWORD *)(card->iobase + addr)) = (value); + WORDOUT(card->iobase + addr, value); } void pci_outb(UBYTE value, ULONG addr, struct CMI8738_DATA *card) { - *((UBYTE *)(card->iobase + addr)) = (value); + BYTEOUT(card->iobase + addr, value); } void outb_setbits(UBYTE value, ULONG addr, struct CMI8738_DATA *card) diff --git a/workbench/devs/AHI/Drivers/SB128/pci_aros.c b/workbench/devs/AHI/Drivers/SB128/pci_aros.c index be53e11b1f..c63048de88 100644 --- a/workbench/devs/AHI/Drivers/SB128/pci_aros.c +++ b/workbench/devs/AHI/Drivers/SB128/pci_aros.c @@ -1,10 +1,9 @@ #define __OOP_NOATTRBASES__ -//#include - #include #include -#include +#include +#include #include #include #include @@ -20,7 +19,6 @@ struct Library *OOPBase; - static OOP_AttrBase __IHidd_PCIDev; static OOP_Object *pciobj, *irqobj; @@ -140,32 +138,32 @@ APTR ahi_pci_find_device(ULONG vendorid, ULONG deviceid, APTR dev) ULONG pci_inl(ULONG addr, struct SB128_DATA *card) { - return (*((ULONG *)(card->iobase + addr))); + return LONGIN(card->iobase + addr); } UWORD pci_inw(ULONG addr, struct SB128_DATA *card) { - return (*((UWORD *)(card->iobase + addr))); + return WORDIN(card->iobase + addr); } UBYTE pci_inb(ULONG addr, struct SB128_DATA *card) { - return (*((UBYTE *)(card->iobase + addr))); + return BYTEIN(card->iobase + addr); } void pci_outl(ULONG value, ULONG addr, struct SB128_DATA *card) { - *((ULONG *)(card->iobase + addr)) = (value); + LONGOUT(card->iobase + addr, value); } void pci_outw(UWORD value, ULONG addr, struct SB128_DATA *card) { - *((UWORD *)(card->iobase + addr)) = (value); + WORDOUT(card->iobase + addr, value); } void pci_outb(UBYTE value, ULONG addr, struct SB128_DATA *card) { - *((UBYTE *)(card->iobase + addr)) = (value); + BYTEOUT(card->iobase + addr, value); } void outb_setbits(UBYTE value, ULONG addr, struct SB128_DATA *card) @@ -313,7 +311,7 @@ BOOL ahi_pci_add_intserver(struct Interrupt *i, APTR dev) OOP_GetAttr((OOP_Object *)dev, aHidd_PCIDevice_INTLine, &val); inthandler.h_Node.ln_Pri = 1; - inthandler.h_Node.ln_Name = "HD Audio IRQ"; + inthandler.h_Node.ln_Name = "SB128 IRQ"; inthandler.h_Code = interrupt_code; inthandler.h_Data = i; -- 2.11.4.GIT