)]}'
{
  "log": [
    {
      "commit": "69c86373c6ea1149aa559e6088362d58d8ec8835",
      "tree": "a3d76c3182a5a604b8a40aba7a2e197ffdd6114d",
      "parents": [
        "75a9a92625a7d7401d04209f4226061cd2674b59"
      ],
      "author": {
        "name": "florian@mickler.org",
        "email": "florian@mickler.org",
        "time": "Wed Feb 24 12:05:16 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Mar 10 17:09:33 2010 -0500"
      },
      "message": "Document the rfkill sysfs ABI\n\nThis moves sysfs ABI info from Documentation/rfkill.txt to the\nABI subfolder and reformats it.\n\nThis also schedules the deprecated sysfs parts to be removed in\n2012 (claim file) and 2014 (state file).\n\nSigned-off-by: Florian Mickler \u003cflorian@mickler.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "464902e812025792c9e33e19e1555c343672d5cf",
      "tree": "cc243de464a7935291c52ac93d6bd0a24c6c08c5",
      "parents": [
        "96e9cfeb9692b0bc6e03f9b6f9cb3c67a40b76d1"
      ],
      "author": {
        "name": "Alan Jenkins",
        "email": "alan-jenkins@tuffmail.co.uk",
        "time": "Tue Jun 16 14:54:04 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Jun 19 11:50:18 2009 -0400"
      },
      "message": "rfkill: export persistent attribute in sysfs\n\nThis information allows userspace to implement a hybrid policy where\nit can store the rfkill soft-blocked state in platform non-volatile\nstorage if available, and if not then file-based storage can be used.\n\nSome users prefer platform non-volatile storage because of the behaviour\nwhen dual-booting multiple versions of Linux, or if the rfkill setting\nis changed in the BIOS setting screens, or if the BIOS responds to\nwireless-toggle hotkeys itself before the relevant platform driver has\nbeen loaded.\n\nSigned-off-by: Alan Jenkins \u003calan-jenkins@tuffmail.co.uk\u003e\nAcked-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "ce0879e324df007f12cc25227102847b92fcafb7",
      "tree": "4c6b50d0df087c05406e8f66d82493449c1e79ad",
      "parents": [
        "7e9debe9789456426ec8574ead879e33da19ee57"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Jun 15 15:36:38 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jun 15 15:05:58 2009 -0400"
      },
      "message": "rfkill: improve docs\n\nNow that the dust has settled a bit, improve the docs on rfkill\nand include more information about /dev/rfkill.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f71fea23a27ba8ec53375832aab6a80fc14622e0",
      "tree": "277692f96525aa4eae979fb4c97c83b2ea2eef9e",
      "parents": [
        "2ec2c68c11af95075f29e370970eb97c89234e2e"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Jun 03 10:17:59 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:06:15 2009 -0400"
      },
      "message": "rfkill: document /dev/rfkill\n\nAdd some blurb about /dev/rfkill to the documentation and\nfix the \"transmiter\" spelling error.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "19d337dff95cbf76edd3ad95c0cee2732c3e1ec5",
      "tree": "33326eeb09cb9664cc8427a5dc7cd2b08b5a57c3",
      "parents": [
        "0f6399c4c525b518644a9b09f8d6fb125a418c4d"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Jun 02 13:01:37 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:06:13 2009 -0400"
      },
      "message": "rfkill: rewrite\n\nThis patch completely rewrites the rfkill core to address\nthe following deficiencies:\n\n * all rfkill drivers need to implement polling where necessary\n   rather than having one central implementation\n\n * updating the rfkill state cannot be done from arbitrary\n   contexts, forcing drivers to use schedule_work and requiring\n   lots of code\n\n * rfkill drivers need to keep track of soft/hard blocked\n   internally -- the core should do this\n\n * the rfkill API has many unexpected quirks, for example being\n   asymmetric wrt. alloc/free and register/unregister\n\n * rfkill can call back into a driver from within a function the\n   driver called -- this is prone to deadlocks and generally\n   should be avoided\n\n * rfkill-input pointlessly is a separate module\n\n * drivers need to #ifdef rfkill functions (unless they want to\n   depend on or select RFKILL) -- rfkill should provide inlines\n   that do nothing if it isn\u0027t compiled in\n\n * the rfkill structure is not opaque -- drivers need to initialise\n   it correctly (lots of sanity checking code required) -- instead\n   force drivers to pass the right variables to rfkill_alloc()\n\n * the documentation is hard to read because it always assumes the\n   reader is completely clueless and contains way TOO MANY CAPS\n\n * the rfkill code needlessly uses a lot of locks and atomic\n   operations in locked sections\n\n * fix LED trigger to actually change the LED when the radio state\n   changes -- this wasn\u0027t done before\n\nTested-by: Alan Jenkins \u003calan-jenkins@tuffmail.co.uk\u003e\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e [thinkpad]\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "621cac85297de5ba655e3430b007dd2e0da91da6",
      "tree": "6193ecf0966094bb744fb4238191bcab03a3cdef",
      "parents": [
        "c1c6b14b22af0f85d05a70405dc3fba5de840c7b"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Mar 27 14:14:31 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Apr 22 16:54:27 2009 -0400"
      },
      "message": "rfkill: remove user_claim stuff\n\nAlmost all drivers do not support user_claim, so remove it\ncompletely and always report -EOPNOTSUPP to userspace. Since\nuserspace cannot really drive rfkill _anyway_ (due to the\nodd restrictions imposed by the documentation) having this\ncode is just pointless.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "d003922dab6a66027344a787e9846ecf35a706a8",
      "tree": "1fa27e13eafd7d2cfceaeeb7c70009e29467ccfa",
      "parents": [
        "68d2413bec7e1d97e906eafb05e78d925a5ca128"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Thu Oct 09 21:49:33 2008 -0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Oct 31 19:00:09 2008 -0400"
      },
      "message": "rfkill: add master_switch_mode and EPO lock to rfkill and rfkill-input\n\nAdd of software-based sanity to rfkill and rfkill-input so that it can\nreproduce what hardware-based EPO switches do, blocking all transmitters\nand locking down any further attempts to unblock them until the switch is\ndeactivated.\n\nrfkill-input is responsible for issuing the EPO control requests, like\nbefore.\n\nWhile an rfkill EPO is active, all transmitters are locked to one of the\nBLOCKED states and all attempts to change that through the rfkill API\n(userspace and kernel) will be either ignored or return -EPERM errors.\n\nThe lock will be released upon receipt of EV_SW SW_RFKILL_ALL ON by\nrfkill-input, or should modular rfkill-input be unloaded.\n\nThis makes rfkill and rfkill-input extend the operation of an existing\nwireless master kill switch to all wireless devices in the system, even\nthose that are not under hardware or firmware control.\n\nSince the above is the expected operational behavior for the master rfkill\nswitch, the EPO lock functionality is not optional.\n\nAlso, extend rfkill-input to allow for three different behaviors when it\nreceives an EV_SW SW_RFKILL_ALL ON input event.  The user can set which\nbehavior he wants through the master_switch_mode parameter:\n\nmaster_switch_mode \u003d 0: EV_SW SW_RFKILL_ALL ON just unlocks rfkill\ncontroller state changes (so that the rfkill userspace and kernel APIs can\nnow be used to change rfkill controller states again), but doesn\u0027t change\nany of their states (so they will all remain blocked).  This is the safest\nmode of operation, as it requires explicit operator action to re-enable a\ntransmitter.\n\nmaster_switch_mode \u003d 1: EV_SW SW_RFKILL_ALL ON causes rfkill-input to\nattempt to restore the system to the state before the last EV_SW\nSW_RFKILL_ALL OFF event, or to the default global states if no EV_SW\nSW_RFKILL_ALL OFF ever happened.   This is the recommended mode of\noperation for laptops.\n\nmaster_switch_mode \u003d 2: tries to unblock all rfkill controllers (i.e.\nenable all transmitters) when an EV_SW SW_RFKILL_ALL ON event is received.\nThis is the default mode of operation, as it mimics the previous behavior\nof rfkill-input.\n\nIn order to implement these features in a clean way, the entire event\nhandling of rfkill-input was refactored into a single worker function.\n\nProtection against input event DoS (repeatedly firing rfkill events for\nrfkill-input to process) was removed during the code refactoring.  It will\nbe added back in a future patch.\n\nNote that with these changes, rfkill-input doesn\u0027t need to explicitly\nhandle any radio types for which KEY_\u003cradio type\u003e or SW_\u003cradio type\u003e events\ndo not exist yet.\n\nCode to handle EV_SW SW_{WLAN,WWAN,BLUETOOTH,WIMAX,...} was added as it\nmight be needed in the future (and its implementation is not that obvious),\nbut is currently #ifdef\u0027d out to avoid wasting resources.\n\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nCc: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nCc: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "bed7aac9416f50425d2200df32bcc9bf248ff8cb",
      "tree": "4471647eb3e15d3afb7eba8642537b96561dff7b",
      "parents": [
        "e35cc4ddcc4c3b11006bcabe8ce28aa7e18da318"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Tue Aug 26 11:58:01 2008 -0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Sep 15 16:48:25 2008 -0400"
      },
      "message": "rfkill: remove transmitter blocking on suspend\n\nCurrently, rfkill would stand in the way of properly supporting wireless\ndevices that are capable of waking the system up from sleep or hibernation\nwhen they receive a special wireless message.  It would also get in the way\nof mesh devices that need to remain operational even during platform\nsuspend.\n\nTo avoid that, stop trying to block the transmitters on the rfkill class\nsuspend handler.\n\nDrivers that need rfkill\u0027s older behaviour will have to implement it by\nthemselves in their own suspend handling.\n\nDo note that rfkill *will* attempt to restore the transmitter state on\nresume in any situation.  This happens after the driver\u0027s resume method is\ncalled by the suspend core (class devices resume after the devices they are\nattached to have been resumed).\n\nThe following drivers need to check if they need to explicitly block\ntheir transmitters in their own suspend handlers (maintainers Cc\u0027d):\n\tarch/arm/mach-pxa/tosa-bt.c\n\tdrivers/net/usb/hso.c\n\tdrivers/net/wireless/rt2x00/* (USB might need it?)\n\tdrivers/net/wireless/b43/ (SSB over USB might need it?)\n\tdrivers/misc/hp-wmi.c\n\teeepc-laptop w/rfkill support (not in mainline yet)\n\tCompal laptop w/rfkill support (not in mainline yet)\n\ttoshiba-acpi w/rfkill support (not in mainline yet)\n\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nCc: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nCc: Matthew Garrett \u003cmjg@redhat.com\u003e\nCc: Andrew Bird \u003cajb@spheresystems.co.uk\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Cezary Jackiewicz \u003ccezary.jackiewicz@gmail.com\u003e\nCc: Philip Langdale \u003cphilipl@overt.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "e10e0dfe3ba358cfb442cc3bf0d3f2068785bf5c",
      "tree": "9921c44240e39f07bf825ede5777f72fbdfe40d0",
      "parents": [
        "aaa1553512b9105699113ea7e2ea726f3d9d4de2"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Sat Aug 02 14:56:25 2008 -0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Aug 18 11:05:12 2008 -0400"
      },
      "message": "rfkill: protect suspended rfkill controllers\n\nGuard rfkill controllers attached to a rfkill class against state changes\nafter class suspend has been issued.\n\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nAcked-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "2fd9b2212e25e6411b6f309707f4e2683d164250",
      "tree": "b886e6d11d3478f86ac7e270ef1dfc7fe02e7128",
      "parents": [
        "734b5aa911dc65f4563048f069dfc631c9aa7de7"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Mon Jul 21 21:18:17 2008 -0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jul 29 16:36:32 2008 -0400"
      },
      "message": "rfkill: document rfkill_force_state as required (v2)\n\nWhile the rfkill class does work with just get_state(), it doesn\u0027t work\nwell on devices that are subject to external events that cause rfkill state\nchanges.\n\nDocument that rfkill_force_state() is required in those cases.\n\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nAcked-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f7983f7301d530cb3f3a02618c944f6d108d11df",
      "tree": "2e9fda4ae35c127db018634fa084641d0e8c9200",
      "parents": [
        "5005657cbd0fd6f277f807c0612a6b6d4396a02c"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Mon Jun 23 17:46:43 2008 -0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Jun 26 14:21:22 2008 -0400"
      },
      "message": "rfkill: improve documentation for kernel drivers\n\nImprove the documentation of how to use the rfkill class in kernel drivers,\nbased on the doubts that came up in a thread in linux-wireless.\n\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nAcked-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "5005657cbd0fd6f277f807c0612a6b6d4396a02c",
      "tree": "e6ed81f07a1a85ed2c440ac8631ca19cc77907c1",
      "parents": [
        "dc288520a21879c6540f3249e9532c5e032da4e8"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Mon Jun 23 17:46:42 2008 -0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Jun 26 14:21:22 2008 -0400"
      },
      "message": "rfkill: rename the rfkill_state states and add block-locked state\n\nThe current naming of rfkill_state causes a lot of confusion: not only the\n\"kill\" in rfkill suggests negative logic, but also the fact that rfkill cannot\nturn anything on (it can just force something off or stop forcing something\noff) is often forgotten.\n\nRename RFKILL_STATE_OFF to RFKILL_STATE_SOFT_BLOCKED (transmitter is blocked\nand will not operate; state can be changed by a toggle_radio request), and\nRFKILL_STATE_ON to RFKILL_STATE_UNBLOCKED (transmitter is not blocked, and may\noperate).\n\nAlso, add a new third state, RFKILL_STATE_HARD_BLOCKED (transmitter is blocked\nand will not operate; state cannot be changed through a toggle_radio request),\nwhich is used by drivers to indicate a wireless transmiter was blocked by a\nhardware rfkill line that accepts no overrides.\n\nKeep the old names as #defines, but document them as deprecated.  This way,\ndrivers can be converted to the new names *and* verified to actually use rfkill\ncorrectly one by one.\n\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nAcked-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "dc288520a21879c6540f3249e9532c5e032da4e8",
      "tree": "5cf749ec1e2addf3ee0208af17a5ef70a557a184",
      "parents": [
        "4081f00dc45abce6bdac352a6354c07ce15db45b"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Mon Jun 23 17:23:08 2008 -0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Jun 26 14:21:22 2008 -0400"
      },
      "message": "rfkill: document rw rfkill switches and clarify input subsystem interactions\n\nRework the documentation so as to make sure driver writers understand\nexactly where the boundaries are for input drivers related to rfkill\nswitches, buttons and keys, and rfkill class drivers.\n\nAlso fix a small error in the documentation: setting the state of a normal\ninstance of the rfkill class does not affect the state of any other devices\n(unless they are tied by firmware/hardware somehow).\n\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nAcked-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nCc: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f3146aff7f283c8699e0c97df6307a705786eeba",
      "tree": "40320f74bf2408f814960d6e2772e6100eed6e7c",
      "parents": [
        "1839cea91e5629756dd4f87c5d70d8a18b89c0b4"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Mon Jun 23 17:22:56 2008 -0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Jun 26 14:21:19 2008 -0400"
      },
      "message": "rfkill: clarify meaning of rfkill states\n\nrfkill really should have been named rfswitch.  As it is, one can get\nconfused whether RFKILL_STATE_ON means the KILL switch is on (and\ntherefore, the radio is being *blocked* from operating), or whether it\nmeans the RADIO rf output is on.\n\nClearly state that RFKILL_STATE_ON means the radio is *unblocked* from\noperating (i.e. there is no rf killing going on).\n\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nAcked-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nCc: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "dac24ab396fc92985060d5cb3c467d2d0ffc0c20",
      "tree": "661cd39cd70d6fb69a8f195b8a8df59e8815b6b3",
      "parents": [
        "e0665486b78b8efb9c25019ad29b4a4c9c1e9dfc"
      ],
      "author": {
        "name": "Ivo van Doorn",
        "email": "IvDoorn@gmail.com",
        "time": "Thu Sep 13 09:22:55 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:24 2007 -0700"
      },
      "message": "[RFKILL]: Add rfkill documentation\n\nAdd a documentation file which contains\na short description about rfkill with some\nnotes about drivers and the userspace interface.\n\nChanges since v1 and v2:\n - Spellchecking\n\nSigned-off-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nAcked-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\n"
    }
  ]
}
