1. 23 4月, 2009 1 次提交
  2. 13 12月, 2008 1 次提交
  3. 26 11月, 2008 1 次提交
    • H
      rfkill: preserve state across suspend · f80b5e99
      Henrique de Moraes Holschuh 提交于
      The rfkill class API requires that the driver connected to a class
      call rfkill_force_state() on resume to update the real state of the
      rfkill controller, OR that it provides a get_state() hook.
      
      This means there is potentially a hidden call in the resume code flow
      that changes rfkill->state (i.e. rfkill_force_state()), so the
      previous state of the transmitter was being lost.
      
      The simplest and most future-proof way to fix this is to explicitly
      store the pre-sleep state on the rfkill structure, and restore from
      that on resume.
      Signed-off-by: NHenrique de Moraes Holschuh <hmh@hmh.eng.br>
      Acked-by: NIvo van Doorn <IvDoorn@gmail.com>
      Cc: Matthew Garrett <mjg59@srcf.ucam.org>
      Cc: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f80b5e99
  4. 23 8月, 2008 3 次提交
  5. 30 7月, 2008 1 次提交
  6. 27 6月, 2008 5 次提交
    • H
      rfkill: rename the rfkill_state states and add block-locked state · 5005657c
      Henrique de Moraes Holschuh 提交于
      The current naming of rfkill_state causes a lot of confusion: not only the
      "kill" in rfkill suggests negative logic, but also the fact that rfkill cannot
      turn anything on (it can just force something off or stop forcing something
      off) is often forgotten.
      
      Rename RFKILL_STATE_OFF to RFKILL_STATE_SOFT_BLOCKED (transmitter is blocked
      and will not operate; state can be changed by a toggle_radio request), and
      RFKILL_STATE_ON to RFKILL_STATE_UNBLOCKED (transmitter is not blocked, and may
      operate).
      
      Also, add a new third state, RFKILL_STATE_HARD_BLOCKED (transmitter is blocked
      and will not operate; state cannot be changed through a toggle_radio request),
      which is used by drivers to indicate a wireless transmiter was blocked by a
      hardware rfkill line that accepts no overrides.
      
      Keep the old names as #defines, but document them as deprecated.  This way,
      drivers can be converted to the new names *and* verified to actually use rfkill
      correctly one by one.
      Signed-off-by: NHenrique de Moraes Holschuh <hmh@hmh.eng.br>
      Acked-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      5005657c
    • H
      rfkill: add notifier chains support · 79399a8d
      Henrique de Moraes Holschuh 提交于
      Add a notifier chain for use by the rfkill class.  This notifier chain
      signals the following events (more to be added when needed):
      
        1. rfkill: rfkill device state has changed
      
      A pointer to the rfkill struct will be passed as a parameter.
      
      The notifier message types have been added to include/linux/rfkill.h
      instead of to include/linux/notifier.h in order to avoid the madness of
      modifying a header used globally (and that triggers an almost full tree
      rebuild every time it is touched) with information that is of interest only
      to code that includes the rfkill.h header.
      Signed-off-by: NHenrique de Moraes Holschuh <hmh@hmh.eng.br>
      Acked-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      79399a8d
    • H
      rfkill: add the WWAN radio type · 477576a0
      Henrique de Moraes Holschuh 提交于
      Unfortunately, instead of adding a generic Wireless WAN type, a technology-
      specific type (WiMAX) was added.  That's useless for other WWAN devices,
      such as EDGE, UMTS, X-RTT and other such radios.
      
      Add a WWAN rfkill type for generic wireless WAN devices.  No keys are added
      as most devices really want to use KEY_WLAN for WWAN control (in a cycle of
      none, WLAN, WWAN, WLAN+WWAN) and need no specific keycode added.
      Signed-off-by: NHenrique de Moraes Holschuh <hmh@hmh.eng.br>
      Acked-by: NIvo van Doorn <IvDoorn@gmail.com>
      Cc: Iñaky Pérez-González <inaky.perez-gonzalez@intel.com>
      Cc: David S. Miller <davem@davemloft.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      477576a0
    • H
      rfkill: add read-write rfkill switch support · 801e49af
      Henrique de Moraes Holschuh 提交于
      Currently, rfkill support for read/write rfkill switches is hacked through
      a round-trip over the input layer and rfkill-input to let a driver sync
      rfkill->state to hardware changes.
      
      This is buggy and sub-optimal.  It causes real problems.  It is best to
      think of the rfkill class as supporting only write-only switches at the
      moment.
      
      In order to implement the read/write functionality properly:
      
      Add a get_state() hook that is called by the class every time it needs to
      fetch the current state of the switch.  Add a call to this hook every time
      the *current* state of the radio plays a role in a decision.
      
      Also add a force_state() method that can be used to forcefully syncronize
      the class' idea of the current state of the switch.  This allows for a
      faster implementation of the read/write functionality, as a driver which
      get events on switch changes can avoid the need for a get_state() hook.
      
      If the get_state() hook is left as NULL, current behaviour is maintained,
      so this change is fully backwards compatible with the current rfkill
      drivers.
      
      For hardware that issues events when the rfkill state changes, leave
      get_state() NULL in the rfkill struct, set the initial state properly
      before registering with the rfkill class, and use the force_state() method
      in the driver to keep the rfkill interface up-to-date.
      
      get_state() can be called by the class from atomic context. It must not
      sleep.
      Signed-off-by: NHenrique de Moraes Holschuh <hmh@hmh.eng.br>
      Acked-by: NIvo van Doorn <IvDoorn@gmail.com>
      Cc: Dmitry Torokhov <dtor@mail.ru>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      801e49af
    • H
      rfkill: clarify meaning of rfkill states · f3146aff
      Henrique de Moraes Holschuh 提交于
      rfkill really should have been named rfswitch.  As it is, one can get
      confused whether RFKILL_STATE_ON means the KILL switch is on (and
      therefore, the radio is being *blocked* from operating), or whether it
      means the RADIO rf output is on.
      
      Clearly state that RFKILL_STATE_ON means the radio is *unblocked* from
      operating (i.e. there is no rf killing going on).
      Signed-off-by: NHenrique de Moraes Holschuh <hmh@hmh.eng.br>
      Acked-by: NIvo van Doorn <IvDoorn@gmail.com>
      Cc: Dmitry Torokhov <dtor@mail.ru>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f3146aff
  7. 01 2月, 2008 1 次提交
  8. 11 10月, 2007 6 次提交
  9. 08 6月, 2007 1 次提交
  10. 07 5月, 2007 1 次提交