summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Chauvet <kwizart@gmail.com>2014-05-18 22:58:41 +0200
committerNicolas Chauvet <kwizart@gmail.com>2014-05-18 22:59:42 +0200
commit85c8f136d9dd25316f799cc7a7c3f663473d1933 (patch)
treea7ae3756a1adcc50330b83a93f4f9c5ecfcf6643
parent10982f1df04e68d67b182142080c39e2af439549 (diff)
downloaddracut-85c8f136d9dd25316f799cc7a7c3f663473d1933.tar.gz
dracut-85c8f136d9dd25316f799cc7a7c3f663473d1933.tar.xz
dracut-85c8f136d9dd25316f799cc7a7c3f663473d1933.zip
Apply 0001-Rework-drm-modules-selection-on-ARM.patchf20
-rw-r--r--0001-Rework-drm-modules-selection-on-ARM.patch69
-rw-r--r--dracut.spec2
2 files changed, 71 insertions, 0 deletions
diff --git a/0001-Rework-drm-modules-selection-on-ARM.patch b/0001-Rework-drm-modules-selection-on-ARM.patch
new file mode 100644
index 0000000..e980260
--- /dev/null
+++ b/0001-Rework-drm-modules-selection-on-ARM.patch
@@ -0,0 +1,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
+
diff --git a/dracut.spec b/dracut.spec
index b369d15..8a5b6a1 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -45,6 +45,8 @@ Patch9: 0009-fstab-do-not-mount-and-fsck-from-fstab-if-using-syst.patch
Patch100: 0001-Revert-Add-no-hostonly-cmdline-option-handling-for-g.patch
Patch101: 0002-Revert-Add-flag-to-toggle-hostonly-cmdline-storing-i.patch
+Patch105: 0001-Rework-drm-modules-selection-on-ARM.patch
+
BuildRequires: bash git
%if 0%{?fedora} || 0%{?rhel}