tmp_suning_uos_patched/drivers
Alexandre Bounine 9edbc30b43 rapidio: update enumerator registration mechanism
Update enumeration/discovery method registration mechanism to allow
loading enumeration/discovery methods before all mports are registered.

Existing statically linked RapidIO subsystem expects that all available
RapidIO mport devices are initialized and registered before the
enumeration/discovery method is registered.  Switching to loadable mport
device drivers creates situation when mport device driver can be loaded
after enumeration/discovery method is attached (e.g., loadable mport
driver in a system with statically linked RapidIO core and enumerator).
This also will happen in a system with hot-pluggable RapidIO controllers.

To remove the dependency on the initialization/registration order this
patch introduces enumeration/discovery registration mechanism that
supports arbitrary registration order of mports and enumerator/discovery
methods.

The following registration rules are implemented:
- only one enumeration/discovery method can be registered for given mport ID
  (including RIO_MPORT_ANY);
- when new enumeration/discovery methods tries to attach to the registered mport
  device, method with matching mport ID will replace a default method previously
  registered for given mport (if any);
- enumeration/discovery method with target ID=RIO_MPORT_ANY will be attached
  only to mports that do not have another enumerator attached to them;
- when new mport device is registered with RapidIO subsystem, registration
  routine searches for the enumeration/discovery method with the best matching
  mport ID;

Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com>
Cc: Matt Porter <mporter@kernel.crashing.org>
Cc: Li Yang <leoli@freescale.com>
Cc: Kumar Gala <galak@kernel.crashing.org>
Cc: Andre van Herk <andre.van.herk@Prodrive.nl>
Cc: Micha Nelissen <micha.nelissen@Prodrive.nl>
Cc: Stef van Os <stef.van.os@Prodrive.nl>
Cc: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-07-03 16:08:04 -07:00
..
accessibility
acpi clean up scary strncpy(dst, src, strlen(src)) uses 2013-07-03 16:07:41 -07:00
amba
ata
atm
auxdisplay
base drivers: avoid format string in dev_set_name 2013-07-03 16:07:41 -07:00
bcma
block drivers: avoid parsing names as kthread_run() format strings 2013-07-03 16:07:41 -07:00
bluetooth
bus ARM SoC device tree changes 2013-07-02 14:23:01 -07:00
cdrom drivers/cdrom/cdrom.c: use kzalloc() for failing hardware 2013-07-03 16:07:25 -07:00
char /dev/oldmem: Remove the interface 2013-07-03 16:08:03 -07:00
clk ARM SoC late changes 2013-07-02 14:42:51 -07:00
clocksource Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2013-07-03 09:46:29 -07:00
connector
cpufreq ARM SoC driver specific changes 2013-07-02 14:33:21 -07:00
cpuidle ARM SoC specific changes 2013-07-02 13:43:38 -07:00
crypto ARM SoC driver specific changes 2013-07-02 14:33:21 -07:00
dca
devfreq drivers: avoid format string in dev_set_name 2013-07-03 16:07:41 -07:00
dio
dma drivers/dma: remove unused support for MEMSET operations 2013-07-03 16:07:42 -07:00
edac
eisa
extcon drivers: avoid format string in dev_set_name 2013-07-03 16:07:41 -07:00
firewire
firmware dmi: add support for exact DMI matches in addition to substring matching 2013-07-03 16:07:42 -07:00
fmc FMC: fix error handling in probe() function 2013-06-24 16:23:25 -07:00
gpio Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-07-02 16:14:35 -07:00
gpu radeon: remove redundant __list_for_each definition from mkregtable.c 2013-07-03 16:07:43 -07:00
hid
hsi drivers: avoid format string in dev_set_name 2013-07-03 16:07:41 -07:00
hv drivers: hv: allocate synic structures before hv_synic_init() 2013-06-24 16:24:17 -07:00
hwmon drivers: avoid parsing names as kthread_run() format strings 2013-07-03 16:07:41 -07:00
hwspinlock
i2c ARM SoC specific changes 2013-07-02 13:43:38 -07:00
ide drivers: avoid format string in dev_set_name 2013-07-03 16:07:41 -07:00
idle
iio
infiniband drivers: avoid format string in dev_set_name 2013-07-03 16:07:41 -07:00
input
iommu Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-07-02 16:15:23 -07:00
ipack
irqchip Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-07-02 16:14:35 -07:00
isdn drivers: avoid format string in dev_set_name 2013-07-03 16:07:41 -07:00
leds
lguest x86, flags: Rename X86_EFLAGS_BIT1 to X86_EFLAGS_FIXED 2013-06-25 16:25:32 -07:00
macintosh
mailbox
md
media drivers: avoid parsing names as kthread_run() format strings 2013-07-03 16:07:41 -07:00
memory
memstick
message drivers: avoid format strings in names passed to alloc_workqueue() 2013-07-03 16:07:41 -07:00
mfd Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-07-02 16:14:35 -07:00
misc drivers/misc/sgi-gru/grufault.c: fix a sanity test in gru_set_context_option() 2013-07-03 16:07:42 -07:00
mmc Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2013-07-03 09:46:29 -07:00
mtd drivers: avoid parsing names as kthread_run() format strings 2013-07-03 16:07:41 -07:00
net rapidio/rionet: rework driver initialization and removal 2013-07-03 16:08:04 -07:00
nfc
ntb
nubus
of
oprofile
parisc Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-07-03 09:10:19 -07:00
parport
pci drivers: avoid format strings in names passed to alloc_workqueue() 2013-07-03 16:07:41 -07:00
pcmcia Driver core patches for 3.11-rc1 2013-07-02 11:44:19 -07:00
pinctrl ARM SoC late changes 2013-07-02 14:42:51 -07:00
platform drivers: avoid format string in dev_set_name 2013-07-03 16:07:41 -07:00
pnp isapnp: switch to fixed_size_llseek() 2013-06-29 12:57:48 +04:00
power
pps
ps3
ptp build some drivers only when compile-testing 2013-06-24 16:41:32 -07:00
pwm
rapidio rapidio: update enumerator registration mechanism 2013-07-03 16:08:04 -07:00
regulator ARM SoC device tree changes 2013-07-02 14:23:01 -07:00
remoteproc
reset
rpmsg
rtc drivers/rtc/rtc-sirfsoc.c: add rtc drivers for CSR SiRFprimaII and SiRFatlasVI 2013-07-03 16:08:01 -07:00
s390 clean up scary strncpy(dst, src, strlen(src)) uses 2013-07-03 16:07:41 -07:00
sbus
scsi drivers: avoid parsing names as kthread_run() format strings 2013-07-03 16:07:41 -07:00
sfi
sh
sn
spi drivers: avoid parsing names as kthread_run() format strings 2013-07-03 16:07:41 -07:00
ssb
ssbi
staging drivers: avoid parsing names as kthread_run() format strings 2013-07-03 16:07:41 -07:00
target
tc
thermal
tty Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-07-03 09:10:19 -07:00
uio uio: use vma_pages() to replace (vm_end - vm_start) >> PAGE_SHIFT 2013-07-03 16:07:26 -07:00
usb drivers: avoid parsing names as kthread_run() format strings 2013-07-03 16:07:41 -07:00
uwb drivers: avoid format string in dev_set_name 2013-07-03 16:07:41 -07:00
vfio vfio: remap_pfn_range() sets all those flags... 2013-06-29 12:46:41 +04:00
vhost
video backlight: convert from legacy pm ops to dev_pm_ops 2013-07-03 16:07:43 -07:00
virt
virtio mm: correctly update zone->managed_pages 2013-07-03 16:07:33 -07:00
vlynq
vme vme: vme_tsi148.c: fix error return code in tsi148_probe() 2013-06-24 16:23:25 -07:00
w1
watchdog ARM SoC specific changes 2013-07-02 13:43:38 -07:00
xen drivers: avoid format string in dev_set_name 2013-07-03 16:07:41 -07:00
zorro zorro: switch to fixed_size_llseek() 2013-06-29 12:57:28 +04:00
Kconfig
Makefile