)]}'
{
  "log": [
    {
      "commit": "3ad201496badddd8e1cda87ee6d29e8b3b8e1279",
      "tree": "2dae92ff7b85a46939ecb7d9effd2d5f36d5e8bb",
      "parents": [
        "87cdb9894b9367237f25e5a4c381eb8e594e782b"
      ],
      "author": {
        "name": "Tomas Winkler",
        "email": "tomas.winkler@intel.com",
        "time": "Sun Aug 02 02:36:49 2009 +0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Aug 04 16:44:23 2009 -0400"
      },
      "message": "rfkill: add the GPS radio type\n\nAlthoug GPS is a technology w/o transmitting radio\nand thus not a primary candidate for rfkill switch,\nrfkill gives unified interface point for devices with\nwireless technology.\n\nThe input key is not supplied as it is too be deprecated.\n\nCc: johannes@sipsolutions.net\nSigned-off-by: Tomas Winkler \u003ctomas.winkler@intel.com\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "74d154189d597b91da4322996dbf4f5c3d1544ab",
      "tree": "6f09861b5e2f875d2d8ea2127b16add9103221c6",
      "parents": [
        "5a6338db37885af06760d40cad589316e48431e9",
        "ffafa60d496f80c250f2ae0340ae94434c0b0b4d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 23 19:03:51 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 23 19:03:51 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/wireless/iwmc3200wifi/netdev.c\n\tnet/wireless/scan.c\n"
    },
    {
      "commit": "e56f0975360369347725c49654ecfe3792710429",
      "tree": "52845ecc6fca6a66c192f87eb8d3d45b0ddbce18",
      "parents": [
        "c66284f2a421f6aebbafd56cb8b90b8e6a9cb2de"
      ],
      "author": {
        "name": "Alan Jenkins",
        "email": "alan-jenkins@tuffmail.co.uk",
        "time": "Sat Jul 18 19:20:20 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jul 21 12:07:43 2009 -0400"
      },
      "message": "rfkill: remove too-strict __must_check\n\nSome drivers don\u0027t need the return value of rfkill_set_hw_state(),\nso it should not be marked as __must_check.\n\nSigned-off-by: Alan Jenkins \u003calan-jenkins@tuffmail.co.uk\u003e\nAcked-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "1be491fca12ff599c37ceaf7e9042ebee9f0068e",
      "tree": "96033bde1ed8561201c42574ec716f7cfd033697",
      "parents": [
        "3355443ad7601991affa5992b0d53870335af765"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sun Jul 05 14:51:06 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Jul 10 15:02:29 2009 -0400"
      },
      "message": "rfkill: prep for rfkill API changes\n\nWe\u0027ve designed the /dev/rfkill API in a way that we\ncan increase the event struct by adding members at\nthe end, should it become necessary. To validate the\nevents, userspace and the kernel need to have the\nproper event size to check for -- when reading from\nthe other end they need to verify that it\u0027s at least\nversion 1 of the event API, with the current struct\nsize, so define a constant for that and make the\ncode a little more \u0027future proof\u0027.\n\nNot that I expect that we\u0027ll have to change the event\nsize any time soon, but it\u0027s better to write the code\nin a way that lends itself to extending.\n\nDue to the current size of the event struct, the code\nis currently equivalent, but should the event struct\never need to be increased the new code might not need\nchanging.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "1ce822fa04fd6878f079461a4b8affe4bb5ec27b",
      "tree": "f518f114a426759c9371b7589981e82549fb4fee",
      "parents": [
        "47ab3840a389ff1b9959734995123e5bc94c3443"
      ],
      "author": {
        "name": "Jaswinder Singh Rajput",
        "email": "jaswinder@kernel.org",
        "time": "Wed Jul 08 21:25:54 2009 +0530"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jul 08 15:24:32 2009 -0400"
      },
      "message": "includecheck fix: include/linux, rfkill.h\n\nfix the following \u0027make includecheck\u0027 warning:\n\n  include/linux/rfkill.h: linux/types.h is included more than once.\n\nSigned-off-by: Jaswinder Singh Rajput \u003cjaswinderrajput@gmail.com\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": "06d5caf47ef4fbd9efdceae33293c42778cb7b0c",
      "tree": "51bce5f2f9f7aef903c464ac68c80da6f83e2c53",
      "parents": [
        "7fa20a7f60df0afceafbb8197b5d110507f42c72"
      ],
      "author": {
        "name": "Alan Jenkins",
        "email": "alan-jenkins@tuffmail.co.uk",
        "time": "Tue Jun 16 15:39:51 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Jun 19 11:50:17 2009 -0400"
      },
      "message": "rfkill: don\u0027t restore software blocked state on persistent devices\n\nThe setting of the \"persistent\" flag is also made more explicit using\na new rfkill_init_sw_state() function, instead of special-casing\nrfkill_set_sw_state() when it is called before registration.\n\nSuspend is a bit of a corner case so we try to get away without adding\nanother hack to rfkill-input - it\u0027s going to be removed soon.\nIf the state does change over suspend, users will simply have to prod\nrfkill-input twice in order to toggle the state.\n\nUserspace policy agents will be able to implement a more consistent user\nexperience.  For example, they can avoid the above problem if they\ntoggle devices individually.  Then there would be no \"global state\"\nto get out of sync.\n\nCurrently there are only two rfkill drivers with persistent soft-blocked\nstate.  thinkpad-acpi already checks the software state on resume.\neeepc-laptop will require modification.\n\nSigned-off-by: Alan Jenkins \u003calan-jenkins@tuffmail.co.uk\u003e\nCC: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nAcked-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "908209c160da8ecb68052111972b7a21310eac3f",
      "tree": "a888e1a29212e88d7182fa3f438c6f348362c432",
      "parents": [
        "869fb3a46cd18235e6f176328a2d8085ffe2c704"
      ],
      "author": {
        "name": "Alan Jenkins",
        "email": "alan-jenkins@tuffmail.co.uk",
        "time": "Mon Jun 08 13:12:23 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 10 13:28:37 2009 -0400"
      },
      "message": "rfkill: don\u0027t impose global states on resume (just restore the previous states)\n\nOnce rfkill-input is disabled, the \"global\" states will only be used as\ndefault initial states.\n\nSince the states will always be the same after resume, we shouldn\u0027t\ngenerate events on resume.\n\nSigned-off-by: Alan Jenkins \u003calan-jenkins@tuffmail.co.uk\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "b3fa1329eaf2a7b97124dacf5b663fd51346ac19",
      "tree": "93fd6a76af00568e8317e3e4f084135379ec6c25",
      "parents": [
        "8f77f3849cc3ae2d6df9301785a3d316ea7d7ee1"
      ],
      "author": {
        "name": "Alan Jenkins",
        "email": "alan-jenkins@tuffmail.co.uk",
        "time": "Mon Jun 08 13:27:27 2009 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 10 13:28:37 2009 -0400"
      },
      "message": "rfkill: remove set_global_sw_state\n\nrfkill_set_global_sw_state() (previously rfkill_set_default()) will no\nlonger be exported by the rewritten rfkill core.\n\nInstead, platform drivers which can provide persistent soft-rfkill state\nacross power-down/reboot should indicate their initial state by calling\nrfkill_set_sw_state() before registration.  Otherwise, they will be\ninitialized to a default value during registration by a set_block call.\n\nWe remove existing calls to rfkill_set_sw_state() which happen before\nregistration, since these had no effect in the old model.  If these\ndrivers do have persistent state, the calls can be put back (subject\nto testing :-).  This affects hp-wmi and acer-wmi.\n\nDrivers with persistent state will affect the global state only if\nrfkill-input is enabled.  This is required, otherwise booting with\nwireless soft-blocked and pressing the wireless-toggle key once would\nhave no apparent effect.  This special case will be removed in future\nalong with rfkill-input, in favour of a more flexible userspace daemon\n(see Documentation/feature-removal-schedule.txt).\n\nNow rfkill_global_states[n].def is only used to preserve global states\nover EPO, it is renamed to \".sav\".\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": "1506e30b5f25f6c3357167a18f0e4ae6f5662a28",
      "tree": "ebdd9d44c9fe6a5410c162707374183da82a78cb",
      "parents": [
        "25b0b999fbf5cc1893b110d530102951795d2f73"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Jun 09 17:49:06 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 17:49:06 2009 -0700"
      },
      "message": "rfkill: include err.h\n\nSince we use ERR_PTR and similar macros, we need to include\nlinux/err.h.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6081162e2ed78dfcf149b076b047078ab1445cc2",
      "tree": "aef1cf51ee0a8f77f562defe1fe8ec75812474b7",
      "parents": [
        "7643a2c3fcc13cd6fbd731f214463547383418ae"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Jun 02 13:01:40 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:06:14 2009 -0400"
      },
      "message": "rfkill: add function to query state\n\nSometimes it is necessary to know how the state is,\nand it is easier to query rfkill than keep track of\nit somewhere else, so add a function for that. This\ncould later be expanded to return hard/soft block,\nbut so far that isn\u0027t necessary.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c64fb01627e24725d1f9d535e4426475a4415753",
      "tree": "24b7e5caef5b1ddeaf479c98d56b2c38e25fca57",
      "parents": [
        "19d337dff95cbf76edd3ad95c0cee2732c3e1ec5"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Jun 02 13:01:38 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:06:14 2009 -0400"
      },
      "message": "rfkill: create useful userspace interface\n\nThe new code added by this patch will make rfkill create\na misc character device /dev/rfkill that userspace can use\nto control rfkill soft blocks and get status of devices as\nwell as events when the status changes.\n\nUsing it is very simple -- when you open it you can read\na number of times to get the initial state, and every\nfurther read blocks (you can poll) on getting the next\nevent from the kernel. The same structure you read is\nalso used when writing to it to change the soft block of\na given device, all devices of a given type, or all\ndevices.\n\nThis also makes CONFIG_RFKILL_INPUT selectable again in\norder to be able to test without it present since its\nfunctionality can now be replaced by userspace entirely\nand distros and users may not want the input part of\nrfkill interfering with their userspace code. We will\nalso write a userspace daemon to handle all that and\nconsequently add the input code to the feature removal\nschedule.\n\nIn order to have rfkilld support both kernels with and\nwithout CONFIG_RFKILL_INPUT (or new kernels after its\neventual removal) we also add an ioctl (that only exists\nif rfkill-input is present) to disable rfkill-input.\nIt is not very efficient, but at least gives the correct\nbehaviour in all cases.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\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": "c1c6b14b22af0f85d05a70405dc3fba5de840c7b",
      "tree": "f60031dacc62cbab1212856230ce933559b6ea05",
      "parents": [
        "f4a11bb0c2d5968ea35f95bdbabdd453862f202a"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Mar 30 11:32:46 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Apr 22 16:54:27 2009 -0400"
      },
      "message": "rfkill: remove deprecated state constants\n\nI only did superficial review, but these constants are stupid\nto have and without proper warnings nobody will review the\ncode anyway, no amount of shouting will help.\n\nAlso fix wimax to use correct states.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "4dec9b807be757780ca3611a959ac22c28d292a7",
      "tree": "10186b2cbdf6930c563917ba40c5f63b014ed45f",
      "parents": [
        "6fb532527e2592f82ec07508df2e44f6c7ceff12"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Dec 10 17:48:48 2008 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Dec 12 14:45:25 2008 -0500"
      },
      "message": "rfkill: strip pointless notifier chain\n\nNo users, so no reason to have it.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f80b5e99c7dac5a9a0d72496cec5075a12cd1476",
      "tree": "493b11de9639655fbf2a9431f9def759ab3f6a27",
      "parents": [
        "5925d976fbe99859d636e7075e5304625503c5fe"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Fri Nov 21 20:40:09 2008 -0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 26 09:47:43 2008 -0500"
      },
      "message": "rfkill: preserve state across suspend\n\nThe rfkill class API requires that the driver connected to a class\ncall rfkill_force_state() on resume to update the real state of the\nrfkill controller, OR that it provides a get_state() hook.\n\nThis means there is potentially a hidden call in the resume code flow\nthat changes rfkill-\u003estate (i.e. rfkill_force_state()), so the\nprevious state of the transmitter was being lost.\n\nThe simplest and most future-proof way to fix this is to explicitly\nstore the pre-sleep state on the rfkill structure, and restore from\nthat on resume.\n\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nAcked-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nCc: Matthew Garrett \u003cmjg59@srcf.ucam.org\u003e\nCc: Alan Jenkins \u003calan-jenkins@tuffmail.co.uk\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "96c87607ac8f9b0e641d11ba6e57f8ec0214ea1c",
      "tree": "d8a7d538b2bd05b5ee2957828563b31cf7db8540",
      "parents": [
        "77fba13ccc3a2a3db100892a4a6cc5e2f8290cc7"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Sat Aug 02 15:11:00 2008 -0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Aug 22 16:29:57 2008 -0400"
      },
      "message": "rfkill: introduce RFKILL_STATE_MAX\n\nWhile it is interesting to not add last-enum-markers because it allows gcc\nto warn us of switch() statements missing a valid state, we really should\nbe handling memory corruption on a rfkill state with default clauses,\nanyway.\n\nSo add RFKILL_STATE_MAX and use it where applicable.  It makes for safer\ncode in the long run.\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": "77fba13ccc3a2a3db100892a4a6cc5e2f8290cc7",
      "tree": "326794992d81c2372f6a639df798e3361dcb4610",
      "parents": [
        "9961920199ec88d6b581d3e38502088935925c04"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Sat Aug 02 15:10:59 2008 -0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Aug 22 16:29:57 2008 -0400"
      },
      "message": "rfkill: add __must_check annotations\n\nrfkill is not a small, mere detail in wireless support.  Once it starts\nsupporting rfkill and users start counting on that support, a wireless\ndevice is at risk of operating in dangerous conditions should rfkill\nsupport fail to properly activate.\n\nTherefore, add the required __must_check annotations on some key functions\nof the rfkill API, for which the wireless drivers absolutely MUST handle\nthe failure mode safely in order to avoid a potentially dangerous situation\nwhere the wireless transmitter is left enabled when the user don\u0027t want it\nto.\n\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nAcked-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nCc: Matthew Garrett \u003cmjg@redhat.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "9961920199ec88d6b581d3e38502088935925c04",
      "tree": "38a20b8d4441b4b2a6e033bc9e7a7e6863e72397",
      "parents": [
        "02589f60510030a3c1496e7a8c511e4f674ef5ff"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Sat Aug 02 15:10:58 2008 -0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Aug 22 16:29:56 2008 -0400"
      },
      "message": "rfkill: add default global states (v2)\n\nAdd a second set of global states, \"rfkill_default_states\", to track the\nstate that will be used when the first rfkill class of a given type is\nregistered, and also to save \"undo\" information when rfkill_epo is called.\n\nAdd a new exported function, rfkill_set_default(), which can be used by\nplatform drivers to restore radio state saved by the platform across\nreboots or shutdown.\n\nAlso, fix rfkill_epo to properly update rfkill_states, but still preserve a\ncopy of the state so that we can undo the effect of rfkill_epo later if we\nwant to.  Add rfkill_restore_states() to restore rfkill_states from the\ncopy.\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": "f1b23361a0f15497d4c6795a2935b2e98064ddfb",
      "tree": "78c3b671562de9180e9e7d385a2f851e5fe67aa1",
      "parents": [
        "37f55e9d78d1b63047b1b7ae175cdce650547ba8"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Mon Jul 21 21:18:19 2008 -0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jul 29 16:36:33 2008 -0400"
      },
      "message": "rfkill: document the rfkill struct locking (v2)\n\nReorder fields in struct rfkill and add comments to make it clear\nwhich fields are protected by rfkill-\u003emutex.\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": "79399a8d1908f6a406e82d23c5a9937e1722ed3a",
      "tree": "2eb7cfc13959917114b745e4a0bff2810df1c870",
      "parents": [
        "526324b61a9667ed9a71f0a8a8899cf675346c76"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Mon Jun 23 17:23:03 2008 -0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Jun 26 14:21:21 2008 -0400"
      },
      "message": "rfkill: add notifier chains support\n\nAdd a notifier chain for use by the rfkill class.  This notifier chain\nsignals the following events (more to be added when needed):\n\n  1. rfkill: rfkill device state has changed\n\nA pointer to the rfkill struct will be passed as a parameter.\n\nThe notifier message types have been added to include/linux/rfkill.h\ninstead of to include/linux/notifier.h in order to avoid the madness of\nmodifying a header used globally (and that triggers an almost full tree\nrebuild every time it is touched) with information that is of interest only\nto code that includes the rfkill.h header.\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": "477576a073699783abb53ae14993d5d41c66301d",
      "tree": "bde28a746ff9ebbc7642f36828a6115bc4bc00e9",
      "parents": [
        "801e49af4c1a9b988ba0d25de2b368c99c3bf2b3"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Mon Jun 23 17:23:01 2008 -0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Jun 26 14:21:20 2008 -0400"
      },
      "message": "rfkill: add the WWAN radio type\n\nUnfortunately, instead of adding a generic Wireless WAN type, a technology-\nspecific type (WiMAX) was added.  That\u0027s useless for other WWAN devices,\nsuch as EDGE, UMTS, X-RTT and other such radios.\n\nAdd a WWAN rfkill type for generic wireless WAN devices.  No keys are added\nas most devices really want to use KEY_WLAN for WWAN control (in a cycle of\nnone, WLAN, WWAN, WLAN+WWAN) and need no specific keycode added.\n\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nAcked-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nCc: Iñaky Pérez-González \u003cinaky.perez-gonzalez@intel.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "801e49af4c1a9b988ba0d25de2b368c99c3bf2b3",
      "tree": "60fbf2b2ce2d9aab3055198853d2a76223b03f71",
      "parents": [
        "e954b0b85b9e737564b8ad9738de5816747b5901"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Mon Jun 23 17:23:00 2008 -0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Jun 26 14:21:20 2008 -0400"
      },
      "message": "rfkill: add read-write rfkill switch support\n\nCurrently, rfkill support for read/write rfkill switches is hacked through\na round-trip over the input layer and rfkill-input to let a driver sync\nrfkill-\u003estate to hardware changes.\n\nThis is buggy and sub-optimal.  It causes real problems.  It is best to\nthink of the rfkill class as supporting only write-only switches at the\nmoment.\n\nIn order to implement the read/write functionality properly:\n\nAdd a get_state() hook that is called by the class every time it needs to\nfetch the current state of the switch.  Add a call to this hook every time\nthe *current* state of the radio plays a role in a decision.\n\nAlso add a force_state() method that can be used to forcefully syncronize\nthe class\u0027 idea of the current state of the switch.  This allows for a\nfaster implementation of the read/write functionality, as a driver which\nget events on switch changes can avoid the need for a get_state() hook.\n\nIf the get_state() hook is left as NULL, current behaviour is maintained,\nso this change is fully backwards compatible with the current rfkill\ndrivers.\n\nFor hardware that issues events when the rfkill state changes, leave\nget_state() NULL in the rfkill struct, set the initial state properly\nbefore registering with the rfkill class, and use the force_state() method\nin the driver to keep the rfkill interface up-to-date.\n\nget_state() can be called by the class from atomic context. It must not\nsleep.\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": "303d9bf6bb64ead8e3f1d7e29904a4025502e591",
      "tree": "c33cc180a0f5084bcb1c2e8921cab35eb9aea476",
      "parents": [
        "09552ccd8277e6382097e93a40f7311a09449367"
      ],
      "author": {
        "name": "Iñaky Pérez-González",
        "email": "inaky.perez-gonzalez@intel.com",
        "time": "Wed Jan 23 13:40:27 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:26:46 2008 -0800"
      },
      "message": "rfkill: add the WiMAX radio type\n\nTeach rfkill about wimax radios.\n\nHad to define a KEY_WIMAX as a \u0027key for disabling only wimax radios\u0027,\nas other radio technologies have. This makes sense as hardware has\nspecific keys for disabling specific radios.\n\nThe RFKILL enabling part is, otherwise, a copy and paste of any other\nradio technology.\n\nSigned-off-by: Inaky Perez-Gonzalez \u003cinaky@linux.intel.com\u003e\nSigned-off-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "20405c08412a4d89357870d7220f9fb1c458b286",
      "tree": "971dbbd3a2339eeef5ec7a89057cf6ca20af535d",
      "parents": [
        "135900c182c321a4888ec496b014e6707272faca"
      ],
      "author": {
        "name": "Michael Buesch",
        "email": "mb@bu3sch.de",
        "time": "Thu Sep 27 21:34:23 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:54:11 2007 -0700"
      },
      "message": "[RFKILL]: Add support for hardware-only rfkill buttons\n\nButtons that work directly on hardware cannot support\nthe \"user_claim\" functionality. Add a flag to signal\nthis and return -EOPNOTSUPP in this case.\nb43 is such a device.\n\nSigned-off-by: Michael Buesch \u003cmb@bu3sch.de\u003e\nAcked-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "135900c182c321a4888ec496b014e6707272faca",
      "tree": "d17a3e12bf2e047c7a627f61e623e40dfbad87bf",
      "parents": [
        "937a049dd903bd810d858d0303cf86af9eb08b6f"
      ],
      "author": {
        "name": "Michael Buesch",
        "email": "mb@bu3sch.de",
        "time": "Thu Sep 27 21:33:12 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:54:10 2007 -0700"
      },
      "message": "[RFKILL]: Add support for an rfkill LED.\n\nThis adds a LED trigger.\n\nSigned-off-by: Michael Buesch \u003cmb@bu3sch.de\u003e\nAcked-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fe242cfd3390b1c7d54d60f7ebb6a4054804cd41",
      "tree": "0a2ad56479c5a48a57c9635139b3b85de2ae5c3d",
      "parents": [
        "a50e2e3f3e6303e893c4c438c0692d459d7093a5"
      ],
      "author": {
        "name": "Ivo van Doorn",
        "email": "IvDoorn@gmail.com",
        "time": "Thu Sep 27 14:57:05 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:53:29 2007 -0700"
      },
      "message": "[RFKILL]: Move rfkill_switch_all out of global header\n\nrfkill_switch_all shouldn\u0027t be called by drivers directly,\ninstead they should send a signal over the input device.\n\nTo prevent confusion for driver developers, move the\nfunction into a rfkill private header.\n\nSigned-off-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "279632be3f546f4d88bdb086fa71479bcde9d641",
      "tree": "b5b636369306e068d714ce466b20e002e2cb793f",
      "parents": [
        "30ccb08847c2d89e1cf893bf5f3155c023a9d142"
      ],
      "author": {
        "name": "Michael Buesch",
        "email": "mb@bu3sch.de",
        "time": "Thu Sep 27 14:42:42 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:53:18 2007 -0700"
      },
      "message": "[PATCH] rfkill: Fix documentation typos\n\nSigned-off-by: Michael Buesch \u003cmb@bu3sch.de\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "e0665486b78b8efb9c25019ad29b4a4c9c1e9dfc",
      "tree": "b18f2c738eb10d6afcf7bf751b4c16056c3e248c",
      "parents": [
        "234a0ca6f1d67ba4c3c3fc8378bbd98d722468e1"
      ],
      "author": {
        "name": "Ivo van Doorn",
        "email": "IvDoorn@gmail.com",
        "time": "Thu Sep 13 09:21:31 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:23 2007 -0700"
      },
      "message": "[RFKILL]: Add support for ultrawideband\n\nThis patch will add support for UWB keys to rfkill,\nsupport for this has been requested by Inaky.\n\nSigned-off-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "234a0ca6f1d67ba4c3c3fc8378bbd98d722468e1",
      "tree": "a744629408146be683dfbef5c18f1f8bb433f3b7",
      "parents": [
        "077130c0cf7d5ba1992f5b51b96136d7b1c8aad5"
      ],
      "author": {
        "name": "Ivo van Doorn",
        "email": "IvDoorn@gmail.com",
        "time": "Thu Sep 13 09:20:42 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:23 2007 -0700"
      },
      "message": "[RFKILL]: Remove IRDA\n\nAs Dmitry pointed out earlier, rfkill-input.c\ndoesn\u0027t support irda because there are no users\nand we shouldn\u0027t add unrequired KEY_ defines.\n\nHowever, RFKILL_TYPE_IRDA was defined in the\nrfkill.h header file and would confuse people\nabout whether it is implemented or not.\n\nThis patch removes IRDA support completely,\nso it can be added whenever a driver wants the\nfeature.\n\nSigned-off-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c36befb52350fa76bf3cb03d13ba2e17dbe8a508",
      "tree": "1e3187430ee10c2b5f7aa1dc51d79d810a2ccd2a",
      "parents": [
        "71e27da9618b5f4d525ec821def83991da20429f"
      ],
      "author": {
        "name": "Ivo van Doorn",
        "email": "IvDoorn@gmail.com",
        "time": "Tue Jun 05 00:04:46 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Jun 07 13:39:34 2007 -0700"
      },
      "message": "[RFKILL]: Make rfkill-\u003ename const\n\nThe rfkill name can be made const safely,\nthis makes the compiler happy when drivers make\nit point to some const string used elsewhere.\n\nSigned-off-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cf4328cd949c2086091c62c5685f1580fe9b55e4",
      "tree": "bd9d96f1c99910076b6f5f34cd5cd2da30405ef1",
      "parents": [
        "2396a22e0989df6038996506bfbf7a57f116c299"
      ],
      "author": {
        "name": "Ivo van Doorn",
        "email": "IvDoorn@gmail.com",
        "time": "Mon May 07 00:34:20 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 07 00:34:20 2007 -0700"
      },
      "message": "[NET]: rfkill: add support for input key to control wireless radio\n\nThe RF kill patch that provides infrastructure for implementing\nswitches controlling radio states on various network and other cards.\n\n[dtor@insightbb.com: address review comments]\n[akpm@linux-foundation.org: cleanups, build fixes]\n\nSigned-off-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ]
}
