1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
From c0e6d42cd67679d530182ca4b24f83deadaf4d7c Mon Sep 17 00:00:00 2001
From: Nicolas Chauvet <kwizart@gmail.com>
Date: Sat, 23 Nov 2013 19:13:29 +0100
Subject: [PATCH] Rework drm modules selection on ARM
This is a wip version as plymouth still doesn't work for me
1/ On arm, aliases use a different path (soc)
2/ host1x has the matching device aliases
whereas tegra_drm has the crt_init symbol
3/ Others ARM drivers may behave similarly
4/ backlight and pwm_bl also need to be bundled.
I'm currenly testing with fedora kernel 3.14 or 3.15
---
modules.d/50drm/module-setup.sh | 12 ++++++++++--
modules.d/90kernel-modules/module-setup.sh | 7 ++++---
2 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/modules.d/50drm/module-setup.sh b/modules.d/50drm/module-setup.sh
index e25fc9f..2f5b75c 100755
--- a/modules.d/50drm/module-setup.sh
+++ b/modules.d/50drm/module-setup.sh
@@ -51,14 +51,22 @@ installkernel() {
return 0
}
+ # Some modules don't have drm_crtc_init but modalias needed by hostonly detection
+ local _drm_needed=$(find_kernel_modules_by_path drivers/gpu/{host1x,drm/{i2c,panel}})
+
+ local _video_backlight=$(find_kernel_modules_by_path drivers/{pwm,video/backlight})
+
for _modname in $(find_kernel_modules_by_path drivers/gpu/drm \
- | drm_module_filter) ; do
+ | drm_module_filter) $_drm_needed $_video_backlight ; do
# if the hardware is present, include module even if it is not currently loaded,
# as we could e.g. be in the installer; nokmsboot boot parameter will disable
# loading of the driver if needed
if [[ $hostonly ]] && modinfo -F alias $_modname | sed -e 's,\?,\.,g' -e 's,\*,\.\*,g' \
- | grep -qxf - /sys/bus/pci/devices/*/modalias 2>/dev/null; then
+ | grep -qxf - /sys/bus/{pci/devices,soc/devices/soc?}/*/modalias 2>/dev/null; then
hostonly='' instmods $_modname
+ case "$_modname" in
+ host1x) hostonly='' instmods tegra-drm ;;
+ esac
continue
fi
instmods $_modname
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
index 2378663..0299ec1 100755
--- a/modules.d/90kernel-modules/module-setup.sh
+++ b/modules.d/90kernel-modules/module-setup.sh
@@ -51,9 +51,10 @@ installkernel() {
if [[ "$(uname -p)" == arm* ]]; then
# arm specific modules
- hostonly='' instmods sdhci_esdhc_imx mmci sdhci_tegra mvsdio omap omapdrm \
- omap_hsmmc panel-tfp410 sdhci_dove ahci_platform pata_imx sata_mv \
- ehci-tegra mmc_block usb_storage
+ hostonly='' instmods sdhci_esdhc_imx mmci sdhci_tegra mvsdio \
+ omap_hsmmc sdhci_dove ahci_platform ahci_imx ahci_sunxi sata_mv \
+ ehci-tegra mmc_block usb_storage \
+ "=drivers/ata" "=drivers/rtc" "=drivers/mmc/host"
fi
# install virtual machine support
--
1.8.3.1
|