linux/drivers
Emmanuel Grumbach cac988a682 iwlagn: introduce struct iwl-shared - known by all layers
This struct will hold pointers to all the layers, so that every layer will find
the pointers it needs when calling another layer.

Note that the drv_data set to struct device is now a pointer to
struct iwl_shared.
This solves of bug that I introduced in

	iwlagn: simplify the bus architecture

Bug description:

sysfs gets the the driver data from struct device. Till the aforementioned
patch, dev_get_drvdata would return iwl_priv. After the patch, dev_get_drvdata
return iwl_bus which is buggy since the sysfs handlers rely on this value, and
sysfs handlers need iwl_priv.

Now, dev_get_drvdata return iwl-shared. Since we have pointers to all the
layers in iwl_shared, every layer will be able to get the pointer it needs:
bus layer will gets iwl_bus from the PCI suspend callbacks, and the sysfs
handlers will get the iwl_priv they need.

In order to keep good encapsulation, we need to avoid to dereference iwl_priv
from a different layer. This is why instead of including iwl-dev.h from
iwl-shared.h, I added a forward declaration to iwl_priv. Moreover we keep type
safety while providing encapsulation.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2011-08-29 15:25:30 -04:00
..
accessibility
acpi Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2011-07-26 09:21:09 -07:00
amba
ata drivers: use kzalloc/kcalloc instead of 'kmalloc+memset', where possible 2011-07-25 20:57:13 -07:00
atm atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
auxdisplay
base atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
bcma bcma: signedness bug in bcma_get_next_core() 2011-08-24 14:41:44 -04:00
block atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
bluetooth
cdrom
char Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6 2011-07-27 19:26:38 -07:00
clk
clocksource Merge branch 'timers-clocksource-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-07-23 10:34:47 -07:00
connector atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
cpufreq Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2011-07-26 09:21:09 -07:00
cpuidle
crypto Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2011-07-25 12:53:15 -07:00
dca
dio
dma Merge branch 'next/devel' of ssh://master.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc 2011-07-26 17:41:04 -07:00
edac atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
eisa eisa/pci_eisa.c: fix section mismatch 2011-07-25 20:57:14 -07:00
firewire atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
firmware Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2011-07-25 23:06:24 -07:00
gpio Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2011-07-25 13:56:39 -07:00
gpu atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
hid Merge branches 'roccat', 'upstream' and 'wiimote' into for-linus 2011-07-22 22:47:08 +02:00
hwmon atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
hwspinlock
i2c i2c-eg20t : Fix the issue of Combined R/W transfer mode 2011-07-27 00:02:28 +01:00
ide
idle
ieee802154
infiniband Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2011-07-27 13:21:40 -07:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2011-07-27 09:24:56 -07:00
iommu
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2011-07-28 05:58:19 -07:00
leds arch/arm/mach-ux500/board-u5500.c: calibrate ALS input voltage 2011-07-25 20:57:15 -07:00
lguest lguest: Fix in/out emulation 2011-07-22 14:39:51 +09:30
macintosh
mca
md Merge branch 'for-linus' of git://neil.brown.name/md 2011-07-28 05:50:27 -07:00
media atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
memstick
message atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
mfd Merge branch 'next/devel2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc 2011-07-26 17:42:18 -07:00
misc atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
mmc MMC / TMIO: Fix build issue related to struct scatterlist 2011-07-26 11:52:55 -07:00
mtd Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2011-07-25 13:56:39 -07:00
net iwlagn: introduce struct iwl-shared - known by all layers 2011-08-29 15:25:30 -04:00
nfc NFC: Reserve tx head and tail room 2011-08-24 14:41:44 -04:00
nubus
of Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2011-07-25 22:59:39 -07:00
oprofile atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
parisc
parport Merge branch 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6 2011-07-25 23:09:27 -07:00
pci Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2011-07-26 18:30:20 -07:00
pcmcia Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2011-07-25 13:56:39 -07:00
platform asus-wmi: ->is_visible() can't return negative 2011-07-24 10:12:19 -04:00
pnp Merge 'akpm' patch series 2011-07-25 21:00:19 -07:00
power
pps
ps3
ptp
rapidio
regulator regulator: Convert tps65023 to use regmap API 2011-07-23 07:57:02 +01:00
rtc rtc: fix hrtimer deadlock 2011-07-26 16:49:42 -07:00
s390 atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
sbus atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
scsi Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2011-07-27 13:21:40 -07:00
sfi
sh
sn
spi Merge branch 'spi/next' of git://git.secretlab.ca/git/linux-2.6 2011-07-22 14:52:44 -07:00
ssb ssb: fix DMA translation for some specific boards 2011-08-24 14:41:41 -04:00
staging staging: remove ath6kl 2011-08-13 14:48:06 -04:00
target Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2011-07-27 13:21:40 -07:00
tc
telephony
thermal
tty atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
uio Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2011-07-25 23:06:24 -07:00
usb atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
uwb
vhost atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
video atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
virt drivers/virt: add missing linux/interrupt.h to fsl_hypervisor.c 2011-07-22 09:24:39 -05:00
virtio virtio: expose for non-virtualization users too 2011-07-23 16:20:30 +09:30
vlynq
w1 atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
watchdog bcm47xx: add support for bcma bus 2011-08-08 14:29:32 -04:00
xen xen/balloon: memory hotplug support for Xen balloon driver 2011-07-25 20:57:08 -07:00
zorro
Kconfig Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2011-07-25 22:59:39 -07:00
Makefile Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2011-07-25 22:59:39 -07:00