summaryrefslogtreecommitdiff
path: root/drivers/media/Makefile
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2012-08-24 19:44:44 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-09-06 18:42:54 -0300
commit1daae517b3a903177f79269c694c9a8fb4ddb0bb (patch)
tree6b00329a41cf28fd46ab7b404685ddb63cf07b83 /drivers/media/Makefile
parent79e8c7bebb467bbc3f2514d75bba669a3f354324 (diff)
downloadlwn-1daae517b3a903177f79269c694c9a8fb4ddb0bb.tar.gz
lwn-1daae517b3a903177f79269c694c9a8fb4ddb0bb.zip
[media] move i2c files into drivers/media/i2c
Based on a patch from Sylvester Nawrocki This fixes regression introduced with commmit cb7a01ac324bf2ee2, "[media] move i2c files into drivers/media/i2c". The linked order affect what drivers will be initialized first, when they're built-in at Kernel. While there are macros that allow changing the init order, like subsys_initcall(), late_initcall() & friends, when all drivers linked belong to the same subsystem, it is easier to change the order at the Makefile. All I2C modules must be linked before any drivers that actually use it, in order to ensure proper module initialization order. Also, the core drivers should be initialized before the drivers that use them. This patch reorders the drivers init, in order to fulfill the above requirements. Reported-by: Sylwester Nawrocki <sylvester.nawrocki@gmail.com> Acked-by: Sylwester Nawrocki <sylvester.nawrocki@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/Makefile')
-rw-r--r--drivers/media/Makefile26
1 files changed, 22 insertions, 4 deletions
diff --git a/drivers/media/Makefile b/drivers/media/Makefile
index b0b0193cd69d..620f275a45c9 100644
--- a/drivers/media/Makefile
+++ b/drivers/media/Makefile
@@ -4,12 +4,30 @@
media-objs := media-device.o media-devnode.o media-entity.o
+#
+# I2C drivers should come before other drivers, otherwise they'll fail
+# when compiled as builtin drivers
+#
+obj-y += i2c/ tuners/
+obj-$(CONFIG_DVB_CORE) += dvb-frontends/
+
+#
+# Now, let's link-in the media core
+#
ifeq ($(CONFIG_MEDIA_CONTROLLER),y)
obj-$(CONFIG_MEDIA_SUPPORT) += media.o
endif
-obj-y += tuners/ common/ rc/ platform/
-obj-y += i2c/ pci/ usb/ mmc/ firewire/ parport/
+obj-$(CONFIG_VIDEO_DEV) += v4l2-core/
+obj-$(CONFIG_DVB_CORE) += dvb-core/
+
+# There are both core and drivers at RC subtree - merge before drivers
+obj-y += rc/
+
+#
+# Finally, merge the drivers that require the core
+#
+
+obj-y += common/ platform/ pci/ usb/ mmc/ firewire/ parport/
+obj-$(CONFIG_VIDEO_DEV) += radio/
-obj-$(CONFIG_VIDEO_DEV) += radio/ v4l2-core/
-obj-$(CONFIG_DVB_CORE) += dvb-core/ dvb-frontends/