1. 17 1月, 2012 7 次提交
  2. 13 1月, 2012 6 次提交
  3. 11 1月, 2012 20 次提交
  4. 10 1月, 2012 2 次提交
  5. 09 1月, 2012 1 次提交
  6. 08 1月, 2012 4 次提交
    • F
      via-rhine: rework suspend and resume. · e92b9b3b
      Francois Romieu 提交于
      Cover of 861ab440.
      Signed-off-by: NFrancois Romieu <romieu@fr.zoreil.com>
      e92b9b3b
    • F
      via-rhine: per device debug level. · fc3e0f8a
      Francois Romieu 提交于
      Signed-off-by: NFrancois Romieu <romieu@fr.zoreil.com>
      fc3e0f8a
    • F
      via-rhine: RHINE_WAIT_FOR macro removal. · a384a33b
      Francois Romieu 提交于
      Signed-off-by: NFrancois Romieu <romieu@fr.zoreil.com>
      a384a33b
    • F
      via-rhine: move work from irq handler to softirq and beyond. · 7ab87ff4
      Francois Romieu 提交于
      - Tx processing is moved from the irq handler to NAPI poll
      - link events and obscure event processing is moved to its proper work queue
      
      Locking rules undergo some changes through the driver.
      
      - the driver offers the usual lock-free Tx path
      - besides the IRQ handler, the link event task schedules the napi handler.
        The driver thus adds some internal locking to prevent a loop when both
        must be disabled.
      - the reset task keeps being scheduled from the Tx watchdog handler, thus
        with implicit Tx queue disabling. It does not need to care about irq,
        only napi softirq and competing task.
      - it is not worth to add a dedicated lock between {g, s}et_wol and
        rhine_shutdown. It should not hurt no narrow it down a bit though.
      - rhine_reset_task must keep its huge spin_lock_bh protected section due
        to :
        - races for the CAM registers (see rhine_vlan_rx_{add, kill}_vid)
        - implicit use of napi_enable (see init_registers)
        - use of the same lock for stats read / update exclusion between
          napi rx processing and rhine_get_stats
      - rhine_resume requires a softirq disabled section for the same reason
        as rhine_reset_task
      - {free, request}_irq have been replaced with IntrEnable actions in
        rhine_{suspend, resume}. It is hidden behind init_registers for the
        latter.
      Signed-off-by: NFrancois Romieu <romieu@fr.zoreil.com>
      7ab87ff4