95 Commits
Author SHA1 Message Date
Peter Wu 0c38f97c3a Update to version 0.8, update NEWS 2013-12-05 00:22:06 +01:00
Peter Wu 417a592331 Linux 3.13 compatibility
Reported by ArchangeGabriel, original patch by tuxoko (Issue
Bumblebee-Project/bbswitch#75)
2013-12-05 00:17:10 +01:00
Peter Wu 9eb2e0d3fd Merge pull request #71 from TimothyGu/master
README.md: fix indentation of upstart script for enabling graphics on shutdown
2013-08-29 15:06:23 -07:00
Peter Wu ee0591b9b8 Clarify why Buffer is used instead of Package 2013-07-31 21:33:45 +02:00
Peter Wu c166b27e68 Change license to GPLv2+
The Linux kernel is licensed under GPLv2. As GPLv3 and GPLv2 are incompatible in
some way, just license bbswitch as GPL 2.0 or (at your choice) any latter
version. Note: I wrote all code of bbswith.c, so I am entitled to change the
license and do not need permission from other authors (as there are not any).

Request made by Ludwig Nussel.
2013-06-25 15:30:56 +02:00
Peter Wu c7dbd6babb Update to version 0.7, update NEWS 2013-05-28 19:49:26 +02:00
Peter Wu 2822d1630c README: mention kmod, workaround for T410 (Fixes GH-58) 2013-05-28 19:40:57 +02:00
Peter Wu c665a74def Fix WARNING on Linux 3.9 (Closes GH-55)
Patch by amonakov. This stops the following error:

    bbswitch: disabling discrete graphics
    ------------[ cut here ]------------
    WARNING: at drivers/pci/pci.c:1393 pci_disable_device+0x84/0x90()
    Hardware name: B7130
    [44B blob data]
    Modules linked in:
     bbswitch(O+) ip_set_hash_ip xt_set ip_set nfnetlink ipt_REJECT xt_recent xt_tcpudp xt_owner nf_conntrack_ipv6 nf_defrag
    Pid: 2653, comm: modprobe Tainted: G           O 3.9.1-1-custom #1
    Call Trace:
     [<ffffffff8103fe60>] warn_slowpath_common+0x70/0xa0
     [<ffffffff8103fedc>] warn_slowpath_fmt+0x4c/0x50
     [<ffffffff8130712c>] ? pci_bus_write_config_word+0x1c/0x20
     [<ffffffff8130d794>] pci_disable_device+0x84/0x90
     [<ffffffffa05b21f6>] bbswitch_off+0xa6/0x1d0 [bbswitch]
     [<ffffffffa0104248>] bbswitch_init+0x248/0x1000 [bbswitch]
     [<ffffffffa0104000>] ? 0xffffffffa0103fff
     [<ffffffff810002da>] do_one_initcall+0x10a/0x160
     [<ffffffff810a8720>] load_module+0x1d40/0x24a0
     [<ffffffff810a4410>] ? store_uevent+0x40/0x40
     [<ffffffff810a8fce>] sys_finit_module+0x7e/0x80
     [<ffffffff815afcc6>] system_call_fastpath+0x1a/0x1f
    ---[ end trace 1b312a60aa1b0ed6 ]---
    pci 0000:01:00.0: Refused to change power state, currently in D0
2013-05-10 19:18:34 +02:00
Peter Wu f982a09546 Print path to DSM method on execution failure 2013-04-02 17:44:30 +02:00
Peter Wu 3e50c7b118 Do not check for nvidia DSM on igd handle
Just in case the integrated video ACPI handle cannot be found. This is a safety
net for those who try bbswitch on an incompatible machine. I do not know any of
such machinees, but it looks good.
2013-04-02 17:40:38 +02:00
Peter Wu 91814c63f1 Add copyright header (GH-50) 2013-03-22 10:24:06 +01:00
Peter Wu 7361046b24 Update to version 0.6, update NEWS 2013-03-19 18:49:19 +01:00
Peter Wu 2808cf520e README: update module options help 2013-03-19 18:49:19 +01:00
Peter Wu d90350ced1 Clarify license (GPLv3+) 2013-03-19 18:30:37 +01:00
Peter Wu a36a216439 grsec compatibility (GH-48)
The notifier_call member of struct notifier_block cannot be modified on
grsec-patched kernels. Set the pointer on compile-time instead.
2013-03-02 11:34:12 +01:00
Peter Wu 5593d95193 Linux 3.8 compatibility hack
Since the following commit, the device would not turn off because the power
state is unknown. Until a fix is released in Linux (or until I know what
better to do), I just assume the power state D0.

commit ddc150f7a33ae0c9cb16eaac3641abc00f56316f
Author: Lv Zheng <lv.zheng@intel.com>
Date:   Fri Nov 16 02:46:28 2012 +0100

    ACPI / PM: Add check preventing transitioning to non-D0 state from D3.

    No power transitioning from D3 state up to a non-D0 state is allowed
    so make acpi_device_set_power() fail and complain if such a transition
    is attempted.

    Signed-off-by: Lv Zheng <lv.zheng@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2013-01-30 18:57:56 +01:00
Peter Wu fc2f2aa9c7 Add option to disable Optimus DSM (GH-14)
Necessary for one (some?) older laptops like the Lenovo T410s. Usage: put
"options bbswitch skip_optimus_dsm=1" in your modprobe.conf
2013-01-30 18:20:08 +01:00
Peter Wu cdb79257f2 .gitignore: ignore tar.gz and vim 2013-01-22 16:43:36 +01:00
Peter Wu b12b017f3a Update to version 0.5, update NEWS 2012-10-22 17:03:33 +02:00
Peter Wu 2adcb24207 Merge branch 'master' into develop 2012-10-22 17:03:19 +02:00
Peter Wu 8beb9e3f88 Add missing 'static' keyword 2012-10-22 16:43:40 +02:00
Peter Wu da55a70331 Add modeline for vim 2012-10-19 17:32:16 +02:00
Peter Wu 7f9fb7adf9 Power on the PCIe port before accessing PCI config space (#35)
Fixes regression in Linux 3.6 when run-time power management is enabled. See
https://bugzilla.kernel.org/show_bug.cgi?id=48981 for a discussion.
2012-10-19 17:28:59 +02:00
Peter Wu b8a6029692 Convert printk to pr_... macros
For pr_debug outputs on _DSM results, use "make DEBUG=1"
2012-10-19 16:58:43 +02:00
Peter Wu aeff596524 Makefile: fix clean and install target
clean: do not try to wipe /usr/src/linux-...

load: rmmod and insmod do not have to be in /sbin (for example, /usr/bin
on Arch Linux). Assume that the user has a sane PATH.
2012-10-14 11:34:52 +02:00
Peter Wu dbf8aaf8e2 Use D3cold instead of D3hot to reflect real device state 2012-10-14 11:31:47 +02:00
Peter d54dd454b6 Merge pull request #31 from wzzrd/develop
Add install and uninstall targets to Makefile
2012-08-26 06:52:27 -07:00
Peter Wu 8ada8849f2 Compatibility with older DKMS versions (GH-25) 2012-07-07 20:01:33 +02:00
Lekensteyn 979fbcf552 Merge branch 'develop' 2012-04-26 12:59:41 +02:00
Lekensteyn d12ce73a0d Update to version 0.4.2, update NEWS 2012-04-26 12:56:47 +02:00
Lekensteyn 0d1429e8bb Fix documentation error (Closes GH-16) 2012-04-26 12:49:14 +02:00
Lekensteyn af91008deb Fix formatting of arguments on case of ACPI failure (GH-12) 2012-03-01 21:53:52 +01:00
Lekensteyn e13e6ffc54 Fix null deref when ACPI method call failed (GH-12) 2012-03-01 13:18:24 +01:00
Lekensteyn f034252a13 Don't share buffer for muid/args, it'll be overwritten 2012-02-29 00:49:34 +01:00
Lekensteyn 647e3dddea Buffer overflow by one byte 2012-02-29 00:30:14 +01:00
Lekensteyn 804773eb22 Fix misuse of sizeof which trims arguments/muid (GH-12) 2012-02-29 00:10:32 +01:00
Lekensteyn 7c30e38bd1 Revert "Add support for WMMX method"
This reverts commit 11ddd3469f.
2012-01-28 10:57:04 +01:00
Lekensteyn e321debb5b Revert "Support Optimus machines through WMMX (GH-2)"
This reverts commit 0ec41fa2da.
2012-01-28 10:57:03 +01:00
Lekensteyn f4c2fadaf5 Revert "Load module dependency on make load: wmi"
This reverts commit fd74ba5bd8.
2012-01-28 10:56:58 +01:00
Lekensteyn fd74ba5bd8 Load module dependency on make load: wmi 2012-01-24 14:33:21 +01:00
Lekensteyn 0ec41fa2da Support Optimus machines through WMMX (GH-2)
This should finally support machines like the Lenovo Y570. WMMX methods should
be more reliable than direct DSM probing so let's try that before calling DSM
directly.
2012-01-24 14:30:53 +01:00
Lekensteyn 7fd02221b2 Print version on load 2012-01-24 00:04:41 +01:00
Lekensteyn 11ddd3469f Add support for WMMX method
This should support at least the Lenovo Ideapad Y470 and Y570. It probes the
WMMX method before calling the _DSM method directly since that method should
work for all machines that support the NVIDIA DSM.
2012-01-23 23:52:27 +01:00
Lekensteyn 4f73396ba7 Add easier way to use DKMS 2012-01-21 15:02:11 +01:00
Lekensteyn 8c0c5aa863 Allow everyone to get the status of the card (Closes GH-8) 2012-01-21 12:30:41 +01:00
Lekensteyn d5ff9a1fb9 Merge branch 'develop' 2012-01-16 17:24:47 +01:00
Lekensteyn b0712e5185 Update to version 0.4.1, update NEWS 2012-01-16 17:23:20 +01:00
Lekensteyn 2d1effc903 Fix a harmless error message 2012-01-16 12:19:36 +01:00
Lekensteyn c1dd7140df Merge branch 'develop' 2012-01-15 17:18:45 +01:00
Lekensteyn 8bd07d14af Bump to version 0.4, update NEWS 2012-01-15 17:18:14 +01:00
Lekensteyn ebf86f0617 Detect 3D controllers as gfx device too (GH-3) 2012-01-15 16:35:07 +01:00
Lekensteyn a904b442af Add debug message in case no ACPI handle is found 2012-01-15 10:43:44 +01:00
Lekensteyn fd4dabf37e Merge branch 'develop' 2012-01-14 23:18:54 +01:00
Lekensteyn c8b303c36c Add NEWS file, bump version to 0.3 2012-01-14 23:16:45 +01:00
Lekensteyn 9f0ae8f723 Ignore files generated from build 2012-01-14 22:54:33 +01:00
Lekensteyn 031bcfe8a6 Update README with module options 2012-01-14 22:49:46 +01:00
Lekensteyn 5e297c27ad Add note that a driver must not be loaded if the card is off 2012-01-14 22:13:55 +01:00
Lekensteyn 358ce15bc1 Probe for nvidia DSM on Intel ACPI handle (GH-4) 2012-01-14 19:58:56 +01:00
Lekensteyn 04cdd2d5f9 Update instructions with request for ACPI handle mapping 2012-01-14 17:15:23 +01:00
Lekensteyn 6ed65463c8 Update README with request for machine information 2012-01-14 11:14:43 +01:00
Lekensteyn 12715b4b54 Change PACKAGE_VERSION, set KVERSION, update README 2012-01-02 00:13:39 +01:00
Lekensteyn 62f9560821 Added module options to turn the card on/off on (un)load 2011-12-30 18:43:46 +01:00
Lekensteyn 7e792ef176 Bump module version to 0.2 2011-12-30 15:49:01 +01:00
Lekensteyn 9c223efc95 Mention acpidump README 2011-12-30 15:48:47 +01:00
Lekensteyn 73966cbddd Fix logic in Optimus DSM execution 2011-12-30 15:48:34 +01:00
Lekensteyn a62634d9fe Fix misleading warning, changed LOG_INFO -> LOG_DEBUG 2011-12-29 20:55:21 +01:00
Lekensteyn b321482650 Added README
Taken from https://github.com/Lekensteyn/acpi-stuff
2011-12-27 19:46:22 +01:00
Lekensteyn c10907b6b3 bbswitch: silently ignore large writes 2011-12-27 19:32:04 +01:00
Lekensteyn c6e50c9a37 bbswitch: Use seq_file instead of deprecated proc_read/proc_write
Now works with dd if=/proc/acpi/bbswitch bs=1 seek=N and if the size passed to
fread is larger than 1
2011-12-27 19:32:04 +01:00
Lekensteyn 96ff2ed501 bbswitch: always pass a Buffer object for empty args 2011-12-17 19:14:47 +01:00
Lekensteyn 46b9032921 bbswitch: fix misleading error message about _DSM when toggling card 2011-12-15 22:38:43 +01:00
Lekensteyn cce4ffd2f7 bbswitch: fix more return values and document acpi_call_dsm 2011-12-14 19:20:58 +01:00
Lekensteyn d0c1e29818 bbswitch: Fix return value if a _DSM test failed 2011-12-14 19:14:27 +01:00
Lekensteyn 5c51e06ab8 bbswitch: Add more debugging messages 2011-12-14 18:21:43 +01:00
Lekensteyn 93f07b9570 bbswitch: Warn when result type is unknown 2011-12-13 23:15:18 +01:00
Lekensteyn 41e0b9fca0 bbswitch: make the uuid array of size 16, remove check 2011-12-13 22:46:52 +01:00
Lekensteyn 1997dba661 bbswitch: Do not pass a null pointer, but zero instead 2011-12-13 22:46:16 +01:00
Lekensteyn b2191e5160 bbswitch: add comment on other possible UUID 2011-12-13 22:27:34 +01:00
Lekensteyn 10ad4041f1 bbswitch: Add usage instructions to header 2011-12-13 21:18:16 +01:00
Lekensteyn 8c0ea9bc34 bbswitch: add DSM_TYPE_UNSUPPORTED macro
This was added for clarity and matches other DSM_TYPE_* macros
2011-12-13 21:14:39 +01:00
Lekensteyn e16cdf561b bbswitch: Support for legacy _DSM function
Newer Optimus laptops seems to use a _DSM method which is quite standard. This
is referred to as "Optimus DSM" in some DSDT files and must be called before the
discrete nVidia graphics card is turned off. Other (older?) laptops use a
different UUID, revision ID and arguments which actually enables or disables a
device. The right _DSM arguments is detected during the module initialization.
2011-12-13 21:08:43 +01:00
Lekensteyn 6af35bd55b bbswitch: Check for result before deref it 2011-12-13 00:07:30 +01:00
Lekensteyn 398c8d2a7b bbswitch: Set the result value if result type is an integer 2011-12-12 21:26:09 +01:00
Lekensteyn 619d95e7d7 bbswitch/Makefile: don't fail on paths with special chars
Don't expand the current directory in the Makefile, let the shell expand
it. Furthermore, replace all occurences of the modulename by a variable
2011-12-12 21:15:00 +01:00
Lekensteyn 1e59a3f54e bbswitch: Add version and author macros 2011-12-12 18:26:05 +01:00
Lekensteyn f85fc2789e bbswitch: Don't continue on disabling the device on a failing ACPI call 2011-12-12 18:21:56 +01:00
Lekensteyn 644cb5ee73 bbswitch: Note why PM_RESTORE_PREPARE is unused 2011-12-12 17:36:11 +01:00
Lekensteyn b50902797a bbswitch: don't disable card if a driver is loaded 2011-12-12 17:00:06 +01:00
Lekensteyn f7e6dd9741 bbswitch: If necessary, enable card before suspend and disable after 2011-12-11 23:41:02 +01:00
Lekensteyn 41da066752 bbswitcj_off: Perform _DSM call before the _PS3 routines 2011-12-10 23:01:16 +01:00
Lekensteyn 1b3bc0b862 Base on/off state on the device state, not a hardcoded flag 2011-12-10 22:17:57 +01:00
Lekensteyn 0bd5ce93d7 Fix misleading message reporting all VGA devices as discrete 2011-11-05 14:25:29 +01:00
Lekensteyn 3b4f224830 Fix dis_enabled flags values 2011-11-01 21:52:48 +01:00
Lekensteyn 3087852d68 bbswitch: Set dis_enabled flag when toggling 2011-11-01 21:50:05 +01:00
Lekensteyn 82cb834240 Initial addition of bbswitch (WIP!) 2011-11-01 20:01:12 +01:00