H Hartley Sweeten
6ed7ffddcf
pcmcia/ds.h: introduce helper for pcmcia_driver module boilerplate
...
Introduce the module_pcmcia_driver() macro which is a convenience macro
for pcmcia driver modules. It is intended to be used by pcmcia drivers
with init/exit sections that do nothing but register/unregister the
pcmcia driver.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com >
Cc: linux-pcmcia@lists.infradead.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2013-03-15 12:26:03 -07:00
Arun Sharma
60063497a9
atomic: use <linux/atomic.h>
...
This allows us to move duplicated code in <asm/atomic.h>
(atomic_inc_not_zero() for now) to <linux/atomic.h>
Signed-off-by: Arun Sharma <asharma@fb.com >
Reviewed-by: Eric Dumazet <eric.dumazet@gmail.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: David Miller <davem@davemloft.net >
Cc: Eric Dumazet <eric.dumazet@gmail.com >
Acked-by: Mike Frysinger <vapier@gentoo.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2011-07-26 16:49:47 -07:00
Joe Perches
e9fb13bfec
pcmcia: Make declaration and uses of struct pcmcia_device_id const
...
Const allows tables to be moved into text sections.
Signed-off-by: Joe Perches <joe@perches.com >
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net >
2011-05-06 07:46:15 +02:00
Dominik Brodowski
33619f0d3f
pcmcia: re-enable Zoomed Video support
...
Allow drivers to enable Zoomed Video support. Currently, this is only
used by out-of-tree drivers (L64020 DVB driver in particular).
CC: <stable@kernel.org > [for 2.6.37]
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net >
2011-02-20 12:47:34 +01:00
Dominik Brodowski
ff10fca5ce
pcmcia: IOCARD is also required for using IRQs
...
Dave Hinds pointed out to me that 37979e1546 will break b43 and
ray_cs, as IOCARD is not -- as the name would suggest -- only needed
for cards using IO ports. Instead, as it re-deines several pins, it
is also required for using interrupts.
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net >
2010-10-22 08:46:36 +02:00
Dominik Brodowski
2e9b981a7c
pcmcia: move driver name to struct pcmcia_driver
...
Tested-by: Wolfram Sang <w.sang@pengutronix.de >
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net >
2010-09-29 17:20:24 +02:00
Dominik Brodowski
00990e7ce0
pcmcia: use autoconfiguration feature for ioports and iomem
...
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: Wolfram Sang <w.sang@pengutronix.de >
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net >
2010-09-29 17:20:24 +02:00
Dominik Brodowski
440eed43e2
pcmcia: introduce autoconfiguration feature
...
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: Wolfram Sang <w.sang@pengutronix.de >
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net >
2010-09-29 17:20:23 +02:00
Dominik Brodowski
1ac71e5a35
pcmcia: convert pcmcia_request_configuration to pcmcia_enable_device
...
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: Wolfram Sang <w.sang@pengutronix.de >
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net >
2010-09-29 17:20:23 +02:00
Dominik Brodowski
7feabb6412
pcmcia: move config_{base,index,regs} to struct pcmcia_device
...
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: Wolfram Sang <w.sang@pengutronix.de >
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net >
2010-09-29 17:20:22 +02:00
Dominik Brodowski
e8405f0f61
pcmcia: move Vpp setup to struct pcmcia_device
...
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: Wolfram Sang <w.sang@pengutronix.de >
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net >
2010-09-29 17:20:21 +02:00
Dominik Brodowski
fb49fa533f
pcmcia: split up modify_configuration() into two fixup functions
...
pcmcia_modify_configuration() was only used by two drivers to fix up
one issue each: setting the Vpp to a different value, and reducing
the IO width to 8 bit. Introduce two explicitly named functions
handling these things, and remove one further typedef.
CC: netdev@vger.kernel.org
CC: linux-mtd@lists.infradead.org
Tested-by: Wolfram Sang <w.sang@pengutronix.de >
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net >
2010-09-29 17:20:21 +02:00
Dominik Brodowski
cdb138080b
pcmcia: do not use win_req_t when calling pcmcia_request_window()
...
Instead of win_req_t, drivers are now requested to fill out
struct pcmcia_device *p_dev->resource[2,3,4,5] for up to four iomem
ranges. After a call to pcmcia_request_window(), the windows found there
are reserved and may be used until pcmcia_release_window() is called.
CC: netdev@vger.kernel.org
CC: linux-wireless@vger.kernel.org
CC: linux-mtd@lists.infradead.org
CC: Jiri Kosina <jkosina@suse.cz >
CC: linux-scsi@vger.kernel.org
Tested-by: Wolfram Sang <w.sang@pengutronix.de >
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net >
2010-09-29 17:20:21 +02:00
Dominik Brodowski
0ca724d37a
pcmcia: use struct resource for PCMCIA devices, part 2
...
Use struct resource * also for iomem resources.
CC: linux-mtd@lists.infradead.org
CC: netdev@vger.kernel.org
CC: linux-wireless@vger.kernel.org
CC: Jiri Kosina <jkosina@suse.cz >
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net >
2010-08-03 09:04:16 +02:00
Dominik Brodowski
b5cb259e7f
pcmcia: remove memreq_t
...
Page already had to be set to 0; Offset can easily be passed as
parameter to pcmcia_map_mem_page.
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: Michael Buesch <mb@bu3sch.de >
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net >
2010-08-03 09:04:14 +02:00
Dominik Brodowski
90abdc3b97
pcmcia: do not use io_req_t when calling pcmcia_request_io()
...
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: Dominik Brodowski <linux@dominikbrodowski.net >
2010-08-03 09:04:11 +02:00
Dominik Brodowski
2ce4905e4d
pcmcia: use struct resource for PCMCIA devices
...
Introduce a new field into struct pcmcia_device named "resource" and of
type struct resource *, which contains the IO port ranges allocated for
this device. Memory window ranges and registration with the resource
trees will follow at a later date.
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net >
2010-08-03 09:02:44 +02:00
Dominik Brodowski
1d5cc192d4
pcmcia: use pcmica_{read,write}_config_byte
...
Use pcmcia_read_config_byte and pcmcia_write_config_byte instead
of pcmcia_access_configuration_register.
CC: netdev@vger.kernel.org
CC: linux-wireless@vger.kernel.org
CC: linux-serial@vger.kernel.org
CC: Michael Buesch <mb@bu3sch.de >
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net >
2010-08-03 09:02:35 +02:00
Dominik Brodowski
ac8b422838
pcmcia: remove cs_types.h
...
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: David S. Miller <davem@davemloft.net >
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net >
2010-07-30 21:07:39 +02:00
Dominik Brodowski
5716d415f8
pcmcia: remove obsolete ioctl
...
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net >
2010-07-30 21:07:26 +02:00
Dominik Brodowski
b19a7275de
pcmcia: clarify alloc_io_space, move it to resource handlers
...
Clean up the alloc_io_space() function by moving most of it to
the actual resource_ops. This allows for a bit less re-directions.
Future cleanups will follow, and will make up for the code
duplication currently present between rsrc_iodyn and rsrc_nonstatic
(which are hardly ever built at the same time anyway, therefore no
increase in built size).
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net >
2010-05-10 10:23:19 +02:00
Dominik Brodowski
b9300aa744
pcmcia: dev_node removal (core)
...
Remove the dev_node declaration. We now only pass the device name
to the deprecated userspace tools.
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net >
2010-05-10 10:23:17 +02:00
Dominik Brodowski
eb14120f74
pcmcia: re-work pcmcia_request_irq()
...
Instead of the old pcmcia_request_irq() interface, drivers may now
choose between:
- calling request_irq/free_irq directly. Use the IRQ from *p_dev->irq.
- use pcmcia_request_irq(p_dev, handler_t); the PCMCIA core will
clean up automatically on calls to pcmcia_disable_device() or
device ejection.
- drivers still not capable of IRQF_SHARED (or not telling us so) may
use the deprecated pcmcia_request_exclusive_irq() for the time
being; they might receive a shared IRQ nonetheless.
CC: linux-bluetooth@vger.kernel.org
CC: netdev@vger.kernel.org
CC: linux-wireless@vger.kernel.org
CC: linux-serial@vger.kernel.org
CC: alsa-devel@alsa-project.org
CC: linux-usb@vger.kernel.org
CC: linux-ide@vger.kernel.org
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net >
2010-05-10 10:23:13 +02:00
Dominik Brodowski
6f0f38c45a
pcmcia: setup IRQ to be used by PCMCIA drivers at card insert
...
Setup the IRQ to be used by PCMCIA drivers already during the device
registration stage, making use of a new function pcmcia_setup_irq().
This will allow us to get rid of quite a lot of indirection in the
future.
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net >
2010-05-10 10:23:11 +02:00
Dominik Brodowski
04de081617
pcmcia: pcmcia_dev_present bugfix
...
pcmcia_dev_present is in and by itself buggy. Add a note specifying
why it is broken, and replace the broken locking -- taking a mutex
is a bad idea in IRQ context, from which this function is rarely
called -- by an atomic_t.
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net >
2010-04-21 08:09:17 +02:00