1. 19 10月, 2009 2 次提交
    • I
      wimax/i2400m: rework bootrom initialization to be more flexible · aba3792a
      Inaky Perez-Gonzalez 提交于
      This modifies the bootrom initialization code of the i2400m driver so
      it can more easily support upcoming hardware.
      
      Currently, the code detects two types of barkers (magic numbers) sent
      by the device to indicate the types of firmware it would take (signed
      vs non-signed).
      
      This schema is extended so that multiple reboot barkers are
      recognized; upcoming hw will expose more types barkers which will have
      to match a header in the firmware image before we can load it.
      
      For that, a barker database is introduced; the first time the device
      sends a barker, it is matched in the database. That gives the driver
      the information needed to decide how to upload the firmware and which
      types of firmware to use. The database can be populated from module
      parameters.
      
      The execution flow is not altered; a new function
      (i2400m_is_boot_barker) is introduced to determine in the RX path if
      the device has sent a boot barker. This function is becoming heavier,
      so it is put away from the hot reception path [this is why there is
      some reorganization in sdio-rx.c:i2400ms_rx and
      usb-notifc.c:i2400mu_notification_grok()].
      
      The documentation on the process has also been updated.
      
      All these modifications are heavily based on previous work by Dirk
      Brandewie <dirk.brandewie@intel.com>.
      Signed-off-by: NInaky Perez-Gonzalez <inaky@linux.intel.com>
      aba3792a
    • D
      wimax/i2400m: USB driver uses a configurable endpoint map · 2093586d
      Dirk Brandewie 提交于
      Newer generations of the i2400m USB WiMAX device use a different
      endpoint map; in order to make it easy to support it, we make the
      endpoint-to-function mapeable instead of static.
      Signed-off-by: NDirk Brandewie <dirk.j.brandewie@intel.com>
      Signed-off-by: NInaky Perez-Gonzalez <inaky@linux.intel.com>
      2093586d
  2. 25 3月, 2009 1 次提交
  3. 02 3月, 2009 1 次提交
  4. 08 1月, 2009 1 次提交
    • I
      i2400m/USB: TX and RX path backends · a8ebf98f
      Inaky Perez-Gonzalez 提交于
      Implements the backend so that the generic driver can TX/RX to/from
      the USB device.
      
      TX is implemented with a kthread sitting in a never-ending loop that
      when kicked by the generic driver's TX code will pull data from the TX
      FIFO and send it to the device until it drains it. Then it goes back
      sleep, waiting for another kick.
      
      RX is implemented in a similar fashion, but reads are kicked in by the
      device notifying in the interrupt endpoint that data is ready. Device
      reset notifications are also sent via the notification endpoint.
      
      We need a thread contexts to run USB autopm functions (blocking) and
      to process the received data (can get to be heavy in processing
      time).
      Signed-off-by: NInaky Perez-Gonzalez <inaky@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      a8ebf98f