Re: Joranda 720 and bluetooth
Peter Postma <[email protected]> Fri, 14 Jul 2006 11:04:00 +0200
| Newsgroups | gmane.os.netbsd.ports.hpcarm |
|---|---|
| Message-ID | <[email protected]> |
On Wed, Jul 12, 2006 at 12:44:50PM +0200, wrzymski wrote: > I've tried compiling bt3c driver and bt support for hpcarm. > Unfourtunetly compilation fails with > > cc1: warnings being treated as errors > /usr/src/sys/netbt/hci_event.c: In function 'hci_cmd_read_bdaddr': > /usr/src/sys/netbt/hci_event.c:605: warning: implicit declaration of > function 'splraiseipl' > > Looks hpcarm is missing splraiseipl. This 3com card 3CRWB6096 have > pocketpc 2002 drivers that should work under HPC 2000 after small cabs > and dlls hacks. I don't have card yet but with netbsd support it could > be graet expansion for Jornada. > The attached diff should fix that. The hpcarm interrupt code looks a bit old when compared to other arm ports, maybe it needs to be reworked. Btw, I'll receive a 3CRWB6096 card soon, so I'll then let you know how it works. -- Peter Postma
raiseipl.diff
(text/plain, 999 B)
Index: hpcarm/intr.c
===================================================================
RCS file: /cvsroot/src/sys/arch/hpcarm/hpcarm/intr.c,v
retrieving revision 1.10
diff -u -r1.10 intr.c
--- hpcarm/intr.c 11 Dec 2005 12:17:33 -0000 1.10
+++ hpcarm/intr.c 12 Jul 2006 21:19:22 -0000
@@ -155,6 +155,17 @@
u_int spl_smasks[_SPL_LEVELS];
int safepri = _SPL_0;
+int
+splraiseipl(int ipl)
+{
+ int old;
+
+ old = current_spl_level;
+ current_spl_level |= imask[ipl];
+
+ return old;
+}
+
void
set_spl_masks(void)
{
Index: include/irqhandler.h
===================================================================
RCS file: /cvsroot/src/sys/arch/hpcarm/include/irqhandler.h,v
retrieving revision 1.7
diff -u -r1.7 irqhandler.h
--- include/irqhandler.h 11 Dec 2005 12:17:33 -0000 1.7
+++ include/irqhandler.h 12 Jul 2006 21:19:22 -0000
@@ -80,6 +80,8 @@
void irq_setmasks(void);
void disable_irq(int);
void enable_irq(int);
+
+int splraiseipl(int);
#endif /* _KERNEL */
#endif /* _LOCORE */