diff options
Diffstat (limited to 'patches/0020-tty-termios/net_bluetooth_hci_ldisc.patch')
-rw-r--r-- | patches/0020-tty-termios/net_bluetooth_hci_ldisc.patch | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/patches/0020-tty-termios/net_bluetooth_hci_ldisc.patch b/patches/0020-tty-termios/net_bluetooth_hci_ldisc.patch new file mode 100644 index 00000000..81371523 --- /dev/null +++ b/patches/0020-tty-termios/net_bluetooth_hci_ldisc.patch @@ -0,0 +1,67 @@ +--- a/drivers/bluetooth/hci_ldisc.c ++++ b/drivers/bluetooth/hci_ldisc.c +@@ -24,6 +24,7 @@ + */ + + #include <linux/module.h> ++#include <linux/version.h> + + #include <linux/kernel.h> + #include <linux/init.h> +@@ -269,7 +270,11 @@ void hci_uart_set_flow_control(struct hc + + if (enable) { + /* Disable hardware flow control */ ++#if LINUX_VERSION_IS_GEQ(3,7,0) + ktermios = tty->termios; ++#else ++ ktermios = *tty->termios; ++#endif + ktermios.c_cflag &= ~CRTSCTS; + status = tty_set_termios(tty, &ktermios); + BT_DBG("Disabling hardware flow control: %s", +@@ -303,7 +308,11 @@ void hci_uart_set_flow_control(struct hc + BT_DBG("Setting RTS: %s", status ? "failed" : "success"); + + /* Re-enable hardware flow control */ ++#if LINUX_VERSION_IS_GEQ(3,7,0) + ktermios = tty->termios; ++#else ++ ktermios = *tty->termios; ++#endif + ktermios.c_cflag |= CRTSCTS; + status = tty_set_termios(tty, &ktermios); + BT_DBG("Enabling hardware flow control: %s", +@@ -324,7 +333,11 @@ void hci_uart_init_tty(struct hci_uart * + struct ktermios ktermios; + + /* Bring the UART into a known 8 bits no parity hw fc state */ ++#if LINUX_VERSION_IS_GEQ(3,7,0) + ktermios = tty->termios; ++#else ++ ktermios = *tty->termios; ++#endif + ktermios.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP | + INLCR | IGNCR | ICRNL | IXON); + ktermios.c_oflag &= ~OPOST; +@@ -342,7 +355,11 @@ void hci_uart_set_baudrate(struct hci_ua + struct tty_struct *tty = hu->tty; + struct ktermios ktermios; + ++#if LINUX_VERSION_IS_GEQ(3,7,0) + ktermios = tty->termios; ++#else ++ ktermios = *tty->termios; ++#endif + ktermios.c_cflag &= ~CBAUD; + tty_termios_encode_baud_rate(&ktermios, speed, speed); + +@@ -350,7 +367,7 @@ void hci_uart_set_baudrate(struct hci_ua + tty_set_termios(tty, &ktermios); + + BT_DBG("%s: New tty speeds: %d/%d", hu->hdev->name, +- tty->termios.c_ispeed, tty->termios.c_ospeed); ++ ktermios.c_ispeed, ktermios.c_ospeed); + } + + static int hci_uart_setup(struct hci_dev *hdev) |