From 85c8f136d9dd25316f799cc7a7c3f663473d1933 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Sun, 18 May 2014 22:58:41 +0200 Subject: Apply 0001-Rework-drm-modules-selection-on-ARM.patch --- 0001-Rework-drm-modules-selection-on-ARM.patch | 69 ++++++++++++++++++++++++++ dracut.spec | 2 + 2 files changed, 71 insertions(+) create mode 100644 0001-Rework-drm-modules-selection-on-ARM.patch 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 +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} -- cgit