Commit 10632c9e authored by Marcel Holtmann's avatar Marcel Holtmann

Merge bk://linux.bkbits.net/linux-2.5

into hostme.bitkeeper.com:/ua/repos/l/linux-bt/bt-2.5
parents 5e5ac463 25d73f23
...@@ -701,7 +701,13 @@ static struct hci_uart_proto bcsp = { ...@@ -701,7 +701,13 @@ static struct hci_uart_proto bcsp = {
int bcsp_init(void) int bcsp_init(void)
{ {
return hci_uart_register_proto(&bcsp); int err = hci_uart_register_proto(&bcsp);
if (!err)
BT_INFO("HCI BCSP protocol initialized");
else
BT_ERR("HCI BCSP protocol registration failed");
return err;
} }
int bcsp_deinit(void) int bcsp_deinit(void)
......
...@@ -269,7 +269,13 @@ static struct hci_uart_proto h4p = { ...@@ -269,7 +269,13 @@ static struct hci_uart_proto h4p = {
int h4_init(void) int h4_init(void)
{ {
return hci_uart_register_proto(&h4p); int err = hci_uart_register_proto(&h4p);
if (!err)
BT_INFO("HCI H4 protocol initialized");
else
BT_ERR("HCI H4 protocol registration failed");
return err;
} }
int h4_deinit(void) int h4_deinit(void)
......
...@@ -344,6 +344,7 @@ static void hci_uart_tty_wakeup(struct tty_struct *tty) ...@@ -344,6 +344,7 @@ static void hci_uart_tty_wakeup(struct tty_struct *tty)
if (tty != hu->tty) if (tty != hu->tty)
return; return;
if (test_bit(HCI_UART_PROTO_SET, &hu->flags))
hci_uart_tx_wakeup(hu); hci_uart_tx_wakeup(hu);
} }
...@@ -521,9 +522,7 @@ int __init hci_uart_init(void) ...@@ -521,9 +522,7 @@ int __init hci_uart_init(void)
static struct tty_ldisc hci_uart_ldisc; static struct tty_ldisc hci_uart_ldisc;
int err; int err;
BT_INFO("Bluetooth HCI UART driver ver %s Copyright (C) 2000,2001 Qualcomm Inc", BT_INFO("HCI UART driver ver %s", VERSION);
VERSION);
BT_INFO("Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com>");
/* Register the tty discipline */ /* Register the tty discipline */
...@@ -541,7 +540,7 @@ int __init hci_uart_init(void) ...@@ -541,7 +540,7 @@ int __init hci_uart_init(void)
hci_uart_ldisc.write_wakeup= hci_uart_tty_wakeup; hci_uart_ldisc.write_wakeup= hci_uart_tty_wakeup;
if ((err = tty_register_ldisc(N_HCI, &hci_uart_ldisc))) { if ((err = tty_register_ldisc(N_HCI, &hci_uart_ldisc))) {
BT_ERR("Can't register HCI line discipline (%d)", err); BT_ERR("HCI line discipline registration failed. (%d)", err);
return err; return err;
} }
......
...@@ -68,7 +68,7 @@ struct hci_uart { ...@@ -68,7 +68,7 @@ struct hci_uart {
}; };
/* HCI_UART flag bits */ /* HCI_UART flag bits */
#define HCI_UART_PROTO_SET 0x00 #define HCI_UART_PROTO_SET 0
/* TX states */ /* TX states */
#define HCI_UART_SENDING 1 #define HCI_UART_SENDING 1
......
...@@ -805,9 +805,7 @@ int hci_usb_init(void) ...@@ -805,9 +805,7 @@ int hci_usb_init(void)
{ {
int err; int err;
BT_INFO("Bluetooth HCI USB driver ver %s Copyright (C) 2000,2001 Qualcomm Inc", BT_INFO("HCI USB driver ver %s", VERSION);
VERSION);
BT_INFO("Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com>");
if ((err = usb_register(&hci_usb_driver)) < 0) if ((err = usb_register(&hci_usb_driver)) < 0)
BT_ERR("Failed to register HCI USB driver"); BT_ERR("Failed to register HCI USB driver");
......
...@@ -331,9 +331,7 @@ static struct miscdevice hci_vhci_miscdev= ...@@ -331,9 +331,7 @@ static struct miscdevice hci_vhci_miscdev=
int __init hci_vhci_init(void) int __init hci_vhci_init(void)
{ {
BT_INFO("Bluetooth VHCI driver ver %s Copyright (C) 2000,2001 Qualcomm Inc", BT_INFO("VHCI driver ver %s", VERSION);
VERSION);
BT_INFO("Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com>");
if (misc_register(&hci_vhci_miscdev)) { if (misc_register(&hci_vhci_miscdev)) {
BT_ERR("Can't register misc device %d\n", VHCI_MINOR); BT_ERR("Can't register misc device %d\n", VHCI_MINOR);
......
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
#define SOL_SCO 17 #define SOL_SCO 17
#define SOL_RFCOMM 18 #define SOL_RFCOMM 18
#define BT_INFO(fmt, arg...) printk(KERN_INFO fmt "\n" , ## arg) #define BT_INFO(fmt, arg...) printk(KERN_INFO "Bluetooth: " fmt "\n" , ## arg)
#define BT_DBG(fmt, arg...) printk(KERN_INFO "%s: " fmt "\n" , __FUNCTION__ , ## arg) #define BT_DBG(fmt, arg...) printk(KERN_INFO "%s: " fmt "\n" , __FUNCTION__ , ## arg)
#define BT_ERR(fmt, arg...) printk(KERN_ERR "%s: " fmt "\n" , __FUNCTION__ , ## arg) #define BT_ERR(fmt, arg...) printk(KERN_ERR "%s: " fmt "\n" , __FUNCTION__ , ## arg)
......
...@@ -326,9 +326,7 @@ extern int hci_sock_cleanup(void); ...@@ -326,9 +326,7 @@ extern int hci_sock_cleanup(void);
static int __init bt_init(void) static int __init bt_init(void)
{ {
BT_INFO("Bluetooth Core ver %s Copyright (C) 2000,2001 Qualcomm Inc", BT_INFO("Core ver %s", VERSION);
VERSION);
BT_INFO("Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com>");
proc_mkdir("bluetooth", NULL); proc_mkdir("bluetooth", NULL);
...@@ -338,12 +336,14 @@ static int __init bt_init(void) ...@@ -338,12 +336,14 @@ static int __init bt_init(void)
SLAB_HWCACHE_ALIGN, 0, 0); SLAB_HWCACHE_ALIGN, 0, 0);
if (!bt_sock_cache) { if (!bt_sock_cache) {
BT_ERR("Bluetooth socket cache creation failed"); BT_ERR("Socket cache creation failed");
return -ENOMEM; return -ENOMEM;
} }
sock_register(&bt_sock_family_ops); sock_register(&bt_sock_family_ops);
BT_INFO("HCI device and connection manager initialized");
hci_sock_init(); hci_sock_init();
return 0; return 0;
} }
......
...@@ -561,6 +561,8 @@ int bnep_add_connection(struct bnep_conadd_req *req, struct socket *sock) ...@@ -561,6 +561,8 @@ int bnep_add_connection(struct bnep_conadd_req *req, struct socket *sock)
else else
strcpy(dev->name, "bnep%d"); strcpy(dev->name, "bnep%d");
memset(dev->broadcast, 0xff, ETH_ALEN);
/* This is rx header therefor addresses are swaped. /* This is rx header therefor addresses are swaped.
* ie eh.h_dest is our local address. */ * ie eh.h_dest is our local address. */
memcpy(s->eh.h_dest, &src, ETH_ALEN); memcpy(s->eh.h_dest, &src, ETH_ALEN);
...@@ -702,16 +704,21 @@ int bnep_get_coninfo(struct bnep_coninfo *ci) ...@@ -702,16 +704,21 @@ int bnep_get_coninfo(struct bnep_coninfo *ci)
static int __init bnep_init_module(void) static int __init bnep_init_module(void)
{ {
BT_INFO("BNEP: BNEP2 ver %s\n" char flt[50] = "";
"BNEP: Copyright (C) 2002 Inventel\n"
"BNEP: Written 2001,2002 by\n"
"BNEP: \tClement Moreau <clement.moreau@inventel.fr> "
"David Libault <david.libault@inventel.fr>\n"
"BNEP: Copyright (C) 2002 Maxim Krasnyanskiy <maxk@qualcomm.com>",
VERSION);
bnep_sock_init(); #ifdef CONFIG_BT_BNEP_PROTO_FILTER
strcat(flt, "protocol ");
#endif
#ifdef CONFIG_BT_BNEP_MC_FILTER
strcat(flt, "multicast");
#endif
BT_INFO("BNEP (Ethernet Emulation) ver %s", VERSION);
if (flt[0])
BT_INFO("BNEP filters: %s", flt);
bnep_sock_init();
return 0; return 0;
} }
...@@ -723,6 +730,6 @@ static void __exit bnep_cleanup_module(void) ...@@ -723,6 +730,6 @@ static void __exit bnep_cleanup_module(void)
module_init(bnep_init_module); module_init(bnep_init_module);
module_exit(bnep_cleanup_module); module_exit(bnep_cleanup_module);
MODULE_DESCRIPTION("BNEP ver " VERSION); MODULE_DESCRIPTION("Bluetooth BNEP ver " VERSION);
MODULE_AUTHOR("David Libault <david.libault@inventel.fr> Maxim Krasnyanskiy <maxk@qualcomm.com>"); MODULE_AUTHOR("David Libault <david.libault@inventel.fr>, Maxim Krasnyanskiy <maxk@qualcomm.com>");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
...@@ -628,18 +628,21 @@ struct notifier_block hci_sock_nblock = { ...@@ -628,18 +628,21 @@ struct notifier_block hci_sock_nblock = {
int hci_sock_init(void) int hci_sock_init(void)
{ {
if (bt_sock_register(BTPROTO_HCI, &hci_sock_family_ops)) { if (bt_sock_register(BTPROTO_HCI, &hci_sock_family_ops)) {
BT_ERR("Can't register HCI socket"); BT_ERR("HCI socket registration failed");
return -EPROTO; return -EPROTO;
} }
hci_register_notifier(&hci_sock_nblock); hci_register_notifier(&hci_sock_nblock);
BT_INFO("HCI socket layer initialized");
return 0; return 0;
} }
int hci_sock_cleanup(void) int hci_sock_cleanup(void)
{ {
if (bt_sock_unregister(BTPROTO_HCI)) if (bt_sock_unregister(BTPROTO_HCI))
BT_ERR("Can't unregister HCI socket"); BT_ERR("HCI socket unregistration failed");
hci_unregister_notifier(&hci_sock_nblock); hci_unregister_notifier(&hci_sock_nblock);
return 0; return 0;
......
...@@ -2079,19 +2079,20 @@ int __init l2cap_init(void) ...@@ -2079,19 +2079,20 @@ int __init l2cap_init(void)
int err; int err;
if ((err = bt_sock_register(BTPROTO_L2CAP, &l2cap_sock_family_ops))) { if ((err = bt_sock_register(BTPROTO_L2CAP, &l2cap_sock_family_ops))) {
BT_ERR("Can't register L2CAP socket"); BT_ERR("L2CAP socket registration failed");
return err; return err;
} }
if ((err = hci_register_proto(&l2cap_hci_proto))) { if ((err = hci_register_proto(&l2cap_hci_proto))) {
BT_ERR("Can't register L2CAP protocol"); BT_ERR("L2CAP protocol registration failed");
return err; return err;
} }
create_proc_read_entry("bluetooth/l2cap", 0, 0, l2cap_read_proc, NULL); create_proc_read_entry("bluetooth/l2cap", 0, 0, l2cap_read_proc, NULL);
BT_INFO("Bluetooth L2CAP ver %s Copyright (C) 2000,2001 Qualcomm Inc", VERSION); BT_INFO("L2CAP ver %s", VERSION);
BT_INFO("Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com>"); BT_INFO("L2CAP socket layer initialized");
return 0; return 0;
} }
...@@ -2101,10 +2102,10 @@ void l2cap_cleanup(void) ...@@ -2101,10 +2102,10 @@ void l2cap_cleanup(void)
/* Unregister socket and protocol */ /* Unregister socket and protocol */
if (bt_sock_unregister(BTPROTO_L2CAP)) if (bt_sock_unregister(BTPROTO_L2CAP))
BT_ERR("Can't unregister L2CAP socket"); BT_ERR("L2CAP socket unregistration failed");
if (hci_unregister_proto(&l2cap_hci_proto)) if (hci_unregister_proto(&l2cap_hci_proto))
BT_ERR("Can't unregister L2CAP protocol"); BT_ERR("L2CAP protocol unregistration failed");
} }
module_init(l2cap_init); module_init(l2cap_init);
......
...@@ -1783,6 +1783,8 @@ int __init rfcomm_init(void) ...@@ -1783,6 +1783,8 @@ int __init rfcomm_init(void)
{ {
kernel_thread(rfcomm_run, NULL, CLONE_FS | CLONE_FILES | CLONE_SIGHAND); kernel_thread(rfcomm_run, NULL, CLONE_FS | CLONE_FILES | CLONE_SIGHAND);
BT_INFO("RFCOMM ver %s", VERSION);
rfcomm_init_sockets(); rfcomm_init_sockets();
#ifdef CONFIG_BT_RFCOMM_TTY #ifdef CONFIG_BT_RFCOMM_TTY
...@@ -1791,9 +1793,6 @@ int __init rfcomm_init(void) ...@@ -1791,9 +1793,6 @@ int __init rfcomm_init(void)
create_proc_read_entry("bluetooth/rfcomm", 0, 0, rfcomm_read_proc, NULL); create_proc_read_entry("bluetooth/rfcomm", 0, 0, rfcomm_read_proc, NULL);
BT_INFO("Bluetooth RFCOMM ver %s", VERSION);
BT_INFO("Copyright (C) 2002 Maxim Krasnyansky <maxk@qualcomm.com>");
BT_INFO("Copyright (C) 2002 Marcel Holtmann <marcel@holtmann.org>");
return 0; return 0;
} }
......
...@@ -822,10 +822,11 @@ int rfcomm_init_sockets(void) ...@@ -822,10 +822,11 @@ int rfcomm_init_sockets(void)
int err; int err;
if ((err = bt_sock_register(BTPROTO_RFCOMM, &rfcomm_sock_family_ops))) { if ((err = bt_sock_register(BTPROTO_RFCOMM, &rfcomm_sock_family_ops))) {
BT_ERR("Can't register RFCOMM socket layer"); BT_ERR("RFCOMM socket layer registration failed. %d", err);
return err; return err;
} }
BT_INFO("RFCOMM socket layer initialized");
return 0; return 0;
} }
...@@ -835,5 +836,5 @@ void rfcomm_cleanup_sockets(void) ...@@ -835,5 +836,5 @@ void rfcomm_cleanup_sockets(void)
/* Unregister socket, protocol and notifier */ /* Unregister socket, protocol and notifier */
if ((err = bt_sock_unregister(BTPROTO_RFCOMM))) if ((err = bt_sock_unregister(BTPROTO_RFCOMM)))
BT_ERR("Can't unregister RFCOMM socket layer %d", err); BT_ERR("RFCOMM socket layer unregistration failed. %d", err);
} }
...@@ -500,10 +500,10 @@ static void rfcomm_dev_modem_status(struct rfcomm_dlc *dlc, u8 v24_sig) ...@@ -500,10 +500,10 @@ static void rfcomm_dev_modem_status(struct rfcomm_dlc *dlc, u8 v24_sig)
BT_DBG("dlc %p dev %p v24_sig 0x%02x", dlc, dev, v24_sig); BT_DBG("dlc %p dev %p v24_sig 0x%02x", dlc, dev, v24_sig);
dev->modem_status = dev->modem_status =
(v24_sig & RFCOMM_V24_RTC) ? (TIOCM_DSR | TIOCM_DTR) : 0 | ((v24_sig & RFCOMM_V24_RTC) ? (TIOCM_DSR | TIOCM_DTR) : 0) |
(v24_sig & RFCOMM_V24_RTR) ? (TIOCM_RTS | TIOCM_CTS) : 0 | ((v24_sig & RFCOMM_V24_RTR) ? (TIOCM_RTS | TIOCM_CTS) : 0) |
(v24_sig & RFCOMM_V24_IC) ? TIOCM_RI : 0 | ((v24_sig & RFCOMM_V24_IC) ? TIOCM_RI : 0) |
(v24_sig & RFCOMM_V24_DV) ? TIOCM_CD : 0; ((v24_sig & RFCOMM_V24_DV) ? TIOCM_CD : 0);
} }
/* ---- TTY functions ---- */ /* ---- TTY functions ---- */
...@@ -572,6 +572,11 @@ static int rfcomm_tty_open(struct tty_struct *tty, struct file *filp) ...@@ -572,6 +572,11 @@ static int rfcomm_tty_open(struct tty_struct *tty, struct file *filp)
if (dlc->state == BT_CONNECTED) if (dlc->state == BT_CONNECTED)
break; break;
if (signal_pending(current)) {
err = -EINTR;
break;
}
schedule(); schedule();
} }
set_current_state(TASK_RUNNING); set_current_state(TASK_RUNNING);
...@@ -899,6 +904,8 @@ int rfcomm_init_ttys(void) ...@@ -899,6 +904,8 @@ int rfcomm_init_ttys(void)
return -1; return -1;
} }
BT_INFO("RFCOMM TTY layer initialized");
return 0; return 0;
} }
......
...@@ -969,19 +969,20 @@ int __init sco_init(void) ...@@ -969,19 +969,20 @@ int __init sco_init(void)
int err; int err;
if ((err = bt_sock_register(BTPROTO_SCO, &sco_sock_family_ops))) { if ((err = bt_sock_register(BTPROTO_SCO, &sco_sock_family_ops))) {
BT_ERR("Can't register SCO socket layer"); BT_ERR("SCO socket registration failed");
return err; return err;
} }
if ((err = hci_register_proto(&sco_hci_proto))) { if ((err = hci_register_proto(&sco_hci_proto))) {
BT_ERR("Can't register SCO protocol"); BT_ERR("SCO protocol registration failed");
return err; return err;
} }
create_proc_read_entry("bluetooth/sco", 0, 0, sco_read_proc, NULL); create_proc_read_entry("bluetooth/sco", 0, 0, sco_read_proc, NULL);
BT_INFO("Bluetooth SCO ver %s Copyright (C) 2000,2001 Qualcomm Inc", VERSION); BT_INFO("SCO (Voice Link) ver %s", VERSION);
BT_INFO("Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com>"); BT_INFO("SCO socket layer initialized");
return 0; return 0;
} }
...@@ -993,10 +994,10 @@ void sco_cleanup(void) ...@@ -993,10 +994,10 @@ void sco_cleanup(void)
/* Unregister socket, protocol and notifier */ /* Unregister socket, protocol and notifier */
if ((err = bt_sock_unregister(BTPROTO_SCO))) if ((err = bt_sock_unregister(BTPROTO_SCO)))
BT_ERR("Can't unregister SCO socket layer %d", err); BT_ERR("SCO socket unregistration failed. %d", err);
if ((err = hci_unregister_proto(&sco_hci_proto))) if ((err = hci_unregister_proto(&sco_hci_proto)))
BT_ERR("Can't unregister SCO protocol %d", err); BT_ERR("SCO protocol unregistration failed. %d", err);
} }
module_init(sco_init); module_init(sco_init);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment