03 Aug, 2010
7 commits
-
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
Signed-off-by: Dominik Brodowski -
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
Signed-off-by: Dominik Brodowski -
Signed-off-by: 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
Acked-by: Marcel Holtmann (for drivers/bluetooth/)
Signed-off-by: Dominik Brodowski -
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
-
Remove some obsolete definitions from cs.h
Signed-off-by: Dominik Brodowski
-
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
Signed-off-by: Dominik Brodowski
31 Jul, 2010
4 commits
-
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 (for drivers/bluetooth/)
Acked-by: David S. Miller
Signed-off-by: Dominik Brodowski -
As we only provide one way to set up resources now, we can remove
the resource-setup-related bitfield (except resource_setup_done).
In addition, pcmcia_state only consisted of one entry, so remove
this bitfield as well.Suggested-by: Komuro
Signed-off-by: Dominik Brodowski -
Remove some definitions which became obsolete when the central
event handler got removed.Signed-off-by: Dominik Brodowski
-
Signed-off-by: Dominik Brodowski
10 May, 2010
8 commits
-
Signed-off-by: Dominik Brodowski
-
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
-
Remove the dev_node declaration. We now only pass the device name
to the deprecated userspace tools.Signed-off-by: Dominik Brodowski
-
With req_irq_t gone, we can get rid of some definitions.
Signed-off-by: Dominik Brodowski
-
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 -
As it's only used there it makes no sense relying on pcmcia_request_irq().
CC: alsa-devel@alsa-project.org
Signed-off-by: Dominik Brodowski -
As we don't need the "Config" counter any more, we can simplify
struct pcmcia_socket.Signed-off-by: Dominik Brodowski
-
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
21 Apr, 2010
1 commit
-
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
24 Mar, 2010
1 commit
-
Instead of requiring PCMCIA socket drivers to call various functions
during their (bus) resume and suspend functions, register an own
dev_pm_ops for this class. This fixes several suspend/resume bugs
seen on db1xxx-ss, and probably on some other socket drivers, too.With regard to the asymmetry with only _noirq suspend, but split up
resume, please see bug 14334 and commit 9905d1b411946fb3 .Signed-off-by: Dominik Brodowski
01 Mar, 2010
1 commit
-
Conflicts:
drivers/firmware/iscsi_ibft.c
26 Feb, 2010
1 commit
-
Conflicts:
drivers/net/wireless/iwlwifi/iwl-core.h
drivers/net/wireless/rt2x00/rt2800pci.c
20 Feb, 2010
1 commit
-
...and use it in hostap_cs and orinoco_cs.
Another PCMCIA device with Intersil Prism chipset has been reported:
Socket 0:
product info: "Gigabyte", "GN-WLM01_P25L_ADAPTER", "ISL37300P", "Eval-RevA"
manfid: 0x02e0, 0x1011
function: 6 (network)As it's the case with some other Prism based devices, the third ID
string contains a design name that should be sufficient to identify the
card as having Intersil Prism chipset and thus compatible with both
orinoco_cs and hostap_cs.Introduce PCMCIA_DEVICE_PROD_ID3 that matches the third ID string only.
Use it in orinoco_cs and hostap_cs to match cards with the third ID
string indicating Prism chipset. Remove corresponding entries that use
PCMCIA_DEVICE_PROD_ID123.Reported-by: Ozzy
Signed-off-by: Pavel Roskin
Signed-off-by: John W. Linville
18 Feb, 2010
7 commits
-
The requery callback now also handles the addition of a second pseudo
multifunction device. Avoids messing with dev_{g,s}et_drvdata(), and
fixes any workqueue skt_mutex deadlock.Tested-by: Wolfram Sang
Signed-off-by: Dominik Brodowski -
This avoids any sysfs-related deadlock (or lockdep warning), such
as reported at http://lkml.org/lkml/2010/1/17/88 .Reported-by: Ming Lei
Tested-by: Wolfram Sang
Signed-off-by: Dominik Brodowski -
Even though we weren't calling a blocking function within the dynid
spinlock, we do not need a spinlock here but can and should be using
a mutex.Reported-by: Jiri Slaby
Tested-by: Wolfram Sang
Signed-off-by: Dominik Brodowski -
replace pcmcia_socket->lock and pcmcia_dev_list_lock by using the
per-socket "ops_mutex", as we do neither need different locks
nor a spinlock here.Tested-by: Wolfram Sang
Signed-off-by: Dominik Brodowski -
Protect the pccard_operations callback "set_mem_map" by a new
mutex ops_mutex. This mutex also protects the following values
in struct pcmcia_socket:pccard_mem_map win[]
pccard_mem_map cis_mem
void __iomem *cis_virtTested-by: Wolfram Sang
Signed-off-by: Dominik Brodowski -
If only CardBus cards are used, but not PCMCIA cards, we do not need
the extensive resource management functions provided for by
rsrc_nonstatic.c (~240K).Tested-by: Wolfram Sang
Signed-off-by: Dominik Brodowski -
The socket driver m8xx_pcmcia.c uses a static memory assignment,
but io_offset is set to 0. Therefore, it seems proper to use the
iodyn resource manager for this driver, as was previously the
case (before commit 80128ff79d282cf71b1819dbca9b8dd47d8ed3e8).CC: Vitaly Bordug
CC: Arnd Bergmann
CC: Olof Johansson
Signed-off-by: Dominik Brodowski
18 Jan, 2010
2 commits
-
At least no in-kernel CardBus-capable PCI driver makes use of the CIS
access functions. Therefore, it seems sensible to remove this unused
code, and cleanup cardbus.c a lot.CC: Jesse Barnes
CC: Linus Torvalds
Tested-by: Wolfram Sang
Signed-off-by: Dominik Brodowski -
During a suspend/resume cycle, an user may change the card in the
PCMCIA/CardBus slot. The pcmcia_core can at least look at the
socket state to check whether it is the same.For PCMCIA devices, move the detection and handling of such a
change to ds.c.For CardBus devices, the PCI hotplug interface doesn't offer a "rescan"
facility which also _removes_ devices no longer to be found behind a
bridge. Therefore, remove and re-add all devices unconditionally.CC: Jesse Barnes
CC: Linus Torvalds
Tested-by: Wolfram Sang
Signed-off-by: Dominik Brodowski
08 Dec, 2009
2 commits
-
Fix several CodingStyle issues in drivers/pcmcia/ . checkpatch.pl no longer
reports errors in the PCMCIA core. The remaining warnings mostly relate to
wrong indent -- PCMCIA historically used 4 spaces --, to lines over 80
characters and to hundreds of typedefs. The cleanup of those will follow
in the future.Signed-off-by: Dominik Brodowski
-
Komuro pointed out that IRQ_FIRST_SHARED is not used at all in the
PCMCIA subsystem, so remove it. Also, remove two bogus assignments.CC: Karsten Keil
CC: netdev@vger.kernel.org
CC: alsa-devel@alsa-project.org
CC: Komuro
Signed-off-by: Dominik Brodowski
06 Dec, 2009
1 commit
-
* git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6: (50 commits)
pcmcia: rework the irq_req_t typedef
pcmcia: remove deprecated handle_to_dev() macro
pcmcia: pcmcia_request_window() doesn't need a pointer to a pointer
pcmcia: remove unused "window_t" typedef
pcmcia: move some window-related code to pcmcia_ioctl.c
pcmcia: Change window_handle_t logic to unsigned long
pcmcia: Pass struct pcmcia_socket to pcmcia_get_mem_page()
pcmcia: Pass struct pcmcia_device to pcmcia_map_mem_page()
pcmcia: Pass struct pcmcia_device to pcmcia_release_window()
drivers/pcmcia: remove unnecessary kzalloc
pcmcia: correct handling for Zoomed Video registers in topic.h
pcmcia: fix printk formats
pcmcia: autoload module pcmcia
pcmcia/staging: update comedi drivers
PCMCIA: stop duplicating pci_irq in soc_pcmcia_socket
PCMCIA: ss: allow PCI IRQs > 255
PCMCIA: soc_common: remove 'dev' member from soc_pcmcia_socket
PCMCIA: soc_common: constify soc_pcmcia_socket ops member
PCMCIA: sa1111: remove duplicated initializers
PCMCIA: sa1111: wrap soc_pcmcia_socket to contain sa1111 specific data
...
29 Nov, 2009
4 commits
-
Most of the irq_req_t typedef'd struct can be re-worked quite
easily:(1) IRQInfo2 was unused in any case, so drop it.
(2) IRQInfo1 was used write-only, so drop it.
(3) Instance (private data to be passed to the IRQ handler):
Most PCMCIA drivers using pcmcia_request_irq() to actually
register an IRQ handler set the "dev_id" to the same pointer
as the "priv" pointer in struct pcmcia_device. Modify the two
exceptions (ipwireless, ibmtr_cs) to also work this waym and
set the IRQ handler's "dev_id" to p_dev->priv unconditionally.(4) Handler is to be of type irq_handler_t.
(5) Handler != NULL already tells whether an IRQ handler is present.
Therefore, we do not need the IRQ_HANDLER_PRESENT flag in
irq_req_t.Attributes.CC: netdev@vger.kernel.org
CC: linux-bluetooth@vger.kernel.org
CC: linux-ide@vger.kernel.org
CC: linux-wireless@vger.kernel.org
CC: linux-scsi@vger.kernel.org
CC: alsa-devel@alsa-project.org
CC: Jaroslav Kysela
CC: Jiri Kosina
CC: Karsten Keil
for the Bluetooth parts: Acked-by: Marcel Holtmann
Signed-off-by: Dominik Brodowski -
Update remaining users and remove deprecated handle_to_dev() macro
CC: Harald Welte
CC: netdev@vger.kernel.org
CC: linux-wireless@vger.kernel.org
CC: linux-serial@vger.kernel.org
Signed-off-by: Dominik Brodowski -
pcmcia_request_window() only needs a pointer to struct pcmcia_device, not
a pointer to a pointer.CC: netdev@vger.kernel.org
CC: linux-wireless@vger.kernel.org
CC: linux-scsi@vger.kernel.org
CC: Jiri Kosina
Acked-by: Karsten Keil (for ISDN)
Signed-off-by: Dominik Brodowski -
Signed-off-by: Dominik Brodowski