Linux v4.18-12721-g33e17876ea4e
This commit is contained in:
parent
9b4f0fa712
commit
28d87ac045
@ -1,33 +0,0 @@
|
||||
From 421b8aef3902426c4c3ebd23218c0ad282786e1d Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Tue, 3 Jul 2018 17:43:10 +0200
|
||||
Subject: [PATCH 5/7] efi/bgrt: Drop __initdata from bgrt_image_size
|
||||
|
||||
bgrt_image_size is necessary to (optionally) show the boot graphics from
|
||||
the efifb code. The efifb driver is a platform driver, using a normal
|
||||
driver probe() driver callback. So even though it is always builtin it
|
||||
cannot reference __initdata.
|
||||
|
||||
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
|
||||
---
|
||||
drivers/firmware/efi/efi-bgrt.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/firmware/efi/efi-bgrt.c b/drivers/firmware/efi/efi-bgrt.c
|
||||
index 50793fda7819..b22ccfb0c991 100644
|
||||
--- a/drivers/firmware/efi/efi-bgrt.c
|
||||
+++ b/drivers/firmware/efi/efi-bgrt.c
|
||||
@@ -20,7 +20,7 @@
|
||||
#include <linux/efi-bgrt.h>
|
||||
|
||||
struct acpi_table_bgrt bgrt_tab;
|
||||
-size_t __initdata bgrt_image_size;
|
||||
+size_t bgrt_image_size;
|
||||
|
||||
struct bmp_header {
|
||||
u16 id;
|
||||
--
|
||||
2.18.0
|
||||
|
@ -1,201 +0,0 @@
|
||||
From a5f742d7ba70c702bcf67dd1fd8d5dde3f5042fc Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Tue, 3 Jul 2018 17:43:10 +0200
|
||||
Subject: [PATCH 6/7] efifb: Copy the ACPI BGRT boot graphics to the
|
||||
framebuffer
|
||||
|
||||
On systems where fbcon is configured for deferred console takeover, the
|
||||
intend is for the framebuffer to show the boot graphics (e.g a vendor
|
||||
logo) until some message (e.g. an error) is printed or a graphical
|
||||
session takes over.
|
||||
|
||||
Some firmware relies on the OS to show the boot graphics.
|
||||
|
||||
This patch adds support to efifb to show the boot graphics and
|
||||
automatically enables this when fbcon is configured for deferred
|
||||
console takeover.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
|
||||
---
|
||||
drivers/video/fbdev/efifb.c | 140 ++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 140 insertions(+)
|
||||
|
||||
diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
|
||||
index c6f78d27947b..67684412ba8a 100644
|
||||
--- a/drivers/video/fbdev/efifb.c
|
||||
+++ b/drivers/video/fbdev/efifb.c
|
||||
@@ -9,16 +9,39 @@
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/efi.h>
|
||||
+#include <linux/efi-bgrt.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/fb.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/platform_device.h>
|
||||
+#include <linux/printk.h>
|
||||
#include <linux/screen_info.h>
|
||||
#include <video/vga.h>
|
||||
#include <asm/efi.h>
|
||||
#include <drm/drm_utils.h> /* For drm_get_panel_orientation_quirk */
|
||||
#include <drm/drm_connector.h> /* For DRM_MODE_PANEL_ORIENTATION_* */
|
||||
|
||||
+struct bmp_file_header {
|
||||
+ u16 id;
|
||||
+ u32 file_size;
|
||||
+ u32 reserved;
|
||||
+ u32 bitmap_offset;
|
||||
+} __packed;
|
||||
+
|
||||
+struct bmp_dib_header {
|
||||
+ u32 dib_header_size;
|
||||
+ s32 width;
|
||||
+ s32 height;
|
||||
+ u16 planes;
|
||||
+ u16 bpp;
|
||||
+ u32 compression;
|
||||
+ u32 bitmap_size;
|
||||
+ u32 horz_resolution;
|
||||
+ u32 vert_resolution;
|
||||
+ u32 colors_used;
|
||||
+ u32 colors_important;
|
||||
+} __packed;
|
||||
+
|
||||
static bool request_mem_succeeded = false;
|
||||
static u64 mem_flags = EFI_MEMORY_WC | EFI_MEMORY_UC;
|
||||
|
||||
@@ -66,6 +89,121 @@ static int efifb_setcolreg(unsigned regno, unsigned red, unsigned green,
|
||||
return 0;
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * If fbcon deffered console takeover is configured, the intent is for the
|
||||
+ * framebuffer to show the boot graphics (e.g. vendor logo) until there is some
|
||||
+ * (error) message to display. But the boot graphics may have been destroyed by
|
||||
+ * e.g. option ROM output, detect this and restore the boot graphics.
|
||||
+ */
|
||||
+#if defined CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER && \
|
||||
+ defined CONFIG_ACPI_BGRT
|
||||
+static void efifb_copy_bmp(u8 *src, u32 *dst, int width, struct screen_info *si)
|
||||
+{
|
||||
+ u8 r, g, b;
|
||||
+
|
||||
+ while (width--) {
|
||||
+ b = *src++;
|
||||
+ g = *src++;
|
||||
+ r = *src++;
|
||||
+ *dst++ = (r << si->red_pos) |
|
||||
+ (g << si->green_pos) |
|
||||
+ (b << si->blue_pos);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void efifb_show_boot_graphics(struct fb_info *info)
|
||||
+{
|
||||
+ u32 bmp_width, bmp_height, bmp_pitch, screen_pitch, dst_x, y, src_y;
|
||||
+ struct screen_info *si = &screen_info;
|
||||
+ struct bmp_file_header *file_header;
|
||||
+ struct bmp_dib_header *dib_header;
|
||||
+ void *bgrt_image = NULL;
|
||||
+ u8 *dst = info->screen_base;
|
||||
+
|
||||
+ if (!bgrt_tab.image_address) {
|
||||
+ pr_info("efifb: No BGRT, not showing boot graphics\n");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ /* Avoid flashing the logo if we're going to print std probe messages */
|
||||
+ if (console_loglevel > CONSOLE_LOGLEVEL_QUIET)
|
||||
+ return;
|
||||
+
|
||||
+ /* bgrt_tab.status is unreliable, so we don't check it */
|
||||
+
|
||||
+ if (si->lfb_depth != 32) {
|
||||
+ pr_info("efifb: not 32 bits, not showing boot graphics\n");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ bgrt_image = memremap(bgrt_tab.image_address, bgrt_image_size,
|
||||
+ MEMREMAP_WB);
|
||||
+ if (!bgrt_image) {
|
||||
+ pr_warn("efifb: Ignoring BGRT: failed to map image memory\n");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (bgrt_image_size < (sizeof(*file_header) + sizeof(*dib_header)))
|
||||
+ goto error;
|
||||
+
|
||||
+ file_header = bgrt_image;
|
||||
+ if (file_header->id != 0x4d42 || file_header->reserved != 0)
|
||||
+ goto error;
|
||||
+
|
||||
+ dib_header = bgrt_image + sizeof(*file_header);
|
||||
+ if (dib_header->dib_header_size != 40 || dib_header->width < 0 ||
|
||||
+ dib_header->planes != 1 || dib_header->bpp != 24 ||
|
||||
+ dib_header->compression != 0)
|
||||
+ goto error;
|
||||
+
|
||||
+ bmp_width = dib_header->width;
|
||||
+ bmp_height = abs(dib_header->height);
|
||||
+ bmp_pitch = round_up(3 * bmp_width, 4);
|
||||
+ screen_pitch = si->lfb_linelength;
|
||||
+
|
||||
+ if ((file_header->bitmap_offset + bmp_pitch * bmp_height) >
|
||||
+ bgrt_image_size)
|
||||
+ goto error;
|
||||
+
|
||||
+ if ((bgrt_tab.image_offset_x + bmp_width) > si->lfb_width ||
|
||||
+ (bgrt_tab.image_offset_y + bmp_height) > si->lfb_height)
|
||||
+ goto error;
|
||||
+
|
||||
+ pr_info("efifb: showing boot graphics\n");
|
||||
+
|
||||
+ for (y = 0; y < si->lfb_height; y++, dst += si->lfb_linelength) {
|
||||
+ /* Only background? */
|
||||
+ if (y < bgrt_tab.image_offset_y ||
|
||||
+ y >= (bgrt_tab.image_offset_y + bmp_height)) {
|
||||
+ memset(dst, 0, 4 * si->lfb_width);
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ src_y = y - bgrt_tab.image_offset_y;
|
||||
+ /* Positive header height means upside down row order */
|
||||
+ if (dib_header->height > 0)
|
||||
+ src_y = (bmp_height - 1) - src_y;
|
||||
+
|
||||
+ memset(dst, 0, bgrt_tab.image_offset_x * 4);
|
||||
+ dst_x = bgrt_tab.image_offset_x;
|
||||
+ efifb_copy_bmp(bgrt_image + file_header->bitmap_offset +
|
||||
+ src_y * bmp_pitch,
|
||||
+ (u32 *)dst + dst_x, bmp_width, si);
|
||||
+ dst_x += bmp_width;
|
||||
+ memset((u32 *)dst + dst_x, 0, (si->lfb_width - dst_x) * 4);
|
||||
+ }
|
||||
+
|
||||
+ memunmap(bgrt_image);
|
||||
+ return;
|
||||
+
|
||||
+error:
|
||||
+ memunmap(bgrt_image);
|
||||
+ pr_warn("efifb: Ignoring BGRT: unexpected or invalid BMP data\n");
|
||||
+}
|
||||
+#else
|
||||
+static inline void efifb_show_boot_graphics(struct fb_info *info) {}
|
||||
+#endif
|
||||
+
|
||||
static void efifb_destroy(struct fb_info *info)
|
||||
{
|
||||
if (info->screen_base) {
|
||||
@@ -311,6 +449,8 @@ static int efifb_probe(struct platform_device *dev)
|
||||
goto err_release_fb;
|
||||
}
|
||||
|
||||
+ efifb_show_boot_graphics(info);
|
||||
+
|
||||
pr_info("efifb: framebuffer at 0x%lx, using %dk, total %dk\n",
|
||||
efifb_fix.smem_start, size_remap/1024, size_total/1024);
|
||||
pr_info("efifb: mode is %dx%dx%d, linelength=%d, pages=%d\n",
|
||||
--
|
||||
2.18.0
|
||||
|
@ -1,85 +0,0 @@
|
||||
From c4220b3f747ae6dd28171137d85fba0eab64e36d Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Tue, 24 Jul 2018 19:11:28 +0200
|
||||
Subject: [PATCH 7/7] efifb: BGRT: Do not copy the boot graphics for non native
|
||||
resolutions
|
||||
|
||||
On x86 some firmwares use a low non native resolution for the display when
|
||||
they have shown some text messages. While keeping the bgrt filled with info
|
||||
for the native resolution. If the bgrt image intended for the native
|
||||
resolution still fits, it will be displayed very close to the right edge of
|
||||
the display looking quite bad.
|
||||
|
||||
This commits adds a (heuristics based) checks for this and makes efifb
|
||||
not show the boot graphics when this is the case.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
|
||||
---
|
||||
drivers/video/fbdev/efifb.c | 43 +++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 43 insertions(+)
|
||||
|
||||
diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
|
||||
index fa01eecc0a55..52bf39f93888 100644
|
||||
--- a/drivers/video/fbdev/efifb.c
|
||||
+++ b/drivers/video/fbdev/efifb.c
|
||||
@@ -111,6 +111,46 @@ static void efifb_copy_bmp(u8 *src, u32 *dst, int width, struct screen_info *si)
|
||||
}
|
||||
}
|
||||
|
||||
+#ifdef CONFIG_X86
|
||||
+/*
|
||||
+ * On x86 some firmwares use a low non native resolution for the display when
|
||||
+ * they have shown some text messages. While keeping the bgrt filled with info
|
||||
+ * for the native resolution. If the bgrt image intended for the native
|
||||
+ * resolution still fits, it will be displayed very close to the right edge of
|
||||
+ * the display looking quite bad. This function checks for this.
|
||||
+ */
|
||||
+static bool efifb_bgrt_sanity_check(struct screen_info *si, u32 bmp_width)
|
||||
+{
|
||||
+ static const int default_resolutions[][2] = {
|
||||
+ { 800, 600 },
|
||||
+ { 1024, 768 },
|
||||
+ { 1280, 1024 },
|
||||
+ };
|
||||
+ u32 i, right_margin;
|
||||
+
|
||||
+ for (i = 0; i < ARRAY_SIZE(default_resolutions); i++) {
|
||||
+ if (default_resolutions[i][0] == si->lfb_width &&
|
||||
+ default_resolutions[i][1] == si->lfb_height)
|
||||
+ break;
|
||||
+ }
|
||||
+ /* If not a default resolution used for textmode, this should be fine */
|
||||
+ if (i >= ARRAY_SIZE(default_resolutions))
|
||||
+ return true;
|
||||
+
|
||||
+ /* If the right margin is 5 times smaller then the left one, reject */
|
||||
+ right_margin = si->lfb_width - (bgrt_tab.image_offset_x + bmp_width);
|
||||
+ if (right_margin < (bgrt_tab.image_offset_x / 5))
|
||||
+ return false;
|
||||
+
|
||||
+ return true;
|
||||
+}
|
||||
+#else
|
||||
+static bool efifb_bgrt_sanity_check(struct screen_info *si, u32 bmp_width)
|
||||
+{
|
||||
+ return true;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
static void efifb_show_boot_graphics(struct fb_info *info)
|
||||
{
|
||||
u32 bmp_width, bmp_height, bmp_pitch, screen_pitch, dst_x, y, src_y;
|
||||
@@ -169,6 +209,9 @@ static void efifb_show_boot_graphics(struct fb_info *info)
|
||||
(bgrt_tab.image_offset_y + bmp_height) > si->lfb_height)
|
||||
goto error;
|
||||
|
||||
+ if (!efifb_bgrt_sanity_check(si, bmp_width))
|
||||
+ goto error;
|
||||
+
|
||||
pr_info("efifb: showing boot graphics\n");
|
||||
|
||||
for (y = 0; y < si->lfb_height; y++, dst += si->lfb_linelength) {
|
||||
--
|
||||
2.18.0
|
||||
|
@ -1,100 +0,0 @@
|
||||
From 317b698406457eb97277d4220126683a59c74fd8 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Wed, 1 Aug 2018 15:19:52 +0200
|
||||
Subject: [PATCH] fbcon: Only defer console takeover if the current
|
||||
console driver is the dummycon
|
||||
|
||||
We rely on dummycon's output notifier mechanism to defer the takeover.
|
||||
|
||||
If say vgacon is the current console driver then dummycon will never get
|
||||
used so its output notifier will also never get called and fbcon never
|
||||
takes over. This commit fixes this by only deferring the console takeover
|
||||
if the current console driver is the dummycon driver.
|
||||
|
||||
This commit also moves the entirety of fbcon_start under the console_lock,
|
||||
since the conswitchp which fbcon_start now checks is protected by it.
|
||||
|
||||
This commit also inlines fbcon_register_output_notifier, since we now
|
||||
need a #ifdef CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER in fbcon_start
|
||||
anyways because of the write access to the deferred_takeover variable,
|
||||
this has the added advantage that it puts the
|
||||
dummycon_register_output_notifier() call directly after the "conswitchp !=
|
||||
&dummy_con" comparison making it clear why that check is there.
|
||||
|
||||
Note the arch setup code will set conswitchp to either dummy_con or
|
||||
vga_con, in the cases where it gets set to vga_con even though their is
|
||||
no vga_con present we rely on vga_con_startup() to set conswitchp to
|
||||
dummy_con. vga_con_startup() is guaranteed to happen before
|
||||
fb_console_init() as it gets called as a console_initcall where as
|
||||
fb_console_init() gets called as a subsys_initcall.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/video/fbdev/core/fbcon.c | 24 ++++++++++--------------
|
||||
1 file changed, 10 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
|
||||
index e30d3a138c97..ef8b2d0b7071 100644
|
||||
--- a/drivers/video/fbdev/core/fbcon.c
|
||||
+++ b/drivers/video/fbdev/core/fbcon.c
|
||||
@@ -3612,38 +3612,34 @@ static int fbcon_output_notifier(struct notifier_block *nb,
|
||||
|
||||
return NOTIFY_OK;
|
||||
}
|
||||
-
|
||||
-static void fbcon_register_output_notifier(void)
|
||||
-{
|
||||
- fbcon_output_nb.notifier_call = fbcon_output_notifier;
|
||||
- dummycon_register_output_notifier(&fbcon_output_nb);
|
||||
-}
|
||||
-#else
|
||||
-static inline void fbcon_register_output_notifier(void) {}
|
||||
#endif
|
||||
|
||||
static void fbcon_start(void)
|
||||
{
|
||||
+ WARN_CONSOLE_UNLOCKED();
|
||||
+
|
||||
+#ifdef CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER
|
||||
+ if (conswitchp != &dummy_con)
|
||||
+ deferred_takeover = false;
|
||||
+
|
||||
if (deferred_takeover) {
|
||||
- fbcon_register_output_notifier();
|
||||
+ fbcon_output_nb.notifier_call = fbcon_output_notifier;
|
||||
+ dummycon_register_output_notifier(&fbcon_output_nb);
|
||||
return;
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (num_registered_fb) {
|
||||
int i;
|
||||
|
||||
- console_lock();
|
||||
-
|
||||
for (i = 0; i < FB_MAX; i++) {
|
||||
if (registered_fb[i] != NULL) {
|
||||
info_idx = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
do_fbcon_takeover(0);
|
||||
- console_unlock();
|
||||
-
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3724,8 +3720,8 @@ void __init fb_console_init(void)
|
||||
for (i = 0; i < MAX_NR_CONSOLES; i++)
|
||||
con2fb_map[i] = -1;
|
||||
|
||||
- console_unlock();
|
||||
fbcon_start();
|
||||
+ console_unlock();
|
||||
}
|
||||
|
||||
#ifdef MODULE
|
||||
--
|
||||
2.18.0
|
||||
|
@ -1,63 +0,0 @@
|
||||
From 8f571bbfc621fd0826bbc7a8924c811f3a3167c9 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 6 Aug 2018 16:32:27 +0200
|
||||
Subject: [PATCH] fbcon: Do not takeover the console from atomic context
|
||||
|
||||
Taking over the console involves allocating mem with GFP_KERNEL, talking
|
||||
to drm drivers, etc. So this should not be done from an atomic context.
|
||||
|
||||
But the console-output trigger deferred console takeover may happen from an
|
||||
atomic context, which leads to "BUG: sleeping function called from invalid
|
||||
context" errors.
|
||||
|
||||
This commit fixes these errors by doing the deferred takeover from a
|
||||
workqueue when the notifier runs from an atomic context.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/video/fbdev/core/fbcon.c | 21 +++++++++++++++++++--
|
||||
1 file changed, 19 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
|
||||
index a3fd510..f812891 100644
|
||||
--- a/drivers/video/fbdev/core/fbcon.c
|
||||
+++ b/drivers/video/fbdev/core/fbcon.c
|
||||
@@ -3596,7 +3596,22 @@ static int fbcon_init_device(void)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER
|
||||
+static void fbcon_register_existing_fbs(struct work_struct *work)
|
||||
+{
|
||||
+ int i;
|
||||
+
|
||||
+ console_lock();
|
||||
+
|
||||
+ for (i = 0; i < FB_MAX; i++) {
|
||||
+ if (registered_fb[i])
|
||||
+ fbcon_fb_registered(registered_fb[i]);
|
||||
+ }
|
||||
+
|
||||
+ console_unlock();
|
||||
+}
|
||||
+
|
||||
static struct notifier_block fbcon_output_nb;
|
||||
+static DECLARE_WORK(fbcon_deferred_takeover_work, fbcon_register_existing_fbs);
|
||||
|
||||
static int fbcon_output_notifier(struct notifier_block *nb,
|
||||
unsigned long action, void *data)
|
||||
@@ -3611,10 +3626,8 @@ static int fbcon_output_notifier(struct notifier_block *nb,
|
||||
deferred_takeover = false;
|
||||
logo_shown = FBCON_LOGO_DONTSHOW;
|
||||
|
||||
- for (i = 0; i < FB_MAX; i++) {
|
||||
- if (registered_fb[i])
|
||||
- fbcon_fb_registered(registered_fb[i]);
|
||||
- }
|
||||
+ /* We may get called in atomic context */
|
||||
+ schedule_work(&fbcon_deferred_takeover_work);
|
||||
|
||||
return NOTIFY_OK;
|
||||
}
|
||||
--
|
||||
2.18.0
|
||||
|
@ -1,352 +0,0 @@
|
||||
From ced8025b569e21c31b52cc80410ed49d0bf13368 Mon Sep 17 00:00:00 2001
|
||||
From: Dennis Gilmore <dennis@ausil.us>
|
||||
Date: Tue, 5 Jun 2018 17:15:45 -0500
|
||||
Subject: ARM: dts: armada388-helios4
|
||||
|
||||
The helios4 is a Armada388 based nas board designed by SolidRun and
|
||||
based on their SOM. It is sold by kobol.io the dts file came from
|
||||
https://raw.githubusercontent.com/armbian/build/master/patch/kernel/mvebu-default/95-helios4-device-tree.patch
|
||||
I added a SPDX license line to match the clearfog it says it was based
|
||||
on and a compatible line for "kobol,helios4"
|
||||
|
||||
Signed-off-by: Dennis Gilmore <dennis@ausil.us>
|
||||
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
|
||||
---
|
||||
arch/arm/boot/dts/Makefile | 1 +
|
||||
arch/arm/boot/dts/armada-388-helios4.dts | 313 +++++++++++++++++++++++++++++++
|
||||
2 files changed, 314 insertions(+)
|
||||
create mode 100644 arch/arm/boot/dts/armada-388-helios4.dts
|
||||
|
||||
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
|
||||
index 37a3de760d40..55133fac83ab 100644
|
||||
--- a/arch/arm/boot/dts/Makefile
|
||||
+++ b/arch/arm/boot/dts/Makefile
|
||||
@@ -1138,6 +1138,7 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \
|
||||
armada-388-clearfog-pro.dtb \
|
||||
armada-388-db.dtb \
|
||||
armada-388-gp.dtb \
|
||||
+ armada-388-helios4.dtb \
|
||||
armada-388-rd.dtb
|
||||
dtb-$(CONFIG_MACH_ARMADA_39X) += \
|
||||
armada-398-db.dtb
|
||||
diff --git a/arch/arm/boot/dts/armada-388-helios4.dts b/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
new file mode 100644
|
||||
index 000000000000..705adfa8c680
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
@@ -0,0 +1,313 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
+/*
|
||||
+ * Device Tree file for Helios4
|
||||
+ * based on SolidRun Clearfog revision A1 rev 2.0 (88F6828)
|
||||
+ *
|
||||
+ * Copyright (C) 2017 Aditya Prayoga <aditya@kobol.io>
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+#include "armada-388.dtsi"
|
||||
+#include "armada-38x-solidrun-microsom.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ model = "Helios4";
|
||||
+ compatible = "kobol,helios4", "marvell,armada388",
|
||||
+ "marvell,armada385", "marvell,armada380";
|
||||
+
|
||||
+ memory {
|
||||
+ device_type = "memory";
|
||||
+ reg = <0x00000000 0x80000000>; /* 2 GB */
|
||||
+ };
|
||||
+
|
||||
+ aliases {
|
||||
+ /* So that mvebu u-boot can update the MAC addresses */
|
||||
+ ethernet1 = ð0;
|
||||
+ };
|
||||
+
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
+ reg_12v: regulator-12v {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "power_brick_12V";
|
||||
+ regulator-min-microvolt = <12000000>;
|
||||
+ regulator-max-microvolt = <12000000>;
|
||||
+ regulator-always-on;
|
||||
+ };
|
||||
+
|
||||
+ reg_3p3v: regulator-3p3v {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "3P3V";
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-always-on;
|
||||
+ vin-supply = <®_12v>;
|
||||
+ };
|
||||
+
|
||||
+ reg_5p0v_hdd: regulator-5v-hdd {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "5V_HDD";
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ vin-supply = <®_12v>;
|
||||
+ };
|
||||
+
|
||||
+ reg_5p0v_usb: regulator-5v-usb {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "USB-PWR";
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-always-on;
|
||||
+ enable-active-high;
|
||||
+ gpio = <&expander0 6 GPIO_ACTIVE_HIGH>;
|
||||
+ vin-supply = <®_12v>;
|
||||
+ };
|
||||
+
|
||||
+ system-leds {
|
||||
+ compatible = "gpio-leds";
|
||||
+ status-led {
|
||||
+ label = "helios4:green:status";
|
||||
+ gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
|
||||
+ linux,default-trigger = "heartbeat";
|
||||
+ default-state = "on";
|
||||
+ };
|
||||
+
|
||||
+ fault-led {
|
||||
+ label = "helios4:red:fault";
|
||||
+ gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
|
||||
+ default-state = "keep";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ io-leds {
|
||||
+ compatible = "gpio-leds";
|
||||
+ sata1-led {
|
||||
+ label = "helios4:green:ata1";
|
||||
+ gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
|
||||
+ linux,default-trigger = "ata1";
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+ sata2-led {
|
||||
+ label = "helios4:green:ata2";
|
||||
+ gpios = <&gpio1 18 GPIO_ACTIVE_LOW>;
|
||||
+ linux,default-trigger = "ata2";
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+ sata3-led {
|
||||
+ label = "helios4:green:ata3";
|
||||
+ gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
|
||||
+ linux,default-trigger = "ata3";
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+ sata4-led {
|
||||
+ label = "helios4:green:ata4";
|
||||
+ gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
|
||||
+ linux,default-trigger = "ata4";
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+ usb-led {
|
||||
+ label = "helios4:green:usb";
|
||||
+ gpios = <&gpio1 22 GPIO_ACTIVE_LOW>;
|
||||
+ linux,default-trigger = "usb-host";
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ fan1: j10-pwm {
|
||||
+ compatible = "pwm-fan";
|
||||
+ pwms = <&gpio1 9 40000>; /* Target freq:25 kHz */
|
||||
+ };
|
||||
+
|
||||
+ fan2: j17-pwm {
|
||||
+ compatible = "pwm-fan";
|
||||
+ pwms = <&gpio1 23 40000>; /* Target freq:25 kHz */
|
||||
+ };
|
||||
+
|
||||
+ usb2_phy: usb2-phy {
|
||||
+ compatible = "usb-nop-xceiv";
|
||||
+ vbus-regulator = <®_5p0v_usb>;
|
||||
+ };
|
||||
+
|
||||
+ usb3_phy: usb3-phy {
|
||||
+ compatible = "usb-nop-xceiv";
|
||||
+ };
|
||||
+
|
||||
+ soc {
|
||||
+ internal-regs {
|
||||
+ i2c@11000 {
|
||||
+ clock-frequency = <400000>;
|
||||
+ pinctrl-0 = <&i2c0_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ status = "okay";
|
||||
+
|
||||
+ /*
|
||||
+ * PCA9655 GPIO expander, up to 1MHz clock.
|
||||
+ * 0-Board Revision bit 0 #
|
||||
+ * 1-Board Revision bit 1 #
|
||||
+ * 5-USB3 overcurrent
|
||||
+ * 6-USB3 power
|
||||
+ */
|
||||
+ expander0: gpio-expander@20 {
|
||||
+ /*
|
||||
+ * This is how it should be:
|
||||
+ * compatible = "onnn,pca9655",
|
||||
+ * "nxp,pca9555";
|
||||
+ * but you can't do this because of
|
||||
+ * the way I2C works.
|
||||
+ */
|
||||
+ compatible = "nxp,pca9555";
|
||||
+ gpio-controller;
|
||||
+ #gpio-cells = <2>;
|
||||
+ reg = <0x20>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&pca0_pins>;
|
||||
+ interrupt-parent = <&gpio0>;
|
||||
+ interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
|
||||
+ interrupt-controller;
|
||||
+ #interrupt-cells = <2>;
|
||||
+
|
||||
+ board_rev_bit_0 {
|
||||
+ gpio-hog;
|
||||
+ gpios = <0 GPIO_ACTIVE_LOW>;
|
||||
+ input;
|
||||
+ line-name = "board-rev-0";
|
||||
+ };
|
||||
+ board_rev_bit_1 {
|
||||
+ gpio-hog;
|
||||
+ gpios = <1 GPIO_ACTIVE_LOW>;
|
||||
+ input;
|
||||
+ line-name = "board-rev-1";
|
||||
+ };
|
||||
+ usb3_ilimit {
|
||||
+ gpio-hog;
|
||||
+ gpios = <5 GPIO_ACTIVE_HIGH>;
|
||||
+ input;
|
||||
+ line-name = "usb-overcurrent-status";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ temp_sensor: temp@4c {
|
||||
+ compatible = "ti,lm75";
|
||||
+ reg = <0x4c>;
|
||||
+ vcc-supply = <®_3p3v>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ i2c@11100 {
|
||||
+ /*
|
||||
+ * External I2C Bus for user peripheral
|
||||
+ */
|
||||
+ clock-frequency = <400000>;
|
||||
+ pinctrl-0 = <&helios_i2c1_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+
|
||||
+ sata@a8000 {
|
||||
+ status = "okay";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ sata0: sata-port@0 {
|
||||
+ reg = <0>;
|
||||
+ };
|
||||
+
|
||||
+ sata1: sata-port@1 {
|
||||
+ reg = <1>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ sata@e0000 {
|
||||
+ status = "okay";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ sata2: sata-port@0 {
|
||||
+ reg = <0>;
|
||||
+ };
|
||||
+
|
||||
+ sata3: sata-port@1 {
|
||||
+ reg = <1>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ spi@10680 {
|
||||
+ pinctrl-0 = <&spi1_pins
|
||||
+ µsom_spi1_cs_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+
|
||||
+ sdhci@d8000 {
|
||||
+ bus-width = <4>;
|
||||
+ cd-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
|
||||
+ no-1-8-v;
|
||||
+ pinctrl-0 = <&helios_sdhci_pins
|
||||
+ &helios_sdhci_cd_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ status = "okay";
|
||||
+ vmmc = <®_3p3v>;
|
||||
+ wp-inverted;
|
||||
+ };
|
||||
+
|
||||
+ usb@58000 {
|
||||
+ usb-phy = <&usb2_phy>;
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+
|
||||
+ usb3@f0000 {
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+
|
||||
+ usb3@f8000 {
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+
|
||||
+ pinctrl@18000 {
|
||||
+ pca0_pins: pca0-pins {
|
||||
+ marvell,pins = "mpp23";
|
||||
+ marvell,function = "gpio";
|
||||
+ };
|
||||
+ microsom_phy0_int_pins: microsom-phy0-int-pins {
|
||||
+ marvell,pins = "mpp18";
|
||||
+ marvell,function = "gpio";
|
||||
+ };
|
||||
+ helios_i2c1_pins: i2c1-pins {
|
||||
+ marvell,pins = "mpp26", "mpp27";
|
||||
+ marvell,function = "i2c1";
|
||||
+ };
|
||||
+ helios_sdhci_cd_pins: helios-sdhci-cd-pins {
|
||||
+ marvell,pins = "mpp20";
|
||||
+ marvell,function = "gpio";
|
||||
+ };
|
||||
+ helios_sdhci_pins: helios-sdhci-pins {
|
||||
+ marvell,pins = "mpp21", "mpp28",
|
||||
+ "mpp37", "mpp38",
|
||||
+ "mpp39", "mpp40";
|
||||
+ marvell,function = "sd0";
|
||||
+ };
|
||||
+ helios_led_pins: helios-led-pins {
|
||||
+ marvell,pins = "mpp24", "mpp25",
|
||||
+ "mpp49", "mpp50",
|
||||
+ "mpp52", "mpp53",
|
||||
+ "mpp54";
|
||||
+ marvell,function = "gpio";
|
||||
+ };
|
||||
+ helios_fan_pins: helios-fan-pins {
|
||||
+ marvell,pins = "mpp41", "mpp43",
|
||||
+ "mpp48", "mpp55";
|
||||
+ marvell,function = "gpio";
|
||||
+ };
|
||||
+ microsom_spi1_cs_pins: spi1-cs-pins {
|
||||
+ marvell,pins = "mpp59";
|
||||
+ marvell,function = "spi1";
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
--
|
||||
cgit 1.2-0.3.lf.el7
|
@ -1,376 +1,3 @@
|
||||
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
|
||||
|
@ -1,33 +0,0 @@
|
||||
From 26611da3961755795d58595851eec350e75ae0e7 Mon Sep 17 00:00:00 2001
|
||||
From: Eric Anholt <eric@anholt.net>
|
||||
Date: Mon, 21 May 2018 11:39:07 -0700
|
||||
Subject: arm: bcm2835: Add the PMU to the devicetree.
|
||||
|
||||
This only probes on arm64 so far, but hopefully that driver will be
|
||||
generalized soon.
|
||||
|
||||
Signed-off-by: Eric Anholt <eric@anholt.net>
|
||||
Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
---
|
||||
arch/arm/boot/dts/bcm2837.dtsi | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm2837.dtsi b/arch/arm/boot/dts/bcm2837.dtsi
|
||||
index 7704bb0..beb6c50 100644
|
||||
--- a/arch/arm/boot/dts/bcm2837.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm2837.dtsi
|
||||
@@ -17,6 +17,12 @@
|
||||
};
|
||||
};
|
||||
|
||||
+ arm-pmu {
|
||||
+ compatible = "arm,cortex-a53-pmu";
|
||||
+ interrupt-parent = <&local_intc>;
|
||||
+ interrupts = <9 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ };
|
||||
+
|
||||
timer {
|
||||
compatible = "arm,armv7-timer";
|
||||
interrupt-parent = <&local_intc>;
|
||||
--
|
||||
cgit v1.1
|
1
configs/fedora/generic/CONFIG_ARCH_K3
Normal file
1
configs/fedora/generic/CONFIG_ARCH_K3
Normal file
@ -0,0 +1 @@
|
||||
# CONFIG_ARCH_K3 is not set
|
1
configs/fedora/generic/CONFIG_RESET_QCOM_AOSS
Normal file
1
configs/fedora/generic/CONFIG_RESET_QCOM_AOSS
Normal file
@ -0,0 +1 @@
|
||||
# CONFIG_RESET_QCOM_AOSS is not set
|
1
configs/fedora/generic/CONFIG_SUN50I_DE2_BUS
Normal file
1
configs/fedora/generic/CONFIG_SUN50I_DE2_BUS
Normal file
@ -0,0 +1 @@
|
||||
# CONFIG_SUN50I_DE2_BUS is not set
|
1
configs/fedora/generic/CONFIG_UBIFS_FS_XATTR
Normal file
1
configs/fedora/generic/CONFIG_UBIFS_FS_XATTR
Normal file
@ -0,0 +1 @@
|
||||
CONFIG_UBIFS_FS_XATTR=y
|
1
configs/fedora/generic/arm/aarch64/CONFIG_SUN50I_DE2_BUS
Normal file
1
configs/fedora/generic/arm/aarch64/CONFIG_SUN50I_DE2_BUS
Normal file
@ -0,0 +1 @@
|
||||
CONFIG_SUN50I_DE2_BUS=y
|
2
gitrev
2
gitrev
@ -1 +1 @@
|
||||
815f0ddb346c196018d4d8f8f55c12b83da1de3f
|
||||
33e17876ea4edcd7f5c01efa78e8d02889261abf
|
||||
|
@ -235,6 +235,7 @@ CONFIG_ARCH_HISI=y
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_K3 is not set
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_LAYERSCAPE is not set
|
||||
# CONFIG_ARCH_LG1K is not set
|
||||
@ -4837,6 +4838,7 @@ CONFIG_RESET_CONTROLLER=y
|
||||
CONFIG_RESET_GPIO=y
|
||||
CONFIG_RESET_HISI=y
|
||||
# CONFIG_RESET_HSDK_V1 is not set
|
||||
# CONFIG_RESET_QCOM_AOSS is not set
|
||||
CONFIG_RESET_SIMPLE=y
|
||||
# CONFIG_RESET_TI_SCI is not set
|
||||
# CONFIG_RESET_TI_SYSCON is not set
|
||||
@ -6017,6 +6019,7 @@ CONFIG_ST_UVIS25_SPI=m
|
||||
CONFIG_SUN4I_GPADC=m
|
||||
CONFIG_SUN50I_A64_CCU=y
|
||||
CONFIG_SUN50I_A64_UNSTABLE_TIMER=y
|
||||
CONFIG_SUN50I_DE2_BUS=y
|
||||
CONFIG_SUN50I_H6_CCU=y
|
||||
CONFIG_SUN50I_H6_R_CCU=y
|
||||
# CONFIG_SUN8I_A83T_CCU is not set
|
||||
@ -6363,6 +6366,7 @@ CONFIG_UBIFS_ATIME_SUPPORT=y
|
||||
CONFIG_UBIFS_FS_ENCRYPTION=y
|
||||
CONFIG_UBIFS_FS=m
|
||||
CONFIG_UBIFS_FS_SECURITY=y
|
||||
CONFIG_UBIFS_FS_XATTR=y
|
||||
# CONFIG_UBSAN_ALIGNMENT is not set
|
||||
# CONFIG_UBSAN is not set
|
||||
# CONFIG_UBSAN_SANITIZE_ALL is not set
|
||||
|
@ -235,6 +235,7 @@ CONFIG_ARCH_HISI=y
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_K3 is not set
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_LAYERSCAPE is not set
|
||||
# CONFIG_ARCH_LG1K is not set
|
||||
@ -4814,6 +4815,7 @@ CONFIG_RESET_CONTROLLER=y
|
||||
CONFIG_RESET_GPIO=y
|
||||
CONFIG_RESET_HISI=y
|
||||
# CONFIG_RESET_HSDK_V1 is not set
|
||||
# CONFIG_RESET_QCOM_AOSS is not set
|
||||
CONFIG_RESET_SIMPLE=y
|
||||
# CONFIG_RESET_TI_SCI is not set
|
||||
# CONFIG_RESET_TI_SYSCON is not set
|
||||
@ -5993,6 +5995,7 @@ CONFIG_ST_UVIS25_SPI=m
|
||||
CONFIG_SUN4I_GPADC=m
|
||||
CONFIG_SUN50I_A64_CCU=y
|
||||
CONFIG_SUN50I_A64_UNSTABLE_TIMER=y
|
||||
CONFIG_SUN50I_DE2_BUS=y
|
||||
CONFIG_SUN50I_H6_CCU=y
|
||||
CONFIG_SUN50I_H6_R_CCU=y
|
||||
# CONFIG_SUN8I_A83T_CCU is not set
|
||||
@ -6339,6 +6342,7 @@ CONFIG_UBIFS_ATIME_SUPPORT=y
|
||||
CONFIG_UBIFS_FS_ENCRYPTION=y
|
||||
CONFIG_UBIFS_FS=m
|
||||
CONFIG_UBIFS_FS_SECURITY=y
|
||||
CONFIG_UBIFS_FS_XATTR=y
|
||||
# CONFIG_UBSAN_ALIGNMENT is not set
|
||||
# CONFIG_UBSAN is not set
|
||||
# CONFIG_UBSAN_SANITIZE_ALL is not set
|
||||
|
@ -223,6 +223,7 @@ CONFIG_ARCH_HIGHBANK=y
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_K3 is not set
|
||||
# CONFIG_ARCH_KEYSTONE is not set
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_LPC32XX is not set
|
||||
@ -5134,6 +5135,7 @@ CONFIG_RENESAS_PHY=m
|
||||
CONFIG_RESET_CONTROLLER=y
|
||||
CONFIG_RESET_GPIO=y
|
||||
# CONFIG_RESET_HSDK_V1 is not set
|
||||
# CONFIG_RESET_QCOM_AOSS is not set
|
||||
CONFIG_RESET_SIMPLE=y
|
||||
# CONFIG_RESET_TI_SCI is not set
|
||||
# CONFIG_RESET_TI_SYSCON is not set
|
||||
@ -6448,6 +6450,7 @@ CONFIG_ST_UVIS25_SPI=m
|
||||
CONFIG_SUN4I_A10_CCU=y
|
||||
CONFIG_SUN4I_EMAC=m
|
||||
CONFIG_SUN4I_GPADC=m
|
||||
# CONFIG_SUN50I_DE2_BUS is not set
|
||||
CONFIG_SUN5I_CCU=y
|
||||
CONFIG_SUN6I_A31_CCU=y
|
||||
CONFIG_SUN8I_A23_CCU=y
|
||||
@ -6818,6 +6821,7 @@ CONFIG_UBIFS_ATIME_SUPPORT=y
|
||||
CONFIG_UBIFS_FS_ENCRYPTION=y
|
||||
CONFIG_UBIFS_FS=m
|
||||
CONFIG_UBIFS_FS_SECURITY=y
|
||||
CONFIG_UBIFS_FS_XATTR=y
|
||||
# CONFIG_UBSAN_ALIGNMENT is not set
|
||||
# CONFIG_UBSAN is not set
|
||||
# CONFIG_UBSAN_SANITIZE_ALL is not set
|
||||
|
@ -218,6 +218,7 @@ CONFIG_ARCH_HIGHBANK=y
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_K3 is not set
|
||||
CONFIG_ARCH_KEYSTONE=y
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_LPC32XX is not set
|
||||
@ -4842,6 +4843,7 @@ CONFIG_RENESAS_PHY=m
|
||||
CONFIG_RESET_CONTROLLER=y
|
||||
CONFIG_RESET_GPIO=y
|
||||
# CONFIG_RESET_HSDK_V1 is not set
|
||||
# CONFIG_RESET_QCOM_AOSS is not set
|
||||
CONFIG_RESET_SIMPLE=y
|
||||
# CONFIG_RESET_TI_SCI is not set
|
||||
# CONFIG_RESET_TI_SYSCON is not set
|
||||
@ -6047,6 +6049,7 @@ CONFIG_ST_UVIS25_SPI=m
|
||||
CONFIG_SUN4I_A10_CCU=y
|
||||
CONFIG_SUN4I_EMAC=m
|
||||
CONFIG_SUN4I_GPADC=m
|
||||
# CONFIG_SUN50I_DE2_BUS is not set
|
||||
CONFIG_SUN5I_CCU=y
|
||||
CONFIG_SUN6I_A31_CCU=y
|
||||
CONFIG_SUN8I_A23_CCU=y
|
||||
@ -6401,6 +6404,7 @@ CONFIG_UBIFS_ATIME_SUPPORT=y
|
||||
CONFIG_UBIFS_FS_ENCRYPTION=y
|
||||
CONFIG_UBIFS_FS=m
|
||||
CONFIG_UBIFS_FS_SECURITY=y
|
||||
CONFIG_UBIFS_FS_XATTR=y
|
||||
# CONFIG_UBSAN_ALIGNMENT is not set
|
||||
# CONFIG_UBSAN is not set
|
||||
# CONFIG_UBSAN_SANITIZE_ALL is not set
|
||||
|
@ -218,6 +218,7 @@ CONFIG_ARCH_HIGHBANK=y
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_K3 is not set
|
||||
CONFIG_ARCH_KEYSTONE=y
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_LPC32XX is not set
|
||||
@ -4819,6 +4820,7 @@ CONFIG_RENESAS_PHY=m
|
||||
CONFIG_RESET_CONTROLLER=y
|
||||
CONFIG_RESET_GPIO=y
|
||||
# CONFIG_RESET_HSDK_V1 is not set
|
||||
# CONFIG_RESET_QCOM_AOSS is not set
|
||||
CONFIG_RESET_SIMPLE=y
|
||||
# CONFIG_RESET_TI_SCI is not set
|
||||
# CONFIG_RESET_TI_SYSCON is not set
|
||||
@ -6023,6 +6025,7 @@ CONFIG_ST_UVIS25_SPI=m
|
||||
CONFIG_SUN4I_A10_CCU=y
|
||||
CONFIG_SUN4I_EMAC=m
|
||||
CONFIG_SUN4I_GPADC=m
|
||||
# CONFIG_SUN50I_DE2_BUS is not set
|
||||
CONFIG_SUN5I_CCU=y
|
||||
CONFIG_SUN6I_A31_CCU=y
|
||||
CONFIG_SUN8I_A23_CCU=y
|
||||
@ -6377,6 +6380,7 @@ CONFIG_UBIFS_ATIME_SUPPORT=y
|
||||
CONFIG_UBIFS_FS_ENCRYPTION=y
|
||||
CONFIG_UBIFS_FS=m
|
||||
CONFIG_UBIFS_FS_SECURITY=y
|
||||
CONFIG_UBIFS_FS_XATTR=y
|
||||
# CONFIG_UBSAN_ALIGNMENT is not set
|
||||
# CONFIG_UBSAN is not set
|
||||
# CONFIG_UBSAN_SANITIZE_ALL is not set
|
||||
|
@ -223,6 +223,7 @@ CONFIG_ARCH_HIGHBANK=y
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_K3 is not set
|
||||
# CONFIG_ARCH_KEYSTONE is not set
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_LPC32XX is not set
|
||||
@ -5111,6 +5112,7 @@ CONFIG_RENESAS_PHY=m
|
||||
CONFIG_RESET_CONTROLLER=y
|
||||
CONFIG_RESET_GPIO=y
|
||||
# CONFIG_RESET_HSDK_V1 is not set
|
||||
# CONFIG_RESET_QCOM_AOSS is not set
|
||||
CONFIG_RESET_SIMPLE=y
|
||||
# CONFIG_RESET_TI_SCI is not set
|
||||
# CONFIG_RESET_TI_SYSCON is not set
|
||||
@ -6424,6 +6426,7 @@ CONFIG_ST_UVIS25_SPI=m
|
||||
CONFIG_SUN4I_A10_CCU=y
|
||||
CONFIG_SUN4I_EMAC=m
|
||||
CONFIG_SUN4I_GPADC=m
|
||||
# CONFIG_SUN50I_DE2_BUS is not set
|
||||
CONFIG_SUN5I_CCU=y
|
||||
CONFIG_SUN6I_A31_CCU=y
|
||||
CONFIG_SUN8I_A23_CCU=y
|
||||
@ -6794,6 +6797,7 @@ CONFIG_UBIFS_ATIME_SUPPORT=y
|
||||
CONFIG_UBIFS_FS_ENCRYPTION=y
|
||||
CONFIG_UBIFS_FS=m
|
||||
CONFIG_UBIFS_FS_SECURITY=y
|
||||
CONFIG_UBIFS_FS_XATTR=y
|
||||
# CONFIG_UBSAN_ALIGNMENT is not set
|
||||
# CONFIG_UBSAN is not set
|
||||
# CONFIG_UBSAN_SANITIZE_ALL is not set
|
||||
|
@ -241,6 +241,7 @@ CONFIG_AR5523=m
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_K3 is not set
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_LPC32XX is not set
|
||||
CONFIG_ARCH_MULTIPLATFORM=y
|
||||
@ -4554,6 +4555,7 @@ CONFIG_REMOTEPROC=m
|
||||
CONFIG_RENESAS_PHY=m
|
||||
# CONFIG_RESET_ATTACK_MITIGATION is not set
|
||||
# CONFIG_RESET_HSDK_V1 is not set
|
||||
# CONFIG_RESET_QCOM_AOSS is not set
|
||||
# CONFIG_RESET_TI_SYSCON is not set
|
||||
CONFIG_RETPOLINE=y
|
||||
# CONFIG_RFD77402 is not set
|
||||
@ -5671,6 +5673,7 @@ CONFIG_STRIP_ASM_SYMS=y
|
||||
CONFIG_ST_UVIS25_I2C=m
|
||||
CONFIG_ST_UVIS25=m
|
||||
CONFIG_ST_UVIS25_SPI=m
|
||||
# CONFIG_SUN50I_DE2_BUS is not set
|
||||
CONFIG_SUNDANCE=m
|
||||
# CONFIG_SUNDANCE_MMIO is not set
|
||||
CONFIG_SUNGEM=m
|
||||
@ -5991,6 +5994,7 @@ CONFIG_UBIFS_ATIME_SUPPORT=y
|
||||
CONFIG_UBIFS_FS_ENCRYPTION=y
|
||||
CONFIG_UBIFS_FS=m
|
||||
CONFIG_UBIFS_FS_SECURITY=y
|
||||
CONFIG_UBIFS_FS_XATTR=y
|
||||
# CONFIG_UBSAN_ALIGNMENT is not set
|
||||
# CONFIG_UBSAN is not set
|
||||
# CONFIG_UBSAN_SANITIZE_ALL is not set
|
||||
|
@ -241,6 +241,7 @@ CONFIG_AR5523=m
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_K3 is not set
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_LPC32XX is not set
|
||||
CONFIG_ARCH_MULTIPLATFORM=y
|
||||
@ -4578,6 +4579,7 @@ CONFIG_REMOTEPROC=m
|
||||
CONFIG_RENESAS_PHY=m
|
||||
# CONFIG_RESET_ATTACK_MITIGATION is not set
|
||||
# CONFIG_RESET_HSDK_V1 is not set
|
||||
# CONFIG_RESET_QCOM_AOSS is not set
|
||||
# CONFIG_RESET_TI_SYSCON is not set
|
||||
CONFIG_RETPOLINE=y
|
||||
# CONFIG_RFD77402 is not set
|
||||
@ -5696,6 +5698,7 @@ CONFIG_STRIP_ASM_SYMS=y
|
||||
CONFIG_ST_UVIS25_I2C=m
|
||||
CONFIG_ST_UVIS25=m
|
||||
CONFIG_ST_UVIS25_SPI=m
|
||||
# CONFIG_SUN50I_DE2_BUS is not set
|
||||
CONFIG_SUNDANCE=m
|
||||
# CONFIG_SUNDANCE_MMIO is not set
|
||||
CONFIG_SUNGEM=m
|
||||
@ -6016,6 +6019,7 @@ CONFIG_UBIFS_ATIME_SUPPORT=y
|
||||
CONFIG_UBIFS_FS_ENCRYPTION=y
|
||||
CONFIG_UBIFS_FS=m
|
||||
CONFIG_UBIFS_FS_SECURITY=y
|
||||
CONFIG_UBIFS_FS_XATTR=y
|
||||
# CONFIG_UBSAN_ALIGNMENT is not set
|
||||
# CONFIG_UBSAN is not set
|
||||
# CONFIG_UBSAN_SANITIZE_ALL is not set
|
||||
|
@ -241,6 +241,7 @@ CONFIG_AR5523=m
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_K3 is not set
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_LPC32XX is not set
|
||||
CONFIG_ARCH_MULTIPLATFORM=y
|
||||
@ -4578,6 +4579,7 @@ CONFIG_REMOTEPROC=m
|
||||
CONFIG_RENESAS_PHY=m
|
||||
# CONFIG_RESET_ATTACK_MITIGATION is not set
|
||||
# CONFIG_RESET_HSDK_V1 is not set
|
||||
# CONFIG_RESET_QCOM_AOSS is not set
|
||||
# CONFIG_RESET_TI_SYSCON is not set
|
||||
CONFIG_RETPOLINE=y
|
||||
# CONFIG_RFD77402 is not set
|
||||
@ -5696,6 +5698,7 @@ CONFIG_STRIP_ASM_SYMS=y
|
||||
CONFIG_ST_UVIS25_I2C=m
|
||||
CONFIG_ST_UVIS25=m
|
||||
CONFIG_ST_UVIS25_SPI=m
|
||||
# CONFIG_SUN50I_DE2_BUS is not set
|
||||
CONFIG_SUNDANCE=m
|
||||
# CONFIG_SUNDANCE_MMIO is not set
|
||||
CONFIG_SUNGEM=m
|
||||
@ -6016,6 +6019,7 @@ CONFIG_UBIFS_ATIME_SUPPORT=y
|
||||
CONFIG_UBIFS_FS_ENCRYPTION=y
|
||||
CONFIG_UBIFS_FS=m
|
||||
CONFIG_UBIFS_FS_SECURITY=y
|
||||
CONFIG_UBIFS_FS_XATTR=y
|
||||
# CONFIG_UBSAN_ALIGNMENT is not set
|
||||
# CONFIG_UBSAN is not set
|
||||
# CONFIG_UBSAN_SANITIZE_ALL is not set
|
||||
|
@ -241,6 +241,7 @@ CONFIG_AR5523=m
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_K3 is not set
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_LPC32XX is not set
|
||||
CONFIG_ARCH_MULTIPLATFORM=y
|
||||
@ -4554,6 +4555,7 @@ CONFIG_REMOTEPROC=m
|
||||
CONFIG_RENESAS_PHY=m
|
||||
# CONFIG_RESET_ATTACK_MITIGATION is not set
|
||||
# CONFIG_RESET_HSDK_V1 is not set
|
||||
# CONFIG_RESET_QCOM_AOSS is not set
|
||||
# CONFIG_RESET_TI_SYSCON is not set
|
||||
CONFIG_RETPOLINE=y
|
||||
# CONFIG_RFD77402 is not set
|
||||
@ -5671,6 +5673,7 @@ CONFIG_STRIP_ASM_SYMS=y
|
||||
CONFIG_ST_UVIS25_I2C=m
|
||||
CONFIG_ST_UVIS25=m
|
||||
CONFIG_ST_UVIS25_SPI=m
|
||||
# CONFIG_SUN50I_DE2_BUS is not set
|
||||
CONFIG_SUNDANCE=m
|
||||
# CONFIG_SUNDANCE_MMIO is not set
|
||||
CONFIG_SUNGEM=m
|
||||
@ -5991,6 +5994,7 @@ CONFIG_UBIFS_ATIME_SUPPORT=y
|
||||
CONFIG_UBIFS_FS_ENCRYPTION=y
|
||||
CONFIG_UBIFS_FS=m
|
||||
CONFIG_UBIFS_FS_SECURITY=y
|
||||
CONFIG_UBIFS_FS_XATTR=y
|
||||
# CONFIG_UBSAN_ALIGNMENT is not set
|
||||
# CONFIG_UBSAN is not set
|
||||
# CONFIG_UBSAN_SANITIZE_ALL is not set
|
||||
|
@ -185,6 +185,7 @@ CONFIG_AR5523=m
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_K3 is not set
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_LPC32XX is not set
|
||||
CONFIG_ARCH_MULTIPLATFORM=y
|
||||
@ -4315,6 +4316,7 @@ CONFIG_REMOTEPROC=m
|
||||
CONFIG_RENESAS_PHY=m
|
||||
# CONFIG_RESET_ATTACK_MITIGATION is not set
|
||||
# CONFIG_RESET_HSDK_V1 is not set
|
||||
# CONFIG_RESET_QCOM_AOSS is not set
|
||||
# CONFIG_RESET_TI_SYSCON is not set
|
||||
# CONFIG_RFD77402 is not set
|
||||
# CONFIG_RFD_FTL is not set
|
||||
@ -5382,6 +5384,7 @@ CONFIG_STRIP_ASM_SYMS=y
|
||||
CONFIG_ST_UVIS25_I2C=m
|
||||
CONFIG_ST_UVIS25=m
|
||||
CONFIG_ST_UVIS25_SPI=m
|
||||
# CONFIG_SUN50I_DE2_BUS is not set
|
||||
CONFIG_SUNDANCE=m
|
||||
# CONFIG_SUNDANCE_MMIO is not set
|
||||
CONFIG_SUNGEM=m
|
||||
@ -5689,6 +5692,7 @@ CONFIG_UBIFS_ATIME_SUPPORT=y
|
||||
CONFIG_UBIFS_FS_ENCRYPTION=y
|
||||
CONFIG_UBIFS_FS=m
|
||||
CONFIG_UBIFS_FS_SECURITY=y
|
||||
CONFIG_UBIFS_FS_XATTR=y
|
||||
# CONFIG_UBSAN_ALIGNMENT is not set
|
||||
# CONFIG_UBSAN is not set
|
||||
# CONFIG_UBSAN_SANITIZE_ALL is not set
|
||||
|
@ -185,6 +185,7 @@ CONFIG_AR5523=m
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_K3 is not set
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_LPC32XX is not set
|
||||
CONFIG_ARCH_MULTIPLATFORM=y
|
||||
@ -4289,6 +4290,7 @@ CONFIG_REMOTEPROC=m
|
||||
CONFIG_RENESAS_PHY=m
|
||||
# CONFIG_RESET_ATTACK_MITIGATION is not set
|
||||
# CONFIG_RESET_HSDK_V1 is not set
|
||||
# CONFIG_RESET_QCOM_AOSS is not set
|
||||
# CONFIG_RESET_TI_SYSCON is not set
|
||||
# CONFIG_RFD77402 is not set
|
||||
# CONFIG_RFD_FTL is not set
|
||||
@ -5355,6 +5357,7 @@ CONFIG_STRIP_ASM_SYMS=y
|
||||
CONFIG_ST_UVIS25_I2C=m
|
||||
CONFIG_ST_UVIS25=m
|
||||
CONFIG_ST_UVIS25_SPI=m
|
||||
# CONFIG_SUN50I_DE2_BUS is not set
|
||||
CONFIG_SUNDANCE=m
|
||||
# CONFIG_SUNDANCE_MMIO is not set
|
||||
CONFIG_SUNGEM=m
|
||||
@ -5662,6 +5665,7 @@ CONFIG_UBIFS_ATIME_SUPPORT=y
|
||||
CONFIG_UBIFS_FS_ENCRYPTION=y
|
||||
CONFIG_UBIFS_FS=m
|
||||
CONFIG_UBIFS_FS_SECURITY=y
|
||||
CONFIG_UBIFS_FS_XATTR=y
|
||||
# CONFIG_UBSAN_ALIGNMENT is not set
|
||||
# CONFIG_UBSAN is not set
|
||||
# CONFIG_UBSAN_SANITIZE_ALL is not set
|
||||
|
@ -188,6 +188,7 @@ CONFIG_AR5523=m
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_K3 is not set
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_LPC32XX is not set
|
||||
CONFIG_ARCH_MULTIPLATFORM=y
|
||||
@ -4207,6 +4208,7 @@ CONFIG_RENESAS_PHY=m
|
||||
# CONFIG_RESET_ATTACK_MITIGATION is not set
|
||||
# CONFIG_RESET_CONTROLLER is not set
|
||||
# CONFIG_RESET_HSDK_V1 is not set
|
||||
# CONFIG_RESET_QCOM_AOSS is not set
|
||||
# CONFIG_RESET_TI_SYSCON is not set
|
||||
# CONFIG_RFD77402 is not set
|
||||
# CONFIG_RFD_FTL is not set
|
||||
@ -5277,6 +5279,7 @@ CONFIG_STRIP_ASM_SYMS=y
|
||||
CONFIG_ST_UVIS25_I2C=m
|
||||
CONFIG_ST_UVIS25=m
|
||||
CONFIG_ST_UVIS25_SPI=m
|
||||
# CONFIG_SUN50I_DE2_BUS is not set
|
||||
CONFIG_SUNDANCE=m
|
||||
# CONFIG_SUNDANCE_MMIO is not set
|
||||
CONFIG_SUNGEM=m
|
||||
@ -5587,6 +5590,7 @@ CONFIG_UBIFS_ATIME_SUPPORT=y
|
||||
CONFIG_UBIFS_FS_ENCRYPTION=y
|
||||
CONFIG_UBIFS_FS=m
|
||||
CONFIG_UBIFS_FS_SECURITY=y
|
||||
CONFIG_UBIFS_FS_XATTR=y
|
||||
# CONFIG_UBSAN_ALIGNMENT is not set
|
||||
# CONFIG_UBSAN is not set
|
||||
# CONFIG_UBSAN_SANITIZE_ALL is not set
|
||||
|
@ -188,6 +188,7 @@ CONFIG_AR5523=m
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_K3 is not set
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_LPC32XX is not set
|
||||
CONFIG_ARCH_MULTIPLATFORM=y
|
||||
@ -4181,6 +4182,7 @@ CONFIG_RENESAS_PHY=m
|
||||
# CONFIG_RESET_ATTACK_MITIGATION is not set
|
||||
# CONFIG_RESET_CONTROLLER is not set
|
||||
# CONFIG_RESET_HSDK_V1 is not set
|
||||
# CONFIG_RESET_QCOM_AOSS is not set
|
||||
# CONFIG_RESET_TI_SYSCON is not set
|
||||
# CONFIG_RFD77402 is not set
|
||||
# CONFIG_RFD_FTL is not set
|
||||
@ -5250,6 +5252,7 @@ CONFIG_STRIP_ASM_SYMS=y
|
||||
CONFIG_ST_UVIS25_I2C=m
|
||||
CONFIG_ST_UVIS25=m
|
||||
CONFIG_ST_UVIS25_SPI=m
|
||||
# CONFIG_SUN50I_DE2_BUS is not set
|
||||
CONFIG_SUNDANCE=m
|
||||
# CONFIG_SUNDANCE_MMIO is not set
|
||||
CONFIG_SUNGEM=m
|
||||
@ -5560,6 +5563,7 @@ CONFIG_UBIFS_ATIME_SUPPORT=y
|
||||
CONFIG_UBIFS_FS_ENCRYPTION=y
|
||||
CONFIG_UBIFS_FS=m
|
||||
CONFIG_UBIFS_FS_SECURITY=y
|
||||
CONFIG_UBIFS_FS_XATTR=y
|
||||
# CONFIG_UBSAN_ALIGNMENT is not set
|
||||
# CONFIG_UBSAN is not set
|
||||
# CONFIG_UBSAN_SANITIZE_ALL is not set
|
||||
|
@ -243,6 +243,7 @@ CONFIG_AR5523=m
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_K3 is not set
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_LPC32XX is not set
|
||||
# CONFIG_ARCH_MEMORY_PROBE is not set
|
||||
@ -4620,6 +4621,7 @@ CONFIG_REMOTEPROC=m
|
||||
CONFIG_RENESAS_PHY=m
|
||||
# CONFIG_RESET_ATTACK_MITIGATION is not set
|
||||
# CONFIG_RESET_HSDK_V1 is not set
|
||||
# CONFIG_RESET_QCOM_AOSS is not set
|
||||
# CONFIG_RESET_TI_SYSCON is not set
|
||||
CONFIG_RETPOLINE=y
|
||||
# CONFIG_RFD77402 is not set
|
||||
@ -5746,6 +5748,7 @@ CONFIG_STRIP_ASM_SYMS=y
|
||||
CONFIG_ST_UVIS25_I2C=m
|
||||
CONFIG_ST_UVIS25=m
|
||||
CONFIG_ST_UVIS25_SPI=m
|
||||
# CONFIG_SUN50I_DE2_BUS is not set
|
||||
CONFIG_SUNDANCE=m
|
||||
# CONFIG_SUNDANCE_MMIO is not set
|
||||
CONFIG_SUNGEM=m
|
||||
@ -6066,6 +6069,7 @@ CONFIG_UBIFS_ATIME_SUPPORT=y
|
||||
CONFIG_UBIFS_FS_ENCRYPTION=y
|
||||
CONFIG_UBIFS_FS=m
|
||||
CONFIG_UBIFS_FS_SECURITY=y
|
||||
CONFIG_UBIFS_FS_XATTR=y
|
||||
# CONFIG_UBSAN_ALIGNMENT is not set
|
||||
# CONFIG_UBSAN is not set
|
||||
# CONFIG_UBSAN_SANITIZE_ALL is not set
|
||||
|
@ -243,6 +243,7 @@ CONFIG_AR5523=m
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_K3 is not set
|
||||
# CONFIG_ARCH_KS8695 is not set
|
||||
# CONFIG_ARCH_LPC32XX is not set
|
||||
# CONFIG_ARCH_MEMORY_PROBE is not set
|
||||
@ -4596,6 +4597,7 @@ CONFIG_REMOTEPROC=m
|
||||
CONFIG_RENESAS_PHY=m
|
||||
# CONFIG_RESET_ATTACK_MITIGATION is not set
|
||||
# CONFIG_RESET_HSDK_V1 is not set
|
||||
# CONFIG_RESET_QCOM_AOSS is not set
|
||||
# CONFIG_RESET_TI_SYSCON is not set
|
||||
CONFIG_RETPOLINE=y
|
||||
# CONFIG_RFD77402 is not set
|
||||
@ -5721,6 +5723,7 @@ CONFIG_STRIP_ASM_SYMS=y
|
||||
CONFIG_ST_UVIS25_I2C=m
|
||||
CONFIG_ST_UVIS25=m
|
||||
CONFIG_ST_UVIS25_SPI=m
|
||||
# CONFIG_SUN50I_DE2_BUS is not set
|
||||
CONFIG_SUNDANCE=m
|
||||
# CONFIG_SUNDANCE_MMIO is not set
|
||||
CONFIG_SUNGEM=m
|
||||
@ -6041,6 +6044,7 @@ CONFIG_UBIFS_ATIME_SUPPORT=y
|
||||
CONFIG_UBIFS_FS_ENCRYPTION=y
|
||||
CONFIG_UBIFS_FS=m
|
||||
CONFIG_UBIFS_FS_SECURITY=y
|
||||
CONFIG_UBIFS_FS_XATTR=y
|
||||
# CONFIG_UBSAN_ALIGNMENT is not set
|
||||
# CONFIG_UBSAN is not set
|
||||
# CONFIG_UBSAN_SANITIZE_ALL is not set
|
||||
|
18
kernel.spec
18
kernel.spec
@ -69,7 +69,7 @@ Summary: The Linux kernel
|
||||
# The rc snapshot level
|
||||
%global rcrev 0
|
||||
# The git snapshot level
|
||||
%define gitrev 10
|
||||
%define gitrev 11
|
||||
# Set rpm version accordingly
|
||||
%define rpmversion 4.%{upstream_sublevel}.0
|
||||
%endif
|
||||
@ -579,14 +579,9 @@ Patch305: qcom-msm89xx-fixes.patch
|
||||
# https://patchwork.kernel.org/project/linux-mmc/list/?submitter=71861
|
||||
Patch306: arm-sdhci-esdhc-imx-fixes.patch
|
||||
|
||||
Patch310: arm-dts-armada388-helios4.patch
|
||||
|
||||
# https://www.spinics.net/lists/arm-kernel/msg670137.html
|
||||
Patch311: arm64-ZynqMP-firmware-clock-drivers-core.patch
|
||||
|
||||
# Enabling Patches for the RPi3+
|
||||
Patch330: bcm2837-enable-pmu.patch
|
||||
|
||||
Patch331: bcm2835-cpufreq-add-CPU-frequency-control-driver.patch
|
||||
|
||||
Patch332: bcm2835-hwmon-Add-support-for-RPi-voltage-sensor.patch
|
||||
@ -609,14 +604,6 @@ Patch501: Fix-for-module-sig-verification.patch
|
||||
# rhbz 1431375
|
||||
Patch502: input-rmi4-remove-the-need-for-artifical-IRQ.patch
|
||||
|
||||
# For quiet / flickerfree boot, all queued for merging into 4.19-rc1
|
||||
Patch525: 0005-efi-bgrt-Drop-__initdata-from-bgrt_image_size.patch
|
||||
Patch526: 0006-efifb-Copy-the-ACPI-BGRT-boot-graphics-to-the-frameb.patch
|
||||
Patch527: 0007-efifb-BGRT-Do-not-copy-the-boot-graphics-for-non-nat.patch
|
||||
# Deferred fbcon takeover bugfix, pending upstream
|
||||
Patch529: 0009-fbcon-Only-defer-console-takeover-if-the-current-con.patch
|
||||
Patch530: 0010-fbcon-Do-not-takeover-the-console-from-atomic-contex.patch
|
||||
|
||||
# END OF PATCH DEFINITIONS
|
||||
|
||||
%endif
|
||||
@ -1876,6 +1863,9 @@ fi
|
||||
#
|
||||
#
|
||||
%changelog
|
||||
* Fri Aug 24 2018 Jeremy Cline <jcline@redhat.com> - 4.19.0-0.rc0.git11.1
|
||||
- Linux v4.18-12721-g33e17876ea4e
|
||||
|
||||
* Thu Aug 23 2018 Jeremy Cline <jcline@redhat.com> - 4.19.0-0.rc0.git10.1
|
||||
- Linux v4.18-11682-g815f0ddb346c
|
||||
|
||||
|
2
sources
2
sources
@ -1,2 +1,2 @@
|
||||
SHA512 (linux-4.18.tar.xz) = 950eb85ac743b291afe9f21cd174d823e25f11883ee62cecfbfff8fe8c5672aae707654b1b8f29a133b1f2e3529e63b9f7fba4c45d6dacccc8000b3a9a9ae038
|
||||
SHA512 (patch-4.18-git10.xz) = 19ee46d7e33ba5cb331950a5900fae2a016e4c820085a32d5692ad02465dfb63e9ece769753c7a10d0deff6598ea8ff28f3301caf478b39eef464f7f6c917b46
|
||||
SHA512 (patch-4.18-git11.xz) = 37a693cb76d24243d21edf7ba08142eeae92704566049f85cd87369588cef64d69db39f813ee96a196a6367d34163a7c1f587778175dce10070af9ddced0d488
|
||||
|
Loading…
Reference in New Issue
Block a user