04 Jun, 2009

2 commits

  • My mistake, I should have added that when cleaning up
    rfkill and changing wimax.

    Reported-by: Randy Dunlap
    Signed-off-by: Johannes Berg
    Acked-by: Inaky Perez-Gonzalez
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • This patch completely rewrites the rfkill core to address
    the following deficiencies:

    * all rfkill drivers need to implement polling where necessary
    rather than having one central implementation

    * updating the rfkill state cannot be done from arbitrary
    contexts, forcing drivers to use schedule_work and requiring
    lots of code

    * rfkill drivers need to keep track of soft/hard blocked
    internally -- the core should do this

    * the rfkill API has many unexpected quirks, for example being
    asymmetric wrt. alloc/free and register/unregister

    * rfkill can call back into a driver from within a function the
    driver called -- this is prone to deadlocks and generally
    should be avoided

    * rfkill-input pointlessly is a separate module

    * drivers need to #ifdef rfkill functions (unless they want to
    depend on or select RFKILL) -- rfkill should provide inlines
    that do nothing if it isn't compiled in

    * the rfkill structure is not opaque -- drivers need to initialise
    it correctly (lots of sanity checking code required) -- instead
    force drivers to pass the right variables to rfkill_alloc()

    * the documentation is hard to read because it always assumes the
    reader is completely clueless and contains way TOO MANY CAPS

    * the rfkill code needlessly uses a lot of locks and atomic
    operations in locked sections

    * fix LED trigger to actually change the LED when the radio state
    changes -- this wasn't done before

    Tested-by: Alan Jenkins
    Signed-off-by: Henrique de Moraes Holschuh [thinkpad]
    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

30 Mar, 2009

1 commit


09 Jan, 2009

1 commit

  • WiMAX can work without RFKILL, but it was missing a check to make sure
    RFKILL is not being made a module with wimax compiled into the
    kernel. This caused failed builds in s390, where CONFIG_INPUT is
    always off.

    When RFKILL is enabled, the code uses the input layer to report
    hardware switch changes; thus, if RFKILL is enabled, INPUT has to be
    too. It also needs to display some message when INPUT is disabled that
    explains why WiMAX is not selectable.

    (issues found by Randy Dunlap in the linux-next tree).

    Signed-off-by: Inaky Perez-Gonzalez
    Signed-off-by: David S. Miller

    Inaky Perez-Gonzalez
     

08 Jan, 2009

1 commit