You can subscribe to this list here.
| 2001 |
Jan
|
Feb
(44) |
Mar
(202) |
Apr
(134) |
May
(89) |
Jun
(94) |
Jul
(58) |
Aug
(58) |
Sep
(56) |
Oct
(75) |
Nov
(26) |
Dec
(14) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2002 |
Jan
(24) |
Feb
(30) |
Mar
(15) |
Apr
(49) |
May
(12) |
Jun
(6) |
Jul
(11) |
Aug
(20) |
Sep
(19) |
Oct
(3) |
Nov
(13) |
Dec
(1) |
| 2003 |
Jan
(7) |
Feb
(4) |
Mar
(7) |
Apr
(5) |
May
(6) |
Jun
(3) |
Jul
(1) |
Aug
(1) |
Sep
|
Oct
(2) |
Nov
(51) |
Dec
(1) |
| 2004 |
Jan
(11) |
Feb
(5) |
Mar
|
Apr
(5) |
May
(2) |
Jun
|
Jul
(21) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Peter K. <pk...@us...> - 2001-05-07 11:23:57
|
The following file was modified in apps: Name Old version New version Comment ---- ----------- ----------- ------- Rules.elinux 1.2 1.3=20=20=20=20=20=20=20=20=20=20=20=20=20 The accompanying log: Synchronized with our latest version of this file (requires make 3.79 if I am not mistaken). The diff of the modified file(s): --- Rules.elinux 2001/02/28 23:42:08 1.2 +++ Rules.elinux 2001/05/07 11:23:57 1.3 @@ -1,17 +1,66 @@ # Hey Emacs, this Makefile is in -*- makefile -*- mode! =20 -# If we are building for elinux, then define ELINUX +makefrag_name =3D .target-makefrag + +ifndef AXIS_BUILDTYPE +# If we have a .target-makefrag, read stuff from it. Else we will +# probably create one, so define ROOT_MAKEFRAG. +ifeq ($(makefrag_name),$(wildcard $(makefrag_name))) +include $(makefrag_name) +endif # An $(makefrag_name) existing in current directory. + +# Backward compatibility with the old .target_* files. +ifndef AXIS_BUILDTYPE ifeq (.target_elinux,$(wildcard .target_*)) -ELINUX=3D1 +AXIS_BUILDTYPE=3Delinux endif - -# If we are building for cris (Linux/CRIS), then define CLINUX ifeq (.target_clinux,$(wildcard .target_*)) -CLINUX=3D1 +AXIS_BUILDTYPE=3Dclinux +endif +ifeq (.target_host,$(wildcard .target_*)) +AXIS_BUILDTYPE=3Dhost +endif endif =20 +endif # !AXIS_BUILDTYPE + SUBDIRS +=3D dummy +AXIS_WARNING_PREFIX =3D ---------- WARNING: +AXIS_ERROR_PREFIX =3D ---------- ERROR: +AXIS_USE_UCLIBC_DEPRECATED =3D Makefile in $(shell pwd) sets deprecated \ +USE_UCLIBC. It should set AXIS_USABLE_LIBS =3D UCLIBC +AXIS_LIB_MISMATCH =3D The code in $(shell pwd) cannot be linked with\ + $(AXIS_WILL_USE_LIB) + +########################################################################### +# Deduce other build variables from AXIS_BUILDTYPE. +ifdef AXIS_BUILDTYPE + +ifeq ($(AXIS_BUILDTYPE),cris-axis-linux-gnu) +CLINUX =3D 1 +AXIS_WILL_USE_LIB =3D GLIBC +endif =20 +ifeq ($(AXIS_BUILDTYPE),clinux) +CLINUX =3D 1 +AXIS_WILL_USE_LIB =3D UCLIBC +endif + +ifeq ($(AXIS_BUILDTYPE),elinux) +ELINUX =3D 1 +AXIS_WILL_USE_LIB =3D UCLIBC +endif + +ifeq ($(AXIS_BUILDTYPE),host) +HOST =3D 1 +endif + +# Has this ever been used? What's the difference to "host"? +ifeq ($(AXIS_BUILDTYPE),linux) +LINUX =3D 1 +endif +endif # AXIS_BUILDTYPE + ########################################################################### =20 ifdef ELINUX @@ -25,30 +74,104 @@ CPP =3D gcc_cris -melinux -E CXX =3D gcc_cris -melinux -xc++ =20 -LDFLAGS =3D -s -symbolic +LDFLAGS =3D -s -shlib =20 TARGET_TYPE =3D elinux CRIS =3D 1 -endif =20 +# ELINUX always uses uclibc. Though a check that the app can use uclibc +# is in order. +ifndef USE_UCLIBC + +ifdef AXIS_USABLE_LIBS +ifneq ($(filter $(AXIS_USABLE_LIBS),UCLIBC),UCLIBC) +$(error $(AXIS_ERROR_PREFIX) $(AXIS_LIB_MISMATCH)) +else +# Define legacy macro. +USE_UCLIBC =3D 1 +endif # not UCLIBC in AXIS_USABLE_LIBS +endif # AXIS_USABLE_LIBS + +else +$(warning $(AXIS_WARNING_PREFIX) $(AXIS_USE_UCLIBC_DEPRECATED)) +endif # not USE_UCLIBC +endif # ELINUX + ifdef CLINUX -# Same as ELINUX but with different options (to build as ELF) -# Linux/CRIS does only support statically linked exes currently -# so use -static and not -symbolic + +ifndef ELINUXDIR +ELINUXDIR :=3D $(shell echo `pwd`/../os/linux) +endif + +# Here we will check AXIS_WILL_USE_LIB against AXIS_USABLE_LIBS which +# represents what the thing we want to compile can be linked with. If +# library and compile variable settings (like CC) aren't supposed to be +# set or are not applicable, then AXIS_USABLE_LIBS should not be set. + +# First some backwards compatibility: each app used to set USE_UCLIBC in +# its makefile. +ifdef USE_UCLIBC +$(warning $(AXIS_WARNING_PREFIX) $(AXIS_USE_UCLIBC_DEPRECATED)) +AXIS_USABLE_LIBS +=3D UCLIBC +# Let's unset the original var to fall in line with expected case. +USE_UCLIBC =3D +endif + +ifdef AXIS_USABLE_LIBS +ifneq ($(filter $(AXIS_USABLE_LIBS),$(AXIS_WILL_USE_LIB)),$(AXIS_WILL_USE_= LIB)) +$(error $(AXIS_ERROR_PREFIX) $(AXIS_LIB_MISMATCH)) +endif +endif # AXIS_USABLE_LIBS + +# Set legacy variables used in various unknown Makefiles. +# FIXME: Kill the USE_* variables when all apps are changed to use +# AXIS_WILL_USE_LIB instead. Until then, introduce no new use or setting +# of USE_*. +ifeq ($(AXIS_WILL_USE_LIB),GLIBC) +USE_GLIBC =3D 1 +else # AXIS_WILL_USE_LIB !=3D GLIBC (i.e. currently implying UCLIBC). +ifeq ($(AXIS_WILL_USE_LIB),UCLIBC) +USE_UCLIBC =3D 1 +else +$(error $(AXIS_ERROR_PREFIX) Unexpected library $(AXIS_WILL_USE_LIB).) +endif +endif # AXIS_WILL_USE_LIB !=3D GLIBC + +# Now that we've checked that AXIS_WILL_USE_LIB matches AXIS_USABLE_LIBS, +# we set the other build vars. + +ifeq ($(AXIS_WILL_USE_LIB),UCLIBC) +# Same as ELINUX but with different options (to build as ELF), and we +# build statically since uclibc does not support dynamic linking. =20 CC =3D gcc_cris -mlinux -DCRISMMU CPP =3D gcc_cris -mlinux -DCRISMMU -E CXX =3D gcc_cris -mlinux -DCRISMMU -xc++ =20 LDFLAGS =3D -s -static +endif # AXIS_WILL_USE_LIB =3D UCLIBC + +ifeq ($(AXIS_WILL_USE_LIB),GLIBC) +# Using glibc, linking dynamically like on the host. + +# We prefer getting <asm/...> and <linux/...> from the kernel we compile, +# rather than what was installed with the compiler, so put it first in the +# system include path. =20 +CC =3D gcc-cris -mlinux -isystem $(ELINUXDIR)/include +CPP =3D gcc-cris -mlinux -E -isystem $(ELINUXDIR)/include +CXX =3D g++-cris -mlinux -xc++ -isystem $(ELINUXDIR)/include +LDFLAGS =3D -s -L$(prefix)/lib +endif # AXIS_WILL_USE_LIB !=3D GLIBC + TARGET_TYPE =3D clinux CRIS =3D 1 -endif =20 +endif # CLINUX + ifdef CRIS =20 -# This is for building for the cris architecture +# This is for building for the CRIS architecture. =20 OBJCOPY =3D objcopy-cris LD =3D ld-cris @@ -65,7 +188,7 @@ =20 else =20 -# This is for building for the local host +# This is for building for the local host. =20 RANLIB =3D ranlib =20 @@ -78,31 +201,29 @@ endif # HROOT run_prefix =3D $(prefix) =20 -endif +endif # not CRIS =20 INSTALL =3D install =20 ########################################################################### =20 -# Define CFLAGS to something sensible -CFLAGS =3D -O2 -Wall +# Define CFLAGS to something sensible. +CFLAGS =3D -Wall =20 ifdef CRIS -# Sorry; only -Dlinux is built-in. __linux__ will be defined in -# gcc-cris & Co R26. -CFLAGS +=3D -D__linux__ - +CFLAGS +=3D -O2 ifdef ELINUX CFLAGS +=3D -DELINUX endif =20 else -# We want to be able to use gdb with full debug info for host compiled pro= grams -CFLAGS +=3D -g +# We want to be able to use gdb with full debug info for host compiled +# programs. +CFLAGS +=3D -O0 -g endif =20 -# Can't use -pedantic due to use of long long in standard includes :( -CXXFLAGS =3D $(CFLAGS) -Wno-ctor-dtor-privacy -ansi -pipe -fcheck-new +# Can't use -pedantic due to use of long long in standard includes. :( +CXXFLAGS =3D $(CFLAGS) -Wno-ctor-dtor-privacy -ansi -pipe =20 # An elinux program is expected to be compiled like this: # $(CC) $(CFLAGS) -c my_file.c @@ -113,7 +234,9 @@ # $(CC) $(LDFLAGS) -o my_program my_file.o possibly_other_objects.o =20 ifdef CRIS -ifdef USE_UCLIBC +ifeq ($(AXIS_WILL_USE_LIB),UCLIBC) +# FIXME: Delete the UCLIBC macro once all usage is exterminated. Usage +# should be of if[n]eq ($(AXIS_WILL_USE_LIB),UCLIBC). UCLIBC =3D 1 CC +=3D -muclibc=3D$(prefix) CPP +=3D -muclibc=3D$(prefix) @@ -125,42 +248,73 @@ # The following are a set of standard rules to try to make sure we build # and install the correct files. =20 -all: pre-all-recurse all-recurse +all: all-recurse +all-recurse: pre-all-recurse =20 # Make eroot a dependency of all install rules to make sure the $(prefix) # variable is set (to $HROOT or $EROOT depending on whether this # is a build for the host or elinux). -depend: eroot pre-depend-recurse depend-recurse -install: eroot pre-install-recurse install-recurse +depend: depend-recurse +depend-recurse: pre-depend-recurse +pre-depend-recurse: eroot=20 =20 -uninstall: pre-uninstall-recurse uninstall-recurse +install: install-recurse +install-recurse: pre-install-recurse=20 +pre-install-recurse: eroot =20 -clean: pre-clean-recurse clean-recurse +uninstall: uninstall-recurse +uninstall-recurse: pre-uninstall-recurse +pre-uninstall-recurse: eroot =20 -# Used to change the target for the build. -elinux: pre-elinux-recurse elinux-recurse -clinux: pre-clinux-recurse clinux-recurse -host: pre-host-recurse host-recurse -elinux clinux host: - @if test ! -f .target_$@ ; then \ - NO_SUBDIR_RECURSION=3D1 $(MAKE) --no-print-directory clean; \ +clean: clean-recurse +clean-recurse: pre-clean-recurse + +ifndef ROOT_MAKEFRAG +ROOT_MAKEFRAG :=3D $(shell echo `pwd`/$(makefrag_name)) + +# This rule allows old .target_* files to be converted to .target-makefrag +# by running make configsubs in the root directory +$(ROOT_MAKEFRAG): +ifdef AXIS_BUILDTYPE + $(MAKE) $(AXIS_BUILDTYPE) +else + @echo "You must specify the target type!" + exit 1 +endif +endif # !ROOT_MAKEFRAG + +cris-axis-linux-gnu elinux clinux host: + echo AXIS_BUILDTYPE=3D$@ > .tmp$(makefrag_name) + -$(MAKE) configsubs AXIS_BUILDTYPE=3D$@ ROOT_MAKEFRAG=3D$(shell echo `pwd= `/.tmp$(makefrag_name)) + @rm -f .tmp$(makefrag_name) + +checkclean: + @if ! test -f .target_$(AXIS_BUILDTYPE) \ + && ( ! test -f $(makefrag_name) \ + || ! grep AXIS_BUILDTYPE=3D$(AXIS_BUILDTYPE) $(makefrag_name) > = /dev/null ); then \ + NO_SUBDIR_RECURSION=3D1 $(MAKE) --no-print-directory clean ROOT_MAKEFRA= G=3D$(ROOT_MAKEFRAG); \ fi - rm -rf .target_* - touch .target_$@ + +configsubs: configsubs-recurse +configsubs-recurse: pre-configsubs-recurse +pre-configsubs-recurse: $(ROOT_MAKEFRAG)=20 + +configsubs: checkclean + -cmp -s $(ROOT_MAKEFRAG) $(makefrag_name) || ( rm -f .target*; cp $(ROOT_= MAKEFRAG) $(makefrag_name) ) =20 # These are hooks that can be used to have rules executed before the -# recursive rules are checked -pre-all-recurse pre-depend-recurse pre-install-recurse pre-uninstall-recur= se pre-clean-recurse pre-elinux-recurse pre-clinux-recurse pre-host-recurse: +# recursive rules are checked. +pre-all-recurse pre-depend-recurse pre-install-recurse pre-uninstall-recur= se pre-clean-recurse pre-configsubs-recurse: =20 -# Recursive rules to make all, depend, install, uninstall, clean, elinux, -# clinux and host -all-recurse depend-recurse install-recurse uninstall-recurse clean-recurse= elinux-recurse clinux-recurse host-recurse: +# Recursive rules to make all, depend, install, uninstall, clean and +# configsubs. +all-recurse depend-recurse install-recurse uninstall-recurse clean-recurse= configsubs-recurse: @if test $(NO_SUBDIR_RECURSION)0 -eq 0 ; then \ for subdir in $(SUBDIRS); do \ if test -d $$subdir ; then \ target=3D`echo $@ | sed 's/-recurse//'`; \ - echo Making $$target in $$subdir; \ - (cd $$subdir && $(MAKE) $$target) || exit 1; \ + echo Making $$target in $$subdir for $(AXIS_BUILDTYPE); \ + $(MAKE) -C $$subdir $$target ROOT_MAKEFRAG=3D$(ROOT_MAKEFRAG) || ex= it 1; \ fi; \ done; \ fi |
|
From: Mattias A. <mat...@us...> - 2001-05-02 15:50:50
|
The following file was modified in linux/drivers/char/bluetooth: Name Old version New version Comment ---- ----------- ----------- ------- rfcomm.c 1.108 1.109=20=20=20=20=20=20=20=20=20=20=20 The accompanying log: * minor change The diff of the modified file(s): --- rfcomm.c 2001/05/02 15:43:29 1.108 +++ rfcomm.c 2001/05/02 15:50:50 1.109 @@ -537,11 +537,11 @@ =20 /****************** LOCAL VARIABLE DECLARATION SECTION *******************= ***/ =20 -static u8 crctable[256]; /* The crctable for the FEC field */ +static u8 crctable[256]; =20 +/* One RFCOMM connection for each ttyBTx */ rfcomm_con rfcomm_con_list[BT_NBR_DATAPORTS]; -/* One RFCOMM connection for each bt_tty 0 to BT_NBR_DATAPORTS */ =20 #ifdef __KERNEL__ static struct timer_list rfcomm_timer; |
|
From: Mattias A. <mat...@us...> - 2001-05-02 15:43:29
|
The following file was modified in linux/drivers/char/bluetooth:
Name Old version New version Comment
---- ----------- ----------- -------
rfcomm.c 1.107 1.108=20=20=20=20=20=20=20=20=20=20=20
The accompanying log:
* replaced hardcoded values with define
* index test should go first in while loop (get_connected_dlci)
* fixed bug when all rfcomm cons where busy (get_new_rfcomm_con)
The diff of the modified file(s):
--- rfcomm.c 2001/04/25 17:08:53 1.107
+++ rfcomm.c 2001/05/02 15:43:29 1.108
@@ -540,8 +540,8 @@
static u8 crctable[256];
/* The crctable for the FEC field */
=20
-rfcomm_con rfcomm_con_list[7];
-/* One RFCOMM connection for each bt_tty 0 to 6 */
+rfcomm_con rfcomm_con_list[BT_NBR_DATAPORTS];
+/* One RFCOMM connection for each bt_tty 0 to BT_NBR_DATAPORTS */
=20
#ifdef __KERNEL__
static struct timer_list rfcomm_timer;
@@ -873,7 +873,7 @@
con objs) to see which rfcomm that was trying to connect */
=20
/* Find the connecting rfcomm_con */
- while ((i < 7) && (!stop)) {
+ while ((i < BT_NBR_DATAPORTS) && (!stop)) {
if ((rfcomm_con_list[i].dlci[0].state =3D=3D CONNECTING) &&=20
(rfcomm_con_list[i].initiator =3D=3D TRUE)) {
rfcomm =3D &rfcomm_con_list[i];
@@ -2363,19 +2363,18 @@
{
s32 i =3D 0;
=20
- while ((i<BT_NBR_DATAPORTS)
- && (rfcomm_con_list[i].dlci[0].state !=3D DISCONNECTED)) {
- i++;
- }
D_CTRL("get_new_rfcomm_con: rfcomm_con -> ttyBT%d\n",i);
- if (rfcomm_con_list[i].dlci[0].state !=3D DISCONNECTED) {
- return NULL;
- } else {
- /* Reset these parameters just incase... */
+
+ for (i =3D 0 ; i < BT_NBR_DATAPORTS ; i ++)
+ {
+ if (rfcomm_con_list[i].dlci[0].state =3D=3D DISCONNECTED)
+ {
rfcomm_con_list[i].l2cap =3D NULL;
return &rfcomm_con_list[i];
}
}
+ return NULL;
+}
=20
rfcomm_con*=20
get_rfcomm_con(u8 line)
@@ -2398,7 +2397,7 @@
s32 tmp;
=20
tmp =3D 61;
- while ((rfcomm->dlci[tmp].state =3D=3D DISCONNECTED) && (tmp > 0)) {
+ while ((tmp > 0) && (rfcomm->dlci[tmp].state =3D=3D DISCONNECTED)) {
tmp--;
}
=20
|
|
From: Mattias A. <mat...@us...> - 2001-05-02 15:38:55
|
The following file was modified in linux/drivers/char/bluetooth:
Name Old version New version Comment
---- ----------- ----------- -------
sdp.c 1.74 1.75=20=20=20=20=20=20=20=20=20=20=20=20
The accompanying log:
* fixed bug in get_free_sdp_con, was trying to access beyond end of array=
=20
if all sdp cons where busy
* replaced hardcoded values with define
=20
The diff of the modified file(s):
--- sdp.c 2001/04/17 10:00:26 1.74
+++ sdp.c 2001/05/02 15:38:54 1.75
@@ -300,7 +300,7 @@
u8 query[256];
} database_query;
=20
-sdp_con sdp_con_list[7];
+sdp_con sdp_con_list[MAX_NBR_SDP];
=20
static int role;
=20
@@ -378,7 +378,7 @@
/* Register SDP in the L2AP layer*/
l2cap_register_upper(SDP_LAYER, &this_layer);=20
=20
- for (i =3D 0; i < 7; i++) {
+ for (i =3D 0; i < MAX_NBR_SDP; i++) {
sdp_con_list[i].id =3D i;
sdp_con_list[i].l2cap =3D NULL;
sdp_con_list[i].state =3D SDP_DISCONNECTED;
@@ -1056,13 +1056,15 @@
{
s32 i =3D 0;
=20
- while ((i < 7) && (sdp_con_list[i].state !=3D SDP_DISCONNECTED)) {
+ while ((i < MAX_NBR_SDP) &&=20
+ (sdp_con_list[i].state !=3D SDP_DISCONNECTED)) {
i++;
}
=20
- if ((i =3D=3D 7) && (sdp_con_list[i].state !=3D SDP_DISCONNECTED)) {
+ if (i =3D=3D MAX_NBR_SDP) {
return 0;
}
+
return &sdp_con_list[i];
}
=20
|
|
From: Peter K. <pk...@us...> - 2001-04-29 11:37:08
|
The following file was modified in linux/include/linux/bluetooth: Name Old version New version Comment ---- ----------- ----------- ------- btconfig.h 1.27 1.28=20=20=20=20=20=20=20=20=20=20=20=20 The accompanying log: Always do master/slave switch as server if it is enabled (it can be turned off using the BTSETMSSWITCH ioctl). The diff of the modified file(s): --- btconfig.h 2001/04/27 16:45:06 1.27 +++ btconfig.h 2001/04/29 11:37:08 1.28 @@ -82,7 +82,6 @@ #endif =20 #undef CONFIG_BLUETOOTH_ENABLE_MSSWITCH -#undef CONFIG_BLUETOOTH_FORCE_MSSWITCH #undef CONFIG_BLUETOOTH_EARLY_MSSWITCH =20 /*************** |
|
From: Peter K. <pk...@us...> - 2001-04-29 11:37:03
|
The following files were modified in linux/drivers/char/bluetooth:
Name Old version New version Comment
---- ----------- ----------- -------
Config.in 1.12 1.13=20=20=20=20=20=20=20=20=20=20=20=20
hci.c 1.145 1.146=20=20=20=20=20=20=20=20=20=20=20
The accompanying log:
Always do master/slave switch as server if it is enabled (it can be
turned off using the BTSETMSSWITCH ioctl).
The diff of the modified file(s):
--- Config.in 2001/04/27 16:46:21 1.12
+++ Config.in 2001/04/29 11:37:02 1.13
@@ -30,8 +30,6 @@
bool ' Enable M/S Switch' CONFIG_BLUETOOTH_ENABLE_MSSWITCH
=20
if [ "$CONFIG_BLUETOOTH_ENABLE_MSSWITCH" =3D "y" ]; then
- bool ' Force M/S Switch as server' CONFIG_BLUETOOTH_FORCE_MSSWITCH
-
# CSR can't do scatternet yet, so we need to do M/S switch=20
# as early as in lp_connect_rsp()
if [ "$CONFIG_BLUETOOTH_CSR" =3D "y" ]; then
--- hci.c 2001/04/27 15:19:29 1.145
+++ hci.c 2001/04/29 11:37:02 1.146
@@ -1743,12 +1743,7 @@
#ifdef CONFIG_BLUETOOTH_ENABLE_MSSWITCH
DSYS("M/S switch enabled\n");
=20
-#ifdef CONFIG_BLUETOOTH_FORCE_MSSWITCH
hci_force_msswitch(1);
-#else
- hci_force_msswitch(0);
-#endif
-
#else /* CONFIG_BLUETOOTH_ENABLE_MSSWITCH */
DSYS("M/S switch disabled\n");
#endif
|
|
From: Peter K. <pk...@us...> - 2001-04-27 18:34:37
|
The following file was modified in apps/bluetooth/experimental: Name Old version New version Comment ---- ----------- ----------- ------- .cvsignore 1.2 1.3=20=20=20=20=20=20=20=20=20=20=20=20=20 The accompanying log: Ignore btconfig too. The diff of the modified file(s): --- .cvsignore 2001/04/11 11:45:32 1.2 +++ .cvsignore 2001/04/27 18:34:35 1.3 @@ -6,3 +6,4 @@ btsend btdisc bttest +btconfig |
|
From: Peter K. <pk...@us...> - 2001-04-27 18:33:23
|
The following file was modified in apps/bluetooth/experimental:
Name Old version New version Comment
---- ----------- ----------- -------
btconfig.c 1.1 1.2=20=20=20=20=20=20=20=20=20=20=20=20=20
The accompanying log:
Always read the configuration file (can be disabled with -f /dev/null).
Command line options override the configuration file.
The diff of the modified file(s):
--- btconfig.c 2001/04/27 14:41:23 1.1
+++ btconfig.c 2001/04/27 18:33:23 1.2
@@ -1,7 +1,7 @@
/*
* btconfig.c -- Configures BT driver from options or config file
*
- * Copyright (C) 2000, 2001 Axis Communications AB
+ * Copyright (C) 2001 Axis Communications AB
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -37,6 +37,8 @@
*
*/
=20
+/****************** INCLUDE FILES SECTION ********************************=
***/
+
#include <stdio.h>
#include <syslog.h>
#include <string.h>
@@ -60,13 +62,10 @@
#include "bt_conf.h"
#include "bt_misc.h"
=20=20=20=20=20
-/*=20
- * Syntax : btconfig [--force_msswitch <0/1> --wrscan_enable <mode>=20
- * --name <name> --file <filename>]
- */
-
/****************** CONSTANT AND MACRO SECTION ***************************=
***/
=20
+#define D(x) //x
+
#ifndef FALSE
#define FALSE (0)
#endif
@@ -79,122 +78,148 @@
#define DOMAIN_NAME_LENGTH 100
#define BUF_MAXSIZE 300
=20
-#define PRE " ("
-#define POST ")"
+#define CONF_FILE "/etc/bt.conf"
=20
-#define D(x) //x
+/****************** TYPE DEFINITION SECTION ******************************=
***/
=20
/****************** LOCAL FUNCTION DECLARATION SECTION *******************=
***/
=20
+static void show_usage(void);
+
/* File parsing functions */
static int parse_file(char *filename);
static int parse_line(char* line, char** field, char** value);
static int configure_field(const char* field, const char* value);
=20
-/*************************************************************************=
**/
+/****************** GLOBAL VARIABLE DECLARATION SECTION ******************=
***/
=20
+/****************** LOCAL VARIABLE DECLARATION SECTION *******************=
***/
+
static int option_index =3D 0;
-static char bt_name[248];
+static char bt_name[MAX_BTNAME_LEN+1];
static char ip_addr[32] =3D "0.0.0.0";
static char ip_name[HOST_NAME_LENGTH + DOMAIN_NAME_LENGTH] =3D "";
static char ip_addrname[36 + HOST_NAME_LENGTH + DOMAIN_NAME_LENGTH] =3D "";
=20
-static int var_add_ip =3D TRUE;
-static int var_add_host_name =3D TRUE;
+static int var_add_ip =3D FALSE;
+static int var_add_host_name =3D FALSE;
+static int var_write_scan_enable =3D -1; /* not yet set */
static int var_force_ms_switch =3D -1; /* not yet set */
static int var_set_local_name =3D 0;
=20
/* long option list */
static struct option long_options[] =3D
{
- {"file", 1, NULL, 'f'}, /* read options from file */
- {"force_msswitch", 1, NULL, 'm'}, /* force m/s switch as server */
+ { "file", 1, NULL, 'f' }, /* config file name */
+ { "help", 1, NULL, 'h' }, /* show help */
+ { "force-msswitch", 1, NULL, 'm' }, /* force m/s switch as server */
{"name", 1, NULL, 'n'}, /* set BT friendly name */
- {"wrscan_enable", 1, NULL, 'w'}, /* sets write scan enable */
+ { "wrscan-enable", 1, NULL, 'w' }, /* sets write scan enable */
{0, 0, 0, 0}
};
=20
-/*************************************************************************=
*/
+/****************** FUNCTION DEFINITION SECTION **************************=
***/
=20
void
-show_menu()
+show_usage(void)
{
- printf("\nWrong syntax or missing parameters\n");
- printf("Syntax : ./btconfig [--force_msswitch <0/1> --wrscan_enable <mod=
e> ");
- printf("--name <name> --file <filename>]\n");
+ printf("Syntax: btconfig [--force-msswitch (0|1)] [--wrscan-enable <mode=
>] [--name <name>] [--file <config file>]\n");
}
=20
int
main(int argc, char **argv)
{
int bt_cfd, opt;
-=20=20
- /* Print header if called via http */
- if (getenv("REQUEST_METHOD") !=3D NULL)
- {
- printf("Content-type: text/plain\r\n\r\n");
- }
-
- /* Open BT control tty */
- bt_cfd =3D bt_openctrl();
-
- /* Wait until stack is initiated */
- while (!bt_isinitiated())
- sleep(1);
-
- if (argc < 2)
- show_menu();
-=20=20
- /* Now parse options, if using both options and file the last argument=
=20
- overrides any earlier options */
+ int opt_write_scan_enable =3D -1;
+ int opt_force_ms_switch =3D -1;
+ char *opt_name =3D NULL;
+ char *opt_config_file =3D CONF_FILE;
=20
-#define OPTIONS_STRING "f:m:n:w:"=20=20
+ /* Parse command line options */
=20=20=20
- while ((opt =3D getopt_long(argc, argv, OPTIONS_STRING,=20
+ while ((opt =3D getopt_long(argc, argv, "f:hm:n:w:",
long_options, &option_index)) !=3D -1)
{
switch (opt)
{
+ case 'f':
+ opt_config_file =3D optarg;
+ break;
+
+ case 'h':
+ show_usage();
+ exit(0);
+
case 'm':
- /* Force a master slave switch as server */
- var_force_ms_switch =3D atoi(optarg);
+ /* Force a master/slave switch as server */
+ opt_force_ms_switch =3D atoi(optarg);
break;
=20
case 'n':
/* Set BT friendly name */
- var_set_local_name =3D 1;
- strncpy(bt_name, optarg, strlen(optarg));
+ opt_name =3D optarg;
break;
=20=20=20=20=20=20=20
case 'w':
/* Set write scan enable */
- bt_write_scan_enable(bt_cfd, atoi(optarg));
- break;
-
- case 'f':
- /* Read options from file */
- parse_file(optarg);=20=20
+ opt_write_scan_enable =3D atoi(optarg);
break;
=20
default:
-=20=20=20=20=20=20
break;
}
}
=20=20=20
+ parse_file(opt_config_file);
+
+ /* Command line arguments override the configuration file */
+
+ if (opt_name)
+ {
+ strncpy(bt_name, opt_name, MAX_BTNAME_LEN);
+ bt_name[MAX_BTNAME_LEN] =3D 0;
+ var_set_local_name =3D 1;
+ }
+=20=20
+ if (opt_write_scan_enable >=3D 0)
+ var_write_scan_enable =3D opt_write_scan_enable;
+
+ if (opt_force_ms_switch >=3D 0)
+ var_force_ms_switch =3D opt_force_ms_switch;
+
+ /* Configure the stack according to the options specified */
+=20=20
+ if (var_set_local_name ||
+ var_write_scan_enable >=3D 0 ||
+ var_force_ms_switch >=3D 0)
+ {
+ /* Wait until stack is initiated */
+ while (!bt_isinitiated())
+ sleep(1);
+
+ /* Open BT control tty */
+ if ((bt_cfd =3D bt_openctrl()) >=3D 0)
+ {
/* Configure BT local name */
if (var_set_local_name)
bt_set_local_name(bt_cfd, bt_name);
=20=20=20
+ /* Configure Write Scan Enable */
+ if (var_write_scan_enable >=3D 0)
+ bt_write_scan_enable(bt_cfd, var_write_scan_enable);
+
/* Configure Force M/S switch */
if (var_force_ms_switch >=3D 0)
bt_force_msswitch_as_server(bt_cfd, var_force_ms_switch);
=20
close(bt_cfd);
+ }
+ }
+
exit(0);
}
=20
-/*******************************************************************/
+/*************************************************************************=
*/
/*=20
* File parsing functions=20
*/=20
@@ -206,8 +231,7 @@
=20=20=20
if (!(f =3D fopen(filename, "r")))
{
- perror("fopen");=20=20=20=20
- exit(1);
+ return TRUE;
}
=20=20=20
syslog(LOG_INFO, __FUNCTION__": Opened %s file ok", filename);
@@ -227,23 +251,25 @@
}
}
=20
+ fclose(f);
+
/* Name handling */
- strcpy(ip_addrname, PRE);
+ if (*ip_addr || *ip_name)
+ {
+ strcpy(ip_addrname, " (");
strcat(ip_addrname, ip_addr);
- if (strlen(ip_name))
+ if (*ip_name)
{
- if (strlen(ip_addrname) > strlen(PRE)) {
+ if (*ip_addr) {
strcat(ip_addrname, ", ");
}
strcat(ip_addrname, ip_name);
}
- strcat(ip_addrname, POST);
+ strcat(ip_addrname, ")");
=20
- if (strlen(ip_addrname) > (strlen(PRE) + strlen(POST)))
- {
if ((strlen(bt_name) + strlen(ip_addrname)) > MAX_BTNAME_LEN)
{
- D(syslog(LOG_INFO, __FUNCTION__": Name to long, trunkating"));
+ D(syslog(LOG_INFO, __FUNCTION__": Name to long, truncating"));
strcpy(bt_name + MAX_BTNAME_LEN - strlen(ip_addrname), ip_addrname);
}
else
@@ -255,10 +281,6 @@
D(syslog(LOG_INFO, __FUNCTION__": Final name is (%d): %s\n",
strlen(bt_name), bt_name));
=20
- fclose(f);
-
- var_set_local_name =3D 1;
-=20=20
return TRUE;
} /* parse_file */
=20
@@ -333,7 +355,6 @@
int
configure_field(const char* field, const char* value)
{
-=20=20
if (!strcasecmp(field, "DeviceName"))
{
if (strlen(value) <=3D MAX_BTNAME_LEN)
@@ -349,6 +370,8 @@
syslog(LOG_INFO, ": Name to long, truncating to (%d): %s",
(int)strlen(bt_name), bt_name);
}
+
+ var_set_local_name =3D 1;
}
else if (!strcasecmp(field, "AddIP"))
{
@@ -402,10 +425,11 @@
else if (!strcasecmp(field, "ForceMSSwitch"))=20=20
{
var_force_ms_switch =3D !strcasecmp(value, "yes");
- D(syslog(LOG_INFO, __FUNCTION__ ": Force M/S switch : %s", value));
+ D(syslog(LOG_INFO, __FUNCTION__ ": Force M/S switch: %s",
+ (var_force_ms_switch ? "yes" : "no")));
}
=20=20=20
return TRUE;
} /* configure_field */
=20
-/***************************************************************/
+/****************** END OF FILE btconfig.c *******************************=
***/
|
|
From: Peter K. <pk...@us...> - 2001-04-27 16:49:38
|
The following file was modified in apps/bluetooth/experimental:
Name Old version New version Comment
---- ----------- ----------- -------
bt_vendor.c 1.11 1.12=20=20=20=20=20=20=20=20=20=20=20=20
The accompanying log:
Added support for Infineon BlueMoon I hardware (as best as I could
without having any hardware to test with).
The diff of the modified file(s):
--- bt_vendor.c 2001/04/26 10:51:28 1.11
+++ bt_vendor.c 2001/04/27 16:49:38 1.12
@@ -52,22 +52,25 @@
#include "bt_if.h"
=20
#define HW_NOT_PROBED -1
-#define HW_ERICSSON 0
-#define HW_CSR 1
-#define HW_DIGIANSWER 2
-#define HW_USB 3
-#define HW_GENERIC 4
-#define HW_NO_INIT 5
-#define HW_UNKNOWN 6
+#define HW_CSR 0
+#define HW_DIGIANSWER 1
+#define HW_ERICSSON 2
+#define HW_INFINEON 3
+#define HW_USB 4
+#define HW_GENERIC 5
+#define HW_NO_INIT 6
+#define HW_UNKNOWN 7
=20
static int hw_vendor(void);
=20
-static void ericsson_init_phys(int fd);
-static void ericsson_init_hw(int bt_cfd, int phys_fd, int spd);
static void csr_init_phys(int fd);
static void csr_init_hw(int bt_cfd, int phys_fd, int spd);
static void digianswer_init_phys(int fd);
static void digianswer_init_hw(int bt_cfd, int phys_fd, int spd);
+static void ericsson_init_phys(int fd);
+static void ericsson_init_hw(int bt_cfd, int phys_fd, int spd);
+static void infineon_init_phys(int fd);
+static void infineon_init_hw(int bt_cfd, int phys_fd, int spd);
static void usb_init_phys(int fd);
static void usb_init_hw(int bt_cfd, int phys_fd, int spd);
static void generic_init_phys(int fd);
@@ -82,10 +85,6 @@
{
switch (hw_vendor())
{
- case HW_ERICSSON:
- ericsson_init_phys(fd);
- break;
-
case HW_CSR:
csr_init_phys(fd);
break;
@@ -94,6 +93,14 @@
digianswer_init_phys(fd);
break;
=20
+ case HW_ERICSSON:
+ ericsson_init_phys(fd);
+ break;
+
+ case HW_INFINEON:
+ infineon_init_phys(fd);
+ break;
+
case HW_USB:
usb_init_phys(fd);
break;
@@ -118,10 +125,6 @@
{
switch (hw_vendor())
{
- case HW_ERICSSON:
- ericsson_init_hw(bt_cfd, phys_fd, spd);
- break;
-
case HW_CSR:
csr_init_hw(bt_cfd, phys_fd, spd);
break;
@@ -130,6 +133,14 @@
digianswer_init_hw(bt_cfd, phys_fd, spd);
break;
=20
+ case HW_ERICSSON:
+ ericsson_init_hw(bt_cfd, phys_fd, spd);
+ break;
+
+ case HW_INFINEON:
+ infineon_init_hw(bt_cfd, phys_fd, spd);
+ break;
+
case HW_USB:
usb_init_hw(bt_cfd, phys_fd, spd);
break;
@@ -160,12 +171,14 @@
=20
if (!vendor)
hw_vendor =3D HW_UNKNOWN;
- else if (!strcmp(vendor, "Ericsson"))
- hw_vendor =3D HW_ERICSSON;
else if (!strcmp(vendor, "CSR"))
hw_vendor =3D HW_CSR;
else if (!strcmp(vendor, "Digianswer"))
hw_vendor =3D HW_DIGIANSWER;
+ else if (!strcmp(vendor, "Ericsson"))
+ hw_vendor =3D HW_ERICSSON;
+ else if (!strcmp(vendor, "Infineon"))
+ hw_vendor =3D HW_INFINEON;
else if (!strcmp(vendor, "USB"))
hw_vendor =3D HW_USB;
else if (!strcmp(vendor, "Generic"))
@@ -180,42 +193,6 @@
}
=20
/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
-/* Ericsson specific commands */
-/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
-
-/* Set the phys device to Ericsson default speed, 57600 */
-void
-ericsson_init_phys(int fd)
-{
- fd_setup(fd, 57600, USE_FLOW_CTRL);
-}
-
-void
-ericsson_init_hw(int bt_cfd, int phys_fd, int spd)
-{
- /* Connection setup, all devices, no auto accept */
- unsigned char filter[3] =3D { 0x02, 0x00, 0x01 };
- unsigned int wrscan =3D (PAGE_SCAN_ENABLE | INQUIRY_SCAN_ENABLE);
-
- bt_write_scan_enable(bt_cfd, wrscan);
-
- sleep(1);
-
- /* set_event_filter must be called for m/s switch on IrmaC! */
- bt_set_event_filter(bt_cfd, filter);
-
- sleep(1); // wait for HW...
-
- syslog(LOG_INFO, "Setting baudrate in Ericsson module!\n");=20=20
- bt_set_baudrate(bt_cfd, spd);
- usleep(10000);
-
- /* Now set phys device speed to whatever HW was set to use */
- fd_setup(phys_fd, spd, USE_FLOW_CTRL);
- tcflush(phys_fd, TCIOFLUSH);
-}
-
-/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
/* CSR specific commands */
/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
=20
@@ -289,7 +266,69 @@
=20
/* Now set phys device speed to whatever HW was set to use */
fd_setup(phys_fd, spd, USE_FLOW_CTRL);=20=20
+ tcflush(phys_fd, TCIOFLUSH);
+}
+
+/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
+/* Ericsson specific commands */
+/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
+
+/* Set the phys device to Ericsson default speed, 57600 */
+void
+ericsson_init_phys(int fd)
+{
+ fd_setup(fd, 57600, USE_FLOW_CTRL);
+}
+
+void
+ericsson_init_hw(int bt_cfd, int phys_fd, int spd)
+{
+ /* Connection setup, all devices, no auto accept */
+ unsigned char filter[3] =3D { 0x02, 0x00, 0x01 };
+ unsigned int wrscan =3D (PAGE_SCAN_ENABLE | INQUIRY_SCAN_ENABLE);
+
+ bt_write_scan_enable(bt_cfd, wrscan);
+
+ sleep(1);
+
+ /* set_event_filter must be called for m/s switch on IrmaC! */
+ bt_set_event_filter(bt_cfd, filter);
+
+ sleep(1); // wait for HW...
+
+ syslog(LOG_INFO, "Setting baudrate in Ericsson module!\n");=20=20
+ bt_set_baudrate(bt_cfd, spd);
+ usleep(10000);
+
+ /* Now set phys device speed to whatever HW was set to use */
+ fd_setup(phys_fd, spd, USE_FLOW_CTRL);
+ tcflush(phys_fd, TCIOFLUSH);
+}
=20
+/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
+/* Infineon specific commands */
+/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
+
+void infineon_init_phys(int fd)
+{
+ fd_setup(fd, 115200, USE_FLOW_CTRL);
+}
+
+void
+infineon_init_hw(int bt_cfd, int phys_fd, int spd)
+{
+ unsigned int wrscan =3D (PAGE_SCAN_ENABLE | INQUIRY_SCAN_ENABLE);
+=20=20
+ sleep(1);
+ syslog(LOG_INFO, "Setting write_scan_enable in Infineon module!\n");
+ bt_write_scan_enable(bt_cfd, wrscan);
+
+ sleep(1); // wait for HW...=20
+ syslog(LOG_INFO, "Setting baudrate in Infineon module!\n");=20=20
+ bt_set_baudrate(bt_cfd, spd);
+=20=20
+ /* Now set phys device speed to whatever HW was set to use */
+ fd_setup(phys_fd, spd, USE_FLOW_CTRL);
tcflush(phys_fd, TCIOFLUSH);
}
=20
|
|
From: Peter K. <pk...@us...> - 2001-04-27 16:48:44
|
The following file was modified in apps/bluetooth/btd:
Name Old version New version Comment
---- ----------- ----------- -------
btd.c 1.96 1.97=20=20=20=20=20=20=20=20=20=20=20=20
The accompanying log:
Reorganized code somewhat.
The diff of the modified file(s):
--- btd.c 2001/04/27 15:38:03 1.96
+++ btd.c 2001/04/27 16:48:43 1.97
@@ -312,12 +312,14 @@
=20
static int hw_vendor(void);
=20
-static void ericsson_init_phys(int fd);
-static void ericsson_init_hw(int spd);
static void csr_init_phys(int fd);
static void csr_init_hw(int spd);
static void digianswer_init_phys(int fd);
static void digianswer_init_hw(int spd);
+static void ericsson_init_phys(int fd);
+static void ericsson_init_hw(int spd);
+static void infineon_init_phys(int fd);
+static void infineon_init_hw(int spd);
static void usb_init_phys(int fd);
static void usb_init_hw(int spd);
static void generic_init_phys(int fd);
@@ -326,8 +328,6 @@
static void no_init_hw(int spd);
static void unknown_init_phys(int fd);
static void unknown_init_hw(int spd);
-static void infineon_init_phys(int fd);
-static void infineon_init_hw(int spd);
=20
=20
#undef ECS_TEST_FUNCTIONS
@@ -418,14 +418,14 @@
#define BTD_HISTORY_FILE "/tmp/btd_history"
=20
#define HW_NOT_PROBED -1
-#define HW_ERICSSON 0
-#define HW_CSR 1
-#define HW_DIGIANSWER 2
-#define HW_USB 3
-#define HW_GENERIC 4
-#define HW_NO_INIT 5
-#define HW_UNKNOWN 6
-#define HW_INFINEON 7
+#define HW_CSR 0
+#define HW_DIGIANSWER 1
+#define HW_ERICSSON 2
+#define HW_INFINEON 3
+#define HW_USB 4
+#define HW_GENERIC 5
+#define HW_NO_INIT 6
+#define HW_UNKNOWN 7
=20
/*=20
Bluetooth discipline define. Should reside in /include/asm/termios.h
@@ -3197,10 +3197,6 @@
{
switch (hw_vendor())
{
- case HW_ERICSSON:
- ericsson_init_phys(fd);
- break;
-
case HW_CSR:
csr_init_phys(fd);
break;
@@ -3209,14 +3205,18 @@
digianswer_init_phys(fd);
break;
=20
- case HW_USB:
- usb_init_phys(fd);
+ case HW_ERICSSON:
+ ericsson_init_phys(fd);
break;
=20
case HW_INFINEON:
infineon_init_phys(fd);
break;
=20
+ case HW_USB:
+ usb_init_phys(fd);
+ break;
+
case HW_GENERIC:
generic_init_phys(fd);
break;
@@ -3237,10 +3237,6 @@
{
switch (hw_vendor())
{
- case HW_ERICSSON:
- ericsson_init_hw(spd);
- break;
-
case HW_CSR:
csr_init_hw(spd);
break;
@@ -3249,14 +3245,18 @@
digianswer_init_hw(spd);
break;
=20
- case HW_USB:
- usb_init_hw(spd);
+ case HW_ERICSSON:
+ ericsson_init_hw(spd);
break;
=20
case HW_INFINEON:
infineon_init_hw(spd);
break;
=20
+ case HW_USB:
+ usb_init_hw(spd);
+ break;
+
case HW_GENERIC:
generic_init_hw(spd);
break;
@@ -3283,20 +3283,20 @@
=20
if (!vendor)
hw_vendor =3D HW_UNKNOWN;
- else if (!strcmp(vendor, "Ericsson"))
- hw_vendor =3D HW_ERICSSON;
else if (!strcmp(vendor, "CSR"))
hw_vendor =3D HW_CSR;
else if (!strcmp(vendor, "Digianswer"))
hw_vendor =3D HW_DIGIANSWER;
+ else if (!strcmp(vendor, "Ericsson"))
+ hw_vendor =3D HW_ERICSSON;
+ else if (!strcmp(vendor, "Infineon"))
+ hw_vendor =3D HW_INFINEON;
else if (!strcmp(vendor, "USB"))
hw_vendor =3D HW_USB;
else if (!strcmp(vendor, "Generic"))
hw_vendor =3D HW_GENERIC;
else if (!strcmp(vendor, "No Init"))
hw_vendor =3D HW_NO_INIT;
- else if (!strcmp(vendor, "Infineon"))
- hw_vendor =3D HW_INFINEON;
else
hw_vendor =3D HW_UNKNOWN;
}
@@ -3305,67 +3305,6 @@
}
=20
/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
-/* Ericsson specific commands */
-/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
-
-/* Set the phys device to Ericsson default speed, 57600 */
-void
-ericsson_init_phys(int fd)
-{
- fd_setup(fd, 57600, USE_FLOW_CTRL);
-}
-
-void
-ericsson_init_hw(int spd)
-{
-#ifndef BTD_USERSTACK
- unsigned int wrscan =3D (PAGE_SCAN_ENABLE | INQUIRY_SCAN_ENABLE);
- unsigned char evfilter[3];
-=20=20
- /* wait for Ericsson module to boot if running this app directly at star=
tup=20
- */
- sleep(1);
-
- printf("Setting write_scan_enable in Ericsson module!\n");
- if (ioctl(bt_cfd, HCIWRITESCANENABLE, &wrscan) < 0)
- {=20
- perror("HCIWRITESCANENABLE");
- exit(1);
- }
-
- /* set_event_filter must be called for m/s switch on IrmaC! */
- sleep(1);
- evfilter[0] =3D 0x02; /* Connection setup */
- evfilter[1] =3D 0x00; /* All devices */
- evfilter[2] =3D 0x01; /* No auto accept */
- printf("Setting event filter in Ericsson module!\n");
- if (ioctl(bt_cfd, HCISET_EVENT_FILTER, &evfilter) < 0)
- {=20
- perror("HCISET_EVENT_FILTER");
- exit(1);
- }
-
- sleep(1); // wait for HW...=20
- printf("Setting baudrate in Ericsson module!\n");=20=20
- if (ioctl(bt_cfd, HCISETBAUDRATE, &spd) < 0)
- {
- perror("HCISETBAUDRATE");
- exit(1);
- }
-#else=20=20
- printf("Setting write_scan_enable in Ericsson module!\n");
- hci_write_scan_enable(PAGE_SCAN_ENABLE|INQUIRY_SCAN_ENABLE);=09=09
- sleep(1); /* wait for HW... */
-=20=20
- tcflush(phys_fd, TCIOFLUSH);
-
- printf("Setting baudrate in Ericsson module!\n");=20=20
- hci_set_baudrate(spd);=20=20
- usleep(10000); /* needed for some reason... */
-#endif
-}
-
-/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
/* CSR specific commands */
/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
=20
@@ -3384,6 +3323,7 @@
unsigned int wrscan =3D (PAGE_SCAN_ENABLE | INQUIRY_SCAN_ENABLE);
unsigned char evfilter[3];=20
unsigned int tmp[2];
+
tmp[0]=3D0x800;
tmp[1]=3D0x12;
=20=20=20
@@ -3455,35 +3395,66 @@
}
=20
/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
-/* USB specific commands */
+/* Ericsson specific commands */
/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
=20
+/* Set the phys device to Ericsson default speed, 57600 */
void
-usb_init_phys(int fd)
+ericsson_init_phys(int fd)
{
- fd_setup(fd, 115200, USE_FLOW_CTRL);
+ fd_setup(fd, 57600, USE_FLOW_CTRL);
}
=20
void
-usb_init_hw(int spd)
+ericsson_init_hw(int spd)
{
#ifndef BTD_USERSTACK
unsigned int wrscan =3D (PAGE_SCAN_ENABLE | INQUIRY_SCAN_ENABLE);
+ unsigned char evfilter[3];
+=20=20
+ /* wait for Ericsson module to boot if running this app directly at star=
tup=20
+ */
sleep(1);
- printf("Setting write_scan_enable in USB module!\n");
=20=20=20
+ printf("Setting write_scan_enable in Ericsson module!\n");
if (ioctl(bt_cfd, HCIWRITESCANENABLE, &wrscan) < 0)
{=20
perror("HCIWRITESCANENABLE");
exit(1);
}
+
+ /* set_event_filter must be called for m/s switch on IrmaC! */
+ sleep(1);
+ evfilter[0] =3D 0x02; /* Connection setup */
+ evfilter[1] =3D 0x00; /* All devices */
+ evfilter[2] =3D 0x01; /* No auto accept */
+ printf("Setting event filter in Ericsson module!\n");
+ if (ioctl(bt_cfd, HCISET_EVENT_FILTER, &evfilter) < 0)
+ {=20
+ perror("HCISET_EVENT_FILTER");
+ exit(1);
+ }
+
+ sleep(1); // wait for HW...=20
+ printf("Setting baudrate in Ericsson module!\n");=20=20
+ if (ioctl(bt_cfd, HCISETBAUDRATE, &spd) < 0)
+ {
+ perror("HCISETBAUDRATE");
+ exit(1);
+ }
#else
+ printf("Setting write_scan_enable in Ericsson module!\n");
hci_write_scan_enable(PAGE_SCAN_ENABLE|INQUIRY_SCAN_ENABLE);
- sleep(1); /* wait for HW */
+ sleep(1); /* wait for HW... */
+=20=20
+ tcflush(phys_fd, TCIOFLUSH);
+
+ printf("Setting baudrate in Ericsson module!\n");=20=20
+ hci_set_baudrate(spd);=20=20
+ usleep(10000); /* needed for some reason... */
#endif
}
=20
-
/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
/* Infineon specific commands */
/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
@@ -3526,7 +3497,35 @@
printf("Setting baudrate in Infineon chip!\n");
hci_set_baudrate(spd);=20=20
#endif
+}
+
+/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
+/* USB specific commands */
+/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
=20
+void
+usb_init_phys(int fd)
+{
+ fd_setup(fd, 115200, USE_FLOW_CTRL);
+}
+
+void
+usb_init_hw(int spd)
+{
+#ifndef BTD_USERSTACK
+ unsigned int wrscan =3D (PAGE_SCAN_ENABLE | INQUIRY_SCAN_ENABLE);
+ sleep(1);
+ printf("Setting write_scan_enable in USB module!\n");
+=20=20
+ if (ioctl(bt_cfd, HCIWRITESCANENABLE, &wrscan) < 0)
+ {=20
+ perror("HCIWRITESCANENABLE");
+ exit(1);
+ }
+#else
+ hci_write_scan_enable(PAGE_SCAN_ENABLE|INQUIRY_SCAN_ENABLE);
+ sleep(1); /* wait for HW */
+#endif
}
=20
/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
|
|
From: Peter K. <pk...@us...> - 2001-04-27 16:46:22
|
The following file was modified in linux/drivers/char/bluetooth: Name Old version New version Comment ---- ----------- ----------- ------- Config.in 1.11 1.12=20=20=20=20=20=20=20=20=20=20=20=20 The accompanying log: Added support for Infineon BlueMoon I hardware. The diff of the modified file(s): --- Config.in 2001/04/26 16:43:56 1.11 +++ Config.in 2001/04/27 16:46:21 1.12 @@ -13,6 +13,7 @@ CSR CONFIG_BLUETOOTH_CSR \ Digianswer CONFIG_BLUETOOTH_DIGIANSWER \ Ericsson CONFIG_BLUETOOTH_ERICSSON \ + Infineon CONFIG_BLUETOOTH_INFINEON_BMI \ Generic CONFIG_BLUETOOTH_GENERIC \ USB CONFIG_BLUETOOTH_USBMODULE" Ericsson =20 |
|
From: Peter K. <pk...@us...> - 2001-04-27 16:45:36
|
The following file was modified in linux/drivers/char/bluetooth:
Name Old version New version Comment
---- ----------- ----------- -------
hci_vendor.c 1.30 1.31=20=20=20=20=20=20=20=20=20=20=20=20
The accompanying log:
Corrected support for Infineon (as far as I could without actually
having access to the hardware).
The diff of the modified file(s):
--- hci_vendor.c 2001/04/27 15:38:04 1.30
+++ hci_vendor.c 2001/04/27 16:45:05 1.31
@@ -859,29 +859,31 @@
{
return "CSR";
}
+
#elif defined(CONFIG_BLUETOOTH_INFINEON_BMI)
/*************************************************************************=
****/
/***************** Functions for Infineon BlueMoon I chips****************=
***/
/*************************************************************************=
****/
=20
+#define VENDOR " [Infineon]"
+
s32
hci_set_bd_addr(u8 bd[6])
{
- D_ERR(__FUNCTION__" not supported.\n");
+ D_ERR(__FUNCTION__ VENDOR " not supported.\n");
return 0;
}
=20
-
s32
hci_read_firmware_rev_info(void)
{
- D_CMD(__FUNCTION__"\n");
+ D_CMD(__FUNCTION__ VENDOR "\n");
c_pkt.type =3D CMD_PKT;
c_pkt.opcode =3D hci_put_opcode(0x0005, 0x3f) ;
c_pkt.len =3D 0;
=20
- return send_cmd_block((u8*) &c_pkt ,c_pkt.len + CMD_HDR_LEN +
-HCI_HDR_LEN);
+ return send_cmd_block((u8*) &c_pkt,
+ c_pkt.len + CMD_HDR_LEN + HCI_HDR_LEN);
}
=20
s32
@@ -890,7 +892,7 @@
u8 pkt[6];
s32 tmp;
=20
- D_CMD(__FUNCTION__"(%d baud)\n", baudrate);
+ D_CMD(__FUNCTION__ VENDOR " (%d baud)\n", baudrate);
pkt[0] =3D CMD_PKT;
pkt[1] =3D 0x06;
pkt[2] =3D 0xfc;
@@ -925,8 +927,8 @@
pkt[5]=3D27;
break;
default:
- D_ERR(__FUNCTION__ ": Baudrate not supported\n");
- } // end of switch
+ D_ERR(__FUNCTION__ VENDOR ": Baudrate not supported\n");
+ }
tmp =3D send_cmd(pkt,6);
=20
/* the chip answers with two command complete events, the first using=20
@@ -943,7 +945,7 @@
void
process_vendor_event(u8 *buf, u32 len, u32 event_code)
{
- D_REC(__FUNCTION__" Infineon specific event\n");
+ D_REC(__FUNCTION__ VENDOR "\n");
if (len>=3D1) {
switch (buf[0]) {
case 0x00:
@@ -975,23 +977,23 @@
break;
=20
default:
- D_ERR(__FUNCTION__" Infineon specific unknown event\n");
+ D_ERR(__FUNCTION__ VENDOR ": Unknown event\n");
} /* end of switch */
} else {
- D_ERR(__FUNCTION__" Infineon specific invalid event\n");
+ D_ERR(__FUNCTION__ VENDOR ": Invalid event\n");
}
}
=20
-
void
process_vendor_return_param(u32 ocf, u8* r_val)
{
static int second=3D0;
+
switch (ocf) {
case 0x0005: /* read software version */
- D_CMD(__FUNCTION__" Infineon software version\n");
+ D_CMD(__FUNCTION__ VENDOR ": Software version\n");
if (r_val[0]!=3D0) {
- D_ERR(__FUNCTION__" Infineon software version read failure\n");
+ D_ERR(__FUNCTION__ VENDOR ": Software version read failure\n");
} else {
printk("Infineon LM-FW version is: %x.%x%x\n",
r_val[2]&0x0F,r_val[1]>>4,r_val[1]&0x0F);
@@ -1002,7 +1004,7 @@
break;
=20
case 0x0006: /* set baudrate */
- D_CMD(__FUNCTION__" Infineon baudrate set\n");
+ D_CMD(__FUNCTION__ VENDOR ": Baudrate set\n");
if ( (r_val[0]=3D=3D0x00) && (second=3D=3D0) ) {
printk("Infineon baudrate changes after this message\n");
second=3D1;
@@ -1010,7 +1012,7 @@
printk("Infineon baudrate has changed to new value\n");
second=3D0;
} else {
- D_ERR(__FUNCTION__" Infineon baudrate set failure %x\n",r_val[0]);
+ D_ERR(__FUNCTION__ VENDOR ": Baudrate set failure %x\n",r_val[0]);
}
release_cmd_timer();
wake_up_interruptible(&hci_wq);
@@ -1018,21 +1020,20 @@
=20
default:
release_cmd_timer();
- D_ERR(__FUNCTION__" Manufacturer specific : Invalid reply (0x%x)\n",
+ D_ERR(__FUNCTION__ VENDOR " Manufacturer specific: Invalid reply (0x%x)\=
n",
ocf);
wake_up_interruptible(&hci_wq);
break;
} /* end of switch */
}
-
=20
-char* get_hw_name(void)
+char*
+bt_hw_vendor(void)
{
- return "Chipset: Infineon BlueMoon I";
+ return "Infineon";
}
=20
#else
-
/*************************************************************************=
****/
/************************* HW_NOINIT and HW_GENERIC **********************=
****/
/*************************************************************************=
****/
@@ -1081,8 +1082,6 @@
return "Generic";
#elif defined(CONFIG_BLUETOOTH_NOINIT)
return "No Init";
-#elif defined(CONFIG_BLUETOOTH_INFINEON_BMI)
- return "Infineon";
#else
return "Unknown";
#endif
|
|
From: Peter K. <pk...@us...> - 2001-04-27 16:45:06
|
The following file was modified in linux/include/linux/bluetooth: Name Old version New version Comment ---- ----------- ----------- ------- btconfig.h 1.26 1.27=20=20=20=20=20=20=20=20=20=20=20=20 The accompanying log: Corrected support for Infineon (as far as I could without actually having access to the hardware). The diff of the modified file(s): --- btconfig.h 2001/04/27 15:38:04 1.26 +++ btconfig.h 2001/04/27 16:45:06 1.27 @@ -54,6 +54,18 @@ * General * ******************/ =20 +/* Bluetooth HW defines used to setup different HW and to cope with=20 + limitations in HW */ + +/* This sets current HW */ +#undef CONFIG_BLUETOOTH_NOINIT +#undef CONFIG_BLUETOOTH_CSR +#undef CONFIG_BLUETOOTH_DIGIANSWER +#define CONFIG_BLUETOOTH_ERICSSON +#undef CONFIG_BLUETOOTH_INFINEON_BMI +#undef CONFIG_BLUETOOTH_GENERIC=20=20=20=20 +#undef CONFIG_BLUETOOTH_USBMODULE /* Not implemented */ + /* Use TCI layer or not */ #undef CONFIG_BLUETOOTH_USE_TCI =20 @@ -70,20 +82,8 @@ #endif =20 #undef CONFIG_BLUETOOTH_ENABLE_MSSWITCH - #undef CONFIG_BLUETOOTH_FORCE_MSSWITCH - -/* Bluetooth HW defines used to setup different HW and to cope with=20 -limitations in HW */ - -/* This sets current HW */ -#undef CONFIG_BLUETOOTH_NOINIT -#undef CONFIG_BLUETOOTH_CSR -#undef CONFIG_BLUETOOTH_DIGIANSWER -#define CONFIG_BLUETOOTH_ERICSSON -#undef CONFIG_BLUETOOTH_GENERIC=20=20=20=20 -#undef CONFIG_BLUETOOTH_USBMODULE /* Not implemented */ -#undef CONFIG_BLUETOOTH_INFINEON_BMI +#undef CONFIG_BLUETOOTH_EARLY_MSSWITCH =20 /*************** * HCI * |
|
From: Gordon M. <gm...@us...> - 2001-04-27 15:38:34
|
The following file was modified in apps/bluetooth/btd:
Name Old version New version Comment
---- ----------- ----------- -------
btd.c 1.95 1.96=20=20=20=20=20=20=20=20=20=20=20=20
The accompanying log:
--Added the Infineon BlueMoon Chipset support provided by Christian Kranz.
The diff of the modified file(s):
--- btd.c 2001/04/25 18:13:05 1.95
+++ btd.c 2001/04/27 15:38:03 1.96
@@ -326,7 +326,10 @@
static void no_init_hw(int spd);
static void unknown_init_phys(int fd);
static void unknown_init_hw(int spd);
+static void infineon_init_phys(int fd);
+static void infineon_init_hw(int spd);
=20
+
#undef ECS_TEST_FUNCTIONS
=20
#ifdef ECS_TEST_FUNCTIONS
@@ -422,6 +425,7 @@
#define HW_GENERIC 4
#define HW_NO_INIT 5
#define HW_UNKNOWN 6
+#define HW_INFINEON 7
=20
/*=20
Bluetooth discipline define. Should reside in /include/asm/termios.h
@@ -3209,6 +3213,10 @@
usb_init_phys(fd);
break;
=20
+ case HW_INFINEON:
+ infineon_init_phys(fd);
+ break;
+
case HW_GENERIC:
generic_init_phys(fd);
break;
@@ -3245,6 +3253,10 @@
usb_init_hw(spd);
break;
=20
+ case HW_INFINEON:
+ infineon_init_hw(spd);
+ break;
+
case HW_GENERIC:
generic_init_hw(spd);
break;
@@ -3283,6 +3295,8 @@
hw_vendor =3D HW_GENERIC;
else if (!strcmp(vendor, "No Init"))
hw_vendor =3D HW_NO_INIT;
+ else if (!strcmp(vendor, "Infineon"))
+ hw_vendor =3D HW_INFINEON;
else
hw_vendor =3D HW_UNKNOWN;
}
@@ -3467,6 +3481,52 @@
hci_write_scan_enable(PAGE_SCAN_ENABLE|INQUIRY_SCAN_ENABLE);
sleep(1); /* wait for HW */
#endif
+}
+
+
+/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
+/* Infineon specific commands */
+/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
+
+void infineon_init_phys(int fd)
+{
+ fd_setup(fd, 115200, USE_FLOW_CTRL);
+}
+
+void
+infineon_init_hw(int spd)
+{
+#ifndef BTD_USERSTACK
+ unsigned int wrscan =3D (PAGE_SCAN_ENABLE | INQUIRY_SCAN_ENABLE);
+=20=20
+ sleep(1);
+ printf("Setting write_scan_enable in Infineon chip!\n");
+ if (ioctl(bt_cfd, HCIWRITESCANENABLE, &wrscan) < 0)
+ {=20
+ perror("HCIWRITESCANENABLE");
+ exit(1);
+ }
+
+ sleep(1); // wait for HW...=20
+ printf("Setting baudrate in Infineon module!\n");=20=20
+ if (ioctl(bt_cfd, HCISETBAUDRATE, &spd) < 0)
+ {
+ perror("HCISETBAUDRATE");
+ exit(1);
+ }
+ printf("read Firmware version number\n");
+
+#else=20=20
+ printf("Setting write_scan_enable in Infineon chip!\n");
+ hci_write_scan_enable(PAGE_SCAN_ENABLE|INQUIRY_SCAN_ENABLE);=20=20=20=20=
=20=20=20=20=20=20
+ sleep(1); /* wait for HW... */
+=20=20
+ tcflush(phys_fd, TCIOFLUSH);
+
+ printf("Setting baudrate in Infineon chip!\n");
+ hci_set_baudrate(spd);=20=20
+#endif
+
}
=20
/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
|
|
From: Gordon M. <gm...@us...> - 2001-04-27 15:38:34
|
The following file was modified in linux/drivers/char/bluetooth:
Name Old version New version Comment
---- ----------- ----------- -------
hci_vendor.c 1.29 1.30=20=20=20=20=20=20=20=20=20=20=20=20
The accompanying log:
--Added the Infineon BlueMoon Chipset support provided by Christian Kranz.
The diff of the modified file(s):
--- hci_vendor.c 2001/04/26 08:32:39 1.29
+++ hci_vendor.c 2001/04/27 15:38:04 1.30
@@ -859,7 +859,178 @@
{
return "CSR";
}
+#elif defined(CONFIG_BLUETOOTH_INFINEON_BMI)
+/*************************************************************************=
****/
+/***************** Functions for Infineon BlueMoon I chips****************=
***/
+/*************************************************************************=
****/
+
+s32
+hci_set_bd_addr(u8 bd[6])
+{
+ D_ERR(__FUNCTION__" not supported.\n");
+ return 0;
+}
+
+
+s32
+hci_read_firmware_rev_info(void)
+{
+ D_CMD(__FUNCTION__"\n");
+ c_pkt.type =3D CMD_PKT;
+ c_pkt.opcode =3D hci_put_opcode(0x0005, 0x3f) ;
+ c_pkt.len =3D 0;
+
+ return send_cmd_block((u8*) &c_pkt ,c_pkt.len + CMD_HDR_LEN +
+HCI_HDR_LEN);
+}
=20
+s32
+hci_set_baudrate(u32 baudrate)
+{
+ u8 pkt[6];
+ s32 tmp;
+
+ D_CMD(__FUNCTION__"(%d baud)\n", baudrate);
+ pkt[0] =3D CMD_PKT;
+ pkt[1] =3D 0x06;
+ pkt[2] =3D 0xfc;
+ pkt[3] =3D 0x02;
+ switch (baudrate) {
+ case 9600:
+ pkt[4]=3D3;
+ pkt[5]=3D168;
+ break;
+ case 19200:
+ pkt[4]=3D2;
+ pkt[5]=3D168;
+ break;
+ case 38400:
+ pkt[4]=3D1;
+ pkt[5]=3D168;
+ break;
+ case 57600:
+ pkt[4]=3D0;
+ pkt[5]=3D225;
+ break;
+ case 115200:
+ pkt[4]=3D0;
+ pkt[5]=3D112;
+ break;
+ case 230400:
+ pkt[4]=3D0;
+ pkt[5]=3D55;
+ break;
+ case 460800:
+ pkt[4]=3D0;
+ pkt[5]=3D27;
+ break;
+ default:
+ D_ERR(__FUNCTION__ ": Baudrate not supported\n");
+ } // end of switch
+ tmp =3D send_cmd(pkt,6);
+
+ /* the chip answers with two command complete events, the first using=20
+ the old baudrate, the second using the new baudrate. The second=20
+ event is send at least 0.125seconds after the first to let the=20
+ host change its baudrate too. */
+
+ start_cmd_timer();
+ interruptible_sleep_on(&hci_wq);
+
+ return tmp;
+}
+
+void
+process_vendor_event(u8 *buf, u32 len, u32 event_code)
+{
+ D_REC(__FUNCTION__" Infineon specific event\n");
+ if (len>=3D1) {
+ switch (buf[0]) {
+ case 0x00:
+ printk("Infineon event: Hardware Startup complete.\n");
+ break;
+ case 0x04:
+ printk("Infineon event: invalid packet length.\n");
+ break;
+ case 0x05:
+ printk("Infineon event: BD-Data invalid (check EEPROM).\n");
+ break;
+ case 0x07:
+ printk("Infineon event: invalid packet type.\n");
+ break;
+ case 0x09:
+ printk("Infineon event: invalid ACL_BC_PB_Flag.\n");
+ break;
+ case 0x0A:
+ printk("Infineon event: invalid ACL_CNC_Handle.\n");
+ break;
+ case 0x0B:
+ printk("Infineon event: invalid SCO_CNC_Handle.\n");
+ break;
+ case 0x0C:
+ printk("Infineon event: low power mode start.\n");
+ break;
+ case 0x0D:
+ printk("Infineon event: low power mode end.\n");
+ break;
+
+ default:
+ D_ERR(__FUNCTION__" Infineon specific unknown event\n");
+ } /* end of switch */
+ } else {
+ D_ERR(__FUNCTION__" Infineon specific invalid event\n");
+ }
+}
+
+
+void
+process_vendor_return_param(u32 ocf, u8* r_val)
+{
+ static int second=3D0;
+ switch (ocf) {
+ case 0x0005: /* read software version */
+ D_CMD(__FUNCTION__" Infineon software version\n");
+ if (r_val[0]!=3D0) {
+ D_ERR(__FUNCTION__" Infineon software version read failure\n");
+ } else {
+ printk("Infineon LM-FW version is: %x.%x%x\n",
+ r_val[2]&0x0F,r_val[1]>>4,r_val[1]&0x0F);
+ printk("Infineon BB-FW version is: %02x%02x\n",r_val[4],r_val[3]);
+ }
+ release_cmd_timer();
+ wake_up_interruptible(&hci_wq);
+ break;
+
+ case 0x0006: /* set baudrate */
+ D_CMD(__FUNCTION__" Infineon baudrate set\n");
+ if ( (r_val[0]=3D=3D0x00) && (second=3D=3D0) ) {
+ printk("Infineon baudrate changes after this message\n");
+ second=3D1;
+ } else if ( (r_val[0]=3D=3D0x00) && second) {
+ printk("Infineon baudrate has changed to new value\n");
+ second=3D0;
+ } else {
+ D_ERR(__FUNCTION__" Infineon baudrate set failure %x\n",r_val[0]);
+ }
+ release_cmd_timer();
+ wake_up_interruptible(&hci_wq);
+ break;
+
+ default:
+ release_cmd_timer();
+ D_ERR(__FUNCTION__" Manufacturer specific : Invalid reply (0x%x)\n",
+ocf);
+ wake_up_interruptible(&hci_wq);
+ break;
+ } /* end of switch */
+}
+
+
+char* get_hw_name(void)
+{
+ return "Chipset: Infineon BlueMoon I";
+}
+
#else
=20
/*************************************************************************=
****/
@@ -910,6 +1081,8 @@
return "Generic";
#elif defined(CONFIG_BLUETOOTH_NOINIT)
return "No Init";
+#elif defined(CONFIG_BLUETOOTH_INFINEON_BMI)
+ return "Infineon";
#else
return "Unknown";
#endif
|
|
From: Gordon M. <gm...@us...> - 2001-04-27 15:38:04
|
The following file was modified in linux/include/linux/bluetooth: Name Old version New version Comment ---- ----------- ----------- ------- btconfig.h 1.25 1.26=20=20=20=20=20=20=20=20=20=20=20=20 The accompanying log: --Added the Infineon BlueMoon Chipset support provided by Christian Kranz. The diff of the modified file(s): --- btconfig.h 2001/04/25 17:54:07 1.25 +++ btconfig.h 2001/04/27 15:38:04 1.26 @@ -83,6 +83,7 @@ #define CONFIG_BLUETOOTH_ERICSSON #undef CONFIG_BLUETOOTH_GENERIC=20=20=20=20 #undef CONFIG_BLUETOOTH_USBMODULE /* Not implemented */ +#undef CONFIG_BLUETOOTH_INFINEON_BMI =20 /*************** * HCI * |
|
From: Gordon M. <gm...@us...> - 2001-04-27 15:20:00
|
The following file was modified in linux/drivers/char/bluetooth:
Name Old version New version Comment
---- ----------- ----------- -------
hci.c 1.144 1.145=20=20=20=20=20=20=20=20=20=20=20
The accompanying log:
--Added the HCI commands written by Francesco Gallo and submitted by fabriz=
io.gennari.
The diff of the modified file(s):
--- hci.c 2001/04/26 16:43:56 1.144
+++ hci.c 2001/04/27 15:19:29 1.145
@@ -2890,6 +2890,84 @@
force_msswitch =3D enable;=20
}
=20
+
+s32
+hci_hold_mode(u32 con_hdl, u32 max_interval, u32 min_interval)
+{
+ c_pkt.type =3D CMD_PKT;
+ c_pkt.opcode =3D hci_put_opcode(HOLD_MODE, HCI_LP) ;
+ c_pkt.len =3D 6;
+ c_pkt.data[0] =3D con_hdl & 0xff;
+ c_pkt.data[1] =3D (con_hdl >> 8) & 0xff;
+ c_pkt.data[2] =3D max_interval & 0xff;
+ c_pkt.data[3] =3D (max_interval >> 8) & 0xff;
+ c_pkt.data[4] =3D min_interval & 0xff;
+ c_pkt.data[5] =3D (min_interval >> 8) & 0xff;
+
+ return send_cmd((u8*) &c_pkt, c_pkt.len + CMD_HDR_LEN + HCI_HDR_LE=
N);
+}
+
+s32
+hci_write_page_to(u32 page_to)
+{
+ c_pkt.type =3D CMD_PKT;
+ c_pkt.opcode =3D hci_put_opcode(WRITE_PAGE_TIMEOUT, HCI_HC) ;
+ c_pkt.len =3D 2;
+ c_pkt.data[0] =3D page_to & 0xff;
+ c_pkt.data[1] =3D (page_to >> 8) & 0xff;
+
+ return send_cmd((u8*) &c_pkt, c_pkt.len + CMD_HDR_LEN + HCI_HDR_LE=
N);
+}
+
+s32
+hci_write_hold_mode_activity(u32 hma)
+{
+ c_pkt.type =3D CMD_PKT;
+ c_pkt.opcode =3D hci_put_opcode(WRITE_HOLD_MODE_ACTIVITY, HCI_HC) ;
+ c_pkt.len =3D 1;
+ c_pkt.data[0] =3D hma & 0xff;
+
+ return send_cmd((u8*) &c_pkt, c_pkt.len + CMD_HDR_LEN + HCI_HDR_LE=
N);
+}
+
+s32 hci_write_connection_accept_to(u32 co_ac_to)
+{
+ c_pkt.type =3D CMD_PKT;
+ c_pkt.opcode =3D hci_put_opcode(WRITE_CONNECTION_ACCEPT_TIMEOUT, H=
CI_HC) ;
+ c_pkt.len =3D 2;
+ c_pkt.data[0] =3D co_ac_to & 0xff;
+ c_pkt.data[1] =3D (co_ac_to >> 8) & 0xff;
+ return send_cmd((u8*) &c_pkt, c_pkt.len + CMD_HDR_LEN + HCI_HDR_LE=
N);
+}
+
+s32 hci_inquiry_cancel(void)
+{
+ c_pkt.type =3D CMD_PKT;
+ c_pkt.opcode =3D hci_put_opcode(INQUIRY_CANCEL, HCI_LC) ;
+ c_pkt.len =3D 0;
+ return send_cmd((u8*) &c_pkt, c_pkt.len + CMD_HDR_LEN + HCI_HDR_LE=
N);
+}
+
+s32 hci_read_clock_offset(u32 hdl)
+{
+ c_pkt.type =3D CMD_PKT;
+ c_pkt.opcode =3D hci_put_opcode(READ_CLOCK_OFFSET, HCI_LC) ;
+ c_pkt.data[0] =3D (hdl & 0xff);
+ c_pkt.data[1] =3D ((hdl >> 8) & 0xff);
+ c_pkt.len =3D 2;
+ return send_cmd((u8*) &c_pkt, c_pkt.len + CMD_HDR_LEN + HCI_HDR_LE=
N);
+}
+
+s32 hci_read_rssi(u32 hdl)
+{
+ c_pkt.type =3D CMD_PKT;
+ c_pkt.opcode =3D hci_put_opcode(READ_RSSI, HCI_SP) ;
+ c_pkt.data[0] =3D (hdl & 0xff);
+ c_pkt.data[1] =3D ((hdl >> 8) & 0xff);
+ c_pkt.len =3D 2;
+ return send_cmd((u8*) &c_pkt, c_pkt.len + CMD_HDR_LEN + HCI_HDR_LE=
N);
+}
+
/* Sends a connect request to the BT unit with the address bd_addr */
s32=20
lp_connect_req(u8 bd_addr[])
|
|
From: Gordon M. <gm...@us...> - 2001-04-27 15:19:30
|
The following file was modified in linux/include/linux/bluetooth: Name Old version New version Comment ---- ----------- ----------- ------- hci.h 1.54 1.55=20=20=20=20=20=20=20=20=20=20=20=20 The accompanying log: --Added the HCI commands written by Francesco Gallo and submitted by fabriz= io.gennari. The diff of the modified file(s): --- hci.h 2001/04/25 17:46:11 1.54 +++ hci.h 2001/04/27 15:19:29 1.55 @@ -135,6 +135,13 @@ s32 hci_write_class_of_device(u8 *class_of_device); s32 hci_set_event_filter(u8 *data); s32 hci_read_power_transmit_level(u32 con_hdl, unsigned char type); +s32 hci_hold_mode(u32 con_hdl, u32 max_interval, u32 min_interval); +s32 hci_write_page_to(u32 page_to); +s32 hci_write_hold_mode_activity(u32 hma); +s32 hci_write_connection_accept_to(u32 co_ac_to); +s32 hci_inquiry_cancel(void); +s32 hci_read_clock_offset(u32 hdl); +s32 hci_read_rssi(u32 hdl); =20 /* Informational Parameters */ s32 hci_read_local_bd(u8 *bd); |
|
From: Mattias A. <mat...@us...> - 2001-04-27 14:53:32
|
The following files were modified in apps/bluetooth/experimental:
Name Old version New version Comment
---- ----------- ----------- -------
bt_if.c 1.12 1.13=20=20=20=20=20=20=20=20=20=20=20=20
bt_if.h 1.7 1.8=20=20=20=20=20=20=20=20=20=20=20=20=20
The accompanying log:
* extracted the ioctl part from set_local_name into bt_set_local_name=20
and renamed set_local_name to set_local_hostname
* changed some debug
The diff of the modified file(s):
--- bt_if.c 2001/04/26 10:52:30 1.12
+++ bt_if.c 2001/04/27 14:53:31 1.13
@@ -64,13 +64,15 @@
#include "bt_user.h"
#include "bt_errno.h"
=20
+#define D(x) //x
+
/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D */
/* Functions common for kernel and usermode stack */
/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D */
=20
void init_stack(int bt_cfd, int spd)
{
- printf("Init stack\n");
+ syslog(LOG_INFO, "Init stack\n");
=20=20=20
#ifdef BT_USERSTACK
init_userstack();
@@ -87,9 +89,8 @@
bt_set_classofdevice(bt_cfd, 0x10, 0x3, 0x0, 0x0);
=20
#ifndef __CRIS__
- set_local_name(bt_cfd, "AXIS");
+ set_local_hostname(bt_cfd, "AXIS");
#endif
-=20=20
}
=20
/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D */
@@ -179,7 +180,7 @@
int bt_openctrl(void)
{
int bt_cfd;
- printf("Now opening BT Ctrl TTY [%s]\n", BT_CTRL_TTY);
+ D(syslog(LOG_INFO, "Now opening BT Ctrl TTY [%s]\n", BT_CTRL_TTY));
#ifdef BT_USERSTACK
printf(__FUNCTION__ ": ignored in userstack\n");
return FD_BTUSERCTRL;
@@ -207,7 +208,7 @@
if (GET_PSM(con_id) =3D=3D RFCOMM_LAYER)
con.id =3D con_id;
else{=20=20
- printf("Only connects rfcomm as client !\n");
+ printf("Only connects rfcomm (yet)\n");
return -1;
}
=20
@@ -804,7 +805,8 @@
#endif
}
=20
-void set_local_name(int bt_cfd, const char *local_name)
+
+void set_local_hostname(int bt_cfd, const char *local_name)
{
unsigned char domainname[DOMAIN_NAME_LENGTH+1];
unsigned char buf[LOCAL_NAME_LENGTH + HOST_NAME_LENGTH +=20
@@ -849,17 +851,23 @@
strcat(buf, ")");
}
=20
+ bt_set_local_name(bt_cfd, buf);
+
+}
+
+void bt_set_local_name(int bt_cfd, const char *name)
+{
+ syslog(LOG_INFO, "bt_set_local_name %s", name);
#ifndef BT_USERSTACK=20=20
- if (ioctl(bt_cfd, HCISETLOCALNAME, buf) < 0)
+ if (ioctl(bt_cfd, HCISETLOCALNAME, name) < 0)
{
perror(__FUNCTION__);
exit(1);
}
#else
- hci_change_local_name(buf);
+ hci_change_local_name(name);
#endif
}
-
=20
/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D */
/* Misc functions */
--- bt_if.h 2001/04/26 14:07:10 1.7
+++ bt_if.h 2001/04/27 14:53:31 1.8
@@ -322,9 +322,11 @@
void enable_dut(int bt_cfd);
=20
=20
-/* Sets friendly name in HW to hostname */
-void set_local_name(int bt_cfd, const char *local_name);
+/* Sets friendly name to local_name + hostname in HW */
+void set_local_hostname(int bt_cfd, const char *local_name);
=20
+/* Sets friendly name to name */
+void bt_set_local_name(int bt_cfd, const char *name);
/*=20
* Misc functions=20
*/
|
|
From: Gordon M. <gm...@us...> - 2001-04-27 14:52:17
|
The following file was modified in linux/drivers/char/bluetooth:
Name Old version New version Comment
---- ----------- ----------- -------
README 1.29 1.30=20=20=20=20=20=20=20=20=20=20=20=20
The accompanying log:
--Ammended FAQ.
The diff of the modified file(s):
--- README 2001/04/26 16:34:24 1.29
+++ README 2001/04/27 14:52:17 1.30
@@ -404,8 +404,27 @@
btduser is the user mode driver. It runs as an application in user spac=
e,
where usually the worse thing that can happen is a segfault. You don't =
have
to insmod anything for user mode. You just run the application. To build
- the 'stack' for usermode just go to the top level and type 'make', foll=
owed
- by 'make install' (as root). Then btduser should be in your path.
+ the 'stack' for usermode just go to the top level and type 'make'. If y=
ou
+ see errors while building btduser then cd to the btduser directory and =
type
+ 'make links'. Then try again. Finally, at the top level type 'make inst=
all'
+ (as root). Then btduser should be in your path.
+
+Q: After I make a connection from the client and try to send data I see the
+ following error message on the server side:
+
+ BT SYS: ERROR :Line 0 not active and linebuf full, silent discard \
+ (considerincreasing line buffer [256])
+
+A: It's not an error (even though the debug says it...), it only tells=20
+ you that the line buffer is full. The reason for this is that you don'=
t=20
+ seem to have an application on top of the tty which takes care of the=
=20
+ data. The line buffer was meant to store a small amount of data until =
an=20
+ application was started after detecting that a connection was setup. E=
.g=20
+ pppd is started over /dev/ttyBT0 when a new rfcomm is discovered. If t=
his=20
+ takes too long the data won't be lost. (Answer provided by Mattias Agr=
en)
+
+
+
=20
o If you are having troubles with trashed data on the UART please look=20
at http://developer.axis.com/download/bluetooth/uart_problems
|
|
From: Mattias A. <mat...@us...> - 2001-04-27 14:41:23
|
The following file was modified in apps/bluetooth/experimental: Name Old version New version Comment ---- ----------- ----------- ------- btconfig.c 1.1 Added The accompanying log: * Initial version, configures BT driver either from options or config file |
|
From: Mattias A. <mat...@us...> - 2001-04-27 14:39:57
|
The following file was modified in apps/bluetooth/experimental: Name Old version New version Comment ---- ----------- ----------- ------- Makefile 1.3 1.4=20=20=20=20=20=20=20=20=20=20=20=20=20 The accompanying log: * added btconfig The diff of the modified file(s): --- Makefile 2001/03/21 18:31:22 1.3 +++ Makefile 2001/04/27 14:39:50 1.4 @@ -5,7 +5,7 @@ include $(APPS)/Rules.elinux endif =20 -PROGS =3D btdm memul bti btinq bttest btcon btsend btdisc +PROGS =3D btdm memul bti btinq bttest btcon btsend btdisc btconfig =20 # Define HAVE_READLINE_READLINE if you have readline support, with the inc= lude # files in $(include_dir)/readline. Define HAVE_READLINE if you have the @@ -28,6 +28,7 @@ BTDISCOBJS =3D btdisc.o bt_if.o bt_misc.o BTINQOBJS =3D btinq.o bt_if.o bt_misc.o BTTESTOBJS =3D bttest.o bt_misc.o bt_vendor.o bt_if.o +BTCONFIGOBJS =3D btconfig.o bt_if.o bt_misc.o =20 ifdef HAVE_READLINE_READLINE LDLIBS +=3D -lreadline -ltermcap @@ -69,6 +70,9 @@ =20 bttest: $(BTTESTOBJS) $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ + +btconfig: $(BTCONFIGOBJS) + $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ =20 install: $(PROGS) $(INSTALL) -d $(INSTDIR) |
|
From: Mattias A. <mat...@us...> - 2001-04-27 10:16:10
|
The following files were modified in linux/include/linux/bluetooth: Name Old version New version Comment ---- ----------- ----------- ------- l2cap.h 1.37 1.38=20=20=20=20=20=20=20=20=20=20=20=20 l2cap_con.h 1.6 1.7=20=20=20=20=20=20=20=20=20=20=20=20=20 The accompanying log: * moved declarations of l2ca_wait/wakeup to l2cap.h * some cleanup The diff of the modified file(s): --- l2cap.h 2001/03/30 09:44:15 1.37 +++ l2cap.h 2001/04/27 10:16:09 1.38 @@ -376,17 +376,11 @@ s32 l2ca_ping(BD_ADDR bd, u8 *opt_data, u16 len); s32 l2cap_echo_req(l2cap_con *con, u8 *opt_data, u16 opt_len); =20 - s32 l2ca_getinfo(BD_ADDR bd, u16 infotype); s32 l2cap_info_req(l2cap_con *con, u16 info_type); =20 -/**************************************************************/ -/* (E5) Timer events */ -/**********************/ - -/* FIXME */ -/* RTX timer */ -/* ERTX timer */ +void l2ca_wait(const char *str, l2cap_con *con); +void l2ca_wakeup(const char *str, l2cap_con *con); =20 /*******************************************************************/ /*-------------------------- ACTIONS ------------------------------*/ @@ -429,8 +423,7 @@ void l2ca_disconnect_ind(l2cap_con *con); void l2ca_disconnect_cfm(l2cap_con *con); =20 -/* FIXME */ -void l2ca_timeout_ind(l2cap_con *con); +void l2ca_timeoutind(l2cap_con *con); =20 /* FIXME */ void l2ca_qos_violation_ind(l2cap_con *con); @@ -447,7 +440,6 @@ /***********************/ =20 /* GROUP functions not implemented */ -/* INFO functions not implemented */ /* CONNECTIONLESS functions not implemented */ =20 =20=20 --- l2cap_con.h 2001/04/19 10:31:34 1.6 +++ l2cap_con.h 2001/04/27 10:16:09 1.7 @@ -108,9 +108,6 @@ void show_list(void); s32 count_con(u16 hci_hdl); =20 -void l2ca_wait(const char *str, l2cap_con *con); -void l2ca_wakeup(const char *str, l2cap_con *con); - =20 #if L2CAP_SELFTEST void test_conlist(void); |
|
From: Peter K. <pk...@us...> - 2001-04-26 16:43:58
|
The following files were modified in linux/drivers/char/bluetooth:
Name Old version New version Comment
---- ----------- ----------- -------
Config.in 1.10 1.11=20=20=20=20=20=20=20=20=20=20=20=20
hci.c 1.143 1.144=20=20=20=20=20=20=20=20=20=20=20
The accompanying log:
Set CONFIG_BLUETOOTH_EARLY_MSSWITCH in Config.in instead.
The diff of the modified file(s):
--- Config.in 2001/03/30 11:31:55 1.10
+++ Config.in 2001/04/26 16:43:56 1.11
@@ -6,16 +6,7 @@
=20
tristate 'Bluetooth driver' CONFIG_BLUETOOTH
=20
-if [ "$CONFIG_BLUETOOTH" !=3D "n" ]; then
-
- bool ' Bluetooth proc entries' CONFIG_BLUETOOTH_PROC
- bool ' Input buffering' CONFIG_BLUETOOTH_USE_INBUFFER
- bool ' Use Security Manager' CONFIG_BLUETOOTH_USE_SECURITY_MANAGER
- bool ' Use L2CAP timers' CONFIG_BLUETOOTH_L2CAP_USE_TIMERS
- bool ' Allow connectionless L2CAP' CONFIG_BLUETOOTH_L2CAP_CONNECTIONLESS
- bool ' Enable TCI' CONFIG_BLUETOOTH_USE_TCI
- bool ' Enable M/S Switch' CONFIG_BLUETOOTH_ENABLE_MSSWITCH
- bool ' Force M/S Switch as server' CONFIG_BLUETOOTH_FORCE_MSSWITCH
+if [ "$CONFIG_BLUETOOTH" =3D "y" -o "$CONFIG_BLUETOOTH" =3D "m" ]; then
=20
choice ' Bluetooth hardware type' \
"None CONFIG_BLUETOOTH_NOINIT \
@@ -29,12 +20,31 @@
bool ' Block when setting baudrate' CONFIG_BLUETOOTH_SET_BAUDRATE_BLO=
CKING
fi
=20
+ bool ' Bluetooth proc entries' CONFIG_BLUETOOTH_PROC
+ bool ' Input buffering' CONFIG_BLUETOOTH_USE_INBUFFER
+ bool ' Use Security Manager' CONFIG_BLUETOOTH_USE_SECURITY_MANAGER
+ bool ' Use L2CAP timers' CONFIG_BLUETOOTH_L2CAP_USE_TIMERS
+ bool ' Allow connectionless L2CAP' CONFIG_BLUETOOTH_L2CAP_CONNECTIONLESS
+ bool ' Enable TCI' CONFIG_BLUETOOTH_USE_TCI
+ bool ' Enable M/S Switch' CONFIG_BLUETOOTH_ENABLE_MSSWITCH
+
+ if [ "$CONFIG_BLUETOOTH_ENABLE_MSSWITCH" =3D "y" ]; then
+ bool ' Force M/S Switch as server' CONFIG_BLUETOOTH_FORCE_MSSWITCH
+
+ # CSR can't do scatternet yet, so we need to do M/S switch=20
+ # as early as in lp_connect_rsp()
+ if [ "$CONFIG_BLUETOOTH_CSR" =3D "y" ]; then
+ define_bool CONFIG_BLUETOOTH_EARLY_MSSWITCH y
+ fi
+ fi
+
choice ' Bluetooth reset pin' \
"None CONFIG_BLUETOOTH_RESET_NONE \
Port_PA_Bit_7 CONFIG_BLUETOOTH_RESET_PA7 \
Port_PB_Bit_5 CONFIG_BLUETOOTH_RESET_PB5 \
Port_G_Bit_10 CONFIG_BLUETOOTH_RESET_G10 \
Port_G_Bit_11 CONFIG_BLUETOOTH_RESET_G11" None
+
fi
=20
endmenu
--- hci.c 2001/04/25 16:54:47 1.143
+++ hci.c 2001/04/26 16:43:56 1.144
@@ -1743,12 +1743,6 @@
#ifdef CONFIG_BLUETOOTH_ENABLE_MSSWITCH
DSYS("M/S switch enabled\n");
=20
-#ifdef CONFIG_BLUETOOTH_CSR
- /* CSR can't do scatternet yet, so we need to do m/s switch=20
- as early as in lp_connect_rsp */
-#define CONFIG_BLUETOOTH_EARLY_MSSWITCH
-#endif
-
#ifdef CONFIG_BLUETOOTH_FORCE_MSSWITCH
hci_force_msswitch(1);
#else
|
|
From: Gordon M. <gm...@us...> - 2001-04-26 16:34:25
|
The following file was modified in linux/drivers/char/bluetooth:
Name Old version New version Comment
---- ----------- ----------- -------
README 1.28 1.29=20=20=20=20=20=20=20=20=20=20=20=20
The accompanying log:
--Added to FAQ about building usermode.
The diff of the modified file(s):
--- README 2001/04/25 23:35:50 1.28
+++ README 2001/04/26 16:34:24 1.29
@@ -403,7 +403,9 @@
=20
btduser is the user mode driver. It runs as an application in user spac=
e,
where usually the worse thing that can happen is a segfault. You don't =
have
- to insmod anything for user mode. You just run the application.
+ to insmod anything for user mode. You just run the application. To build
+ the 'stack' for usermode just go to the top level and type 'make', foll=
owed
+ by 'make install' (as root). Then btduser should be in your path.
=20
o If you are having troubles with trashed data on the UART please look=20
at http://developer.axis.com/download/bluetooth/uart_problems
|