Azael Avalos | f369aa6 | 2014-08-14 09:55:39 -0600 | [diff] [blame] | 1 | Kernel driver toshiba_haps |
| 2 | Toshiba HDD Active Protection Sensor |
| 3 | ==================================== |
| 4 | |
| 5 | Author: Azael Avalos <coproscefalo@gmail.com> |
| 6 | |
| 7 | |
| 8 | 0. Contents |
| 9 | ----------- |
| 10 | |
| 11 | 1. Description |
| 12 | 2. Interface |
| 13 | 3. Accelerometer axes |
| 14 | 4. Supported devices |
| 15 | 5. Usage |
| 16 | |
| 17 | |
| 18 | 1. Description |
| 19 | -------------- |
| 20 | |
| 21 | This driver provides support for the accelerometer found in various Toshiba |
| 22 | laptops, being called "Toshiba HDD Protection - Shock Sensor" officialy, |
| 23 | and detects laptops automatically with this device. |
| 24 | On Windows, Toshiba provided software monitors this device and provides |
| 25 | automatic HDD protection (head unload) on sudden moves or harsh vibrations, |
| 26 | however, this driver only provides a notification via a sysfs file to let |
| 27 | userspace tools or daemons act accordingly, as well as providing a sysfs |
| 28 | file to set the desired protection level or sensor sensibility. |
| 29 | |
| 30 | |
| 31 | 2. Interface |
| 32 | ------------ |
| 33 | |
| 34 | This device comes with 3 methods: |
| 35 | _STA - Checks existence of the device, returning Zero if the device does not |
| 36 | exists or is not supported. |
| 37 | PTLV - Sets the desired protection level. |
| 38 | RSSS - Shuts down the HDD protection interface for a few seconds, |
| 39 | then restores normal operation. |
| 40 | |
| 41 | Note: |
| 42 | The presence of Solid State Drives (SSD) can make this driver to fail loading, |
| 43 | given the fact that such drives have no movable parts, and thus, not requiring |
| 44 | any "protection" as well as failing during the evaluation of the _STA method |
| 45 | found under this device. |
| 46 | |
| 47 | |
| 48 | 3. Accelerometer axes |
| 49 | --------------------- |
| 50 | |
| 51 | This device does not report any axes, however, to query the sensor position |
| 52 | a couple HCI (Hardware Configuration Interface) calls (0x6D and 0xA6) are |
| 53 | provided to query such information, handled by the kernel module toshiba_acpi |
| 54 | since kernel version 3.15. |
| 55 | |
| 56 | |
| 57 | 4. Supported devices |
| 58 | -------------------- |
| 59 | |
| 60 | This driver binds itself to the ACPI device TOS620A, and any Toshiba laptop |
| 61 | with this device is supported, given the fact that they have the presence of |
| 62 | conventional HDD and not only SSD, or a combination of both HDD and SSD. |
| 63 | |
| 64 | |
| 65 | 5. Usage |
| 66 | -------- |
| 67 | |
| 68 | The sysfs files under /sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS620A:00/ are: |
| 69 | protection_level - The protection_level is readable and writeable, and |
| 70 | provides a way to let userspace query the current protection |
| 71 | level, as well as set the desired protection level, the |
| 72 | available protection levels are: |
| 73 | 0 - Disabled | 1 - Low | 2 - Medium | 3 - High |
| 74 | reset_protection - The reset_protection entry is writeable only, being "1" |
| 75 | the only parameter it accepts, it is used to trigger |
| 76 | a reset of the protection interface. |