kernel-5.7.0-0.rc1.20200414git8632e9b5645b.1
This is an automated commit generated from the kernel-5.7.0-0.rc1.20200414git8632e9b5645b.1 tag in https://gitlab.com/cki-project/kernel-ark.git
This commit is contained in:
parent
48b75e92d6
commit
0310b312a7
14
.gitignore
vendored
14
.gitignore
vendored
@ -1,16 +1,2 @@
|
||||
clog
|
||||
*.xz
|
||||
*.gz
|
||||
*.bz2
|
||||
*.rpm
|
||||
*.orig
|
||||
*.sign
|
||||
kernel-[2345]*/
|
||||
perf-man-*.tar.gz
|
||||
kernel-headers/
|
||||
kernel-tools/
|
||||
# because of how we manage having two sets of files we copy these
|
||||
# over depending on Fedora vs. RHEL. Just ignore the one that gets
|
||||
# used at runtime.
|
||||
filter-*.sh
|
||||
x509.genkey
|
||||
|
@ -1,25 +0,0 @@
|
||||
From 12cec6680e67d6b4fed9e30cd8c1f13871996cc1 Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Wed, 23 Jan 2019 14:36:37 +0100
|
||||
Subject: [PATCH] Drop that for now
|
||||
|
||||
---
|
||||
Makefile | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index f5b1d0d168e0..5f31107b22d1 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -430,7 +430,7 @@ KBUILD_AFLAGS := -D__ASSEMBLY__ -fno-PIE
|
||||
KBUILD_CFLAGS := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \
|
||||
-fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \
|
||||
-Werror=implicit-function-declaration -Werror=implicit-int \
|
||||
- -Wno-format-security \
|
||||
+ -Wno-format-security -Wno-address-of-packed-member \
|
||||
-std=gnu89
|
||||
KBUILD_CPPFLAGS := -D__KERNEL__
|
||||
KBUILD_AFLAGS_KERNEL :=
|
||||
--
|
||||
2.20.1
|
||||
|
@ -1,28 +0,0 @@
|
||||
From 3f16f4a34eeb22d70afe1bebdd2cfcded179f22a Mon Sep 17 00:00:00 2001
|
||||
From: Jeremy Cline <jcline@redhat.com>
|
||||
Date: Tue, 4 Feb 2020 15:31:19 -0500
|
||||
Subject: [PATCH] Include kvm_asm.h and kvm_arm.h in kvm/arm/trace.h
|
||||
|
||||
commit 0e20f5e25556 maybe broke this.
|
||||
|
||||
Signed-off-by: Jeremy Cline <jcline@redhat.com>
|
||||
---
|
||||
virt/kvm/arm/trace.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/virt/kvm/arm/trace.h b/virt/kvm/arm/trace.h
|
||||
index 204d210d01c2..1c88e60a6b00 100644
|
||||
--- a/virt/kvm/arm/trace.h
|
||||
+++ b/virt/kvm/arm/trace.h
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
#include <kvm/arm_arch_timer.h>
|
||||
#include <linux/tracepoint.h>
|
||||
+#include <asm/kvm_asm.h>
|
||||
+#include <asm/kvm_arm.h>
|
||||
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM kvm
|
||||
--
|
||||
2.24.1
|
||||
|
@ -1,83 +0,0 @@
|
||||
From cef57541cdc079165e9af419ccacd36dce863d3a Mon Sep 17 00:00:00 2001
|
||||
From: Adam Williamson <awilliam@redhat.com>
|
||||
Date: Wed, 19 Feb 2020 17:50:07 +0100
|
||||
Subject: [PATCH] compat_ioctl, cdrom: Replace .ioctl with .compat_ioctl in
|
||||
four appropriate places
|
||||
|
||||
Arnd Bergmann inadvertently typoed these in d320a9551e394 and
|
||||
64cbfa96551a; they seem to be the cause of
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1801353 , invalid
|
||||
SCSI commands when udev tries to query a DVD drive.
|
||||
|
||||
[arnd] Found another instance of the same bug, also introduced
|
||||
in my compat_ioctl series.
|
||||
|
||||
Fixes: d320a9551e39 ("compat_ioctl: scsi: move ioctl handling into drivers")
|
||||
Fixes: 64cbfa96551a ("compat_ioctl: move cdrom commands into cdrom.c")
|
||||
Fixes: c103d6ee69f9 ("compat_ioctl: ide: floppy: add handler")
|
||||
Link: https://bugzilla.redhat.com/show_bug.cgi?id=1801353
|
||||
Bisected-by: Chris Murphy <bugzilla@colorremedies.com>
|
||||
Signed-off-by: Adam Williamson <awilliam@redhat.com>
|
||||
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
||||
---
|
||||
drivers/block/paride/pcd.c | 2 +-
|
||||
drivers/cdrom/gdrom.c | 2 +-
|
||||
drivers/ide/ide-gd.c | 2 +-
|
||||
drivers/scsi/sr.c | 2 +-
|
||||
4 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/block/paride/pcd.c b/drivers/block/paride/pcd.c
|
||||
index 117cfc8cd05a..cda5cf917e9a 100644
|
||||
--- a/drivers/block/paride/pcd.c
|
||||
+++ b/drivers/block/paride/pcd.c
|
||||
@@ -276,7 +276,7 @@ static const struct block_device_operations pcd_bdops = {
|
||||
.release = pcd_block_release,
|
||||
.ioctl = pcd_block_ioctl,
|
||||
#ifdef CONFIG_COMPAT
|
||||
- .ioctl = blkdev_compat_ptr_ioctl,
|
||||
+ .compat_ioctl = blkdev_compat_ptr_ioctl,
|
||||
#endif
|
||||
.check_events = pcd_block_check_events,
|
||||
};
|
||||
diff --git a/drivers/cdrom/gdrom.c b/drivers/cdrom/gdrom.c
|
||||
index 886b2638c730..c51292c2a131 100644
|
||||
--- a/drivers/cdrom/gdrom.c
|
||||
+++ b/drivers/cdrom/gdrom.c
|
||||
@@ -519,7 +519,7 @@ static const struct block_device_operations gdrom_bdops = {
|
||||
.check_events = gdrom_bdops_check_events,
|
||||
.ioctl = gdrom_bdops_ioctl,
|
||||
#ifdef CONFIG_COMPAT
|
||||
- .ioctl = blkdev_compat_ptr_ioctl,
|
||||
+ .compat_ioctl = blkdev_compat_ptr_ioctl,
|
||||
#endif
|
||||
};
|
||||
|
||||
diff --git a/drivers/ide/ide-gd.c b/drivers/ide/ide-gd.c
|
||||
index 1bb99b556393..05c26986637b 100644
|
||||
--- a/drivers/ide/ide-gd.c
|
||||
+++ b/drivers/ide/ide-gd.c
|
||||
@@ -361,7 +361,7 @@ static const struct block_device_operations ide_gd_ops = {
|
||||
.release = ide_gd_release,
|
||||
.ioctl = ide_gd_ioctl,
|
||||
#ifdef CONFIG_COMPAT
|
||||
- .ioctl = ide_gd_compat_ioctl,
|
||||
+ .compat_ioctl = ide_gd_compat_ioctl,
|
||||
#endif
|
||||
.getgeo = ide_gd_getgeo,
|
||||
.check_events = ide_gd_check_events,
|
||||
diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c
|
||||
index 0fbb8fe6e521..e4240e4ae8bb 100644
|
||||
--- a/drivers/scsi/sr.c
|
||||
+++ b/drivers/scsi/sr.c
|
||||
@@ -688,7 +688,7 @@ static const struct block_device_operations sr_bdops =
|
||||
.release = sr_block_release,
|
||||
.ioctl = sr_block_ioctl,
|
||||
#ifdef CONFIG_COMPAT
|
||||
- .ioctl = sr_block_compat_ioctl,
|
||||
+ .compat_ioctl = sr_block_compat_ioctl,
|
||||
#endif
|
||||
.check_events = sr_block_check_events,
|
||||
.revalidate_disk = sr_block_revalidate_disk,
|
||||
--
|
||||
2.24.1
|
||||
|
@ -1,71 +0,0 @@
|
||||
From 14d329da03ea1145efce866b127b10ea6390b5e1 Mon Sep 17 00:00:00 2001
|
||||
From: Murphy Zhou <jencce.kernel@gmail.com>
|
||||
Date: Sun, 29 Sep 2019 17:56:59 +0800
|
||||
Subject: [PATCH] mm/kmemleak: skip late_init if not skip disable
|
||||
|
||||
Now if DEFAULT_OFF set to y, kmemleak_init will start the cleanup_work
|
||||
workqueue. Then late_init call will set kmemleak_initialized to 1, the
|
||||
cleaup workqueue will try to do cleanup, triggering:
|
||||
|
||||
[24.738773] ==================================================================
|
||||
[24.742784] BUG: KASAN: global-out-of-bounds in __kmemleak_do_cleanup+0x166/0x180
|
||||
[24.744144] Key type ._fscrypt registered
|
||||
[24.745680] Read of size 8 at addr ffffffff88746c90 by task kworker/3:1/171
|
||||
[24.745687]
|
||||
[24.745697] CPU: 3 PID: 171 Comm: kworker/3:1 Not tainted 5.3.0-v5.3-12475-gcbafe18 #1
|
||||
[24.745701] Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2011
|
||||
[24.745710] Workqueue: events kmemleak_do_cleanup
|
||||
[24.745717] Call Trace:
|
||||
[24.745736] dump_stack+0x7c/0xc0
|
||||
[24.745755] print_address_description.constprop.4+0x1f/0x300
|
||||
[24.751562] Key type .fscrypt registered
|
||||
[24.754370] __kasan_report.cold.8+0x76/0xb2
|
||||
[24.754388] ? __kmemleak_do_cleanup+0x166/0x180
|
||||
[24.754407] kasan_report+0xe/0x20
|
||||
[24.778543] __kmemleak_do_cleanup+0x166/0x180
|
||||
[24.780795] process_one_work+0x919/0x17d0
|
||||
[24.782929] ? pwq_dec_nr_in_flight+0x320/0x320
|
||||
[24.785092] worker_thread+0x87/0xb40
|
||||
[24.786948] ? __kthread_parkme+0xc3/0x190
|
||||
[24.789217] ? process_one_work+0x17d0/0x17d0
|
||||
[24.791414] kthread+0x333/0x3f0
|
||||
[24.793031] ? kthread_create_worker_on_cpu+0xc0/0xc0
|
||||
[24.795473] ret_from_fork+0x3a/0x50
|
||||
[24.797303]
|
||||
[24.798091] The buggy address belongs to the variable:
|
||||
[24.800634] mem_pool_free_count+0x10/0x40
|
||||
[24.802656]
|
||||
[24.803434] Memory state around the buggy address:
|
||||
[24.805793] ffffffff88746b80: 04 fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
|
||||
[24.809177] ffffffff88746c00: 00 fa fa fa fa fa fa fa 00 00 fa fa fa fa fa fa
|
||||
[24.812407] >ffffffff88746c80: 04 fa fa fa fa fa fa fa 00 00 fa fa fa fa fa fa
|
||||
[24.815638] ^
|
||||
[24.817372] ffffffff88746d00: 00 00 fa fa fa fa fa fa 00 00 00 00 00 00 00 00
|
||||
[24.820740] ffffffff88746d80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
[24.824021] ==================================================================
|
||||
|
||||
Fixes: c5665868183f ("mm: kmemleak: use the memory pool for early allocations")
|
||||
Signed-off-by: Murphy Zhou <jencce.kernel@gmail.com>
|
||||
---
|
||||
mm/kmemleak.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/mm/kmemleak.c b/mm/kmemleak.c
|
||||
index 03a8d84badad..b9baf617fe35 100644
|
||||
--- a/mm/kmemleak.c
|
||||
+++ b/mm/kmemleak.c
|
||||
@@ -1946,6 +1946,11 @@ void __init kmemleak_init(void)
|
||||
*/
|
||||
static int __init kmemleak_late_init(void)
|
||||
{
|
||||
+ if (!kmemleak_skip_disable) {
|
||||
+ kmemleak_disable();
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
kmemleak_initialized = 1;
|
||||
|
||||
debugfs_create_file("kmemleak", 0644, NULL, NULL, &kmemleak_fops);
|
||||
--
|
||||
2.21.0
|
||||
|
@ -1,183 +0,0 @@
|
||||
From c8218e9b3c38fcd36a2d06eec09952a0c6cee9e0 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Mon, 2 Oct 2017 18:22:13 -0400
|
||||
Subject: [PATCH 2/3] Add efi_status_to_str() and rework efi_status_to_err().
|
||||
|
||||
This adds efi_status_to_str() for use when printing efi_status_t
|
||||
messages, and reworks efi_status_to_err() so that the two use a common
|
||||
list of errors.
|
||||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
---
|
||||
include/linux/efi.h | 3 ++
|
||||
drivers/firmware/efi/efi.c | 122 ++++++++++++++++++++++++++++++++++-----------
|
||||
2 files changed, 95 insertions(+), 30 deletions(-)
|
||||
|
||||
diff --git a/include/linux/efi.h b/include/linux/efi.h
|
||||
index 18b16bf5ce1..436b3c93c3d 100644
|
||||
--- a/include/linux/efi.h
|
||||
+++ b/include/linux/efi.h
|
||||
@@ -42,6 +42,8 @@
|
||||
#define EFI_ABORTED (21 | (1UL << (BITS_PER_LONG-1)))
|
||||
#define EFI_SECURITY_VIOLATION (26 | (1UL << (BITS_PER_LONG-1)))
|
||||
|
||||
+#define EFI_IS_ERROR(x) ((x) & (1UL << (BITS_PER_LONG-1)))
|
||||
+
|
||||
typedef unsigned long efi_status_t;
|
||||
typedef u8 efi_bool_t;
|
||||
typedef u16 efi_char16_t; /* UNICODE character */
|
||||
@@ -1183,6 +1185,7 @@ static inline void efi_set_secure_boot(enum efi_secureboot_mode mode) {}
|
||||
#endif
|
||||
|
||||
extern int efi_status_to_err(efi_status_t status);
|
||||
+extern const char *efi_status_to_str(efi_status_t status);
|
||||
|
||||
/*
|
||||
* Variable Attributes
|
||||
diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
|
||||
index 557a47829d0..e8f9c7d84e9 100644
|
||||
--- a/drivers/firmware/efi/efi.c
|
||||
+++ b/drivers/firmware/efi/efi.c
|
||||
@@ -31,6 +31,7 @@
|
||||
#include <linux/ucs2_string.h>
|
||||
#include <linux/memblock.h>
|
||||
#include <linux/security.h>
|
||||
+#include <linux/bsearch.h>
|
||||
|
||||
#include <asm/early_ioremap.h>
|
||||
|
||||
@@ -865,40 +866,101 @@ int efi_mem_type(unsigned long phys_addr)
|
||||
}
|
||||
#endif
|
||||
|
||||
+struct efi_error_code {
|
||||
+ efi_status_t status;
|
||||
+ int errno;
|
||||
+ const char *description;
|
||||
+};
|
||||
+
|
||||
+static const struct efi_error_code efi_error_codes[] = {
|
||||
+ { EFI_SUCCESS, 0, "Success"},
|
||||
+#if 0
|
||||
+ { EFI_LOAD_ERROR, -EPICK_AN_ERRNO, "Load Error"},
|
||||
+#endif
|
||||
+ { EFI_INVALID_PARAMETER, -EINVAL, "Invalid Parameter"},
|
||||
+ { EFI_UNSUPPORTED, -ENOSYS, "Unsupported"},
|
||||
+ { EFI_BAD_BUFFER_SIZE, -ENOSPC, "Bad Buffer Size"},
|
||||
+ { EFI_BUFFER_TOO_SMALL, -ENOSPC, "Buffer Too Small"},
|
||||
+ { EFI_NOT_READY, -EAGAIN, "Not Ready"},
|
||||
+ { EFI_DEVICE_ERROR, -EIO, "Device Error"},
|
||||
+ { EFI_WRITE_PROTECTED, -EROFS, "Write Protected"},
|
||||
+ { EFI_OUT_OF_RESOURCES, -ENOMEM, "Out of Resources"},
|
||||
+#if 0
|
||||
+ { EFI_VOLUME_CORRUPTED, -EPICK_AN_ERRNO, "Volume Corrupt"},
|
||||
+ { EFI_VOLUME_FULL, -EPICK_AN_ERRNO, "Volume Full"},
|
||||
+ { EFI_NO_MEDIA, -EPICK_AN_ERRNO, "No Media"},
|
||||
+ { EFI_MEDIA_CHANGED, -EPICK_AN_ERRNO, "Media changed"},
|
||||
+#endif
|
||||
+ { EFI_NOT_FOUND, -ENOENT, "Not Found"},
|
||||
+#if 0
|
||||
+ { EFI_ACCESS_DENIED, -EPICK_AN_ERRNO, "Access Denied"},
|
||||
+ { EFI_NO_RESPONSE, -EPICK_AN_ERRNO, "No Response"},
|
||||
+ { EFI_NO_MAPPING, -EPICK_AN_ERRNO, "No mapping"},
|
||||
+ { EFI_TIMEOUT, -EPICK_AN_ERRNO, "Time out"},
|
||||
+ { EFI_NOT_STARTED, -EPICK_AN_ERRNO, "Not started"},
|
||||
+ { EFI_ALREADY_STARTED, -EPICK_AN_ERRNO, "Already started"},
|
||||
+#endif
|
||||
+ { EFI_ABORTED, -EINTR, "Aborted"},
|
||||
+#if 0
|
||||
+ { EFI_ICMP_ERROR, -EPICK_AN_ERRNO, "ICMP Error"},
|
||||
+ { EFI_TFTP_ERROR, -EPICK_AN_ERRNO, "TFTP Error"},
|
||||
+ { EFI_PROTOCOL_ERROR, -EPICK_AN_ERRNO, "Protocol Error"},
|
||||
+ { EFI_INCOMPATIBLE_VERSION, -EPICK_AN_ERRNO, "Incompatible Version"},
|
||||
+#endif
|
||||
+ { EFI_SECURITY_VIOLATION, -EACCES, "Security Policy Violation"},
|
||||
+#if 0
|
||||
+ { EFI_CRC_ERROR, -EPICK_AN_ERRNO, "CRC Error"},
|
||||
+ { EFI_END_OF_MEDIA, -EPICK_AN_ERRNO, "End of Media"},
|
||||
+ { EFI_END_OF_FILE, -EPICK_AN_ERRNO, "End of File"},
|
||||
+ { EFI_INVALID_LANGUAGE, -EPICK_AN_ERRNO, "Invalid Languages"},
|
||||
+ { EFI_COMPROMISED_DATA, -EPICK_AN_ERRNO, "Compromised Data"},
|
||||
+
|
||||
+ // warnings
|
||||
+ { EFI_WARN_UNKOWN_GLYPH, -EPICK_AN_ERRNO, "Warning Unknown Glyph"},
|
||||
+ { EFI_WARN_DELETE_FAILURE, -EPICK_AN_ERRNO, "Warning Delete Failure"},
|
||||
+ { EFI_WARN_WRITE_FAILURE, -EPICK_AN_ERRNO, "Warning Write Failure"},
|
||||
+ { EFI_WARN_BUFFER_TOO_SMALL, -EPICK_AN_ERRNO, "Warning Buffer Too Small"},
|
||||
+#endif
|
||||
+};
|
||||
+
|
||||
+static int
|
||||
+efi_status_cmp_bsearch(const void *key, const void *item)
|
||||
+{
|
||||
+ u64 status = (u64)(uintptr_t)key;
|
||||
+ struct efi_error_code *code = (struct efi_error_code *)item;
|
||||
+
|
||||
+ if (status < code->status)
|
||||
+ return -1;
|
||||
+ if (status > code->status)
|
||||
+ return 1;
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
int efi_status_to_err(efi_status_t status)
|
||||
{
|
||||
- int err;
|
||||
+ struct efi_error_code *found;
|
||||
+ size_t num = sizeof(efi_error_codes) / sizeof(struct efi_error_code);
|
||||
|
||||
- switch (status) {
|
||||
- case EFI_SUCCESS:
|
||||
- err = 0;
|
||||
- break;
|
||||
- case EFI_INVALID_PARAMETER:
|
||||
- err = -EINVAL;
|
||||
- break;
|
||||
- case EFI_OUT_OF_RESOURCES:
|
||||
- err = -ENOSPC;
|
||||
- break;
|
||||
- case EFI_DEVICE_ERROR:
|
||||
- err = -EIO;
|
||||
- break;
|
||||
- case EFI_WRITE_PROTECTED:
|
||||
- err = -EROFS;
|
||||
- break;
|
||||
- case EFI_SECURITY_VIOLATION:
|
||||
- err = -EACCES;
|
||||
- break;
|
||||
- case EFI_NOT_FOUND:
|
||||
- err = -ENOENT;
|
||||
- break;
|
||||
- case EFI_ABORTED:
|
||||
- err = -EINTR;
|
||||
- break;
|
||||
- default:
|
||||
- err = -EINVAL;
|
||||
- }
|
||||
+ found = bsearch((void *)(uintptr_t)status, efi_error_codes,
|
||||
+ sizeof(struct efi_error_code), num,
|
||||
+ efi_status_cmp_bsearch);
|
||||
+ if (!found)
|
||||
+ return -EINVAL;
|
||||
+ return found->errno;
|
||||
+}
|
||||
|
||||
- return err;
|
||||
+const char *
|
||||
+efi_status_to_str(efi_status_t status)
|
||||
+{
|
||||
+ struct efi_error_code *found;
|
||||
+ size_t num = sizeof(efi_error_codes) / sizeof(struct efi_error_code);
|
||||
+
|
||||
+ found = bsearch((void *)(uintptr_t)status, efi_error_codes,
|
||||
+ sizeof(struct efi_error_code), num,
|
||||
+ efi_status_cmp_bsearch);
|
||||
+ if (!found)
|
||||
+ return "Unknown error code";
|
||||
+ return found->description;
|
||||
}
|
||||
|
||||
static DEFINE_SPINLOCK(efi_mem_reserve_persistent_lock);
|
||||
--
|
||||
2.15.0
|
||||
|
@ -1,39 +0,0 @@
|
||||
From 46daeedffe98b489014dcdcf14c89438362de7eb Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Mon, 2 Oct 2017 18:18:30 -0400
|
||||
Subject: [PATCH] Make get_cert_list() use efi_status_to_str() to print error
|
||||
messages.
|
||||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
Signed-off-by: Jeremy Cline <jcline@redhat.com>
|
||||
---
|
||||
security/integrity/platform_certs/load_uefi.c | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/security/integrity/platform_certs/load_uefi.c b/security/integrity/platform_certs/load_uefi.c
|
||||
index f0c908241966..4e783f6c6cfb 100644
|
||||
--- a/security/integrity/platform_certs/load_uefi.c
|
||||
+++ b/security/integrity/platform_certs/load_uefi.c
|
||||
@@ -46,7 +46,8 @@ static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid,
|
||||
return NULL;
|
||||
|
||||
if (*status != EFI_BUFFER_TOO_SMALL) {
|
||||
- pr_err("Couldn't get size: 0x%lx\n", *status);
|
||||
+ pr_err("Couldn't get size: %s (0x%lx)\n",
|
||||
+ efi_status_to_str(*status), *status);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -57,7 +58,8 @@ static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid,
|
||||
*status = efi.get_variable(name, guid, NULL, &lsize, db);
|
||||
if (*status != EFI_SUCCESS) {
|
||||
kfree(db);
|
||||
- pr_err("Error reading db var: 0x%lx\n", *status);
|
||||
+ pr_err("Error reading db var: %s (0x%lx)\n",
|
||||
+ efi_status_to_str(*status), *status);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
--
|
||||
2.24.1
|
||||
|
@ -1,64 +0,0 @@
|
||||
From dbdda4277cf0422a9ccb7ea98d0263c3cdbecdf6 Mon Sep 17 00:00:00 2001
|
||||
From: Mark Salter <msalter@redhat.com>
|
||||
Date: Tue, 8 May 2018 21:54:39 -0400
|
||||
Subject: [PATCH] ACPI / irq: Workaround firmware issue on X-Gene based
|
||||
m400
|
||||
|
||||
The ACPI firmware on the xgene-based m400 platorms erroneously
|
||||
describes its UART interrupt as ACPI_PRODUCER rather than
|
||||
ACPI_CONSUMER. This leads to the UART driver being unable to
|
||||
find its interrupt and the kernel unable find a console.
|
||||
Work around this by avoiding the producer/consumer check
|
||||
for X-Gene UARTs.
|
||||
|
||||
Signed-off-by: Mark Salter <msalter@redhat.com>
|
||||
---
|
||||
drivers/acpi/irq.c | 17 +++++++++++++++--
|
||||
1 file changed, 15 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/acpi/irq.c b/drivers/acpi/irq.c
|
||||
index 7c352cba0528..028c1a564cff 100644
|
||||
--- a/drivers/acpi/irq.c
|
||||
+++ b/drivers/acpi/irq.c
|
||||
@@ -129,6 +129,7 @@ struct acpi_irq_parse_one_ctx {
|
||||
unsigned int index;
|
||||
unsigned long *res_flags;
|
||||
struct irq_fwspec *fwspec;
|
||||
+ bool skip_producer_check;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -200,7 +201,8 @@ static acpi_status acpi_irq_parse_one_cb(struct acpi_resource *ares,
|
||||
return AE_CTRL_TERMINATE;
|
||||
case ACPI_RESOURCE_TYPE_EXTENDED_IRQ:
|
||||
eirq = &ares->data.extended_irq;
|
||||
- if (eirq->producer_consumer == ACPI_PRODUCER)
|
||||
+ if (!ctx->skip_producer_check &&
|
||||
+ eirq->producer_consumer == ACPI_PRODUCER)
|
||||
return AE_OK;
|
||||
if (ctx->index >= eirq->interrupt_count) {
|
||||
ctx->index -= eirq->interrupt_count;
|
||||
@@ -235,8 +237,19 @@ static acpi_status acpi_irq_parse_one_cb(struct acpi_resource *ares,
|
||||
static int acpi_irq_parse_one(acpi_handle handle, unsigned int index,
|
||||
struct irq_fwspec *fwspec, unsigned long *flags)
|
||||
{
|
||||
- struct acpi_irq_parse_one_ctx ctx = { -EINVAL, index, flags, fwspec };
|
||||
+ struct acpi_irq_parse_one_ctx ctx = { -EINVAL, index, flags, fwspec, false };
|
||||
|
||||
+ /*
|
||||
+ * Firmware on arm64-based HPE m400 platform incorrectly marks
|
||||
+ * its UART interrupt as ACPI_PRODUCER rather than ACPI_CONSUMER.
|
||||
+ * Don't do the producer/consumer check for that device.
|
||||
+ */
|
||||
+ if (IS_ENABLED(CONFIG_ARM64)) {
|
||||
+ struct acpi_device *adev = acpi_bus_get_acpi_device(handle);
|
||||
+
|
||||
+ if (adev && !strcmp(acpi_device_hid(adev), "APMC0D08"))
|
||||
+ ctx.skip_producer_check = true;
|
||||
+ }
|
||||
acpi_walk_resources(handle, METHOD_NAME__CRS, acpi_irq_parse_one_cb, &ctx);
|
||||
return ctx.rc;
|
||||
}
|
||||
--
|
||||
2.17.0
|
||||
|
@ -1,39 +0,0 @@
|
||||
From 1e494dc5f3140005ff1f17bc06c0c16d6d50d580 Mon Sep 17 00:00:00 2001
|
||||
From: Mark Salter <msalter@redhat.com>
|
||||
Date: Thu, 19 Apr 2018 23:29:47 -0400
|
||||
Subject: [PATCH] ACPI / scan: Fix regression related to X-Gene UARTs
|
||||
|
||||
Commit e361d1f85855 ("ACPI / scan: Fix enumeration for special UART
|
||||
devices") caused a regression with some X-Gene based platforms (Mustang
|
||||
and M400) with invalid DSDT. The DSDT makes it appear that the UART
|
||||
device is also a slave device attached to itself. With the above commit
|
||||
the UART won't be enumerated by ACPI scan (slave serial devices shouldn't
|
||||
be). So check for X-Gene UART device and skip slace device check on it.
|
||||
|
||||
Signed-off-by: Mark Salter <msalter@redhat.com>
|
||||
---
|
||||
drivers/acpi/scan.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
|
||||
index e1b6231cfa1c..542dafac4306 100644
|
||||
--- a/drivers/acpi/scan.c
|
||||
+++ b/drivers/acpi/scan.c
|
||||
@@ -1567,6 +1567,14 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device)
|
||||
if (!acpi_match_device_ids(device, i2c_multi_instantiate_ids))
|
||||
return false;
|
||||
|
||||
+ /*
|
||||
+ * Firmware on some arm64 X-Gene platforms will make the UART
|
||||
+ * device appear as both a UART and a slave of that UART. Just
|
||||
+ * bail out here for X-Gene UARTs.
|
||||
+ */
|
||||
+ if (!strcmp(acpi_device_hid(device), "APMC0D08"))
|
||||
+ return false;
|
||||
+
|
||||
INIT_LIST_HEAD(&resource_list);
|
||||
acpi_dev_get_resources(device, &resource_list,
|
||||
acpi_check_serial_bus_slave,
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,143 +0,0 @@
|
||||
From patchwork Mon Sep 30 05:59:25 2019
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Masahiro Yamada <yamada.masahiro@socionext.com>
|
||||
X-Patchwork-Id: 1132459
|
||||
Return-Path: <SRS0=rUXN=XZ=vger.kernel.org=linux-kernel-owner@kernel.org>
|
||||
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
|
||||
by smtp.lore.kernel.org (Postfix) with ESMTP id DF215C4360C
|
||||
for <linux-kernel@archiver.kernel.org>; Mon, 30 Sep 2019 06:02:56 +0000 (UTC)
|
||||
Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
|
||||
by mail.kernel.org (Postfix) with ESMTP id B032A20815
|
||||
for <linux-kernel@archiver.kernel.org>; Mon, 30 Sep 2019 06:02:56 +0000 (UTC)
|
||||
Authentication-Results: mail.kernel.org;
|
||||
dkim=pass (2048-bit key) header.d=nifty.com header.i=@nifty.com
|
||||
header.b="sVJyT1RO"
|
||||
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
|
||||
id S1729635AbfI3GCz (ORCPT
|
||||
<rfc822;linux-kernel@archiver.kernel.org>);
|
||||
Mon, 30 Sep 2019 02:02:55 -0400
|
||||
Received: from conuserg-10.nifty.com ([210.131.2.77]:65305 "EHLO
|
||||
conuserg-10.nifty.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
|
||||
with ESMTP id S1726121AbfI3GCz (ORCPT
|
||||
<rfc822;linux-kernel@vger.kernel.org>);
|
||||
Mon, 30 Sep 2019 02:02:55 -0400
|
||||
Received: from localhost.localdomain (p14092-ipngnfx01kyoto.kyoto.ocn.ne.jp
|
||||
[153.142.97.92]) (authenticated)
|
||||
by conuserg-10.nifty.com with ESMTP id x8U60ANM011158;
|
||||
Mon, 30 Sep 2019 15:00:10 +0900
|
||||
DKIM-Filter: OpenDKIM Filter v2.10.3 conuserg-10.nifty.com x8U60ANM011158
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com;
|
||||
s=dec2015msa; t=1569823213;
|
||||
bh=31RHoPop8t0h2pCPRnwABR+VMelvfuLJ6qwFWQxvRAk=;
|
||||
h=From:To:Cc:Subject:Date:From;
|
||||
b=sVJyT1ROU+6mzkZMRTb0M214/0QcKkmxRbNgDwh2q1TPJpEjPLOoE+y1jkVndgyce
|
||||
qBfr7v3nYiN5WSsx5xTwPYvHohsWcSS3AWwyVRw8Kxjd0CGrX8l5WcF76SmCvJPLCB
|
||||
wLRZ7C1/Z/zv9v8AVlB2BGhDmSvNQJ9bvuGi42d+JbBXGDfg0HZGGHEj7yDDLBV9nW
|
||||
EZkTGzP6wtIdqgD6DM5Lj4LA7FnlzH8Ocy6yp5agIZ7tdaiVh4E+Xb97KFsLgRin/o
|
||||
kTPCap5ub1TziurVW+1pbzwH+G3TNVeY+yJdYcAQRFzXXOrTa7s5zIJUtObrYVGCA2
|
||||
ctH5uaN1kjx1g==
|
||||
X-Nifty-SrcIP: [153.142.97.92]
|
||||
From: Masahiro Yamada <yamada.masahiro@socionext.com>
|
||||
To: linux-arm-kernel@lists.infradead.org,
|
||||
Russell King <rmk+kernel@armlinux.org.uk>
|
||||
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
|
||||
Olof Johansson <olof@lixom.net>, Arnd Bergmann <arnd@arndb.de>,
|
||||
Nick Desaulniers <ndesaulniers@google.com>,
|
||||
Nicolas Saenz Julienne <nsaenzjulienne@suse.de>,
|
||||
Masahiro Yamada <yamada.masahiro@socionext.com>,
|
||||
Julien Thierry <julien.thierry.kdev@gmail.com>,
|
||||
Russell King <linux@armlinux.org.uk>,
|
||||
Stefan Agner <stefan@agner.ch>,
|
||||
Thomas Gleixner <tglx@linutronix.de>,
|
||||
Vincent Whitchurch <vincent.whitchurch@axis.com>,
|
||||
linux-kernel@vger.kernel.org
|
||||
Subject: [PATCH] ARM: fix __get_user_check() in case uaccess_* calls are not
|
||||
inlined
|
||||
Date: Mon, 30 Sep 2019 14:59:25 +0900
|
||||
Message-Id: <20190930055925.25842-1-yamada.masahiro@socionext.com>
|
||||
X-Mailer: git-send-email 2.17.1
|
||||
Sender: linux-kernel-owner@vger.kernel.org
|
||||
Precedence: bulk
|
||||
List-ID: <linux-kernel.vger.kernel.org>
|
||||
X-Mailing-List: linux-kernel@vger.kernel.org
|
||||
|
||||
KernelCI reports that bcm2835_defconfig is no longer booting since
|
||||
commit ac7c3e4ff401 ("compiler: enable CONFIG_OPTIMIZE_INLINING
|
||||
forcibly"):
|
||||
|
||||
https://lkml.org/lkml/2019/9/26/825
|
||||
|
||||
I also received a regression report from Nicolas Saenz Julienne:
|
||||
|
||||
https://lkml.org/lkml/2019/9/27/263
|
||||
|
||||
This problem has cropped up on arch/arm/config/bcm2835_defconfig
|
||||
because it enables CONFIG_CC_OPTIMIZE_FOR_SIZE. The compiler tends
|
||||
to prefer not inlining functions with -Os. I was able to reproduce
|
||||
it with other boards and defconfig files by manually enabling
|
||||
CONFIG_CC_OPTIMIZE_FOR_SIZE.
|
||||
|
||||
The __get_user_check() specifically uses r0, r1, r2 registers.
|
||||
So, uaccess_save_and_enable() and uaccess_restore() must be inlined
|
||||
in order to avoid those registers being overwritten in the callees.
|
||||
|
||||
Prior to commit 9012d011660e ("compiler: allow all arches to enable
|
||||
CONFIG_OPTIMIZE_INLINING"), the 'inline' marker was always enough for
|
||||
inlining functions, except on x86.
|
||||
|
||||
Since that commit, all architectures can enable CONFIG_OPTIMIZE_INLINING.
|
||||
So, __always_inline is now the only guaranteed way of forcible inlining.
|
||||
|
||||
I want to keep as much compiler's freedom as possible about the inlining
|
||||
decision. So, I changed the function call order instead of adding
|
||||
__always_inline around.
|
||||
|
||||
Call uaccess_save_and_enable() before assigning the __p ("r0"), and
|
||||
uaccess_restore() after evacuating the __e ("r0").
|
||||
|
||||
Fixes: 9012d011660e ("compiler: allow all arches to enable CONFIG_OPTIMIZE_INLINING")
|
||||
Reported-by: "kernelci.org bot" <bot@kernelci.org>
|
||||
Reported-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
|
||||
Acked-by: Arnd Bergmann <arnd@arndb.de>
|
||||
Tested-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||
Tested-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com>
|
||||
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
|
||||
---
|
||||
|
||||
arch/arm/include/asm/uaccess.h | 8 +++++---
|
||||
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
|
||||
index 303248e5b990..559f252d7e3c 100644
|
||||
--- a/arch/arm/include/asm/uaccess.h
|
||||
+++ b/arch/arm/include/asm/uaccess.h
|
||||
@@ -191,11 +191,12 @@ extern int __get_user_64t_4(void *);
|
||||
#define __get_user_check(x, p) \
|
||||
({ \
|
||||
unsigned long __limit = current_thread_info()->addr_limit - 1; \
|
||||
+ unsigned int __ua_flags = uaccess_save_and_enable(); \
|
||||
register typeof(*(p)) __user *__p asm("r0") = (p); \
|
||||
register __inttype(x) __r2 asm("r2"); \
|
||||
register unsigned long __l asm("r1") = __limit; \
|
||||
register int __e asm("r0"); \
|
||||
- unsigned int __ua_flags = uaccess_save_and_enable(); \
|
||||
+ unsigned int __err; \
|
||||
switch (sizeof(*(__p))) { \
|
||||
case 1: \
|
||||
if (sizeof((x)) >= 8) \
|
||||
@@ -223,9 +224,10 @@ extern int __get_user_64t_4(void *);
|
||||
break; \
|
||||
default: __e = __get_user_bad(); break; \
|
||||
} \
|
||||
- uaccess_restore(__ua_flags); \
|
||||
+ __err = __e; \
|
||||
x = (typeof(*(p))) __r2; \
|
||||
- __e; \
|
||||
+ uaccess_restore(__ua_flags); \
|
||||
+ __err; \
|
||||
})
|
||||
|
||||
#define get_user(x, p) \
|
@ -1,28 +0,0 @@
|
||||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Thu, 3 May 2012 20:27:11 +0100
|
||||
Subject: [PATCH] ARM: tegra: usb no reset
|
||||
|
||||
Patch for disconnect issues with storage attached to a
|
||||
tegra-ehci controller
|
||||
---
|
||||
drivers/usb/core/hub.c | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
|
||||
index 43cb2f2e3b43..7f838ec11c81 100644
|
||||
--- a/drivers/usb/core/hub.c
|
||||
+++ b/drivers/usb/core/hub.c
|
||||
@@ -4996,6 +4996,13 @@ static void hub_event(struct work_struct *work)
|
||||
(u16) hub->change_bits[0],
|
||||
(u16) hub->event_bits[0]);
|
||||
|
||||
+ /* Don't disconnect USB-SATA on TrimSlice */
|
||||
+ if (strcmp(dev_name(hdev->bus->controller), "tegra-ehci.0") == 0) {
|
||||
+ if ((hdev->state == 7) && (hub->change_bits[0] == 0) &&
|
||||
+ (hub->event_bits[0] == 0x2))
|
||||
+ hub->event_bits[0] = 0;
|
||||
+ }
|
||||
+
|
||||
/* Lock the device, then check to see if we were
|
||||
* disconnected while waiting for the lock to succeed. */
|
||||
usb_lock_device(hdev);
|
File diff suppressed because it is too large
Load Diff
@ -1,43 +0,0 @@
|
||||
From 70cecc97a4fc1667472224558a50dd7b6c42c789 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Holmes <robeholmes@gmail.com>
|
||||
Date: Tue, 23 Apr 2019 07:39:29 +0000
|
||||
Subject: [PATCH] KEYS: Make use of platform keyring for module signature
|
||||
verify
|
||||
|
||||
This patch completes commit 278311e417be ("kexec, KEYS: Make use of
|
||||
platform keyring for signature verify") which, while adding the
|
||||
platform keyring for bzImage verification, neglected to also add
|
||||
this keyring for module verification.
|
||||
|
||||
As such, kernel modules signed with keys from the MokList variable
|
||||
were not successfully verified.
|
||||
|
||||
Signed-off-by: Robert Holmes <robeholmes@gmail.com>
|
||||
Signed-off-by: Jeremy Cline <jcline@redhat.com>
|
||||
---
|
||||
kernel/module_signing.c | 16 ++++++++++++----
|
||||
1 file changed, 12 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/kernel/module_signing.c b/kernel/module_signing.c
|
||||
index 9d9fc678c91d..84ad75a53c83 100644
|
||||
--- a/kernel/module_signing.c
|
||||
+++ b/kernel/module_signing.c
|
||||
@@ -38,8 +38,15 @@ int mod_verify_sig(const void *mod, struct load_info *info)
|
||||
modlen -= sig_len + sizeof(ms);
|
||||
info->len = modlen;
|
||||
|
||||
- return verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len,
|
||||
+ ret = verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len,
|
||||
VERIFY_USE_SECONDARY_KEYRING,
|
||||
VERIFYING_MODULE_SIGNATURE,
|
||||
NULL, NULL);
|
||||
+ if (ret == -ENOKEY && IS_ENABLED(CONFIG_INTEGRITY_PLATFORM_KEYRING)) {
|
||||
+ ret = verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len,
|
||||
+ VERIFY_USE_PLATFORM_KEYRING,
|
||||
+ VERIFYING_MODULE_SIGNATURE,
|
||||
+ NULL, NULL);
|
||||
+ }
|
||||
+ return ret;
|
||||
}
|
||||
--
|
||||
2.21.0
|
50
Makefile
50
Makefile
@ -1,50 +0,0 @@
|
||||
# Makefile for source rpm: kernel
|
||||
SPECFILE := kernel.spec
|
||||
|
||||
# we only check the .sign signatures
|
||||
UPSTREAM_CHECKS = sign
|
||||
|
||||
.PHONY: help
|
||||
help:
|
||||
%:
|
||||
@echo "Try fedpkg $@ or something like that"
|
||||
@exit 1
|
||||
|
||||
prep: config-files
|
||||
fedpkg -v prep
|
||||
|
||||
noarch:
|
||||
fedpkg -v local --arch=noarch
|
||||
|
||||
# 'make local' also needs to build the noarch firmware package
|
||||
local:
|
||||
fedpkg -v local
|
||||
|
||||
extremedebug:
|
||||
@perl -pi -e 's/# CONFIG_DEBUG_PAGEALLOC is not set/CONFIG_DEBUG_PAGEALLOC=y/' config-nodebug
|
||||
|
||||
config-files:
|
||||
@./build_configs.sh
|
||||
|
||||
debug:
|
||||
@perl -pi -e 's/^%define debugbuildsenabled 1/%define debugbuildsenabled 0/' kernel.spec
|
||||
@rpmdev-bumpspec -c "Reenable debugging options." kernel.spec
|
||||
|
||||
release:
|
||||
@perl -pi -e 's/^%define debugbuildsenabled 0/%define debugbuildsenabled 1/' kernel.spec
|
||||
@rpmdev-bumpspec -c "Disable debugging options." kernel.spec
|
||||
|
||||
nodebuginfo:
|
||||
@perl -pi -e 's/^%define with_debuginfo %\{\?_without_debuginfo: 0\} %\{\?\!_without_debuginfo: 1\}/%define with_debuginfo %\{\?_without_debuginfo: 0\} %\{\?\!_without_debuginfo: 0\}/' kernel.spec
|
||||
|
||||
nodebug: release
|
||||
@perl -pi -e 's/^%define debugbuildsenabled 1/%define debugbuildsenabled 0/' kernel.spec
|
||||
|
||||
ifeq ($(MAKECMDGOALS),me a sandwich)
|
||||
.PHONY: me a sandwich
|
||||
me a:
|
||||
@:
|
||||
|
||||
sandwich:
|
||||
@[ `id -u` -ne 0 ] && echo "What? Make it yourself." || echo Okay.
|
||||
endif
|
78
README.txt
78
README.txt
@ -1,78 +0,0 @@
|
||||
|
||||
Kernel package tips & tricks.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The kernel is one of the more complicated packages in the distro, and
|
||||
for the newcomer, some of the voodoo in the spec file can be somewhat scary.
|
||||
This file attempts to document some of the magic.
|
||||
|
||||
|
||||
Speeding up make prep
|
||||
---------------------
|
||||
The kernel is nearly 500MB of source code, and as such, 'make prep'
|
||||
takes a while. The spec file employs some trickery so that repeated
|
||||
invocations of make prep don't take as long. Ordinarily the %prep
|
||||
phase of a package will delete the tree it is about to untar/patch.
|
||||
The kernel %prep keeps around an unpatched version of the tree,
|
||||
and makes a symlink tree clone of that clean tree and than applies
|
||||
the patches listed in the spec to the symlink tree.
|
||||
This makes a huge difference if you're doing multiple make preps a day.
|
||||
As an added bonus, doing a diff between the clean tree and the symlink
|
||||
tree is slightly faster than it would be doing two proper copies of the tree.
|
||||
|
||||
|
||||
Build logs.
|
||||
-----------
|
||||
There's a convenience helper script in scripts/grab-logs.sh
|
||||
that will grab the build logs from koji for the kernel version reported
|
||||
by make verrel
|
||||
|
||||
|
||||
Config hierarchy.
|
||||
-----------------
|
||||
Instead of having to maintain a config file for every arch variant we build on,
|
||||
the kernel spec uses a nested system of configs. Each option CONFIG_FOO is
|
||||
represented by a single file named CONFIG_FOO which contains the state (=y, =m,
|
||||
=n). These options are collected in the folder base-generic. Architecture
|
||||
specific options are set in nested folders. An option set in a nested folder
|
||||
will override the same option set in one of the higher levels.
|
||||
|
||||
The individual CONFIG_FOO files only exist in the pkg-git repository. The RPM
|
||||
contains kernel-foo.config files which are the result of combining all the
|
||||
CONFIG_FOO files. The files are combined by running build_configs.sh. This
|
||||
script _must_ be run each time one of the options is changed.
|
||||
|
||||
Example flow:
|
||||
|
||||
# Enable the option CONFIG_ABC123 as a module for all arches
|
||||
echo "CONFIG_ABC123=m" > configs/base-generic/CONFIG_ABC1234
|
||||
# enable the option CONFIG_XYZ321 for only x86
|
||||
echo "# CONFIG_XYZ321 is not set" > configs/base-generic/CONFIG_XYZ321
|
||||
echo "CONFIG_XYZ321=m" > configs/base-generic/x86/CONFIG_XYZ321
|
||||
# regenerate the combined config files
|
||||
./build_configs.sh
|
||||
|
||||
The file config_generation gives a listing of what folders go into each
|
||||
config file generated.
|
||||
|
||||
Debug options.
|
||||
--------------
|
||||
This is a little complicated, as the purpose & meaning of this changes
|
||||
depending on where we are in the release cycle.
|
||||
If we are building for a current stable release, 'make release' has
|
||||
typically been run already, which sets up the following..
|
||||
- Two builds occur, a 'kernel' and a 'kernel-debug' flavor.
|
||||
- kernel-debug will get various heavyweight debugging options like
|
||||
lockdep etc turned on.
|
||||
|
||||
If we are building for rawhide, 'make debug' has been run, which changes
|
||||
the status quo to:
|
||||
- We only build one kernel 'kernel'
|
||||
- The debug options are always turned on.
|
||||
This is done to increase coverage testing, as not many people actually
|
||||
run kernel-debug.
|
||||
|
||||
The debug options are managed in a separate heierarchy under base-debug. This
|
||||
works in a similar manner to base-generic. More deeply nested folders, again,
|
||||
override options. The file config_generation gives a listing of what folders
|
||||
go into each config file generated.
|
@ -1,671 +0,0 @@
|
||||
From patchwork Tue Mar 24 18:28:09 2020
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||
X-Patchwork-Id: 11456187
|
||||
Return-Path:
|
||||
<SRS0=7UWt=5J=lists.infradead.org=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@kernel.org>
|
||||
Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org
|
||||
[172.30.200.123])
|
||||
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 884BD1667
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Tue, 24 Mar 2020 18:29:06 +0000 (UTC)
|
||||
Received: from bombadil.infradead.org (bombadil.infradead.org
|
||||
[198.137.202.133])
|
||||
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
|
||||
(No client certificate requested)
|
||||
by mail.kernel.org (Postfix) with ESMTPS id 64FF0206F6
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Tue, 24 Mar 2020 18:29:06 +0000 (UTC)
|
||||
Authentication-Results: mail.kernel.org;
|
||||
dkim=pass (2048-bit key) header.d=lists.infradead.org
|
||||
header.i=@lists.infradead.org header.b="G3ed3Qzw"
|
||||
DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 64FF0206F6
|
||||
Authentication-Results: mail.kernel.org;
|
||||
dmarc=none (p=none dis=none) header.from=suse.de
|
||||
Authentication-Results: mail.kernel.org;
|
||||
spf=none
|
||||
smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
|
||||
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
|
||||
d=lists.infradead.org; s=bombadil.20170209; h=Sender:
|
||||
Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:
|
||||
List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:
|
||||
Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description:
|
||||
Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:
|
||||
List-Owner; bh=ZW8pFtwlUj3q7GZJotB4Rgjtfp9gMy+l74jJQcTab0w=; b=G3ed3QzwnvX3MD
|
||||
lHn7XDGcdKtGCuuX/Xhmoz/5j7Rgw1hOz3+8tGJaH+BigLM7Kfms9kB2c3chHrDwTH5SW0LzlU8el
|
||||
hxpbcJnVFy3VLdCMUrvQUXY0SmOcoSSN3NK032HxlqAKSa5HPE3dTBWheiUGKlZ6c3A9dGItYzD6I
|
||||
M4WO+9b0wHM1KMMrsyVo51ysdAFEXtSym1xNN+pW/tE9ak+/bFHxMW1XcMNrVwo9R43U5JSvmcC0M
|
||||
OKBYNAYFpFWx3n3wvAaFQkBEkmH3QmPBd0aiE8UTGk6CY0VHwjbVcE7u7daksOPLrZgsRgqmLRatE
|
||||
98WbgEKpzDu7mgvLn5zw==;
|
||||
Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org)
|
||||
by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
|
||||
id 1jGoIP-0002bD-LX; Tue, 24 Mar 2020 18:29:01 +0000
|
||||
Received: from mx2.suse.de ([195.135.220.15])
|
||||
by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
|
||||
id 1jGoHq-00024O-PS; Tue, 24 Mar 2020 18:28:29 +0000
|
||||
X-Virus-Scanned: by amavisd-new at test-mx.suse.de
|
||||
Received: from relay2.suse.de (unknown [195.135.220.254])
|
||||
by mx2.suse.de (Postfix) with ESMTP id 4A537ABD1;
|
||||
Tue, 24 Mar 2020 18:28:22 +0000 (UTC)
|
||||
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||
To: linux-kernel@vger.kernel.org, Florian Fainelli <f.fainelli@gmail.com>,
|
||||
Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
|
||||
bcm-kernel-feedback-list@broadcom.com,
|
||||
Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||
Subject: [PATCH v6 1/4] soc: bcm2835: Sync xHCI reset firmware property with
|
||||
downstream
|
||||
Date: Tue, 24 Mar 2020 19:28:09 +0100
|
||||
Message-Id: <20200324182812.20420-2-nsaenzjulienne@suse.de>
|
||||
X-Mailer: git-send-email 2.25.1
|
||||
In-Reply-To: <20200324182812.20420-1-nsaenzjulienne@suse.de>
|
||||
References: <20200324182812.20420-1-nsaenzjulienne@suse.de>
|
||||
MIME-Version: 1.0
|
||||
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
|
||||
X-CRM114-CacheID: sfid-20200324_112826_965603_11D899C2
|
||||
X-CRM114-Status: GOOD ( 13.71 )
|
||||
X-Spam-Score: -2.3 (--)
|
||||
X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary:
|
||||
Content analysis details: (-2.3 points)
|
||||
pts rule name description
|
||||
---- ----------------------
|
||||
--------------------------------------------------
|
||||
0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3)
|
||||
[195.135.220.15 listed in wl.mailspike.net]
|
||||
-2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/,
|
||||
medium trust [195.135.220.15 listed in list.dnswl.org]
|
||||
-0.0 SPF_PASS SPF: sender matches SPF record
|
||||
0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
|
||||
0.0 RCVD_IN_MSPIKE_WL Mailspike good senders
|
||||
X-BeenThere: linux-arm-kernel@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.29
|
||||
Precedence: list
|
||||
List-Id: <linux-arm-kernel.lists.infradead.org>
|
||||
List-Unsubscribe:
|
||||
<http://lists.infradead.org/mailman/options/linux-arm-kernel>,
|
||||
<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
|
||||
List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
|
||||
List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
|
||||
List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
|
||||
List-Subscribe:
|
||||
<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
|
||||
<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
|
||||
Cc: tim.gover@raspberrypi.org, sergei.shtylyov@cogentembedded.com,
|
||||
gregkh@linuxfoundation.org, linux-usb@vger.kernel.org,
|
||||
linux-rpi-kernel@lists.infradead.org, linux-pci@vger.kernel.org,
|
||||
linux-arm-kernel@lists.infradead.org, wahrenst@gmx.net
|
||||
Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
|
||||
Errors-To:
|
||||
linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
|
||||
|
||||
The property is needed in order to trigger VL805's firmware load. Note
|
||||
that there is a gap between the property introduced and the previous
|
||||
one. This is also the case downstream.
|
||||
|
||||
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
---
|
||||
include/soc/bcm2835/raspberrypi-firmware.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h
|
||||
index 7800e12ee042..cc9cdbc66403 100644
|
||||
--- a/include/soc/bcm2835/raspberrypi-firmware.h
|
||||
+++ b/include/soc/bcm2835/raspberrypi-firmware.h
|
||||
@@ -90,7 +90,7 @@ enum rpi_firmware_property_tag {
|
||||
RPI_FIRMWARE_SET_PERIPH_REG = 0x00038045,
|
||||
RPI_FIRMWARE_GET_POE_HAT_VAL = 0x00030049,
|
||||
RPI_FIRMWARE_SET_POE_HAT_VAL = 0x00030050,
|
||||
-
|
||||
+ RPI_FIRMWARE_NOTIFY_XHCI_RESET = 0x00030058,
|
||||
|
||||
/* Dispmanx TAGS */
|
||||
RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 0x00040001,
|
||||
|
||||
From patchwork Tue Mar 24 18:28:10 2020
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||
X-Patchwork-Id: 11456191
|
||||
Return-Path:
|
||||
<SRS0=7UWt=5J=lists.infradead.org=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@kernel.org>
|
||||
Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org
|
||||
[172.30.200.123])
|
||||
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C4D571731
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Tue, 24 Mar 2020 18:29:30 +0000 (UTC)
|
||||
Received: from bombadil.infradead.org (bombadil.infradead.org
|
||||
[198.137.202.133])
|
||||
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
|
||||
(No client certificate requested)
|
||||
by mail.kernel.org (Postfix) with ESMTPS id 9A787206F6
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Tue, 24 Mar 2020 18:29:30 +0000 (UTC)
|
||||
Authentication-Results: mail.kernel.org;
|
||||
dkim=pass (2048-bit key) header.d=lists.infradead.org
|
||||
header.i=@lists.infradead.org header.b="Z5B/3JRW"
|
||||
DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9A787206F6
|
||||
Authentication-Results: mail.kernel.org;
|
||||
dmarc=none (p=none dis=none) header.from=suse.de
|
||||
Authentication-Results: mail.kernel.org;
|
||||
spf=none
|
||||
smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
|
||||
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
|
||||
d=lists.infradead.org; s=bombadil.20170209; h=Sender:
|
||||
Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:
|
||||
List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:
|
||||
Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description:
|
||||
Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:
|
||||
List-Owner; bh=kAIknZ2RVw6gB9CaOcG4KQjgkdNyrtcLcfH5XAGtITo=; b=Z5B/3JRWWCVYHI
|
||||
AsxnYFEFit0NnrRvZDbi0ktp8wUbVrztmKRPQWvfaWSlelJEKdEpJhHItnpicKfR5JhfHFsPt3V3X
|
||||
i29DtdYSOr/cjW/qeoakzXY0b1ApjrrK3MWjX/k0k9SVqGwkq6KT3T3qok969KInPAe0ERZ9bYkP1
|
||||
P2Jj1QT0QtCfcd0PsSjn4riMP09KNZVuviLm2bcg3Cr78qfIq6gDHHoS1nqPzdEt4gG+i/s66lTFY
|
||||
Dd3vPgItuRBvzgAjWdT4Bvx41u82KONuYDshYftzUZX7pxh76o4PwtPoPt/A4hJT0pZZe9MB6pQlM
|
||||
JwbBVC2fhM1afv00diOw==;
|
||||
Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org)
|
||||
by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
|
||||
id 1jGoIm-00032a-5v; Tue, 24 Mar 2020 18:29:24 +0000
|
||||
Received: from mx2.suse.de ([195.135.220.15])
|
||||
by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
|
||||
id 1jGoHq-00024W-PL; Tue, 24 Mar 2020 18:28:29 +0000
|
||||
X-Virus-Scanned: by amavisd-new at test-mx.suse.de
|
||||
Received: from relay2.suse.de (unknown [195.135.220.254])
|
||||
by mx2.suse.de (Postfix) with ESMTP id 3F0CFABE7;
|
||||
Tue, 24 Mar 2020 18:28:23 +0000 (UTC)
|
||||
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||
To: linux-kernel@vger.kernel.org,
|
||||
Nicolas Saenz Julienne <nsaenzjulienne@suse.de>,
|
||||
Florian Fainelli <f.fainelli@gmail.com>, Ray Jui <rjui@broadcom.com>,
|
||||
Scott Branden <sbranden@broadcom.com>,
|
||||
bcm-kernel-feedback-list@broadcom.com
|
||||
Subject: [PATCH v6 2/4] firmware: raspberrypi: Introduce vl805 init routine
|
||||
Date: Tue, 24 Mar 2020 19:28:10 +0100
|
||||
Message-Id: <20200324182812.20420-3-nsaenzjulienne@suse.de>
|
||||
X-Mailer: git-send-email 2.25.1
|
||||
In-Reply-To: <20200324182812.20420-1-nsaenzjulienne@suse.de>
|
||||
References: <20200324182812.20420-1-nsaenzjulienne@suse.de>
|
||||
MIME-Version: 1.0
|
||||
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
|
||||
X-CRM114-CacheID: sfid-20200324_112827_110873_06144E1C
|
||||
X-CRM114-Status: GOOD ( 15.67 )
|
||||
X-Spam-Score: -2.3 (--)
|
||||
X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary:
|
||||
Content analysis details: (-2.3 points)
|
||||
pts rule name description
|
||||
---- ----------------------
|
||||
--------------------------------------------------
|
||||
0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3)
|
||||
[195.135.220.15 listed in wl.mailspike.net]
|
||||
-2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/,
|
||||
medium trust [195.135.220.15 listed in list.dnswl.org]
|
||||
-0.0 SPF_PASS SPF: sender matches SPF record
|
||||
0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
|
||||
0.0 RCVD_IN_MSPIKE_WL Mailspike good senders
|
||||
X-BeenThere: linux-arm-kernel@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.29
|
||||
Precedence: list
|
||||
List-Id: <linux-arm-kernel.lists.infradead.org>
|
||||
List-Unsubscribe:
|
||||
<http://lists.infradead.org/mailman/options/linux-arm-kernel>,
|
||||
<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
|
||||
List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
|
||||
List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
|
||||
List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
|
||||
List-Subscribe:
|
||||
<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
|
||||
<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
|
||||
Cc: tim.gover@raspberrypi.org, sergei.shtylyov@cogentembedded.com,
|
||||
gregkh@linuxfoundation.org, linux-usb@vger.kernel.org,
|
||||
linux-rpi-kernel@lists.infradead.org, linux-pci@vger.kernel.org,
|
||||
linux-arm-kernel@lists.infradead.org, wahrenst@gmx.net
|
||||
Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
|
||||
Errors-To:
|
||||
linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
|
||||
|
||||
On the Raspberry Pi 4, after a PCI reset, VL805's firmware may either be
|
||||
loaded directly from an EEPROM or, if not present, by the SoC's
|
||||
VideCore. The function informs VideCore that VL805 was just reset, or
|
||||
requests for a probe defer.
|
||||
|
||||
Based on Tim Gover's downstream implementation.
|
||||
|
||||
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
---
|
||||
Changes since v4:
|
||||
- Inline function definition when RASPBERRYPI_FIRMWARE is not defined
|
||||
|
||||
Changes since v1:
|
||||
- Move include into .c file and add forward declaration to .h
|
||||
|
||||
drivers/firmware/raspberrypi.c | 38 ++++++++++++++++++++++
|
||||
include/soc/bcm2835/raspberrypi-firmware.h | 7 ++++
|
||||
2 files changed, 45 insertions(+)
|
||||
|
||||
diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c
|
||||
index da26a584dca0..cbb495aff6a0 100644
|
||||
--- a/drivers/firmware/raspberrypi.c
|
||||
+++ b/drivers/firmware/raspberrypi.c
|
||||
@@ -12,6 +12,7 @@
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/slab.h>
|
||||
+#include <linux/pci.h>
|
||||
#include <soc/bcm2835/raspberrypi-firmware.h>
|
||||
|
||||
#define MBOX_MSG(chan, data28) (((data28) & ~0xf) | ((chan) & 0xf))
|
||||
@@ -286,6 +287,43 @@ struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(rpi_firmware_get);
|
||||
|
||||
+/*
|
||||
+ * On the Raspberry Pi 4, after a PCI reset, VL805's firmware may either be
|
||||
+ * loaded directly from an EEPROM or, if not present, by the SoC's VideCore.
|
||||
+ * Inform VideCore that VL805 was just reset, or defer xhci's probe if not yet
|
||||
+ * joinable trough the mailbox interface.
|
||||
+ */
|
||||
+int rpi_firmware_init_vl805(struct pci_dev *pdev)
|
||||
+{
|
||||
+ struct device_node *fw_np;
|
||||
+ struct rpi_firmware *fw;
|
||||
+ u32 dev_addr;
|
||||
+ int ret;
|
||||
+
|
||||
+ fw_np = of_find_compatible_node(NULL, NULL,
|
||||
+ "raspberrypi,bcm2835-firmware");
|
||||
+ if (!fw_np)
|
||||
+ return 0;
|
||||
+
|
||||
+ fw = rpi_firmware_get(fw_np);
|
||||
+ of_node_put(fw_np);
|
||||
+ if (!fw)
|
||||
+ return -EPROBE_DEFER;
|
||||
+
|
||||
+ dev_addr = pdev->bus->number << 20 | PCI_SLOT(pdev->devfn) << 15 |
|
||||
+ PCI_FUNC(pdev->devfn) << 12;
|
||||
+
|
||||
+ ret = rpi_firmware_property(fw, RPI_FIRMWARE_NOTIFY_XHCI_RESET,
|
||||
+ &dev_addr, sizeof(dev_addr));
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ dev_dbg(&pdev->dev, "loaded Raspberry Pi's VL805 firmware\n");
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+EXPORT_SYMBOL_GPL(rpi_firmware_init_vl805);
|
||||
+
|
||||
static const struct of_device_id rpi_firmware_of_match[] = {
|
||||
{ .compatible = "raspberrypi,bcm2835-firmware", },
|
||||
{},
|
||||
diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h
|
||||
index cc9cdbc66403..3025aca3c358 100644
|
||||
--- a/include/soc/bcm2835/raspberrypi-firmware.h
|
||||
+++ b/include/soc/bcm2835/raspberrypi-firmware.h
|
||||
@@ -10,6 +10,7 @@
|
||||
#include <linux/of_device.h>
|
||||
|
||||
struct rpi_firmware;
|
||||
+struct pci_dev;
|
||||
|
||||
enum rpi_firmware_property_status {
|
||||
RPI_FIRMWARE_STATUS_REQUEST = 0,
|
||||
@@ -141,6 +142,7 @@ int rpi_firmware_property(struct rpi_firmware *fw,
|
||||
int rpi_firmware_property_list(struct rpi_firmware *fw,
|
||||
void *data, size_t tag_size);
|
||||
struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node);
|
||||
+int rpi_firmware_init_vl805(struct pci_dev *pdev);
|
||||
#else
|
||||
static inline int rpi_firmware_property(struct rpi_firmware *fw, u32 tag,
|
||||
void *data, size_t len)
|
||||
@@ -158,6 +160,11 @@ static inline struct rpi_firmware *rpi_firmware_get(struct device_node *firmware
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
+
|
||||
+static inline int rpi_firmware_init_vl805(struct pci_dev *pdev)
|
||||
+{
|
||||
+ return 0;
|
||||
+}
|
||||
#endif
|
||||
|
||||
#endif /* __SOC_RASPBERRY_FIRMWARE_H__ */
|
||||
|
||||
From patchwork Tue Mar 24 18:28:11 2020
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||
X-Patchwork-Id: 11456189
|
||||
Return-Path:
|
||||
<SRS0=7UWt=5J=lists.infradead.org=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@kernel.org>
|
||||
Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org
|
||||
[172.30.200.123])
|
||||
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 168CB1667
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Tue, 24 Mar 2020 18:29:15 +0000 (UTC)
|
||||
Received: from bombadil.infradead.org (bombadil.infradead.org
|
||||
[198.137.202.133])
|
||||
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
|
||||
(No client certificate requested)
|
||||
by mail.kernel.org (Postfix) with ESMTPS id EAB942076E
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Tue, 24 Mar 2020 18:29:14 +0000 (UTC)
|
||||
Authentication-Results: mail.kernel.org;
|
||||
dkim=pass (2048-bit key) header.d=lists.infradead.org
|
||||
header.i=@lists.infradead.org header.b="BOwwgdOE"
|
||||
DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EAB942076E
|
||||
Authentication-Results: mail.kernel.org;
|
||||
dmarc=none (p=none dis=none) header.from=suse.de
|
||||
Authentication-Results: mail.kernel.org;
|
||||
spf=none
|
||||
smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
|
||||
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
|
||||
d=lists.infradead.org; s=bombadil.20170209; h=Sender:
|
||||
Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:
|
||||
List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:
|
||||
Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description:
|
||||
Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:
|
||||
List-Owner; bh=CLmK04T+baw5jWu/lH2cJ3fygso/fqFgoMOSigkpvRw=; b=BOwwgdOEAmbVoa
|
||||
/8AtILxDfcKBVhbig0LKPFd94roUQzY/SylcBG5jWceT90PE3BxYgomfaBA6U41LW9Xe5LZsfylId
|
||||
/IP3RNq34yRDWPXo3WWkLFYEtwJB60SWZlD8BG+ApGeUJ9z6vXTL9h3K9ThLwhFycZOkSxtDMicCG
|
||||
vkP4ErkYnvASxQ021+lq/VxFgdnvtKcw2OE+ghhRHgOn8dc+/dJHCp8vi33Qrk9DFhKSGnSX/A5vz
|
||||
E84/rlt964N9kXLE2npw9hNrj6DdrQozcB9YTAEL9S/krTUmOLI/iWS/DZEUA50xy9wVBqD9Bm78x
|
||||
TS0oeyfH49HaUmd10Y6w==;
|
||||
Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org)
|
||||
by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
|
||||
id 1jGoIa-0002oW-NS; Tue, 24 Mar 2020 18:29:12 +0000
|
||||
Received: from mx2.suse.de ([195.135.220.15])
|
||||
by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
|
||||
id 1jGoHr-00024Z-2w; Tue, 24 Mar 2020 18:28:29 +0000
|
||||
X-Virus-Scanned: by amavisd-new at test-mx.suse.de
|
||||
Received: from relay2.suse.de (unknown [195.135.220.254])
|
||||
by mx2.suse.de (Postfix) with ESMTP id 1A1A0ABF4;
|
||||
Tue, 24 Mar 2020 18:28:24 +0000 (UTC)
|
||||
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||
To: linux-kernel@vger.kernel.org,
|
||||
Nicolas Saenz Julienne <nsaenzjulienne@suse.de>,
|
||||
Florian Fainelli <f.fainelli@gmail.com>,
|
||||
bcm-kernel-feedback-list@broadcom.com,
|
||||
Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
|
||||
Andrew Murray <amurray@thegoodpenguin.co.uk>
|
||||
Subject: [PATCH v6 3/4] PCI: brcmstb: Wait for Raspberry Pi's firmware when
|
||||
present
|
||||
Date: Tue, 24 Mar 2020 19:28:11 +0100
|
||||
Message-Id: <20200324182812.20420-4-nsaenzjulienne@suse.de>
|
||||
X-Mailer: git-send-email 2.25.1
|
||||
In-Reply-To: <20200324182812.20420-1-nsaenzjulienne@suse.de>
|
||||
References: <20200324182812.20420-1-nsaenzjulienne@suse.de>
|
||||
MIME-Version: 1.0
|
||||
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
|
||||
X-CRM114-CacheID: sfid-20200324_112827_267470_0540B982
|
||||
X-CRM114-Status: GOOD ( 12.13 )
|
||||
X-Spam-Score: -2.3 (--)
|
||||
X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary:
|
||||
Content analysis details: (-2.3 points)
|
||||
pts rule name description
|
||||
---- ----------------------
|
||||
--------------------------------------------------
|
||||
0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3)
|
||||
[195.135.220.15 listed in wl.mailspike.net]
|
||||
-2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/,
|
||||
medium trust [195.135.220.15 listed in list.dnswl.org]
|
||||
-0.0 SPF_PASS SPF: sender matches SPF record
|
||||
0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
|
||||
0.0 RCVD_IN_MSPIKE_WL Mailspike good senders
|
||||
X-BeenThere: linux-arm-kernel@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.29
|
||||
Precedence: list
|
||||
List-Id: <linux-arm-kernel.lists.infradead.org>
|
||||
List-Unsubscribe:
|
||||
<http://lists.infradead.org/mailman/options/linux-arm-kernel>,
|
||||
<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
|
||||
List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
|
||||
List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
|
||||
List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
|
||||
List-Subscribe:
|
||||
<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
|
||||
<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
|
||||
Cc: tim.gover@raspberrypi.org, sergei.shtylyov@cogentembedded.com,
|
||||
gregkh@linuxfoundation.org, linux-usb@vger.kernel.org,
|
||||
linux-rpi-kernel@lists.infradead.org, linux-pci@vger.kernel.org,
|
||||
Bjorn Helgaas <bhelgaas@google.com>, linux-arm-kernel@lists.infradead.org,
|
||||
wahrenst@gmx.net
|
||||
Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
|
||||
Errors-To:
|
||||
linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
|
||||
|
||||
xHCI's PCI fixup, run at the end of pcie-brcmstb's probe, depends on
|
||||
RPi4's VideoCore firmware interface to be up and running. It's possible
|
||||
for both initializations to race, so make sure it's available prior to
|
||||
starting.
|
||||
|
||||
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
---
|
||||
drivers/pci/controller/pcie-brcmstb.c | 15 +++++++++++++++
|
||||
1 file changed, 15 insertions(+)
|
||||
|
||||
diff --git a/drivers/pci/controller/pcie-brcmstb.c b/drivers/pci/controller/pcie-brcmstb.c
|
||||
index 3a10e678c7f4..a3d3070a5832 100644
|
||||
--- a/drivers/pci/controller/pcie-brcmstb.c
|
||||
+++ b/drivers/pci/controller/pcie-brcmstb.c
|
||||
@@ -28,6 +28,8 @@
|
||||
#include <linux/string.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
+#include <soc/bcm2835/raspberrypi-firmware.h>
|
||||
+
|
||||
#include "../pci.h"
|
||||
|
||||
/* BRCM_PCIE_CAP_REGS - Offset for the mandatory capability config regs */
|
||||
@@ -917,11 +919,24 @@ static int brcm_pcie_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct device_node *np = pdev->dev.of_node, *msi_np;
|
||||
struct pci_host_bridge *bridge;
|
||||
+ struct device_node *fw_np;
|
||||
struct brcm_pcie *pcie;
|
||||
struct pci_bus *child;
|
||||
struct resource *res;
|
||||
int ret;
|
||||
|
||||
+ /*
|
||||
+ * We have to wait for the Raspberry Pi's firmware interface to be up
|
||||
+ * as some PCI fixups depend on it.
|
||||
+ */
|
||||
+ fw_np = of_find_compatible_node(NULL, NULL,
|
||||
+ "raspberrypi,bcm2835-firmware");
|
||||
+ if (fw_np && !rpi_firmware_get(fw_np)) {
|
||||
+ of_node_put(fw_np);
|
||||
+ return -EPROBE_DEFER;
|
||||
+ }
|
||||
+ of_node_put(fw_np);
|
||||
+
|
||||
bridge = devm_pci_alloc_host_bridge(&pdev->dev, sizeof(*pcie));
|
||||
if (!bridge)
|
||||
return -ENOMEM;
|
||||
|
||||
From patchwork Tue Mar 24 18:28:12 2020
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||
X-Patchwork-Id: 11456185
|
||||
Return-Path:
|
||||
<SRS0=7UWt=5J=lists.infradead.org=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@kernel.org>
|
||||
Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org
|
||||
[172.30.200.123])
|
||||
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AD453174A
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Tue, 24 Mar 2020 18:28:41 +0000 (UTC)
|
||||
Received: from bombadil.infradead.org (bombadil.infradead.org
|
||||
[198.137.202.133])
|
||||
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
|
||||
(No client certificate requested)
|
||||
by mail.kernel.org (Postfix) with ESMTPS id 8690720789
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Tue, 24 Mar 2020 18:28:41 +0000 (UTC)
|
||||
Authentication-Results: mail.kernel.org;
|
||||
dkim=pass (2048-bit key) header.d=lists.infradead.org
|
||||
header.i=@lists.infradead.org header.b="BSDoMdbd"
|
||||
DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8690720789
|
||||
Authentication-Results: mail.kernel.org;
|
||||
dmarc=none (p=none dis=none) header.from=suse.de
|
||||
Authentication-Results: mail.kernel.org;
|
||||
spf=none
|
||||
smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
|
||||
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
|
||||
d=lists.infradead.org; s=bombadil.20170209; h=Sender:
|
||||
Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:
|
||||
List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:
|
||||
Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description:
|
||||
Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:
|
||||
List-Owner; bh=YaBoM78lqEEmZOW4u4cO0fQ+Qpc7vocOU6aRT/EpQsk=; b=BSDoMdbdXfJNCB
|
||||
Ccoti2K8Qk9NgAlOnVt60cLhw66HCbJPwZn1v08f/rr05ZIoPMToFkJt5krqew7Vd+jlZnzMxf8MC
|
||||
lBfOqOev9hIjbyu19c646LbpbqVrtrtm9vmy6Lvd2GGuQuvybpM0RHDvc2wzv8a3fejGMgKStaQ/3
|
||||
Efne01FoiZvWBedWpTdsoGJbFzfSb4ua/8JT2Ki04i9itY4oTZs9itKK1Taqe3WfNDphluuFcmdGx
|
||||
nNxQK/PkA6XCdpJHxaCz3DtyZj/2NhAqd8roXn+PUt5SG00Tfc6auERZQPLtTinW6m9ZaUkBhjJQ0
|
||||
GHUMyyLHvQ583h1ty9ow==;
|
||||
Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org)
|
||||
by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
|
||||
id 1jGoI3-0002Hl-Jz; Tue, 24 Mar 2020 18:28:39 +0000
|
||||
Received: from mx2.suse.de ([195.135.220.15])
|
||||
by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
|
||||
id 1jGoHq-00024d-Jc; Tue, 24 Mar 2020 18:28:28 +0000
|
||||
X-Virus-Scanned: by amavisd-new at test-mx.suse.de
|
||||
Received: from relay2.suse.de (unknown [195.135.220.254])
|
||||
by mx2.suse.de (Postfix) with ESMTP id EE53FABF6;
|
||||
Tue, 24 Mar 2020 18:28:24 +0000 (UTC)
|
||||
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||
To: linux-kernel@vger.kernel.org,
|
||||
Mathias Nyman <mathias.nyman@intel.com>
|
||||
Subject: [PATCH v6 4/4] USB: pci-quirks: Add Raspberry Pi 4 quirk
|
||||
Date: Tue, 24 Mar 2020 19:28:12 +0100
|
||||
Message-Id: <20200324182812.20420-5-nsaenzjulienne@suse.de>
|
||||
X-Mailer: git-send-email 2.25.1
|
||||
In-Reply-To: <20200324182812.20420-1-nsaenzjulienne@suse.de>
|
||||
References: <20200324182812.20420-1-nsaenzjulienne@suse.de>
|
||||
MIME-Version: 1.0
|
||||
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
|
||||
X-CRM114-CacheID: sfid-20200324_112826_791336_2ABB38D1
|
||||
X-CRM114-Status: GOOD ( 16.34 )
|
||||
X-Spam-Score: -2.3 (--)
|
||||
X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary:
|
||||
Content analysis details: (-2.3 points)
|
||||
pts rule name description
|
||||
---- ----------------------
|
||||
--------------------------------------------------
|
||||
0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3)
|
||||
[195.135.220.15 listed in wl.mailspike.net]
|
||||
-2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/,
|
||||
medium trust [195.135.220.15 listed in list.dnswl.org]
|
||||
-0.0 SPF_PASS SPF: sender matches SPF record
|
||||
0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
|
||||
0.0 RCVD_IN_MSPIKE_WL Mailspike good senders
|
||||
X-BeenThere: linux-arm-kernel@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.29
|
||||
Precedence: list
|
||||
List-Id: <linux-arm-kernel.lists.infradead.org>
|
||||
List-Unsubscribe:
|
||||
<http://lists.infradead.org/mailman/options/linux-arm-kernel>,
|
||||
<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
|
||||
List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
|
||||
List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
|
||||
List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
|
||||
List-Subscribe:
|
||||
<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
|
||||
<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
|
||||
Cc: f.fainelli@gmail.com, sergei.shtylyov@cogentembedded.com,
|
||||
gregkh@linuxfoundation.org, linux-usb@vger.kernel.org,
|
||||
Nicolas Saenz Julienne <nsaenzjulienne@suse.de>, tim.gover@raspberrypi.org,
|
||||
bcm-kernel-feedback-list@broadcom.com, linux-rpi-kernel@lists.infradead.org,
|
||||
linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
|
||||
wahrenst@gmx.net
|
||||
Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
|
||||
Errors-To:
|
||||
linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
|
||||
|
||||
On the Raspberry Pi 4, after a PCI reset, VL805's firmware may either be
|
||||
loaded directly from an EEPROM or, if not present, by the SoC's
|
||||
VideCore. Inform VideCore that VL805 was just reset.
|
||||
|
||||
Also, as this creates a dependency between USB_PCI and VideoCore's
|
||||
firmware interface. Since USB_PCI can't be set as a module neither this
|
||||
should.
|
||||
|
||||
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
||||
---
|
||||
|
||||
Changes since v5:
|
||||
- Fix Kconfig issue with allmodconfig
|
||||
|
||||
Changes since v4:
|
||||
- Do not split up error message
|
||||
|
||||
Changes since v3:
|
||||
- Add more complete error message
|
||||
|
||||
Changes since v1:
|
||||
- Make RASPBERRYPI_FIRMWARE dependent on this quirk to make sure it
|
||||
gets compiled when needed.
|
||||
|
||||
drivers/firmware/Kconfig | 3 ++-
|
||||
drivers/usb/host/pci-quirks.c | 16 ++++++++++++++++
|
||||
2 files changed, 18 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig
|
||||
index ea869addc89b..78ab2ad6d3f0 100644
|
||||
--- a/drivers/firmware/Kconfig
|
||||
+++ b/drivers/firmware/Kconfig
|
||||
@@ -178,8 +178,9 @@ config ISCSI_IBFT
|
||||
Otherwise, say N.
|
||||
|
||||
config RASPBERRYPI_FIRMWARE
|
||||
- tristate "Raspberry Pi Firmware Driver"
|
||||
+ bool "Raspberry Pi Firmware Driver"
|
||||
depends on BCM2835_MBOX
|
||||
+ default USB_PCI
|
||||
help
|
||||
This option enables support for communicating with the firmware on the
|
||||
Raspberry Pi.
|
||||
diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c
|
||||
index beb2efa71341..0dc34668bb2a 100644
|
||||
--- a/drivers/usb/host/pci-quirks.c
|
||||
+++ b/drivers/usb/host/pci-quirks.c
|
||||
@@ -16,6 +16,9 @@
|
||||
#include <linux/export.h>
|
||||
#include <linux/acpi.h>
|
||||
#include <linux/dmi.h>
|
||||
+
|
||||
+#include <soc/bcm2835/raspberrypi-firmware.h>
|
||||
+
|
||||
#include "pci-quirks.h"
|
||||
#include "xhci-ext-caps.h"
|
||||
|
||||
@@ -1243,11 +1246,24 @@ static void quirk_usb_handoff_xhci(struct pci_dev *pdev)
|
||||
|
||||
static void quirk_usb_early_handoff(struct pci_dev *pdev)
|
||||
{
|
||||
+ int ret;
|
||||
+
|
||||
/* Skip Netlogic mips SoC's internal PCI USB controller.
|
||||
* This device does not need/support EHCI/OHCI handoff
|
||||
*/
|
||||
if (pdev->vendor == 0x184e) /* vendor Netlogic */
|
||||
return;
|
||||
+
|
||||
+ if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) {
|
||||
+ ret = rpi_firmware_init_vl805(pdev);
|
||||
+ if (ret) {
|
||||
+ /* Firmware might be outdated, or something failed */
|
||||
+ dev_warn(&pdev->dev,
|
||||
+ "Failed to load VL805's firmware: %d. Will continue to attempt to work, but bad things might happen. You should fix this...\n",
|
||||
+ ret);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (pdev->class != PCI_CLASS_SERIAL_USB_UHCI &&
|
||||
pdev->class != PCI_CLASS_SERIAL_USB_OHCI &&
|
||||
pdev->class != PCI_CLASS_SERIAL_USB_EHCI &&
|
@ -1,31 +0,0 @@
|
||||
From 19908e5fe3e63ed2d39f0a8a9135f35fd428d766 Mon Sep 17 00:00:00 2001
|
||||
From: Jon Masters <jcm@redhat.com>
|
||||
Date: Thu, 18 Jul 2019 15:47:26 -0400
|
||||
Subject: [PATCH] arm: make CONFIG_HIGHPTE optional without CONFIG_EXPERT
|
||||
|
||||
We will use this to force CONFIG_HIGHPTE off on LPAE for now
|
||||
|
||||
Signed-off-by: Jon Masters <jcm@redhat.com>
|
||||
---
|
||||
arch/arm/Kconfig | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
|
||||
index 2bf1ce39a96d..e792b3e60095 100644
|
||||
--- a/arch/arm/Kconfig
|
||||
+++ b/arch/arm/Kconfig
|
||||
@@ -1644,9 +1644,9 @@ config HIGHMEM
|
||||
If unsure, say n.
|
||||
|
||||
config HIGHPTE
|
||||
- bool "Allocate 2nd-level pagetables from highmem" if EXPERT
|
||||
+ bool "Allocate 2nd-level pagetables from highmem"
|
||||
depends on HIGHMEM
|
||||
- default y
|
||||
+ default n
|
||||
help
|
||||
The VM uses one page of physical memory for each page table.
|
||||
For systems with a lot of processes, this can use a lot of
|
||||
--
|
||||
2.17.2
|
||||
|
@ -1,29 +0,0 @@
|
||||
From 487ff7b0e537506057960a0c2d9482d19f2acf4a Mon Sep 17 00:00:00 2001
|
||||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Wed, 26 Apr 2017 11:12:54 +0100
|
||||
Subject: [PATCH] Add option of 13 for FORCE_MAX_ZONEORDER
|
||||
|
||||
This is a hack, but it's what the other distros currently use
|
||||
for aarch64 with 4K pages so we'll do the same while upstream
|
||||
decides what the best outcome is (which isn't this).
|
||||
|
||||
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
|
||||
---
|
||||
arch/arm64/Kconfig | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
|
||||
index 3741859765cf..deec9511f1d3 100644
|
||||
--- a/arch/arm64/Kconfig
|
||||
+++ b/arch/arm64/Kconfig
|
||||
@@ -751,6 +751,7 @@ config XEN
|
||||
config FORCE_MAX_ZONEORDER
|
||||
int
|
||||
default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE)
|
||||
+ default "13" if (ARCH_THUNDER && !ARM64_64K_PAGES)
|
||||
default "12" if (ARM64_16K_PAGES && TRANSPARENT_HUGEPAGE)
|
||||
default "11"
|
||||
help
|
||||
--
|
||||
2.12.2
|
||||
|
@ -1,320 +0,0 @@
|
||||
From patchwork Wed Mar 25 20:16:03 2020
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Thierry Reding <thierry.reding@gmail.com>
|
||||
X-Patchwork-Id: 1261638
|
||||
Return-Path: <linux-tegra-owner@vger.kernel.org>
|
||||
X-Original-To: incoming@patchwork.ozlabs.org
|
||||
Delivered-To: patchwork-incoming@bilbo.ozlabs.org
|
||||
Authentication-Results: ozlabs.org; spf=none (no SPF record)
|
||||
smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67;
|
||||
helo=vger.kernel.org;
|
||||
envelope-from=linux-tegra-owner@vger.kernel.org;
|
||||
receiver=<UNKNOWN>)
|
||||
Authentication-Results: ozlabs.org;
|
||||
dmarc=pass (p=none dis=none) header.from=gmail.com
|
||||
Authentication-Results: ozlabs.org; dkim=pass (2048-bit key;
|
||||
unprotected) header.d=gmail.com header.i=@gmail.com
|
||||
header.a=rsa-sha256 header.s=20161025 header.b=sj7XVrax;
|
||||
dkim-atps=neutral
|
||||
Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
|
||||
by ozlabs.org (Postfix) with ESMTP id 48nfWs1X7mz9sRf
|
||||
for <incoming@patchwork.ozlabs.org>;
|
||||
Thu, 26 Mar 2020 07:16:09 +1100 (AEDT)
|
||||
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
|
||||
id S1727374AbgCYUQI (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);
|
||||
Wed, 25 Mar 2020 16:16:08 -0400
|
||||
Received: from mail-wm1-f68.google.com ([209.85.128.68]:50585 "EHLO
|
||||
mail-wm1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
|
||||
with ESMTP id S1727328AbgCYUQI (ORCPT
|
||||
<rfc822;linux-tegra@vger.kernel.org>);
|
||||
Wed, 25 Mar 2020 16:16:08 -0400
|
||||
Received: by mail-wm1-f68.google.com with SMTP id d198so4073496wmd.0
|
||||
for <linux-tegra@vger.kernel.org>;
|
||||
Wed, 25 Mar 2020 13:16:07 -0700 (PDT)
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
|
||||
h=from:to:cc:subject:date:message-id:mime-version
|
||||
:content-transfer-encoding;
|
||||
bh=yPLnagV0XBnTWT+nGjtRaD+LnSq2BqmeAJnp8U+CWPw=;
|
||||
b=sj7XVraxdwiyRAeepEQ0wy1nLUUH6vcloNotxoFwaAZmvU2GILePtp+OM8VZxzmSg1
|
||||
qVjos+BzgdtxI0QGYvlsRwZJmw1PdwfTDzM8kMKmP2AfXDgnFG7LZsGZnzTmdPqErqG6
|
||||
RfQwpZiPunHplEvI/epnPHACQlV9HoX+teAIWP9gyJkMYwBCVOirkfv4yGqGZWyEciZ2
|
||||
yM5mGeUZ/OprHtVVEEuF5yb50CJm8cBEHBMr2ooS+0jm+avVEG8DKe9QM2nWgJB7+TXH
|
||||
7+iryK1A4PDr9L6syw0p6sAbkFd2+P/p44d/rqsKPWTQG0lkd0cgRHx9fVPls/P4Snyr
|
||||
JwCA==
|
||||
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
||||
d=1e100.net; s=20161025;
|
||||
h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version
|
||||
:content-transfer-encoding;
|
||||
bh=yPLnagV0XBnTWT+nGjtRaD+LnSq2BqmeAJnp8U+CWPw=;
|
||||
b=HWu2t1YnW/GoMLlkfp6ZQha8CvUnfMi/OK1zsN3hDtTtMLwVQL9YBFPvXYfAASIGzA
|
||||
qXmgdbIdQmwOXRxlDmgcXk8KcOJmvnJTSoE+GPeLrKGVq9h2c6XLINshs7RDWqY7//GM
|
||||
/NMVkESX/sVh5qVQYVzsQOBWAsLkwpVAmt3lJ81XrCGdA/L5aN2FWOftTWJWoStgtHuB
|
||||
9N27ffBkV8/72gDCcGxM/lJlfxMBcfPIEMDGWlErsl2U/EPtF+e5AH1kF9/a+lImxa1h
|
||||
vBlXvgfPKazfOLm1jA809U0QJrCy5bmTOJsaLqnkLPNJRyvlY6JZqk8a1Wc4u6l44uoI
|
||||
4l3g==
|
||||
X-Gm-Message-State: ANhLgQ0GzmzHn/uC4G4GzXRW/D8i6fcQ7Y04Wxx+yBOvoeixp0lD9PYD
|
||||
9Q7E3Ezt7uCnfh5D41Ym8jY=
|
||||
X-Google-Smtp-Source: ADFU+vvV+Qjqcd+wksczhsC9MSisSEM36LfhftNulFkmYxqwCfpDcq22YDEoWHYpgjaXwwZC4lgCyg==
|
||||
X-Received: by 2002:a7b:c842:: with SMTP id c2mr5416219wml.154.1585167366416;
|
||||
Wed, 25 Mar 2020 13:16:06 -0700 (PDT)
|
||||
Received: from localhost
|
||||
(p200300E41F4A9B0076D02BFFFE273F51.dip0.t-ipconnect.de.
|
||||
[2003:e4:1f4a:9b00:76d0:2bff:fe27:3f51])
|
||||
by smtp.gmail.com with ESMTPSA id
|
||||
i4sm132568wrm.32.2020.03.25.13.16.05
|
||||
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
|
||||
Wed, 25 Mar 2020 13:16:05 -0700 (PDT)
|
||||
From: Thierry Reding <thierry.reding@gmail.com>
|
||||
To: Thierry Reding <thierry.reding@gmail.com>
|
||||
Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org
|
||||
Subject: [PATCH 1/2] drm/tegra: Fix SMMU support on Tegra124 and Tegra210
|
||||
Date: Wed, 25 Mar 2020 21:16:03 +0100
|
||||
Message-Id: <20200325201604.833898-1-thierry.reding@gmail.com>
|
||||
X-Mailer: git-send-email 2.24.1
|
||||
MIME-Version: 1.0
|
||||
Sender: linux-tegra-owner@vger.kernel.org
|
||||
Precedence: bulk
|
||||
List-ID: <linux-tegra.vger.kernel.org>
|
||||
X-Mailing-List: linux-tegra@vger.kernel.org
|
||||
|
||||
From: Thierry Reding <treding@nvidia.com>
|
||||
|
||||
When testing whether or not to enable the use of the SMMU, consult the
|
||||
supported DMA mask rather than the actually configured DMA mask, since
|
||||
the latter might already have been restricted.
|
||||
|
||||
Fixes: 2d9384ff9177 ("drm/tegra: Relax IOMMU usage criteria on old Tegra")
|
||||
Signed-off-by: Thierry Reding <treding@nvidia.com>
|
||||
Tested-by: Jon Hunter <jonathanh@nvidia.com>
|
||||
---
|
||||
drivers/gpu/drm/tegra/drm.c | 3 ++-
|
||||
drivers/gpu/host1x/dev.c | 13 +++++++++++++
|
||||
include/linux/host1x.h | 3 +++
|
||||
3 files changed, 18 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c
|
||||
index bd268028fb3d..583cd6e0ae27 100644
|
||||
--- a/drivers/gpu/drm/tegra/drm.c
|
||||
+++ b/drivers/gpu/drm/tegra/drm.c
|
||||
@@ -1039,6 +1039,7 @@ void tegra_drm_free(struct tegra_drm *tegra, size_t size, void *virt,
|
||||
|
||||
static bool host1x_drm_wants_iommu(struct host1x_device *dev)
|
||||
{
|
||||
+ struct host1x *host1x = dev_get_drvdata(dev->dev.parent);
|
||||
struct iommu_domain *domain;
|
||||
|
||||
/*
|
||||
@@ -1076,7 +1077,7 @@ static bool host1x_drm_wants_iommu(struct host1x_device *dev)
|
||||
* sufficient and whether or not the host1x is attached to an IOMMU
|
||||
* doesn't matter.
|
||||
*/
|
||||
- if (!domain && dma_get_mask(dev->dev.parent) <= DMA_BIT_MASK(32))
|
||||
+ if (!domain && host1x_get_dma_mask(host1x) <= DMA_BIT_MASK(32))
|
||||
return true;
|
||||
|
||||
return domain != NULL;
|
||||
diff --git a/drivers/gpu/host1x/dev.c b/drivers/gpu/host1x/dev.c
|
||||
index 388bcc2889aa..40a4b9f8b861 100644
|
||||
--- a/drivers/gpu/host1x/dev.c
|
||||
+++ b/drivers/gpu/host1x/dev.c
|
||||
@@ -502,6 +502,19 @@ static void __exit tegra_host1x_exit(void)
|
||||
}
|
||||
module_exit(tegra_host1x_exit);
|
||||
|
||||
+/**
|
||||
+ * host1x_get_dma_mask() - query the supported DMA mask for host1x
|
||||
+ * @host1x: host1x instance
|
||||
+ *
|
||||
+ * Note that this returns the supported DMA mask for host1x, which can be
|
||||
+ * different from the applicable DMA mask under certain circumstances.
|
||||
+ */
|
||||
+u64 host1x_get_dma_mask(struct host1x *host1x)
|
||||
+{
|
||||
+ return host1x->info->dma_mask;
|
||||
+}
|
||||
+EXPORT_SYMBOL(host1x_get_dma_mask);
|
||||
+
|
||||
MODULE_AUTHOR("Thierry Reding <thierry.reding@avionic-design.de>");
|
||||
MODULE_AUTHOR("Terje Bergstrom <tbergstrom@nvidia.com>");
|
||||
MODULE_DESCRIPTION("Host1x driver for Tegra products");
|
||||
diff --git a/include/linux/host1x.h b/include/linux/host1x.h
|
||||
index 62d216ff1097..c230b4e70d75 100644
|
||||
--- a/include/linux/host1x.h
|
||||
+++ b/include/linux/host1x.h
|
||||
@@ -17,9 +17,12 @@ enum host1x_class {
|
||||
HOST1X_CLASS_GR3D = 0x60,
|
||||
};
|
||||
|
||||
+struct host1x;
|
||||
struct host1x_client;
|
||||
struct iommu_group;
|
||||
|
||||
+u64 host1x_get_dma_mask(struct host1x *host1x);
|
||||
+
|
||||
/**
|
||||
* struct host1x_client_ops - host1x client operations
|
||||
* @init: host1x client initialization code
|
||||
|
||||
From patchwork Wed Mar 25 20:16:04 2020
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Thierry Reding <thierry.reding@gmail.com>
|
||||
X-Patchwork-Id: 1261639
|
||||
Return-Path: <linux-tegra-owner@vger.kernel.org>
|
||||
X-Original-To: incoming@patchwork.ozlabs.org
|
||||
Delivered-To: patchwork-incoming@bilbo.ozlabs.org
|
||||
Authentication-Results: ozlabs.org; spf=none (no SPF record)
|
||||
smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67;
|
||||
helo=vger.kernel.org;
|
||||
envelope-from=linux-tegra-owner@vger.kernel.org;
|
||||
receiver=<UNKNOWN>)
|
||||
Authentication-Results: ozlabs.org;
|
||||
dmarc=pass (p=none dis=none) header.from=gmail.com
|
||||
Authentication-Results: ozlabs.org; dkim=pass (2048-bit key;
|
||||
unprotected) header.d=gmail.com header.i=@gmail.com
|
||||
header.a=rsa-sha256 header.s=20161025 header.b=XXUz449u;
|
||||
dkim-atps=neutral
|
||||
Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
|
||||
by ozlabs.org (Postfix) with ESMTP id 48nfWw6NvSz9sPk
|
||||
for <incoming@patchwork.ozlabs.org>;
|
||||
Thu, 26 Mar 2020 07:16:12 +1100 (AEDT)
|
||||
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
|
||||
id S1727316AbgCYUQM (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);
|
||||
Wed, 25 Mar 2020 16:16:12 -0400
|
||||
Received: from mail-wr1-f65.google.com ([209.85.221.65]:33914 "EHLO
|
||||
mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
|
||||
with ESMTP id S1727328AbgCYUQM (ORCPT
|
||||
<rfc822;linux-tegra@vger.kernel.org>);
|
||||
Wed, 25 Mar 2020 16:16:12 -0400
|
||||
Received: by mail-wr1-f65.google.com with SMTP id 65so4990084wrl.1
|
||||
for <linux-tegra@vger.kernel.org>;
|
||||
Wed, 25 Mar 2020 13:16:09 -0700 (PDT)
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
|
||||
h=from:to:cc:subject:date:message-id:in-reply-to:references
|
||||
:mime-version:content-transfer-encoding;
|
||||
bh=aW1zxIHiei+l8kDSE2lVXf/aMBDE/GtIkGFrQXvKkrY=;
|
||||
b=XXUz449uJivXz+1lH6pKa9IvT3vUx61/skXaEyQxpkslFR268FwckKE0ryQDUx701N
|
||||
hFN9ocSGCuE6bKpdgya8YmthXDASOYWZzKV0R5jms1rqgazVMF6jARv+kE4Jaj9Ek4tl
|
||||
4eTpmnHinx0xIrgGWCQbfltjb+zAE5XOGX8UCX1526r3yQQpu+OQlKZ70Tvq3pdw0zfT
|
||||
URkTU8sfdTa9DCxUSsUukPcK9vKOk6XHkFleL6FisODDvXphdzzLa1TCv9UTGLrUsHSd
|
||||
XDrukLto5efrUE03q5jP6ZN4xbnLDbhY6IkB7PAW1qwSPG/Eg0p0ivpJ58+QwwmBH6zF
|
||||
ByDQ==
|
||||
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
||||
d=1e100.net; s=20161025;
|
||||
h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
|
||||
:references:mime-version:content-transfer-encoding;
|
||||
bh=aW1zxIHiei+l8kDSE2lVXf/aMBDE/GtIkGFrQXvKkrY=;
|
||||
b=DIWKPWCoYx1rnX34DSkRPm2K6lR1SurVvq+IIY5Nrc9uq+E3pmXQcActG0DDAHHK8a
|
||||
SgnziEvuWTeROgrlwONYq+FUZRQ6s1TRR1+qDXqAlRtdebU/cEep+LRvdzJe/qJBpPqd
|
||||
SnSTR3Xntgo7EcyLRj9YqSodasylPt3OzrhuDudfTSQtKZghElLfyJV/tzgwG+OC3TD4
|
||||
RJAykZ0tgWHy7Bc1UB+z6LovuT/sgcPUSLfNqDehQWqwQeqHqXgFAomUN0CCEr2YdjkT
|
||||
sCpBZPqKtb22FdDWlDiNnEkEmMPA+K4MIWbZL9VuvArjFaaBn6fBxvnX4tAKEcOiKeUy
|
||||
EZXw==
|
||||
X-Gm-Message-State: ANhLgQ1Vj1gSFYKgV/7jV1T3UIwTE5jasGmLOhuuGuWvjBs2xXUgieyz
|
||||
VhNVgYIYU/8R/0Vx9Hv44rw=
|
||||
X-Google-Smtp-Source: ADFU+vtTfrVHW69I+ZhOz8qw8xUje/j42rKoNxAP2wTt+E5WQ5s6QhBcgeHzC4Bw5Q5NdWxjLUtZ/g==
|
||||
X-Received: by 2002:adf:800e:: with SMTP id 14mr5104354wrk.369.1585167368929;
|
||||
Wed, 25 Mar 2020 13:16:08 -0700 (PDT)
|
||||
Received: from localhost
|
||||
(p200300E41F4A9B0076D02BFFFE273F51.dip0.t-ipconnect.de.
|
||||
[2003:e4:1f4a:9b00:76d0:2bff:fe27:3f51])
|
||||
by smtp.gmail.com with ESMTPSA id
|
||||
e9sm151985wrw.30.2020.03.25.13.16.07
|
||||
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
|
||||
Wed, 25 Mar 2020 13:16:07 -0700 (PDT)
|
||||
From: Thierry Reding <thierry.reding@gmail.com>
|
||||
To: Thierry Reding <thierry.reding@gmail.com>
|
||||
Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org
|
||||
Subject: [PATCH 2/2] gpu: host1x: Use SMMU on Tegra124 and Tegra210
|
||||
Date: Wed, 25 Mar 2020 21:16:04 +0100
|
||||
Message-Id: <20200325201604.833898-2-thierry.reding@gmail.com>
|
||||
X-Mailer: git-send-email 2.24.1
|
||||
In-Reply-To: <20200325201604.833898-1-thierry.reding@gmail.com>
|
||||
References: <20200325201604.833898-1-thierry.reding@gmail.com>
|
||||
MIME-Version: 1.0
|
||||
Sender: linux-tegra-owner@vger.kernel.org
|
||||
Precedence: bulk
|
||||
List-ID: <linux-tegra.vger.kernel.org>
|
||||
X-Mailing-List: linux-tegra@vger.kernel.org
|
||||
|
||||
From: Thierry Reding <treding@nvidia.com>
|
||||
|
||||
Tegra124 and Tegra210 support addressing more than 32 bits of physical
|
||||
memory. However, since their host1x does not support the wide GATHER
|
||||
opcode, they should use the SMMU if at all possible to ensure that all
|
||||
the system memory can be used for command buffers, irrespective of
|
||||
whether or not the host1x firewall is enabled.
|
||||
|
||||
Signed-off-by: Thierry Reding <treding@nvidia.com>
|
||||
Tested-by: Jon Hunter <jonathanh@nvidia.com>
|
||||
---
|
||||
drivers/gpu/host1x/dev.c | 46 ++++++++++++++++++++++++++++++++++++----
|
||||
1 file changed, 42 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/host1x/dev.c b/drivers/gpu/host1x/dev.c
|
||||
index 40a4b9f8b861..d24344e91922 100644
|
||||
--- a/drivers/gpu/host1x/dev.c
|
||||
+++ b/drivers/gpu/host1x/dev.c
|
||||
@@ -192,17 +192,55 @@ static void host1x_setup_sid_table(struct host1x *host)
|
||||
}
|
||||
}
|
||||
|
||||
+static bool host1x_wants_iommu(struct host1x *host1x)
|
||||
+{
|
||||
+ /*
|
||||
+ * If we support addressing a maximum of 32 bits of physical memory
|
||||
+ * and if the host1x firewall is enabled, there's no need to enable
|
||||
+ * IOMMU support. This can happen for example on Tegra20, Tegra30
|
||||
+ * and Tegra114.
|
||||
+ *
|
||||
+ * Tegra124 and later can address up to 34 bits of physical memory and
|
||||
+ * many platforms come equipped with more than 2 GiB of system memory,
|
||||
+ * which requires crossing the 4 GiB boundary. But there's a catch: on
|
||||
+ * SoCs before Tegra186 (i.e. Tegra124 and Tegra210), the host1x can
|
||||
+ * only address up to 32 bits of memory in GATHER opcodes, which means
|
||||
+ * that command buffers need to either be in the first 2 GiB of system
|
||||
+ * memory (which could quickly lead to memory exhaustion), or command
|
||||
+ * buffers need to be treated differently from other buffers (which is
|
||||
+ * not possible with the current ABI).
|
||||
+ *
|
||||
+ * A third option is to use the IOMMU in these cases to make sure all
|
||||
+ * buffers will be mapped into a 32-bit IOVA space that host1x can
|
||||
+ * address. This allows all of the system memory to be used and works
|
||||
+ * within the limitations of the host1x on these SoCs.
|
||||
+ *
|
||||
+ * In summary, default to enable IOMMU on Tegra124 and later. For any
|
||||
+ * of the earlier SoCs, only use the IOMMU for additional safety when
|
||||
+ * the host1x firewall is disabled.
|
||||
+ */
|
||||
+ if (host1x->info->dma_mask <= DMA_BIT_MASK(32)) {
|
||||
+ if (IS_ENABLED(CONFIG_TEGRA_HOST1X_FIREWALL))
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
static struct iommu_domain *host1x_iommu_attach(struct host1x *host)
|
||||
{
|
||||
struct iommu_domain *domain = iommu_get_domain_for_dev(host->dev);
|
||||
int err;
|
||||
|
||||
/*
|
||||
- * If the host1x firewall is enabled, there's no need to enable IOMMU
|
||||
- * support. Similarly, if host1x is already attached to an IOMMU (via
|
||||
- * the DMA API), don't try to attach again.
|
||||
+ * We may not always want to enable IOMMU support (for example if the
|
||||
+ * host1x firewall is already enabled and we don't support addressing
|
||||
+ * more than 32 bits of physical memory), so check for that first.
|
||||
+ *
|
||||
+ * Similarly, if host1x is already attached to an IOMMU (via the DMA
|
||||
+ * API), don't try to attach again.
|
||||
*/
|
||||
- if (IS_ENABLED(CONFIG_TEGRA_HOST1X_FIREWALL) || domain)
|
||||
+ if (!host1x_wants_iommu(host) || domain)
|
||||
return domain;
|
||||
|
||||
host->group = iommu_group_get(host->dev);
|
@ -1,186 +0,0 @@
|
||||
From patchwork Mon Feb 24 14:07:48 2020
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Jon Hunter <jonathanh@nvidia.com>
|
||||
X-Patchwork-Id: 1243112
|
||||
Return-Path: <linux-tegra-owner@vger.kernel.org>
|
||||
X-Original-To: incoming@patchwork.ozlabs.org
|
||||
Delivered-To: patchwork-incoming@bilbo.ozlabs.org
|
||||
Authentication-Results: ozlabs.org; spf=none (no SPF record)
|
||||
smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67;
|
||||
helo=vger.kernel.org;
|
||||
envelope-from=linux-tegra-owner@vger.kernel.org;
|
||||
receiver=<UNKNOWN>)
|
||||
Authentication-Results: ozlabs.org;
|
||||
dmarc=pass (p=none dis=none) header.from=nvidia.com
|
||||
Authentication-Results: ozlabs.org; dkim=pass (2048-bit key;
|
||||
unprotected) header.d=nvidia.com header.i=@nvidia.com
|
||||
header.a=rsa-sha256 header.s=n1 header.b=bnwYpe6i;
|
||||
dkim-atps=neutral
|
||||
Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
|
||||
by ozlabs.org (Postfix) with ESMTP id 48R3nG3y97z9sRQ
|
||||
for <incoming@patchwork.ozlabs.org>;
|
||||
Tue, 25 Feb 2020 01:08:18 +1100 (AEDT)
|
||||
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
|
||||
id S1727539AbgBXOIR (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);
|
||||
Mon, 24 Feb 2020 09:08:17 -0500
|
||||
Received: from hqnvemgate24.nvidia.com ([216.228.121.143]:5063 "EHLO
|
||||
hqnvemgate24.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
|
||||
with ESMTP id S1727451AbgBXOIR (ORCPT
|
||||
<rfc822;linux-tegra@vger.kernel.org>);
|
||||
Mon, 24 Feb 2020 09:08:17 -0500
|
||||
Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by
|
||||
hqnvemgate24.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA)
|
||||
id <B5e53d8840000>; Mon, 24 Feb 2020 06:07:00 -0800
|
||||
Received: from hqmail.nvidia.com ([172.20.161.6])
|
||||
by hqpgpgate101.nvidia.com (PGP Universal service);
|
||||
Mon, 24 Feb 2020 06:08:16 -0800
|
||||
X-PGP-Universal: processed;
|
||||
by hqpgpgate101.nvidia.com on Mon, 24 Feb 2020 06:08:16 -0800
|
||||
Received: from HQMAIL105.nvidia.com (172.20.187.12) by HQMAIL107.nvidia.com
|
||||
(172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3;
|
||||
Mon, 24 Feb 2020 14:08:16 +0000
|
||||
Received: from rnnvemgw01.nvidia.com (10.128.109.123) by HQMAIL105.nvidia.com
|
||||
(172.20.187.12) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via
|
||||
Frontend Transport; Mon, 24 Feb 2020 14:08:15 +0000
|
||||
Received: from thunderball.nvidia.com (Not Verified[10.21.140.91]) by
|
||||
rnnvemgw01.nvidia.com with Trustwave SEG (v7, 5, 8, 10121)
|
||||
id <B5e53d8cd0006>; Mon, 24 Feb 2020 06:08:15 -0800
|
||||
From: Jon Hunter <jonathanh@nvidia.com>
|
||||
To: Milo Kim <milo.kim@ti.com>, Lee Jones <lee.jones@linaro.org>,
|
||||
Daniel Thompson <daniel.thompson@linaro.org>,
|
||||
Jingoo Han <jingoohan1@gmail.com>
|
||||
CC: <dri-devel@lists.freedesktop.org>, <linux-kernel@vger.kernel.org>,
|
||||
<linux-tegra@vger.kernel.org>, Jon Hunter <jonathanh@nvidia.com>
|
||||
Subject: [PATCH] backlight: lp855x: Ensure regulators are disabled on probe
|
||||
failure
|
||||
Date: Mon, 24 Feb 2020 14:07:48 +0000
|
||||
Message-ID: <20200224140748.2182-1-jonathanh@nvidia.com>
|
||||
X-Mailer: git-send-email 2.17.1
|
||||
X-NVConfidentiality: public
|
||||
MIME-Version: 1.0
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1;
|
||||
t=1582553220; bh=B1HKOxHeQwu3ZxgJLvSfafO1owYsd38lFNvB2Oh8gBc=;
|
||||
h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer:
|
||||
X-NVConfidentiality:MIME-Version:Content-Type;
|
||||
b=bnwYpe6isaqG2Bp36VGI0VAYjd8jtznqNulwkVw85vf5zOMSfv809Oou4taz+1W9g
|
||||
/eTLeJozbJBXhllQfybYW8hX4fyWIjWNON8aQugt/0HrnKAjg5r9wLT5lTgmy+8n2B
|
||||
YrCJM3gob7XIi7l0cbONUTfyGssXmyEi+0SUamN4DDOnXIFxHBentnbyQdvOQ9+11P
|
||||
Dr5X+zeRff1B/SMt2pdNwrja2cVOPDRGAM+U4epkb2bICZZUiGv1fQLKa+KgJ7xMMS
|
||||
AwmdVrZ/6l2MAKwM+FuIqdF/x7mpCYg64MWX7TFFRwOSCFwNeq1fcK5TWItV01qcCa
|
||||
mFLwbcDwN/IQA==
|
||||
Sender: linux-tegra-owner@vger.kernel.org
|
||||
Precedence: bulk
|
||||
List-ID: <linux-tegra.vger.kernel.org>
|
||||
X-Mailing-List: linux-tegra@vger.kernel.org
|
||||
|
||||
If probing the LP885x backlight fails after the regulators have been
|
||||
enabled, then the following warning is seen when releasing the
|
||||
regulators ...
|
||||
|
||||
WARNING: CPU: 1 PID: 289 at drivers/regulator/core.c:2051 _regulator_put.part.28+0x158/0x160
|
||||
Modules linked in: tegra_xudc lp855x_bl(+) host1x pwm_tegra ip_tables x_tables ipv6 nf_defrag_ipv6
|
||||
CPU: 1 PID: 289 Comm: systemd-udevd Not tainted 5.6.0-rc2-next-20200224 #1
|
||||
Hardware name: NVIDIA Jetson TX1 Developer Kit (DT)
|
||||
|
||||
...
|
||||
|
||||
Call trace:
|
||||
_regulator_put.part.28+0x158/0x160
|
||||
regulator_put+0x34/0x50
|
||||
devm_regulator_release+0x10/0x18
|
||||
release_nodes+0x12c/0x230
|
||||
devres_release_all+0x34/0x50
|
||||
really_probe+0x1c0/0x370
|
||||
driver_probe_device+0x58/0x100
|
||||
device_driver_attach+0x6c/0x78
|
||||
__driver_attach+0xb0/0xf0
|
||||
bus_for_each_dev+0x68/0xc8
|
||||
driver_attach+0x20/0x28
|
||||
bus_add_driver+0x160/0x1f0
|
||||
driver_register+0x60/0x110
|
||||
i2c_register_driver+0x40/0x80
|
||||
lp855x_driver_init+0x20/0x1000 [lp855x_bl]
|
||||
do_one_initcall+0x58/0x1a0
|
||||
do_init_module+0x54/0x1d0
|
||||
load_module+0x1d80/0x21c8
|
||||
__do_sys_finit_module+0xe8/0x100
|
||||
__arm64_sys_finit_module+0x18/0x20
|
||||
el0_svc_common.constprop.3+0xb0/0x168
|
||||
do_el0_svc+0x20/0x98
|
||||
el0_sync_handler+0xf4/0x1b0
|
||||
el0_sync+0x140/0x180
|
||||
|
||||
Fix this by ensuring that the regulators are disabled, if enabled, on
|
||||
probe failure.
|
||||
|
||||
Finally, ensure that the vddio regulator is disabled in the driver
|
||||
remove handler.
|
||||
|
||||
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
|
||||
Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
|
||||
---
|
||||
drivers/video/backlight/lp855x_bl.c | 20 ++++++++++++++++----
|
||||
1 file changed, 16 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/video/backlight/lp855x_bl.c b/drivers/video/backlight/lp855x_bl.c
|
||||
index f68920131a4a..e94932c69f54 100644
|
||||
--- a/drivers/video/backlight/lp855x_bl.c
|
||||
+++ b/drivers/video/backlight/lp855x_bl.c
|
||||
@@ -456,7 +456,7 @@ static int lp855x_probe(struct i2c_client *cl, const struct i2c_device_id *id)
|
||||
ret = regulator_enable(lp->enable);
|
||||
if (ret < 0) {
|
||||
dev_err(lp->dev, "failed to enable vddio: %d\n", ret);
|
||||
- return ret;
|
||||
+ goto disable_supply;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -471,24 +471,34 @@ static int lp855x_probe(struct i2c_client *cl, const struct i2c_device_id *id)
|
||||
ret = lp855x_configure(lp);
|
||||
if (ret) {
|
||||
dev_err(lp->dev, "device config err: %d", ret);
|
||||
- return ret;
|
||||
+ goto disable_vddio;
|
||||
}
|
||||
|
||||
ret = lp855x_backlight_register(lp);
|
||||
if (ret) {
|
||||
dev_err(lp->dev,
|
||||
"failed to register backlight. err: %d\n", ret);
|
||||
- return ret;
|
||||
+ goto disable_vddio;
|
||||
}
|
||||
|
||||
ret = sysfs_create_group(&lp->dev->kobj, &lp855x_attr_group);
|
||||
if (ret) {
|
||||
dev_err(lp->dev, "failed to register sysfs. err: %d\n", ret);
|
||||
- return ret;
|
||||
+ goto disable_vddio;
|
||||
}
|
||||
|
||||
backlight_update_status(lp->bl);
|
||||
+
|
||||
return 0;
|
||||
+
|
||||
+disable_vddio:
|
||||
+ if (lp->enable)
|
||||
+ regulator_disable(lp->enable);
|
||||
+disable_supply:
|
||||
+ if (lp->supply)
|
||||
+ regulator_disable(lp->supply);
|
||||
+
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
static int lp855x_remove(struct i2c_client *cl)
|
||||
@@ -497,6 +507,8 @@ static int lp855x_remove(struct i2c_client *cl)
|
||||
|
||||
lp->bl->props.brightness = 0;
|
||||
backlight_update_status(lp->bl);
|
||||
+ if (lp->enable)
|
||||
+ regulator_disable(lp->enable);
|
||||
if (lp->supply)
|
||||
regulator_disable(lp->supply);
|
||||
sysfs_remove_group(&lp->dev->kobj, &lp855x_attr_group);
|
@ -1 +0,0 @@
|
||||
configs/build_configs.sh
|
149
check-kabi
Normal file → Executable file
149
check-kabi
Normal file → Executable file
@ -0,0 +1,149 @@
|
||||
#!/usr/bin/python3
|
||||
#
|
||||
# check-kabi - Red Hat kABI reference checking tool
|
||||
#
|
||||
# We use this script to check against reference Module.kabi files.
|
||||
#
|
||||
# Author: Jon Masters <jcm@redhat.com>
|
||||
# Copyright (C) 2007-2009 Red Hat, Inc.
|
||||
#
|
||||
# This software may be freely redistributed under the terms of the GNU
|
||||
# General Public License (GPL).
|
||||
|
||||
# Changelog:
|
||||
#
|
||||
# 2018/06/01 - Update for python3 by Petr Oros.
|
||||
# 2009/08/15 - Updated for use in RHEL6.
|
||||
# 2007/06/13 - Initial rewrite in python by Jon Masters.
|
||||
|
||||
__author__ = "Jon Masters <jcm@redhat.com>"
|
||||
__version__ = "2.0"
|
||||
__date__ = "2009/08/15"
|
||||
__copyright__ = "Copyright (C) 2007-2009 Red Hat, Inc"
|
||||
__license__ = "GPL"
|
||||
|
||||
import getopt
|
||||
import string
|
||||
import sys
|
||||
|
||||
true = 1
|
||||
false = 0
|
||||
|
||||
|
||||
def load_symvers(symvers, filename):
|
||||
"""Load a Module.symvers file."""
|
||||
|
||||
symvers_file = open(filename, "r")
|
||||
|
||||
while true:
|
||||
in_line = symvers_file.readline()
|
||||
if in_line == "":
|
||||
break
|
||||
if in_line == "\n":
|
||||
continue
|
||||
checksum, symbol, directory, type = in_line.split()
|
||||
|
||||
symvers[symbol] = in_line[0:-1]
|
||||
|
||||
|
||||
def load_kabi(kabi, filename):
|
||||
"""Load a Module.kabi file."""
|
||||
|
||||
kabi_file = open(filename, "r")
|
||||
|
||||
while true:
|
||||
in_line = kabi_file.readline()
|
||||
if in_line == "":
|
||||
break
|
||||
if in_line == "\n":
|
||||
continue
|
||||
checksum, symbol, directory, type = in_line.split()
|
||||
|
||||
kabi[symbol] = in_line[0:-1]
|
||||
|
||||
|
||||
def check_kabi(symvers, kabi):
|
||||
"""Check Module.kabi and Module.symvers files."""
|
||||
|
||||
fail = 0
|
||||
warn = 0
|
||||
changed_symbols = []
|
||||
moved_symbols = []
|
||||
|
||||
for symbol in kabi:
|
||||
abi_hash, abi_sym, abi_dir, abi_type = kabi[symbol].split()
|
||||
if symbol in symvers:
|
||||
sym_hash, sym_sym, sym_dir, sym_type = symvers[symbol].split()
|
||||
if abi_hash != sym_hash:
|
||||
fail = 1
|
||||
changed_symbols.append(symbol)
|
||||
|
||||
if abi_dir != sym_dir:
|
||||
warn = 1
|
||||
moved_symbols.append(symbol)
|
||||
else:
|
||||
fail = 1
|
||||
changed_symbols.append(symbol)
|
||||
|
||||
if fail:
|
||||
print("*** ERROR - ABI BREAKAGE WAS DETECTED ***")
|
||||
print("")
|
||||
print("The following symbols have been changed (this will cause an ABI breakage):")
|
||||
print("")
|
||||
for symbol in changed_symbols:
|
||||
print(symbol)
|
||||
print("")
|
||||
|
||||
if warn:
|
||||
print("*** WARNING - ABI SYMBOLS MOVED ***")
|
||||
print("")
|
||||
print("The following symbols moved (typically caused by moving a symbol from being")
|
||||
print("provided by the kernel vmlinux out to a loadable module):")
|
||||
print("")
|
||||
for symbol in moved_symbols:
|
||||
print(symbol)
|
||||
print("")
|
||||
|
||||
"""Halt the build, if we got errors and/or warnings. In either case,
|
||||
double-checkig is required to avoid introducing / concealing
|
||||
KABI inconsistencies."""
|
||||
if fail or warn:
|
||||
sys.exit(1)
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
def usage():
|
||||
print("""
|
||||
check-kabi: check Module.kabi and Module.symvers files.
|
||||
|
||||
check-kabi [ -k Module.kabi ] [ -s Module.symvers ]
|
||||
|
||||
""")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
symvers_file = ""
|
||||
kabi_file = ""
|
||||
|
||||
opts, args = getopt.getopt(sys.argv[1:], 'hk:s:')
|
||||
|
||||
for o, v in opts:
|
||||
if o == "-s":
|
||||
symvers_file = v
|
||||
if o == "-h":
|
||||
usage()
|
||||
sys.exit(0)
|
||||
if o == "-k":
|
||||
kabi_file = v
|
||||
|
||||
if (symvers_file == "") or (kabi_file == ""):
|
||||
usage()
|
||||
sys.exit(1)
|
||||
|
||||
symvers = {}
|
||||
kabi = {}
|
||||
|
||||
load_symvers(symvers, symvers_file)
|
||||
load_kabi(kabi, kabi_file)
|
||||
check_kabi(symvers, kabi)
|
@ -1 +0,0 @@
|
||||
configs/config_generation
|
@ -1,159 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This script merges together the hierarchy of CONFIG_* files under generic
|
||||
# and debug to form the necessary $PACKAGE_NAME<version>-<arch>-<variant>.config
|
||||
# files for building RHEL kernels, based on the contents of a control file
|
||||
|
||||
PACKAGE_NAME="${1:-kernel}" # defines the package name used
|
||||
KVERREL="${2:-}"
|
||||
SUBARCH="${3:-}" # defines a specific arch
|
||||
SCRIPT="$(readlink -f $0)"
|
||||
OUTPUT_DIR="$PWD"
|
||||
SCRIPT_DIR="$(dirname $SCRIPT)"
|
||||
|
||||
LANG=en_US.UTF-8
|
||||
|
||||
# to handle this script being a symlink
|
||||
cd $SCRIPT_DIR
|
||||
|
||||
set errexit
|
||||
set nounset
|
||||
|
||||
cleanup()
|
||||
{
|
||||
rm -f config-*
|
||||
}
|
||||
|
||||
die()
|
||||
{
|
||||
echo "$1"
|
||||
cleanup
|
||||
exit 1
|
||||
}
|
||||
|
||||
function combine_config_layer()
|
||||
{
|
||||
dir=$1
|
||||
file="config-$(echo $dir | sed -e 's|/|-|g')"
|
||||
|
||||
if [ $(ls $dir/ | grep -c "^CONFIG_") -eq 0 ]; then
|
||||
touch $file
|
||||
return
|
||||
fi
|
||||
|
||||
cat $dir/CONFIG_* > $file
|
||||
}
|
||||
|
||||
function merge_configs()
|
||||
{
|
||||
archvar=$1
|
||||
arch=$(echo "$archvar" | cut -f1 -d"-")
|
||||
configs=$2
|
||||
order=$3
|
||||
flavor=$4
|
||||
|
||||
name=$OUTPUT_DIR/$PACKAGE_NAME-$archvar-$flavor.config
|
||||
echo -n "Building $name ... "
|
||||
touch config-merging config-merged
|
||||
|
||||
# apply based on order
|
||||
skip_if_missing=""
|
||||
for o in $order
|
||||
do
|
||||
for config in $(echo $configs | sed -e 's/:/ /g')
|
||||
do
|
||||
cfile="config-$o-$config"
|
||||
|
||||
test -n "$skip_if_missing" && test ! -e $cfile && continue
|
||||
|
||||
perl merge.pl $cfile config-merging > config-merged
|
||||
if [ ! $? -eq 0 ]; then
|
||||
die "Failed to merge $cfile"
|
||||
fi
|
||||
mv config-merged config-merging
|
||||
done
|
||||
|
||||
# first configs in $order is baseline, all files should be
|
||||
# there. second pass is overrides and can be missing.
|
||||
skip_if_missing="1"
|
||||
done
|
||||
if [ "x$arch" == "xaarch64" ]; then
|
||||
echo "# arm64" > $name
|
||||
elif [ "x$arch" == "xppc64le" ]; then
|
||||
echo "# powerpc" > $name
|
||||
elif [ "x$arch" == "xs390x" ]; then
|
||||
echo "# s390" > $name
|
||||
elif [ "x$arch" == "xarmv7hl" ]; then
|
||||
echo "# arm" > $name
|
||||
elif [ "x$arch" == "xi686" ]; then
|
||||
echo "# i386" > $name
|
||||
else
|
||||
echo "# $arch" > $name
|
||||
fi
|
||||
sort config-merging >> $name
|
||||
rm -f config-merged config-merging
|
||||
echo "done"
|
||||
}
|
||||
|
||||
function build_flavor()
|
||||
{
|
||||
flavor=$1
|
||||
control_file="priority".$flavor
|
||||
while read line
|
||||
do
|
||||
if [ $(echo "$line" | grep -c "^#") -ne 0 ]; then
|
||||
continue
|
||||
elif [ $(echo "$line" | grep -c "^$") -ne 0 ]; then
|
||||
continue
|
||||
elif [ $(echo "$line" | grep -c "^EMPTY") -ne 0 ]; then
|
||||
empty=$(echo "$line" | cut -f2 -d"=")
|
||||
for a in $empty
|
||||
do
|
||||
echo "# EMPTY" > $OUTPUT_DIR/$PACKAGE_NAME-$a-$flavor.config
|
||||
|
||||
done
|
||||
elif [ $(echo "$line" | grep -c "^ORDER") -ne 0 ]; then
|
||||
order=$(echo "$line" | cut -f2 -d"=")
|
||||
for o in $order
|
||||
do
|
||||
glist=$(find $o -type d)
|
||||
for d in $glist
|
||||
do
|
||||
combine_config_layer $d
|
||||
done
|
||||
done
|
||||
else
|
||||
arch=$(echo "$line" | cut -f1 -d"=")
|
||||
configs=$(echo "$line" | cut -f2 -d"=")
|
||||
|
||||
if [ -n "$SUBARCH" ]; then
|
||||
case $arch in
|
||||
$SUBARCH*)
|
||||
;;
|
||||
*)
|
||||
continue
|
||||
esac
|
||||
fi
|
||||
|
||||
merge_configs $arch $configs "$order" $flavor
|
||||
fi
|
||||
done < $control_file
|
||||
}
|
||||
|
||||
while read line
|
||||
do
|
||||
build_flavor $line
|
||||
done < flavors
|
||||
|
||||
# A passed in kernel version implies copy to final location
|
||||
# otherwise defer to another script
|
||||
if test -n "$KVERREL"
|
||||
then
|
||||
for i in kernel-*.config
|
||||
do
|
||||
NEW="$(echo $i | sed "s/$PACKAGE_NAME-$SUBARCH/$PACKAGE_NAME-$KVERREL-$SUBARCH/")"
|
||||
mv $i $NEW
|
||||
done
|
||||
fi
|
||||
|
||||
cleanup
|
@ -1 +0,0 @@
|
||||
CONFIG_ACPI_DEBUG=y
|
@ -1 +0,0 @@
|
||||
CONFIG_ARM_PTDUMP_DEBUGFS=y
|
@ -1 +0,0 @@
|
||||
CONFIG_ATH_DEBUG=y
|
@ -1 +0,0 @@
|
||||
CONFIG_B43LEGACY_DEBUG=y
|
@ -1 +0,0 @@
|
||||
CONFIG_B43_DEBUG=y
|
@ -1 +0,0 @@
|
||||
CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION=y
|
@ -1 +0,0 @@
|
||||
CONFIG_BPF_KPROBE_OVERRIDE=y
|
@ -1 +0,0 @@
|
||||
CONFIG_CAN_DEBUG_DEVICES=y
|
@ -1 +0,0 @@
|
||||
CONFIG_CARL9170_DEBUGFS=y
|
@ -1 +0,0 @@
|
||||
CONFIG_CEPH_LIB_PRETTYDEBUG=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_ATOMIC_SLEEP=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_CREDENTIALS=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_KMEMLEAK=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=16000
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_LOCK_ALLOC=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_MISC=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_MUTEXES=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_NOTIFIERS=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_OBJECTS=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_OBJECTS_FREE=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_OBJECTS_TIMERS=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_OBJECTS_WORK=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_PERF_USE_VMALLOC=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_PER_CPU_MAPS=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_RT_MUTEXES=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_RWSEMS=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_SG=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_SPINLOCK=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_STACK_USAGE=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_VM_PGFLAGS=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DEBUG_WW_MUTEX_SLOWPATH=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DETECT_HUNG_TASK=y
|
@ -1 +0,0 @@
|
||||
# CONFIG_DMADEVICES_DEBUG is not set
|
@ -1 +0,0 @@
|
||||
# CONFIG_DMADEVICES_VDEBUG is not set
|
@ -1 +0,0 @@
|
||||
CONFIG_DMA_API_DEBUG=y
|
@ -1 +0,0 @@
|
||||
CONFIG_DRBD_FAULT_INJECTION=y
|
@ -1 +0,0 @@
|
||||
CONFIG_EFI_PGT_DUMP=y
|
@ -1 +0,0 @@
|
||||
CONFIG_EXT4_DEBUG=y
|
@ -1 +0,0 @@
|
||||
CONFIG_FAILSLAB=y
|
@ -1 +0,0 @@
|
||||
CONFIG_FAIL_FUNCTION=y
|
@ -1 +0,0 @@
|
||||
CONFIG_FAIL_IO_TIMEOUT=y
|
@ -1 +0,0 @@
|
||||
CONFIG_FAIL_MAKE_REQUEST=y
|
@ -1 +0,0 @@
|
||||
CONFIG_FAIL_MMC_REQUEST=y
|
@ -1 +0,0 @@
|
||||
CONFIG_FAIL_PAGE_ALLOC=y
|
@ -1 +0,0 @@
|
||||
CONFIG_FAULT_INJECTION=y
|
@ -1 +0,0 @@
|
||||
CONFIG_FAULT_INJECTION_DEBUG_FS=y
|
@ -1 +0,0 @@
|
||||
CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
|
@ -1 +0,0 @@
|
||||
CONFIG_IOMMU_DEBUGFS=y
|
@ -1 +0,0 @@
|
||||
CONFIG_IWLWIFI_DEVICE_TRACING=y
|
@ -1 +0,0 @@
|
||||
CONFIG_JBD2_DEBUG=y
|
@ -1 +0,0 @@
|
||||
CONFIG_KDB_DEFAULT_ENABLE=0x0
|
@ -1 +0,0 @@
|
||||
CONFIG_KDB_KEYBOARD=y
|
@ -1 +0,0 @@
|
||||
CONFIG_KGDB_KDB=y
|
@ -1 +0,0 @@
|
||||
CONFIG_LOCK_EVENT_COUNTS=y
|
@ -1 +0,0 @@
|
||||
CONFIG_LOCK_STAT=y
|
@ -1 +0,0 @@
|
||||
CONFIG_LOCK_TORTURE_TEST=m
|
@ -1 +0,0 @@
|
||||
CONFIG_MAXSMP=y
|
@ -1 +0,0 @@
|
||||
CONFIG_MMIOTRACE=y
|
@ -1 +0,0 @@
|
||||
CONFIG_MODULE_FORCE_UNLOAD=y
|
@ -1 +0,0 @@
|
||||
CONFIG_NFSD_FAULT_INJECTION=y
|
@ -1 +0,0 @@
|
||||
CONFIG_NOUVEAU_DEBUG_MMU=y
|
@ -1 +0,0 @@
|
||||
CONFIG_PM_ADVANCED_DEBUG=y
|
@ -1 +0,0 @@
|
||||
CONFIG_PROVE_LOCKING=y
|
@ -1 +0,0 @@
|
||||
CONFIG_PROVE_RCU=y
|
@ -1 +0,0 @@
|
||||
CONFIG_QUOTA_DEBUG=y
|
@ -1 +0,0 @@
|
||||
CONFIG_SND_DEBUG=y
|
@ -1 +0,0 @@
|
||||
CONFIG_SND_PCM_XRUN_DEBUG=y
|
@ -1 +0,0 @@
|
||||
CONFIG_SND_VERBOSE_PRINTK=y
|
@ -1 +0,0 @@
|
||||
CONFIG_TEST_LIST_SORT=y
|
@ -1 +0,0 @@
|
||||
CONFIG_TEST_LOCKUP=m
|
@ -1 +0,0 @@
|
||||
CONFIG_TRACE_EVENT_INJECT=y
|
@ -1 +0,0 @@
|
||||
CONFIG_WQ_WATCHDOG=y
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user