From: <kernellist@neutrinus.com>
To: linux-acpi@vger.kernel.org
Subject: toshiba_acpi bluetooth patch
Date: Thu, 9 Aug 2007 18:13:04 +0200 [thread overview]
Message-ID: <f3274fedc08ac3490fb98b899a0996e4@localhost> (raw)
[-- Attachment #1: Type: text/plain, Size: 324 bytes --]
Hi,
Some Toshiba Portege laptops needs bluetooth to be enabled, before it can be used. Since some time there are some patches to do it. (see: http://glozer.net/dynabook/dynabook.html)
I made some cleanings and make it work with recent kernels. See attatchment - any comments are welcome!
regards,
Marek Hobler, 'neutrinus'
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: toshiba_acpi.patch --]
[-- Type: text/x-patch; name="toshiba_acpi.patch", Size: 3098 bytes --]
36c35
< #define TOSHIBA_ACPI_VERSION "0.18"
---
> #define TOSHIBA_ACPI_VERSION "0.18-p4"
92a92,96
> #define HCI_WIRELESS 0x0056
> #define HCI_BT_POWER 0x0080
> #define HCI_BT_ATTACH 0x0040
> #define HCI_BT_ORINOCO 0x0200
>
203a208,218
>
> static acpi_status hci_write2(u32 reg, u32 in1, u32 in2, u32* result)
> {
> u32 in[HCI_WORDS] = { HCI_SET, reg, in1, in2, 0, 0 };
> u32 out[HCI_WORDS];
> acpi_status status = hci_raw(in, out);
> *result = (status == AE_OK) ? out[0] : HCI_FAILURE;
> return status;
> }
>
>
213a229,241
> static acpi_status hci_read2(u32 reg, u32* out1, u32* out2, u32* result)
> {
> u32 in[HCI_WORDS] = { HCI_GET, reg, *out1, *out2, 0, 0 };
> u32 out[HCI_WORDS];
> acpi_status status = hci_raw(in, out);
> *out1 = out[2];
> *out2 = out[3];
> *result = (status == AE_OK) ? out[0] : HCI_FAILURE;
> return status;
> }
>
>
>
484a513,581
> static char* read_wk(char* p)
> {
> u32 hci_result;
> u32 value = 0;
> u32 value2 = 0;
> hci_read2(HCI_WIRELESS, &value, &value2, &hci_result);
> if (hci_result == HCI_SUCCESS) {
> p += sprintf(p,"wireless key: %d\n", value );
> } else {
> p += sprintf(p, "ERROR\n");
> }
>
> return p;
> }
>
> static char* read_bt(char* p)
> {
> u32 hci_result;
> u32 value = 0;
> u32 value2 = 0;
>
> hci_read2(HCI_WIRELESS, &value, &value2, &hci_result);
> if (hci_result == HCI_SUCCESS) {
> p += sprintf(p,"present: %d\n", (value & 0x0f)?1:0);
> } else {
> p += sprintf(p, "ERROR\n");
> }
> value = 0;
> value2 = 0x0001;
> hci_read2(HCI_WIRELESS, &value, &value2, &hci_result);
> if (hci_result == HCI_SUCCESS) {
> p += sprintf(p,"power: %d\n", (value & 128) >> 7);
> p += sprintf(p,"attach: %d\n", (value & 64) >> 6);
> p += sprintf(p,"wireless: %d\n", (value & 512) >> 9);
> } else {
> p += sprintf(p, "ERROR\n");
> }
>
> return p;
> }
>
> static unsigned long write_bt(const char* buffer, unsigned long count)
> {
> int value;
> u32 hci_result;
>
> if (sscanf(buffer, " power : %i", &value) == 1 &&
> value >= 0 && value <= 1) {
> hci_write2(HCI_WIRELESS, value, HCI_BT_POWER, &hci_result);
> if (hci_result != HCI_SUCCESS)
> return -EFAULT;
> } else if (sscanf(buffer, " attach : %i", &value) == 1 &&
> value >= 0 && value <= 1) {
> hci_write2(HCI_WIRELESS, value, HCI_BT_ATTACH, &hci_result);
> if (hci_result != HCI_SUCCESS)
> return -EFAULT;
> } else if (sscanf(buffer, " orinoco : %i", &value) == 1 &&
> value >= 0 && value <= 1) {
> hci_write2(HCI_WIRELESS, value, HCI_BT_ORINOCO, &hci_result);
> if (hci_result != HCI_SUCCESS)
> return -EFAULT;
> } else {
> return -EINVAL;
> }
>
> return count;
> }
>
>
503a601,602
> {"wireless_key", read_wk, NULL },
> {"bluetooth", read_bt, write_bt },
next reply other threads:[~2007-08-09 17:07 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-09 16:13 kernellist [this message]
2007-08-10 15:44 ` toshiba_acpi bluetooth patch Robert M. Albrecht
-- strict thread matches above, loose matches on Subject: below --
2007-08-12 18:22 Marek Hobler
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f3274fedc08ac3490fb98b899a0996e4@localhost \
--to=kernellist@neutrinus.com \
--cc=linux-acpi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox