1. 13 4月, 2011 3 次提交
  2. 01 4月, 2011 2 次提交
  3. 24 2月, 2011 2 次提交
  4. 18 2月, 2011 1 次提交
  5. 17 2月, 2011 4 次提交
  6. 12 2月, 2011 1 次提交
  7. 08 2月, 2011 1 次提交
    • R
      Bluetooth: ath3k: Avoid duplication of code · 84f0e17f
      Rogério Brito 提交于
      In commit 86e09287, to reduce memory
      usage, the functions of the ath3k module were rewritten to release the
      firmware blob after it has been loaded (successfully or not).
      
      The resuting code has some redundancy and the compiler can potentially
      produce better code if we omit a function call that is unconditionally
      executed in
      
      ,----
      |     if (ath3k_load_firmware(udev, firmware)) {
      |             release_firmware(firmware);
      |             return -EIO;
      |     }
      |     release_firmware(firmware);
      |
      |     return 0;
      | }
      `----
      
      It may also be argued that the rewritten code becomes easier to read,
      and also to see the code coverage of the snippet in question.
      Signed-off-by: NRogério Brito <rbrito@ime.usp.br>
      Cc: Alexander Holler <holler@ahsoftware.de>
      Cc: "Gustavo F. Padovan" <padovan@profusion.mobi>
      Cc: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
      Signed-off-by: NGustavo F. Padovan <padovan@profusion.mobi>
      84f0e17f
  8. 27 1月, 2011 1 次提交
  9. 20 1月, 2011 1 次提交
  10. 19 1月, 2011 1 次提交
  11. 08 12月, 2010 1 次提交
  12. 02 12月, 2010 2 次提交
  13. 09 11月, 2010 2 次提交
    • E
      Bluetooth: Add MacBookAir3,1(2) support · 3e3ede7d
      Edgar (gimli) Hucek 提交于
      Adding the new MacBookAir3,1(2) to btusb.
      
      Output without the patch and btusb loaded :
      
      T:  Bus=03 Lev=02 Prnt=03 Port=02 Cnt=01 Dev#=  6 Spd=12  MxCh= 0
      D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
      P:  Vendor=05ac ProdID=821b Rev= 0.34
      S:  Manufacturer=Apple Inc.
      S:  Product=Bluetooth USB Host Controller
      C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=  0mA
      I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
      E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
      E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
      I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
      E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
      I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
      E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
      I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
      I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  32 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  32 Ivl=1ms
      I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  64 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  64 Ivl=1ms
      I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  64 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  64 Ivl=1ms
      I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      E:  Ad=84(I) Atr=02(Bulk) MxPS=  32 Ivl=0ms
      E:  Ad=04(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms
      I:* If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
      
      Output with the patch and btusb loaded :
      
      T:  Bus=03 Lev=02 Prnt=03 Port=02 Cnt=01 Dev#=  6 Spd=12  MxCh= 0
      D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
      P:  Vendor=05ac ProdID=821b Rev= 0.34
      S:  Manufacturer=Apple Inc.
      S:  Product=Bluetooth USB Host Controller
      C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=  0mA
      I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
      E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
      E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
      E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
      I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
      I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
      I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
      I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  32 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  32 Ivl=1ms
      I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  64 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  64 Ivl=1ms
      I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  64 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  64 Ivl=1ms
      I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      E:  Ad=84(I) Atr=02(Bulk) MxPS=  32 Ivl=0ms
      E:  Ad=04(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms
      I:* If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
      Signed-off-by: NEdgar (gimli) Hucek <gimli@dark-green.com>
      Acked-by: NMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: NGustavo F. Padovan <padovan@profusion.mobi>
      3e3ede7d
    • M
      Bluetooth: Enable USB autosuspend by default on btusb · 556ea928
      Matthew Garrett 提交于
      We've done this for a while in Fedora without any obvious problems other
      than some interaction with input devices. Those should be fixed now, so
      let's try this in mainline.
      Signed-off-by: NMatthew Garrett <mjg@redhat.com>
      Acked-by: NMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: NGustavo F. Padovan <padovan@profusion.mobi>
      556ea928
  14. 22 10月, 2010 1 次提交
  15. 15 10月, 2010 1 次提交
    • A
      llseek: automatically add .llseek fop · 6038f373
      Arnd Bergmann 提交于
      All file_operations should get a .llseek operation so we can make
      nonseekable_open the default for future file operations without a
      .llseek pointer.
      
      The three cases that we can automatically detect are no_llseek, seq_lseek
      and default_llseek. For cases where we can we can automatically prove that
      the file offset is always ignored, we use noop_llseek, which maintains
      the current behavior of not returning an error from a seek.
      
      New drivers should normally not use noop_llseek but instead use no_llseek
      and call nonseekable_open at open time.  Existing drivers can be converted
      to do the same when the maintainer knows for certain that no user code
      relies on calling seek on the device file.
      
      The generated code is often incorrectly indented and right now contains
      comments that clarify for each added line why a specific variant was
      chosen. In the version that gets submitted upstream, the comments will
      be gone and I will manually fix the indentation, because there does not
      seem to be a way to do that using coccinelle.
      
      Some amount of new code is currently sitting in linux-next that should get
      the same modifications, which I will do at the end of the merge window.
      
      Many thanks to Julia Lawall for helping me learn to write a semantic
      patch that does all this.
      
      ===== begin semantic patch =====
      // This adds an llseek= method to all file operations,
      // as a preparation for making no_llseek the default.
      //
      // The rules are
      // - use no_llseek explicitly if we do nonseekable_open
      // - use seq_lseek for sequential files
      // - use default_llseek if we know we access f_pos
      // - use noop_llseek if we know we don't access f_pos,
      //   but we still want to allow users to call lseek
      //
      @ open1 exists @
      identifier nested_open;
      @@
      nested_open(...)
      {
      <+...
      nonseekable_open(...)
      ...+>
      }
      
      @ open exists@
      identifier open_f;
      identifier i, f;
      identifier open1.nested_open;
      @@
      int open_f(struct inode *i, struct file *f)
      {
      <+...
      (
      nonseekable_open(...)
      |
      nested_open(...)
      )
      ...+>
      }
      
      @ read disable optional_qualifier exists @
      identifier read_f;
      identifier f, p, s, off;
      type ssize_t, size_t, loff_t;
      expression E;
      identifier func;
      @@
      ssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)
      {
      <+...
      (
         *off = E
      |
         *off += E
      |
         func(..., off, ...)
      |
         E = *off
      )
      ...+>
      }
      
      @ read_no_fpos disable optional_qualifier exists @
      identifier read_f;
      identifier f, p, s, off;
      type ssize_t, size_t, loff_t;
      @@
      ssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)
      {
      ... when != off
      }
      
      @ write @
      identifier write_f;
      identifier f, p, s, off;
      type ssize_t, size_t, loff_t;
      expression E;
      identifier func;
      @@
      ssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)
      {
      <+...
      (
        *off = E
      |
        *off += E
      |
        func(..., off, ...)
      |
        E = *off
      )
      ...+>
      }
      
      @ write_no_fpos @
      identifier write_f;
      identifier f, p, s, off;
      type ssize_t, size_t, loff_t;
      @@
      ssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)
      {
      ... when != off
      }
      
      @ fops0 @
      identifier fops;
      @@
      struct file_operations fops = {
       ...
      };
      
      @ has_llseek depends on fops0 @
      identifier fops0.fops;
      identifier llseek_f;
      @@
      struct file_operations fops = {
      ...
       .llseek = llseek_f,
      ...
      };
      
      @ has_read depends on fops0 @
      identifier fops0.fops;
      identifier read_f;
      @@
      struct file_operations fops = {
      ...
       .read = read_f,
      ...
      };
      
      @ has_write depends on fops0 @
      identifier fops0.fops;
      identifier write_f;
      @@
      struct file_operations fops = {
      ...
       .write = write_f,
      ...
      };
      
      @ has_open depends on fops0 @
      identifier fops0.fops;
      identifier open_f;
      @@
      struct file_operations fops = {
      ...
       .open = open_f,
      ...
      };
      
      // use no_llseek if we call nonseekable_open
      ////////////////////////////////////////////
      @ nonseekable1 depends on !has_llseek && has_open @
      identifier fops0.fops;
      identifier nso ~= "nonseekable_open";
      @@
      struct file_operations fops = {
      ...  .open = nso, ...
      +.llseek = no_llseek, /* nonseekable */
      };
      
      @ nonseekable2 depends on !has_llseek @
      identifier fops0.fops;
      identifier open.open_f;
      @@
      struct file_operations fops = {
      ...  .open = open_f, ...
      +.llseek = no_llseek, /* open uses nonseekable */
      };
      
      // use seq_lseek for sequential files
      /////////////////////////////////////
      @ seq depends on !has_llseek @
      identifier fops0.fops;
      identifier sr ~= "seq_read";
      @@
      struct file_operations fops = {
      ...  .read = sr, ...
      +.llseek = seq_lseek, /* we have seq_read */
      };
      
      // use default_llseek if there is a readdir
      ///////////////////////////////////////////
      @ fops1 depends on !has_llseek && !nonseekable1 && !nonseekable2 && !seq @
      identifier fops0.fops;
      identifier readdir_e;
      @@
      // any other fop is used that changes pos
      struct file_operations fops = {
      ... .readdir = readdir_e, ...
      +.llseek = default_llseek, /* readdir is present */
      };
      
      // use default_llseek if at least one of read/write touches f_pos
      /////////////////////////////////////////////////////////////////
      @ fops2 depends on !fops1 && !has_llseek && !nonseekable1 && !nonseekable2 && !seq @
      identifier fops0.fops;
      identifier read.read_f;
      @@
      // read fops use offset
      struct file_operations fops = {
      ... .read = read_f, ...
      +.llseek = default_llseek, /* read accesses f_pos */
      };
      
      @ fops3 depends on !fops1 && !fops2 && !has_llseek && !nonseekable1 && !nonseekable2 && !seq @
      identifier fops0.fops;
      identifier write.write_f;
      @@
      // write fops use offset
      struct file_operations fops = {
      ... .write = write_f, ...
      +	.llseek = default_llseek, /* write accesses f_pos */
      };
      
      // Use noop_llseek if neither read nor write accesses f_pos
      ///////////////////////////////////////////////////////////
      
      @ fops4 depends on !fops1 && !fops2 && !fops3 && !has_llseek && !nonseekable1 && !nonseekable2 && !seq @
      identifier fops0.fops;
      identifier read_no_fpos.read_f;
      identifier write_no_fpos.write_f;
      @@
      // write fops use offset
      struct file_operations fops = {
      ...
       .write = write_f,
       .read = read_f,
      ...
      +.llseek = noop_llseek, /* read and write both use no f_pos */
      };
      
      @ depends on has_write && !has_read && !fops1 && !fops2 && !has_llseek && !nonseekable1 && !nonseekable2 && !seq @
      identifier fops0.fops;
      identifier write_no_fpos.write_f;
      @@
      struct file_operations fops = {
      ... .write = write_f, ...
      +.llseek = noop_llseek, /* write uses no f_pos */
      };
      
      @ depends on has_read && !has_write && !fops1 && !fops2 && !has_llseek && !nonseekable1 && !nonseekable2 && !seq @
      identifier fops0.fops;
      identifier read_no_fpos.read_f;
      @@
      struct file_operations fops = {
      ... .read = read_f, ...
      +.llseek = noop_llseek, /* read uses no f_pos */
      };
      
      @ depends on !has_read && !has_write && !fops1 && !fops2 && !has_llseek && !nonseekable1 && !nonseekable2 && !seq @
      identifier fops0.fops;
      @@
      struct file_operations fops = {
      ...
      +.llseek = noop_llseek, /* no read or write fn */
      };
      ===== End semantic patch =====
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Julia Lawall <julia@diku.dk>
      Cc: Christoph Hellwig <hch@infradead.org>
      6038f373
  16. 12 10月, 2010 5 次提交
  17. 29 9月, 2010 7 次提交
    • D
    • D
      pcmcia: use autoconfiguration feature for ioports and iomem · 00990e7c
      Dominik Brodowski 提交于
      When CONF_AUTO_SET_IO or CONF_AUTO_SET_IOMEM are set, the corresponding
      fields in struct pcmcia_device *p_dev->resource[0,1,2] are set
      accordinly. Drivers wishing to override certain settings may do so in
      the callback function, but they no longer need to parse the CIS entries
      stored in cistpl_cftable_entry_t themselves.
      
      CC: netdev@vger.kernel.org
      CC: linux-wireless@vger.kernel.org
      CC: linux-ide@vger.kernel.org
      CC: linux-usb@vger.kernel.org
      CC: laforge@gnumonks.org
      CC: linux-mtd@lists.infradead.org
      CC: linux-bluetooth@vger.kernel.org
      CC: alsa-devel@alsa-project.org
      CC: linux-serial@vger.kernel.org
      CC: Jiri Kosina <jkosina@suse.cz>
      CC: linux-scsi@vger.kernel.org
      Tested-by: NWolfram Sang <w.sang@pengutronix.de>
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      00990e7c
    • D
      pcmcia: introduce autoconfiguration feature · 440eed43
      Dominik Brodowski 提交于
      Introduce an autoconfiguration feature to set certain values in
      pcmcia_loop_config(), instead of copying the same code over and over
      in each PCMCIA driver. At first, introduce the following options:
      
      CONF_AUTO_CHECK_VCC	check or matching Vcc entry
      CONF_AUTO_SET_VPP	set Vpp
      CONF_AUTO_AUDIO		enable the speaker line
      
      CC: netdev@vger.kernel.org
      CC: linux-wireless@vger.kernel.org
      CC: linux-ide@vger.kernel.org
      CC: linux-usb@vger.kernel.org
      CC: laforge@gnumonks.org
      CC: linux-mtd@lists.infradead.org
      CC: alsa-devel@alsa-project.org
      CC: linux-serial@vger.kernel.org
      CC: Jiri Kosina <jkosina@suse.cz>
      CC: linux-scsi@vger.kernel.org
      Acked-by: Gustavo F. Padovan <padovan@profusion.mobi> (for drivers/bluetooth)
      Tested-by: NWolfram Sang <w.sang@pengutronix.de>
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      440eed43
    • D
      pcmcia: convert pcmcia_request_configuration to pcmcia_enable_device · 1ac71e5a
      Dominik Brodowski 提交于
      pcmcia_enable_device() now replaces pcmcia_request_configuration().
      Instead of config_req_t, all necessary flags are either passed as
      a parameter to pcmcia_enable_device(), or (in rare circumstances)
      set in struct pcmcia_device -> flags.
      
      With the last remaining user of include/pcmcia/cs.h gone, remove
      all references.
      
      CC: netdev@vger.kernel.org
      CC: linux-wireless@vger.kernel.org
      CC: linux-ide@vger.kernel.org
      CC: linux-usb@vger.kernel.org
      CC: laforge@gnumonks.org
      CC: linux-mtd@lists.infradead.org
      CC: alsa-devel@alsa-project.org
      CC: linux-serial@vger.kernel.org
      CC: Jiri Kosina <jkosina@suse.cz>
      CC: linux-scsi@vger.kernel.org
      Acked-by: Gustavo F. Padovan <padovan@profusion.mobi> (for drivers/bluetooth)
      Tested-by: NWolfram Sang <w.sang@pengutronix.de>
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      1ac71e5a
    • D
      pcmcia: move config_{base,index,regs} to struct pcmcia_device · 7feabb64
      Dominik Brodowski 提交于
      Several drivers prefer to explicitly set config_{base,index,regs},
      formerly known as ConfigBase, ConfigIndex and Present. Instead of
      passing these values inside config_req_t, store it in struct
      pcmcia_device.
      
      CC: netdev@vger.kernel.org
      CC: linux-wireless@vger.kernel.org
      CC: linux-ide@vger.kernel.org
      CC: linux-usb@vger.kernel.org
      CC: laforge@gnumonks.org
      CC: linux-mtd@lists.infradead.org
      CC: alsa-devel@alsa-project.org
      CC: linux-serial@vger.kernel.org
      CC: Jiri Kosina <jkosina@suse.cz>
      CC: linux-scsi@vger.kernel.org
      Acked-by: Gustavo F. Padovan <padovan@profusion.mobi> (for drivers/bluetooth)
      Tested-by: NWolfram Sang <w.sang@pengutronix.de>
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      7feabb64
    • D
      pcmcia: simplify IntType · 37979e15
      Dominik Brodowski 提交于
      IntType was only set to INT_MEMORY (driver pcmciamtd) or INT_MEMORY_AND_IO
      (all other drivers). As this flags seems to relate to ioport access, make
      it conditional to the driver having requested IO port access. There are two
      drivers which do not request IO ports, but did set INT_MEMORY_AND_IO:
      ray_cs and b43. For those, we consistently only set INT_MEMORY in future.
      
      CC: netdev@vger.kernel.org
      CC: linux-wireless@vger.kernel.org
      CC: linux-ide@vger.kernel.org
      CC: linux-usb@vger.kernel.org
      CC: laforge@gnumonks.org
      CC: linux-mtd@lists.infradead.org
      CC: alsa-devel@alsa-project.org
      CC: linux-serial@vger.kernel.org
      CC: Jiri Kosina <jkosina@suse.cz>
      CC: linux-scsi@vger.kernel.org
      Acked-by: Gustavo F. Padovan <padovan@profusion.mobi> (for drivers/bluetooth)
      Tested-by: NWolfram Sang <w.sang@pengutronix.de>
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      37979e15
    • D
      pcmcia: move Vpp setup to struct pcmcia_device · e8405f0f
      Dominik Brodowski 提交于
      Some drivers prefer to explicitly set Vpp. Instead of passing the
      voltage inside config_req_t, store it in struct pcmcia_device.
      
      CC: linux-ide@vger.kernel.org
      CC: netdev@vger.kernel.org
      CC: linux-mtd@lists.infradead.org
      CC: linux-wireless@vger.kernel.org
      CC: linux-serial@vger.kernel.org
      CC: linux-usb@vger.kernel.org
      CC: linux-scsi@vger.kernel.org
      Acked-by: Gustavo F. Padovan <padovan@profusion.mobi> (for drivers/bluetooth)
      Tested-by: NWolfram Sang <w.sang@pengutronix.de>
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      e8405f0f
  18. 03 8月, 2010 2 次提交
    • D
      pcmcia: do not use io_req_t when calling pcmcia_request_io() · 90abdc3b
      Dominik Brodowski 提交于
      Instead of io_req_t, drivers are now requested to fill out
      struct pcmcia_device *p_dev->resource[0,1] for up to two ioport
      ranges. After a call to pcmcia_request_io(), the ports found there
      are reserved, after calling pcmcia_request_configuration(), they may
      be used.
      
      CC: netdev@vger.kernel.org
      CC: linux-wireless@vger.kernel.org
      CC: linux-ide@vger.kernel.org
      CC: linux-usb@vger.kernel.org
      CC: laforge@gnumonks.org
      CC: linux-mtd@lists.infradead.org
      CC: alsa-devel@alsa-project.org
      CC: linux-serial@vger.kernel.org
      CC: Michael Buesch <mb@bu3sch.de>
      Acked-by: Marcel Holtmann <marcel@holtmann.org> (for drivers/bluetooth/)
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      90abdc3b
    • D
      pcmcia: do not use io_req_t after call to pcmcia_request_io() · 9a017a91
      Dominik Brodowski 提交于
      After pcmcia_request_io(), do not make use of the values stored in
      io_req_t, but instead use those found in struct pcmcia_device->resource[].
      
      CC: netdev@vger.kernel.org
      CC: linux-wireless@vger.kernel.org
      CC: linux-ide@vger.kernel.org
      CC: linux-usb@vger.kernel.org
      CC: laforge@gnumonks.org
      CC: linux-mtd@lists.infradead.org
      CC: alsa-devel@alsa-project.org
      CC: linux-serial@vger.kernel.org
      Acked-by: Marcel Holtmann <marcel@holtmann.org> (for drivers/bluetooth/)
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      9a017a91
  19. 31 7月, 2010 1 次提交
    • D
      pcmcia: remove cs_types.h · ac8b4228
      Dominik Brodowski 提交于
      Remove cs_types.h which is no longer needed: Most definitions aren't
      used at all, a few can be made away with, and two remaining definitions
      (typedefs, unfortunatley) may be moved to more specific places.
      
      CC: linux-ide@vger.kernel.org
      CC: linux-usb@vger.kernel.org
      CC: laforge@gnumonks.org
      CC: linux-mtd@lists.infradead.org
      CC: alsa-devel@alsa-project.org
      CC: linux-serial@vger.kernel.org
      Acked-by: Marcel Holtmann <marcel@holtmann.org> (for drivers/bluetooth/)
      Acked-by: NDavid S. Miller <davem@davemloft.net>
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      ac8b4228
  20. 28 7月, 2010 1 次提交