06 May, 2011
1 commit
-
Const allows tables to be moved into text sections.
Signed-off-by: Joe Perches
Signed-off-by: Dominik Brodowski
29 Sep, 2010
4 commits
-
Tested-by: Wolfram Sang
Signed-off-by: Dominik Brodowski -
Remove this unnecessary message -- this info is either available
in sysfs or by enabling dynamic debug from the PCMCIA core.CC: netdev@vger.kernel.org
CC: linux-wireless@vger.kernel.org
CC: linux-scsi@vger.kernel.org
CC: linux-usb@vger.kernel.org
Tested-by: Wolfram Sang
Signed-off-by: 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
CC: linux-scsi@vger.kernel.org
Acked-by: Gustavo F. Padovan (for drivers/bluetooth)
Tested-by: Wolfram Sang
Signed-off-by: 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
CC: linux-scsi@vger.kernel.org
Acked-by: Gustavo F. Padovan (for drivers/bluetooth)
Tested-by: Wolfram Sang
Signed-off-by: Dominik Brodowski
03 Aug, 2010
4 commits
-
Insert PCMCIA device resources into the resource tree. However, this is
currently only implemented for sockets which do not statically map the
resources.Signed-off-by: Dominik Brodowski
-
Signed-off-by: Dominik Brodowski
-
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 -
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
31 Jul, 2010
5 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 -
Split up the central event handler for 16bit cards into three individual
functions.Signed-off-by: Dominik Brodowski
-
The event callback for handling 16bit PCMCIA cards only needs to be
informed about a few events. Furthermore, send_event may already
only be called with skt->skt_mutex held, which also protects against
the module being removed behind the callback's back.Signed-off-by: Dominik Brodowski
-
Signed-off-by: Dominik Brodowski
05 Jul, 2010
1 commit
-
The "present" flag was initialized too late -- possibly, a card
was already registered at this time, so re-setting the flag to 0
caused pcmcia_dev_present() to fail.Reported-by: Mikulas Patocka
Signed-off-by: Dominik Brodowski
08 Jun, 2010
1 commit
-
Commit a8408c17 introduced a new check to pccard_validate_cis(),
which avoids any "late" calls to this function. This broke the
insertion of cards which require a CIS override which changes
the number of card functions. Fix this by asserting that this
is _not_ a late call, but a proper call early during the card
insertion process.Fixes https://bugzilla.kernel.org/show_bug.cgi?id=16138
Reported-by: Mikulas Patocka
CC:
Signed-off-by: Dominik Brodowski
10 May, 2010
4 commits
-
As all cards to pcmcia_device_add() are already locked by skt_mutex, and
the critical sections inside this function are further protected by
ops_mutex, there's no need to keep a third lock around. Therfore, remove
pcmcia_add_device_lock.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
-
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 -
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
03 May, 2010
1 commit
-
If the PCMCIA CIS changed before a resume event (e.g. due to
a card exchange while being suspended, possibly also during
a call to "pccardctl reset"), also set the function count to
zero so that the subsequent call to pccard_validate_cis() does
not fail.Signed-off-by: Dominik Brodowski
27 Apr, 2010
1 commit
-
Prevent PCMCIA_DEV_ID_MATCH_FUNC_ID from grabbing PFC-cards:
I changed the code, so that the first matching struct
pcmcia_device_id _PFC_ entry will mark the card has_pfc,
preventing PCMCIA_DEV_ID_MATCH_FUNC_ID to match.[linux-pcmcia@lists.infradead.org: re-order commit message]
Signed-off-by: Alexander Kurz
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
11 Apr, 2010
1 commit
-
If there are changes to the number of socket devices, we need to
start over in all cases: else pcmcia_request_configuration() might
get confused.Reported-by: Alexander Kurz
Signed-off-by: Dominik Brodowski
30 Mar, 2010
1 commit
-
…it slab.h inclusion from percpu.h
percpu.h is included by sched.h and module.h and thus ends up being
included when building most .c files. percpu.h includes slab.h which
in turn includes gfp.h making everything defined by the two files
universally available and complicating inclusion dependencies.percpu.h -> slab.h dependency is about to be removed. Prepare for
this change by updating users of gfp and slab facilities include those
headers directly instead of assuming availability. As this conversion
needs to touch large number of source files, the following script is
used as the basis of conversion.http://userweb.kernel.org/~tj/misc/slabh-sweep.py
The script does the followings.
* Scan files for gfp and slab usages and update includes such that
only the necessary includes are there. ie. if only gfp is used,
gfp.h, if slab is used, slab.h.* When the script inserts a new include, it looks at the include
blocks and try to put the new include such that its order conforms
to its surrounding. It's put in the include block which contains
core kernel includes, in the same order that the rest are ordered -
alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
doesn't seem to be any matching order.* If the script can't find a place to put a new include (mostly
because the file doesn't have fitting include block), it prints out
an error message indicating which .h file needs to be added to the
file.The conversion was done in the following steps.
1. The initial automatic conversion of all .c files updated slightly
over 4000 files, deleting around 700 includes and adding ~480 gfp.h
and ~3000 slab.h inclusions. The script emitted errors for ~400
files.2. Each error was manually checked. Some didn't need the inclusion,
some needed manual addition while adding it to implementation .h or
embedding .c file was more appropriate for others. This step added
inclusions to around 150 files.3. The script was run again and the output was compared to the edits
from #2 to make sure no file was left behind.4. Several build tests were done and a couple of problems were fixed.
e.g. lib/decompress_*.c used malloc/free() wrappers around slab
APIs requiring slab.h to be added manually.5. The script was run on all .h files but without automatically
editing them as sprinkling gfp.h and slab.h inclusions around .h
files could easily lead to inclusion dependency hell. Most gfp.h
inclusion directives were ignored as stuff from gfp.h was usually
wildly available and often used in preprocessor macros. Each
slab.h inclusion directive was examined and added manually as
necessary.6. percpu.h was updated not to include slab.h.
7. Build test were done on the following configurations and failures
were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
distributed build env didn't work with gcov compiles) and a few
more options had to be turned off depending on archs to make things
build (like ipr on powerpc/64 which failed due to missing writeq).* x86 and x86_64 UP and SMP allmodconfig and a custom test config.
* powerpc and powerpc64 SMP allmodconfig
* sparc and sparc64 SMP allmodconfig
* ia64 SMP allmodconfig
* s390 SMP allmodconfig
* alpha SMP allmodconfig
* um on x86_64 SMP allmodconfig8. percpu.h modifications were reverted so that it could be applied as
a separate patch and serve as bisection point.Given the fact that I had only a couple of failures from tests on step
6, I'm fairly confident about the coverage of this conversion patch.
If there is a breakage, it's likely to be something in one of the arch
headers which should be easily discoverable easily on most builds of
the specific arch.Signed-off-by: Tejun Heo <tj@kernel.org>
Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
24 Mar, 2010
1 commit
-
Commit aa584ca4 broke what 6cf5be51 had already fixed: there may
be four multifunction devices, but just two pseudo-multifunction
devices per PCMCIA card.Signed-off-by: Dominik Brodowski
08 Mar, 2010
1 commit
-
In the future, we are going to be changing the lock type for struct
device (once we get the lockdep infrastructure properly worked out) To
make that changeover easier, and to possibly burry the lock in a
different part of struct device, let's create some functions to lock and
unlock a device so that no out-of-core code needs to be changed in the
future.This patch creates the device_lock/unlock/trylock() functions, and
converts all in-tree users to them.Cc: Thomas Gleixner
Cc: Jean Delvare
Cc: Dave Young
Cc: Ming Lei
Cc: Jiri Kosina
Cc: Phil Carmody
Cc: Arjan van de Ven
Cc: Cornelia Huck
Cc: Rafael J. Wysocki
Cc: Pavel Machek
Cc: Len Brown
Cc: Magnus Damm
Cc: Alan Stern
Cc: Randy Dunlap
Cc: Stefan Richter
Cc: David Brownell
Cc: Vegard Nossum
Cc: Jesse Barnes
Cc: Alex Chiang
Cc: Kenji Kaneshige
Cc: Andrew Morton
Cc: Andrew Patterson
Cc: Yu Zhao
Cc: Dominik Brodowski
Cc: Samuel Ortiz
Cc: Wolfram Sang
Cc: CHENG Renquan
Cc: Oliver Neukum
Cc: Frans Pop
Cc: David Vrabel
Cc: Kay Sievers
Cc: Sarah Sharp
Signed-off-by: Greg Kroah-Hartman
18 Feb, 2010
12 commits
-
As this is the socket thread (pccardd) starting up, we do not have
anything to wait for in ds.c. Instead, wait the same amount of time
in pccardd to allow userspace to catch up and - possibly - execute
pcmcia-socket-startup.Signed-off-by: Dominik Brodowski
-
Reported-by: Wolfram Sang
Signed-off-by: Dominik Brodowski -
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 -
After a CIS update -- or the finalization of the resource database --,
proceed with the re-scanning or re-querying of PCMCIA cards only in
a separate thread to avoid deadlocks.Tested-by: Wolfram Sang
Signed-off-by: Dominik Brodowski -
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 -
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 -
Tested-by: Wolfram Sang
Signed-off-by: Dominik Brodowski -
Tested-by: Wolfram Sang
Signed-off-by: Dominik Brodowski -
Specifically,
struct list_head cis_cache;
size_t fake_cis_len;
u8 *fake_cis;are protected.
Tested-by: Wolfram Sang
Signed-off-by: Dominik Brodowski -
As PCMCIA is the only real user of CIS access functions, include
cistpl.c in the PCMCIA module, not in the PCMCIA & CardBus core
module.Tested-by: Wolfram Sang
Signed-off-by: Dominik Brodowski
18 Jan, 2010
1 commit
-
As ds.c is the only real user of CIS access functions, call the
cleanup functions from ds.c, too.Signed-off-by: Dominik Brodowski