> Date: Sat, 4 Jun 2011 22:43:04 +0200 > From: Christian Weisgerber <[email protected]> > > I put a Sweex SC015 cmpci(4) card that I had successfully tested > on amd64 into a sparc64 and got an unaligned access panic. > > The problem is that we use bus_space_{read,write}_4() to access a > register at 0x92. Instead, assume it's a 32-bit register at 0x90 > like the other registers and in agreement with the Linux driver: > http://lxr.linux.no/#linux+v2.6.39/sound/pci/cmipci.c#L368 > > With this I can play stereo audio over analog and S/PDIF on the > sparc64. > > ok?
makes sense to me; ok kettenis@ > Index: cmpcireg.h > =================================================================== > RCS file: /cvs/src/sys/dev/pci/cmpcireg.h,v > retrieving revision 1.4 > diff -u -p -r1.4 cmpcireg.h > --- cmpcireg.h 6 May 2009 22:25:57 -0000 1.4 > +++ cmpcireg.h 4 Jun 2011 19:28:46 -0000 > @@ -230,8 +230,8 @@ > #define CMPCI_REG_DMA1_BYTES 0x8C > #define CMPCI_REG_DMA1_SAMPLES 0x8E > > -#define CMPCI_REG_8768_MISC 0x92 > -#define CMPCI_REG_CHB3D8C 0x20 > +#define CMPCI_REG_8768_MISC 0x90 > +#define CMPCI_REG_CHB3D8C 0x00200000 > > /* sample rate */ > #define CMPCI_REG_RATE_5512 0
