Subject: Re: Joranda 720 and bluetooth
To: None <port-hpcarm@netbsd.org>
From: Peter Postma <peter@pointless.nl>
List: port-hpcarm
Date: 07/14/2006 11:04:00
--cNdxnHkX5QqsyA0e
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

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

--cNdxnHkX5QqsyA0e
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="raiseipl.diff"

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 */
 

--cNdxnHkX5QqsyA0e--