Re: Status of pinnacle/fiji driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



At Sat, 17 Jun 2006 23:14:51 +0400,
Sergey Vlasov wrote:
> 
> On Thu, May 18, 2006 at 05:43:45PM +0200, Takashi Iwai wrote:
> > At Thu, 18 May 2006 11:29:14 -0400,
> > Lee Revell wrote:
> > > 
> > > Someone pointed out on IRC that this driver has bitrotted and doesn't
> > > compile with recent kernels.
> > > 
> > > alsa/alsa-driver-1.0.11/isa/msnd/msnd_pinnacle.c:117: error: expected )
> > > before string constant
> > > 
> > > I think it's due to use of MODULE_PARM which seems to have been removed?
> > 
> > Already fixed on HG repo.
> 
> With this fix the driver seems to compile, but won't load because of
> undefined symbols - trying to compile it for 2.6.17-rc6-git7 gives
> these warnings:
> 
>   CC [M]  .../isa/msnd/msnd.o
> .../isa/msnd/msnd.c: In function `snd_msnd_init_queue':
> .../isa/msnd/msnd.c:134: warning: implicit declaration of function `isa_writew'
(snip)
> Apparently the isa_* functions were removed from kernel:
> 
> http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=57f3ebccaa560d1eeb40b5c719773bed5cb0df46

Try the patch below.

> > > I also notice that this driver is not in the kernel.  Could it be added?
> > > It would allow the OSS driver to be deprecated.
> > 
> > No, the driver code is too ugly to include to kernel tree.
> 
> Does someone really maintain this driver?

Not really.  Let me know if someone can test this driver.


Takashi


diff -r 173a7e861761 isa/msnd/msnd.h
--- a/isa/msnd/msnd.h	Fri Jun 09 15:27:09 2006 +0200
+++ b/isa/msnd/msnd.h	Mon Jun 19 15:42:13 2006 +0200
@@ -280,4 +280,81 @@ int snd_msndmidi_new(struct snd_card *ca
 int snd_msndmidi_new(struct snd_card *card, int device, multisound_dev_t *dev);
 void snd_msndmidi_input_read( void * mpu);
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 17)
+static inline u8
+isa_readb(unsigned long offset)
+{
+	void __iomem *addr = ioremap(offset, 1);
+	u8 ret = readb(addr);
+	iounmap(addr);
+	return ret;
+}
+
+static inline u16
+isa_readw(unsigned long offset)
+{
+	void __iomem *addr = ioremap(offset, 2);
+	u16 ret = readw(addr);
+	iounmap(addr);
+	return ret;
+}
+
+static inline u32
+isa_readl(unsigned long offset)
+{
+	void __iomem *addr = ioremap(offset, 4);
+	u32 ret = readl(addr);
+	iounmap(addr);
+	return ret;
+}
+
+static inline void
+isa_writeb(u8 b, unsigned long offset)
+{
+	void __iomem *addr = ioremap(offset, 2);
+	writeb(b, addr);
+	iounmap(addr);
+}
+
+static inline void
+isa_writew(u16 w, unsigned long offset)
+{
+	void __iomem *addr = ioremap(offset, 2);
+	writew(w, addr);
+	iounmap(addr);
+}
+
+static inline void
+isa_writel(u32 l, unsigned long offset)
+{
+	void __iomem *addr = ioremap(offset, 4);
+	writel(l, addr);
+	iounmap(addr);
+}
+
+static inline void
+isa_memset_io(unsigned long offset, u8 val, long n)
+{
+	void __iomem *addr = ioremap(offset, n);
+	memset_io(addr, val, n);
+	iounmap(addr);
+}
+
+static inline void
+isa_memcpy_fromio(void *dest, unsigned long offset, long n)
+{
+	void __iomem *addr = ioremap(offset, n);
+	memcpy_fromio(dest, addr, n);
+	iounmap(addr);
+}
+
+static inline void
+isa_memcpy_toio(unsigned long offset, const void *src, long n)
+{
+	void __iomem *addr = ioremap(offset, n);
+	memcpy_toio(addr, src, n);
+	iounmap(addr);
+}
+#endif
+
 #endif /* __MSND_H */


_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux