diff options
author | Thorsten Leemhuis <fedora@leemhuis.info> | 2018-07-27 20:45:04 +0200 |
---|---|---|
committer | Thorsten Leemhuis <fedora@leemhuis.info> | 2018-07-27 20:45:04 +0200 |
commit | a94371089c1392103097d0b24ff62feb0b8ff5e7 (patch) | |
tree | 7d23a4c23ddb49dcf7495ebfafdcc3498e8047c6 | |
parent | c2da00b05b2315c341ca973816faa71b59bea1dd (diff) | |
parent | 6f6fba1dbdddb0e16a053ec6ed240da3b0fc7e2c (diff) | |
download | kernel-a94371089c1392103097d0b24ff62feb0b8ff5e7.tar.gz kernel-a94371089c1392103097d0b24ff62feb0b8ff5e7.tar.xz kernel-a94371089c1392103097d0b24ff62feb0b8ff5e7.zip |
Merge remote-tracking branch 'origin/master' into rawhide-user-thl-vanilla-fedorakernel-4.18.0-0.rc6.git3.1.vanilla.knurd.1.fc28
-rw-r--r-- | bcm2835-hwmon-Add-support-for-RPi-voltage-sensor.patch | 403 | ||||
-rw-r--r-- | configs/fedora/generic/arm/CONFIG_SENSORS_RASPBERRYPI_HWMON | 1 | ||||
-rw-r--r-- | gitrev | 2 | ||||
-rw-r--r-- | kernel-aarch64-debug.config | 1 | ||||
-rw-r--r-- | kernel-aarch64.config | 1 | ||||
-rw-r--r-- | kernel-armv7hl-debug.config | 1 | ||||
-rw-r--r-- | kernel-armv7hl-lpae-debug.config | 1 | ||||
-rw-r--r-- | kernel-armv7hl-lpae.config | 1 | ||||
-rw-r--r-- | kernel-armv7hl.config | 1 | ||||
-rw-r--r-- | kernel.spec | 40 | ||||
-rwxr-xr-x | scripts/create_headers_tarball.sh | 85 | ||||
-rw-r--r-- | sources | 1 |
12 files changed, 531 insertions, 7 deletions
diff --git a/bcm2835-hwmon-Add-support-for-RPi-voltage-sensor.patch b/bcm2835-hwmon-Add-support-for-RPi-voltage-sensor.patch new file mode 100644 index 000000000..3e65ab969 --- /dev/null +++ b/bcm2835-hwmon-Add-support-for-RPi-voltage-sensor.patch @@ -0,0 +1,403 @@ +From be3035e3627d2570de4c2c612ecd095968986437 Mon Sep 17 00:00:00 2001 +From: Stefan Wahren <stefan.wahren@i2se.com> +Date: Fri, 25 May 2018 21:24:34 +0200 +Subject: [PATCH 1/4] ARM: bcm2835: Add GET_THROTTLED firmware property + +Recent Raspberry Pi firmware provides a mailbox property to detect +under-voltage conditions. Here is the current definition. + +The u32 value returned by the firmware is divided into 2 parts: + - lower 16-bits are the live value + - upper 16-bits are the history or sticky value + + Bits: + 0: undervoltage + 1: arm frequency capped + 2: currently throttled + 16: undervoltage has occurred + 17: arm frequency capped has occurred + 18: throttling has occurred + +Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> +Signed-off-by: Eric Anholt <eric@anholt.net> +Reviewed-by: Eric Anholt <eric@anholt.net> +--- + include/soc/bcm2835/raspberrypi-firmware.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h +index 8ee8991aa099a..c4a5c9e9fb478 100644 +--- a/include/soc/bcm2835/raspberrypi-firmware.h ++++ b/include/soc/bcm2835/raspberrypi-firmware.h +@@ -75,6 +75,7 @@ enum rpi_firmware_property_tag { + RPI_FIRMWARE_GET_EDID_BLOCK = 0x00030020, + RPI_FIRMWARE_GET_CUSTOMER_OTP = 0x00030021, + RPI_FIRMWARE_GET_DOMAIN_STATE = 0x00030030, ++ RPI_FIRMWARE_GET_THROTTLED = 0x00030046, + RPI_FIRMWARE_SET_CLOCK_STATE = 0x00038001, + RPI_FIRMWARE_SET_CLOCK_RATE = 0x00038002, + RPI_FIRMWARE_SET_VOLTAGE = 0x00038003, +-- +2.17.1 + +From 3c493c885cf8abf0986c9877875161dfd0a29273 Mon Sep 17 00:00:00 2001 +From: Stefan Wahren <stefan.wahren@i2se.com> +Date: Fri, 25 May 2018 21:24:35 +0200 +Subject: [PATCH 2/4] hwmon: Add support for RPi voltage sensor +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Currently there is no easy way to detect undervoltage conditions on a +remote Raspberry Pi. This hwmon driver retrieves the state of the +undervoltage sensor via mailbox interface. The handling based on +Noralf's modifications to the downstream firmware driver. In case of +an undervoltage condition only an entry is written to the kernel log. + +CC: "Noralf Trønnes" <noralf@tronnes.org> +Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> +Signed-off-by: Eric Anholt <eric@anholt.net> +Acked-by: Guenter Roeck <linux@roeck-us.net> +--- + Documentation/hwmon/raspberrypi-hwmon | 22 ++++ + drivers/hwmon/Kconfig | 10 ++ + drivers/hwmon/Makefile | 1 + + drivers/hwmon/raspberrypi-hwmon.c | 166 ++++++++++++++++++++++++++ + 4 files changed, 199 insertions(+) + create mode 100644 Documentation/hwmon/raspberrypi-hwmon + create mode 100644 drivers/hwmon/raspberrypi-hwmon.c + +diff --git a/Documentation/hwmon/raspberrypi-hwmon b/Documentation/hwmon/raspberrypi-hwmon +new file mode 100644 +index 0000000000000..3c92e2cb52d60 +--- /dev/null ++++ b/Documentation/hwmon/raspberrypi-hwmon +@@ -0,0 +1,22 @@ ++Kernel driver raspberrypi-hwmon ++=============================== ++ ++Supported boards: ++ * Raspberry Pi A+ (via GPIO on SoC) ++ * Raspberry Pi B+ (via GPIO on SoC) ++ * Raspberry Pi 2 B (via GPIO on SoC) ++ * Raspberry Pi 3 B (via GPIO on port expander) ++ * Raspberry Pi 3 B+ (via PMIC) ++ ++Author: Stefan Wahren <stefan.wahren@i2se.com> ++ ++Description ++----------- ++ ++This driver periodically polls a mailbox property of the VC4 firmware to detect ++undervoltage conditions. ++ ++Sysfs entries ++------------- ++ ++in0_lcrit_alarm Undervoltage alarm +diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig +index f10840ad465c2..fdaab8229686f 100644 +--- a/drivers/hwmon/Kconfig ++++ b/drivers/hwmon/Kconfig +@@ -1298,6 +1298,16 @@ config SENSORS_PWM_FAN + This driver can also be built as a module. If so, the module + will be called pwm-fan. + ++config SENSORS_RASPBERRYPI_HWMON ++ tristate "Raspberry Pi voltage monitor" ++ depends on RASPBERRYPI_FIRMWARE || COMPILE_TEST ++ help ++ If you say yes here you get support for voltage sensor on the ++ Raspberry Pi. ++ ++ This driver can also be built as a module. If so, the module ++ will be called raspberrypi-hwmon. ++ + config SENSORS_SHT15 + tristate "Sensiron humidity and temperature sensors. SHT15 and compat." + depends on GPIOLIB || COMPILE_TEST +diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile +index e7d52a36e6c4f..a9297703fd6e4 100644 +--- a/drivers/hwmon/Makefile ++++ b/drivers/hwmon/Makefile +@@ -141,6 +141,7 @@ obj-$(CONFIG_SENSORS_PC87427) += pc87427.o + obj-$(CONFIG_SENSORS_PCF8591) += pcf8591.o + obj-$(CONFIG_SENSORS_POWR1220) += powr1220.o + obj-$(CONFIG_SENSORS_PWM_FAN) += pwm-fan.o ++obj-$(CONFIG_SENSORS_RASPBERRYPI_HWMON) += raspberrypi-hwmon.o + obj-$(CONFIG_SENSORS_S3C) += s3c-hwmon.o + obj-$(CONFIG_SENSORS_SCH56XX_COMMON)+= sch56xx-common.o + obj-$(CONFIG_SENSORS_SCH5627) += sch5627.o +diff --git a/drivers/hwmon/raspberrypi-hwmon.c b/drivers/hwmon/raspberrypi-hwmon.c +new file mode 100644 +index 0000000000000..fb4e4a6bb1f63 +--- /dev/null ++++ b/drivers/hwmon/raspberrypi-hwmon.c +@@ -0,0 +1,166 @@ ++// SPDX-License-Identifier: GPL-2.0+ ++/* ++ * Raspberry Pi voltage sensor driver ++ * ++ * Based on firmware/raspberrypi.c by Noralf Trønnes ++ * ++ * Copyright (C) 2018 Stefan Wahren <stefan.wahren@i2se.com> ++ */ ++#include <linux/device.h> ++#include <linux/err.h> ++#include <linux/hwmon.h> ++#include <linux/module.h> ++#include <linux/platform_device.h> ++#include <linux/slab.h> ++#include <linux/workqueue.h> ++#include <soc/bcm2835/raspberrypi-firmware.h> ++ ++#define UNDERVOLTAGE_STICKY_BIT BIT(16) ++ ++struct rpi_hwmon_data { ++ struct device *hwmon_dev; ++ struct rpi_firmware *fw; ++ u32 last_throttled; ++ struct delayed_work get_values_poll_work; ++}; ++ ++static void rpi_firmware_get_throttled(struct rpi_hwmon_data *data) ++{ ++ u32 new_uv, old_uv, value; ++ int ret; ++ ++ /* Request firmware to clear sticky bits */ ++ value = 0xffff; ++ ++ ret = rpi_firmware_property(data->fw, RPI_FIRMWARE_GET_THROTTLED, ++ &value, sizeof(value)); ++ if (ret) { ++ dev_err_once(data->hwmon_dev, "Failed to get throttled (%d)\n", ++ ret); ++ return; ++ } ++ ++ new_uv = value & UNDERVOLTAGE_STICKY_BIT; ++ old_uv = data->last_throttled & UNDERVOLTAGE_STICKY_BIT; ++ data->last_throttled = value; ++ ++ if (new_uv == old_uv) ++ return; ++ ++ if (new_uv) ++ dev_crit(data->hwmon_dev, "Undervoltage detected!\n"); ++ else ++ dev_info(data->hwmon_dev, "Voltage normalised\n"); ++ ++ sysfs_notify(&data->hwmon_dev->kobj, NULL, "in0_lcrit_alarm"); ++} ++ ++static void get_values_poll(struct work_struct *work) ++{ ++ struct rpi_hwmon_data *data; ++ ++ data = container_of(work, struct rpi_hwmon_data, ++ get_values_poll_work.work); ++ ++ rpi_firmware_get_throttled(data); ++ ++ /* ++ * We can't run faster than the sticky shift (100ms) since we get ++ * flipping in the sticky bits that are cleared. ++ */ ++ schedule_delayed_work(&data->get_values_poll_work, 2 * HZ); ++} ++ ++static int rpi_read(struct device *dev, enum hwmon_sensor_types type, ++ u32 attr, int channel, long *val) ++{ ++ struct rpi_hwmon_data *data = dev_get_drvdata(dev); ++ ++ *val = !!(data->last_throttled & UNDERVOLTAGE_STICKY_BIT); ++ return 0; ++} ++ ++static umode_t rpi_is_visible(const void *_data, enum hwmon_sensor_types type, ++ u32 attr, int channel) ++{ ++ return 0444; ++} ++ ++static const u32 rpi_in_config[] = { ++ HWMON_I_LCRIT_ALARM, ++ 0 ++}; ++ ++static const struct hwmon_channel_info rpi_in = { ++ .type = hwmon_in, ++ .config = rpi_in_config, ++}; ++ ++static const struct hwmon_channel_info *rpi_info[] = { ++ &rpi_in, ++ NULL ++}; ++ ++static const struct hwmon_ops rpi_hwmon_ops = { ++ .is_visible = rpi_is_visible, ++ .read = rpi_read, ++}; ++ ++static const struct hwmon_chip_info rpi_chip_info = { ++ .ops = &rpi_hwmon_ops, ++ .info = rpi_info, ++}; ++ ++static int rpi_hwmon_probe(struct platform_device *pdev) ++{ ++ struct device *dev = &pdev->dev; ++ struct rpi_hwmon_data *data; ++ int ret; ++ ++ data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL); ++ if (!data) ++ return -ENOMEM; ++ ++ /* Parent driver assure that firmware is correct */ ++ data->fw = dev_get_drvdata(dev->parent); ++ ++ /* Init throttled */ ++ ret = rpi_firmware_property(data->fw, RPI_FIRMWARE_GET_THROTTLED, ++ &data->last_throttled, ++ sizeof(data->last_throttled)); ++ ++ data->hwmon_dev = devm_hwmon_device_register_with_info(dev, "rpi_volt", ++ data, ++ &rpi_chip_info, ++ NULL); ++ ++ INIT_DELAYED_WORK(&data->get_values_poll_work, get_values_poll); ++ platform_set_drvdata(pdev, data); ++ ++ if (!PTR_ERR_OR_ZERO(data->hwmon_dev)) ++ schedule_delayed_work(&data->get_values_poll_work, 2 * HZ); ++ ++ return PTR_ERR_OR_ZERO(data->hwmon_dev); ++} ++ ++static int rpi_hwmon_remove(struct platform_device *pdev) ++{ ++ struct rpi_hwmon_data *data = platform_get_drvdata(pdev); ++ ++ cancel_delayed_work_sync(&data->get_values_poll_work); ++ ++ return 0; ++} ++ ++static struct platform_driver rpi_hwmon_driver = { ++ .probe = rpi_hwmon_probe, ++ .remove = rpi_hwmon_remove, ++ .driver = { ++ .name = "raspberrypi-hwmon", ++ }, ++}; ++module_platform_driver(rpi_hwmon_driver); ++ ++MODULE_AUTHOR("Stefan Wahren <stefan.wahren@i2se.com>"); ++MODULE_DESCRIPTION("Raspberry Pi voltage sensor driver"); ++MODULE_LICENSE("GPL v2"); +-- +2.17.1 + +From 4ebe8673279b7afbbcbcf92094c9012a3c91f240 Mon Sep 17 00:00:00 2001 +From: Stefan Wahren <stefan.wahren@i2se.com> +Date: Fri, 25 May 2018 21:24:36 +0200 +Subject: [PATCH 3/4] firmware: raspberrypi: Register hwmon driver + +Since the raspberrypi-hwmon driver is tied to the VC4 firmware instead of +particular hardware its registration should be in the firmware driver. + +Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> +Signed-off-by: Eric Anholt <eric@anholt.net> +--- + drivers/firmware/raspberrypi.c | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c +index 6692888f04cfb..0602626bf72d0 100644 +--- a/drivers/firmware/raspberrypi.c ++++ b/drivers/firmware/raspberrypi.c +@@ -21,6 +21,8 @@ + #define MBOX_DATA28(msg) ((msg) & ~0xf) + #define MBOX_CHAN_PROPERTY 8 + ++static struct platform_device *rpi_hwmon; ++ + struct rpi_firmware { + struct mbox_client cl; + struct mbox_chan *chan; /* The property channel. */ +@@ -183,6 +185,20 @@ rpi_firmware_print_firmware_revision(struct rpi_firmware *fw) + } + } + ++static void ++rpi_register_hwmon_driver(struct device *dev, struct rpi_firmware *fw) ++{ ++ u32 packet; ++ int ret = rpi_firmware_property(fw, RPI_FIRMWARE_GET_THROTTLED, ++ &packet, sizeof(packet)); ++ ++ if (ret) ++ return; ++ ++ rpi_hwmon = platform_device_register_data(dev, "raspberrypi-hwmon", ++ -1, NULL, 0); ++} ++ + static int rpi_firmware_probe(struct platform_device *pdev) + { + struct device *dev = &pdev->dev; +@@ -209,6 +225,7 @@ static int rpi_firmware_probe(struct platform_device *pdev) + platform_set_drvdata(pdev, fw); + + rpi_firmware_print_firmware_revision(fw); ++ rpi_register_hwmon_driver(dev, fw); + + return 0; + } +@@ -217,6 +234,8 @@ static int rpi_firmware_remove(struct platform_device *pdev) + { + struct rpi_firmware *fw = platform_get_drvdata(pdev); + ++ platform_device_unregister(rpi_hwmon); ++ rpi_hwmon = NULL; + mbox_free_channel(fw->chan); + + return 0; +-- +2.17.1 + +From a0cf7704b6bc145a9f198a9b2bcf92ccc5d6b6be Mon Sep 17 00:00:00 2001 +From: Peter Robinson <pbrobinson@gmail.com> +Date: Fri, 20 Jul 2018 12:58:37 +0100 +Subject: [PATCH] hwmon: rpi: add module alias to raspberrypi-hwmon + +The raspberrypi-hwmon driver doesn't automatically load, although it does work +when loaded, by adding the alias it auto loads as expected when built as a +module. Tested on RPi2/RPi3 on 32 bit kernel and RPi3B+ on aarch64 with +Fedora 28 and a patched 4.18 RC kernel. + +Fixes: q3c493c885cf ("hwmon: Add support for RPi voltage sensor") +Signed-off-by: Peter Robinson <pbrobinson@gmail.com> +CC: Stefan Wahren <stefan.wahren@i2se.com> +CC: Eric Anholt <eric@anholt.net> +--- + drivers/hwmon/raspberrypi-hwmon.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/hwmon/raspberrypi-hwmon.c b/drivers/hwmon/raspberrypi-hwmon.c +index fb4e4a6bb1f63..be5ba46908953 100644 +--- a/drivers/hwmon/raspberrypi-hwmon.c ++++ b/drivers/hwmon/raspberrypi-hwmon.c +@@ -164,3 +164,4 @@ module_platform_driver(rpi_hwmon_driver); + MODULE_AUTHOR("Stefan Wahren <stefan.wahren@i2se.com>"); + MODULE_DESCRIPTION("Raspberry Pi voltage sensor driver"); + MODULE_LICENSE("GPL v2"); ++MODULE_ALIAS("platform:raspberrypi-hwmon"); +-- +2.17.1 + diff --git a/configs/fedora/generic/arm/CONFIG_SENSORS_RASPBERRYPI_HWMON b/configs/fedora/generic/arm/CONFIG_SENSORS_RASPBERRYPI_HWMON new file mode 100644 index 000000000..cecf9cbfb --- /dev/null +++ b/configs/fedora/generic/arm/CONFIG_SENSORS_RASPBERRYPI_HWMON @@ -0,0 +1 @@ +CONFIG_SENSORS_RASPBERRYPI_HWMON=m @@ -1 +1 @@ -28c20cc73b9cc4288c86c2a3fc62af4087de4b19 +cd3f77d74ac31b4627cdfa70812338076a1ea475 diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug.config index e7f0efd19..86cfd1c72 100644 --- a/kernel-aarch64-debug.config +++ b/kernel-aarch64-debug.config @@ -5272,6 +5272,7 @@ CONFIG_SENSORS_PCF8591=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_POWR1220=m CONFIG_SENSORS_PWM_FAN=m +CONFIG_SENSORS_RASPBERRYPI_HWMON=m CONFIG_SENSORS_SCH5627=m CONFIG_SENSORS_SCH5636=m CONFIG_SENSORS_SHT15=m diff --git a/kernel-aarch64.config b/kernel-aarch64.config index 3eab68f2c..4d6003578 100644 --- a/kernel-aarch64.config +++ b/kernel-aarch64.config @@ -5249,6 +5249,7 @@ CONFIG_SENSORS_PCF8591=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_POWR1220=m CONFIG_SENSORS_PWM_FAN=m +CONFIG_SENSORS_RASPBERRYPI_HWMON=m CONFIG_SENSORS_SCH5627=m CONFIG_SENSORS_SCH5636=m CONFIG_SENSORS_SHT15=m diff --git a/kernel-armv7hl-debug.config b/kernel-armv7hl-debug.config index 86110c519..04f93a6be 100644 --- a/kernel-armv7hl-debug.config +++ b/kernel-armv7hl-debug.config @@ -5596,6 +5596,7 @@ CONFIG_SENSORS_PCF8591=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_POWR1220=m CONFIG_SENSORS_PWM_FAN=m +CONFIG_SENSORS_RASPBERRYPI_HWMON=m CONFIG_SENSORS_SCH5627=m CONFIG_SENSORS_SCH5636=m CONFIG_SENSORS_SHT15=m diff --git a/kernel-armv7hl-lpae-debug.config b/kernel-armv7hl-lpae-debug.config index f3118f300..005231928 100644 --- a/kernel-armv7hl-lpae-debug.config +++ b/kernel-armv7hl-lpae-debug.config @@ -5285,6 +5285,7 @@ CONFIG_SENSORS_PCF8591=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_POWR1220=m CONFIG_SENSORS_PWM_FAN=m +CONFIG_SENSORS_RASPBERRYPI_HWMON=m CONFIG_SENSORS_SCH5627=m CONFIG_SENSORS_SCH5636=m CONFIG_SENSORS_SHT15=m diff --git a/kernel-armv7hl-lpae.config b/kernel-armv7hl-lpae.config index b49bd99ea..ca671a56a 100644 --- a/kernel-armv7hl-lpae.config +++ b/kernel-armv7hl-lpae.config @@ -5262,6 +5262,7 @@ CONFIG_SENSORS_PCF8591=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_POWR1220=m CONFIG_SENSORS_PWM_FAN=m +CONFIG_SENSORS_RASPBERRYPI_HWMON=m CONFIG_SENSORS_SCH5627=m CONFIG_SENSORS_SCH5636=m CONFIG_SENSORS_SHT15=m diff --git a/kernel-armv7hl.config b/kernel-armv7hl.config index 169f14913..794edfdfa 100644 --- a/kernel-armv7hl.config +++ b/kernel-armv7hl.config @@ -5573,6 +5573,7 @@ CONFIG_SENSORS_PCF8591=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_POWR1220=m CONFIG_SENSORS_PWM_FAN=m +CONFIG_SENSORS_RASPBERRYPI_HWMON=m CONFIG_SENSORS_SCH5627=m CONFIG_SENSORS_SCH5636=m CONFIG_SENSORS_SHT15=m diff --git a/kernel.spec b/kernel.spec index 934beec63..a7cb1dda4 100644 --- a/kernel.spec +++ b/kernel.spec @@ -77,7 +77,7 @@ Summary: The Linux kernel # The rc snapshot level %global rcrev 6 # The git snapshot level -%define gitrev 0 +%define gitrev 3 # Set rpm version accordingly %define rpmversion 4.%{upstream_sublevel}.0 %endif @@ -130,7 +130,11 @@ Summary: The Linux kernel # Set debugbuildsenabled to 1 for production (build separate debug kernels) # and 0 for rawhide (all kernels are debug kernels). # See also 'make debug' and 'make release'. -%define debugbuildsenabled 1 +%define debugbuildsenabled 0 + +# Kernel headers are being split out into a separate package +%define with_headers 0 +%define with_cross_headers 0 %if %{with_verbose} %define make_opts V=1 @@ -604,7 +608,9 @@ Patch307: arm-tegra-fix-nouveau-crash.patch # Enabling Patches for the RPi3+ Patch330: bcm2837-enable-pmu.patch -Patch332: bcm2835-cpufreq-add-CPU-frequency-control-driver.patch +Patch331: bcm2835-cpufreq-add-CPU-frequency-control-driver.patch + +Patch332: bcm2835-hwmon-Add-support-for-RPi-voltage-sensor.patch # Fix for AllWinner A64 Timer Errata, still not final # https://patchwork.kernel.org/patch/10392891/ @@ -1212,8 +1218,14 @@ cp_vmlinux() # they come from the kernel package, we can't just use find-debuginfo.sh to # rewrite only those binaries. The easiest option right now is just to have # the build id be a uuid for the host programs. +# +# Note we need to disable these flags for cross builds because the flags +# from redhat-rpm-config assume that host == target so target arch +# flags cause issues with the host compiler. +%if !%{with_cross} %define build_hostcflags %{build_cflags} %define build_hostldflags %{build_ldflags} -Wl,--build-id=uuid +%endif BuildKernel() { MakeTarget=$1 @@ -1265,12 +1277,12 @@ BuildKernel() { Arch=`head -1 .config | cut -b 3-` echo USING ARCH=$Arch - make %{?make_opts} HOSTCFLAGS="%{build_hostcflags}" HOSTLDFLAGS="%{build_hostldflags}" ARCH=$Arch olddefconfig + make %{?make_opts} HOSTCFLAGS="%{?build_hostcflags}" HOSTLDFLAGS="%{?build_hostldflags}" ARCH=$Arch olddefconfig # This ensures build-ids are unique to allow parallel debuginfo perl -p -i -e "s/^CONFIG_BUILD_SALT.*/CONFIG_BUILD_SALT=\"%{KVERREL}\"/" .config - %{make} %{?make_opts} HOSTCFLAGS="%{build_hostcflags}" HOSTLDFLAGS="%{build_hostldflags}" ARCH=$Arch %{?_smp_mflags} $MakeTarget %{?sparse_mflags} %{?kernel_mflags} - %{make} %{?make_opts} HOSTCFLAGS="%{build_hostcflags}" HOSTLDFLAGS="%{build_hostldflags}" ARCH=$Arch %{?_smp_mflags} modules %{?sparse_mflags} || exit 1 + %{make} %{?make_opts} HOSTCFLAGS="%{?build_hostcflags}" HOSTLDFLAGS="%{?build_hostldflags}" ARCH=$Arch %{?_smp_mflags} $MakeTarget %{?sparse_mflags} %{?kernel_mflags} + %{make} %{?make_opts} HOSTCFLAGS="%{?build_hostcflags}" HOSTLDFLAGS="%{?build_hostldflags}" ARCH=$Arch %{?_smp_mflags} modules %{?sparse_mflags} || exit 1 mkdir -p $RPM_BUILD_ROOT/%{image_install_path} mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer @@ -1892,6 +1904,22 @@ fi # # %changelog +* Fri Jul 27 2018 Laura Abbott <labbott@redhat.com> - 4.18.0-0.rc6.git3.1 +- Linux v4.18-rc6-152-gcd3f77d74ac3 +- Disable headers in preparation for kernel headers split + +* Thu Jul 26 2018 Laura Abbott <labbott@redhat.com> - 4.18.0-0.rc6.git2.1 +- Linux v4.18-rc6-110-g6e77b267723c + +* Thu Jul 26 2018 Peter Robinson <pbrobinson@fedoraproject.org> +- Add Raspberry Pi voltage sensor driver + +* Wed Jul 25 2018 Laura Abbott <labbott@redhat.com> - 4.18.0-0.rc6.git1.1 +- Linux v4.18-rc6-93-g9981b4fb8684 + +* Wed Jul 25 2018 Laura Abbott <labbott@redhat.com> +- Reenable debugging options. + * Mon Jul 23 2018 Laura Abbott <labbott@redhat.com> - 4.18.0-0.rc6.git0.1 - Linux v4.18-rc6 diff --git a/scripts/create_headers_tarball.sh b/scripts/create_headers_tarball.sh new file mode 100755 index 000000000..e96fe57f4 --- /dev/null +++ b/scripts/create_headers_tarball.sh @@ -0,0 +1,85 @@ +#!/bin/bash +# +# This script is aimed at generating the headers from the kernel sources. +# Please do a git checkout of the kernel sources, or run until %prep step of +# kernel rpm build. Then go into the directory with the sources, and run this +# script +# +# Author: Herton R. Krzesinski <herton@redhat.com> + +# ARCH_LIST below has the default list of supported architectures +# (the architectures names may be different from rpm, you list here the +# names of arch/<arch> directories in the kernel sources) +ARCH_LIST="arm arm64 powerpc s390 x86" + +# If the kernel Makefile doesn't contain enough information for the tarball +# release, you can specify the release of the package so it'll be included +# in the name of the created tarball +TB_RELEASE="" + +# If kernel Makefile has the package release number, you can specify the name of +# Makefile variable here. +MAKE_RELEASE="" + +# Extra string (usually dist tag) that goes into the tarball name +EXTRA="" + +while [ ! -z "$1" ]; do + opt="$1" + case $opt in + --arch-list|-a) + ARCH_LIST="$2" + shift + ;; + --extra|-e) + EXTRA="$2" + shift + ;; + --make-release|-m) + MAKE_RELEASE=$2 + shift + ;; + --release|-r) + TB_RELEASE=$2 + shift + ;; + *) + echo "Unknown option ($1) to $0" + exit + ;; + esac + shift +done + +KVERSION=$(cat Makefile | sed -ne '/^VERSION\ =\ /{s///;p;q}') +KPATCHLEVEL=$(cat Makefile | sed -ne '/^PATCHLEVEL\ =\ /{s///;p;q}') +KSUBLEVEL=$(cat Makefile | sed -ne '/^SUBLEVEL\ =\ /{s///;p;q}') +TB_VERSION=$KVERSION.$KPATCHLEVEL.$KSUBLEVEL +if [ -z "$TB_RELEASE" ]; then + KEXTRAVERSION=$(cat Makefile | sed -ne '/^EXTRAVERSION\ =\ /{s///;p;q}') + DISTRO_RELEASE="" + if [ -n "$MAKE_RELEASE" ]; then + DISTRO_RELEASE=.$(cat Makefile | sed -ne "/^$MAKE_RELEASE\ =\ /{s///;p;q}") + fi + if [ -n "$KEXTRAVERSION" ]; then + KEXTRAVERSION=$(echo $KEXTRAVERSION | sed -e s/-/./) + TB_RELEASE=0$KEXTRAVERSION$DISTRO_RELEASE$EXTRA + else + TB_RELEASE=$DISTRO_RELEASE$EXTRA + fi +fi + +headers_dir=$(mktemp -d) +trap 'rm -rf "$headers_dir"' SIGHUP SIGINT SIGTERM EXIT + +make HDR_ARCH_LIST="$ARCH_LIST" INSTALL_HDR_PATH=$headers_dir headers_install_all +find $headers_dir \ + \( -name .install -o -name .check -o \ + -name ..install.cmd -o -name ..check.cmd \) | xargs rm -f + +TARBALL=$PWD/kernel-headers-$TB_VERSION-$TB_RELEASE.tar.xz +pushd $headers_dir + tar -Jcf $TARBALL * +popd + +echo wrote $TARBALL @@ -1,2 +1,3 @@ SHA512 (linux-4.17.tar.xz) = 4d9de340a26155a89ea8773131c76220cc2057f2b5d031b467b60e8b14c1842518e2d60a863d8c695f0f7640f3f18d43826201984a238dade857b6cef79837db SHA512 (patch-4.18-rc6.xz) = ac2983a05b10138fbe2a254c56110ef0e31e6d8868c363959d7b219902b7f84e02cc321e9176161be654fddab1765a448b32c4afa4b30ce3f85a5a10b6fc12c2 +SHA512 (patch-4.18-rc6-git3.xz) = f231aa82feb1dcd48dde1f956977cd78da26c31c4a0b13157f2b8e764cc02c5a892b42748bba469cb0a6ca2120325f19fcafce464e1bc4c30fe31108ffd37d70 |