From d1ab37cbcc6b881aeda191745ffb2ab68506cfaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Thu, 7 Jul 2005 12:19:37 +0000 Subject: [PATCH] now avoids to use read_io* and write_io* (untested) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13525 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../kernel/drivers/audio/emuxki/emuxki.c | 2 +- src/add-ons/kernel/drivers/audio/emuxki/io.c | 40 ++++++++----------- 2 files changed, 17 insertions(+), 25 deletions(-) diff --git a/src/add-ons/kernel/drivers/audio/emuxki/emuxki.c b/src/add-ons/kernel/drivers/audio/emuxki/emuxki.c index 9224d86ca4..2942a7310d 100644 --- a/src/add-ons/kernel/drivers/audio/emuxki/emuxki.c +++ b/src/add-ons/kernel/drivers/audio/emuxki/emuxki.c @@ -65,7 +65,7 @@ const char ** publish_devices(void); device_hooks * find_device(const char *); static char pci_name[] = B_PCI_MODULE_NAME; -static pci_module_info *pci; +pci_module_info *pci; static char mpu401_name[] = B_MPU_401_MODULE_NAME; generic_mpu401_module * mpu401; diff --git a/src/add-ons/kernel/drivers/audio/emuxki/io.c b/src/add-ons/kernel/drivers/audio/emuxki/io.c index d49fb273c9..8fcd37468c 100644 --- a/src/add-ons/kernel/drivers/audio/emuxki/io.c +++ b/src/add-ons/kernel/drivers/audio/emuxki/io.c @@ -30,54 +30,46 @@ */ #include #include +#include #include "io.h" #include "emuxkireg.h" -/* - * from BeOS R3 KernelExport.h - * should be replaced by PCI bus manager functions - */ -uint8 read_io_8(int mapped_io_addr); -void write_io_8(int mapped_io_addr, uint8 value); -uint16 read_io_16(int mapped_io_addr); -void write_io_16(int mapped_io_addr, uint16 value); -uint32 read_io_32(int mapped_io_addr); -void write_io_32(int mapped_io_addr, uint32 value); +extern pci_module_info *pci; uint8 emuxki_reg_read_8(device_config *config, int regno) { - return read_io_8(config->nabmbar + regno); + return pci->read_io_8(config->nabmbar + regno); } uint16 emuxki_reg_read_16(device_config *config, int regno) { - return read_io_16(config->nabmbar + regno); + return pci->read_io_16(config->nabmbar + regno); } uint32 emuxki_reg_read_32(device_config *config, int regno) { - return read_io_32(config->nabmbar + regno); + return pci->read_io_32(config->nabmbar + regno); } void emuxki_reg_write_8(device_config *config, int regno, uint8 value) { - write_io_8(config->nabmbar + regno, value); + pci->write_io_8(config->nabmbar + regno, value); } void emuxki_reg_write_16(device_config *config, int regno, uint16 value) { - write_io_16(config->nabmbar + regno, value); + pci->write_io_16(config->nabmbar + regno, value); } void emuxki_reg_write_32(device_config *config, int regno, uint32 value) { - write_io_32(config->nabmbar + regno, value); + pci->write_io_32(config->nabmbar + regno, value); } /* Emu10k1 Low level */ @@ -96,8 +88,8 @@ emuxki_chan_read(device_config *config, uint16 chano, uint32 reg) offset = (reg >> 16) & 0x1f; mask = ((1 << size) - 1) << offset; } - write_io_32(config->nabmbar + EMU_PTR, ptr); - ptr = (read_io_32(config->nabmbar + EMU_DATA) & mask) >> offset; + pci->write_io_32(config->nabmbar + EMU_PTR, ptr); + ptr = (pci->read_io_32(config->nabmbar + EMU_DATA) & mask) >> offset; return ptr; } @@ -118,8 +110,8 @@ emuxki_chan_write(device_config *config, uint16 chano, data = ((data << offset) & mask) | (emuxki_chan_read(config, chano, reg & 0xFFFF) & ~mask); } - write_io_32(config->nabmbar + EMU_PTR, ptr); - write_io_32(config->nabmbar + EMU_DATA, data); + pci->write_io_32(config->nabmbar + EMU_PTR, ptr); + pci->write_io_32(config->nabmbar + EMU_DATA, data); } /* Microcode */ @@ -208,15 +200,15 @@ emuxki_read_gpr(device_config *config, uint32 pc) uint16 emuxki_codec_read(device_config *config, int regno) { - write_io_8(config->nabmbar + EMU_AC97ADDR, regno); - return read_io_16(config->nabmbar + EMU_AC97DATA); + pci->write_io_8(config->nabmbar + EMU_AC97ADDR, regno); + return pci->read_io_16(config->nabmbar + EMU_AC97DATA); } void emuxki_codec_write(device_config *config, int regno, uint16 value) { - write_io_8(config->nabmbar + EMU_AC97ADDR, regno); - write_io_16(config->nabmbar + EMU_AC97DATA, value); + pci->write_io_8(config->nabmbar + EMU_AC97ADDR, regno); + pci->write_io_16(config->nabmbar + EMU_AC97DATA, value); } /* inte */