Compare commits
259 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ed111735e3 | ||
|
|
4af253e6d7 | ||
|
|
3f3e2cef37 | ||
|
|
21028f464f | ||
|
|
b09d66891d | ||
|
|
222eee7305 | ||
|
|
66f48dbe0f | ||
|
|
3199f87e97 | ||
|
|
316d2083c3 | ||
|
|
c2e6631ae7 | ||
|
|
a275cd7583 | ||
|
|
418aee33e0 | ||
|
|
9387a8738d | ||
|
|
56890f1977 | ||
|
|
c20aea8759 | ||
|
|
9da38b16ed | ||
|
|
d926724bae | ||
|
|
7dc6403432 | ||
|
|
fa959404f3 | ||
|
|
56f4e17f8d | ||
|
|
136816442e | ||
|
|
f5cf207b5a | ||
|
|
ef94e6e48f | ||
|
|
d412aec0e0 | ||
|
|
a359a1bed1 | ||
|
|
144aefafc2 | ||
|
|
b8abfc8da1 | ||
|
|
6712f44316 | ||
|
|
131d406e4e | ||
|
|
b88cf4ad1c | ||
|
|
69ecc739a5 | ||
|
|
ae17795317 | ||
|
|
61ea70464f | ||
|
|
7751601cc0 | ||
|
|
5265baccfc | ||
|
|
fee7cf37f2 | ||
|
|
c496ff3cc5 | ||
|
|
a8a6833aef | ||
|
|
834c4d4fdc | ||
|
|
f79d789ee1 | ||
|
|
ec8654da38 | ||
|
|
26e0db402f | ||
|
|
623d64c6af | ||
|
|
cd57c4f398 | ||
|
|
df54192521 | ||
|
|
d0a3c95674 | ||
|
|
8b86310fda | ||
|
|
cb24ef5a29 | ||
|
|
9ff59e035d | ||
|
|
abcc03fba5 | ||
|
|
ab83bc7c89 | ||
|
|
2232c7e432 | ||
|
|
702e94cf68 | ||
|
|
7ce1974389 | ||
|
|
46bcefec41 | ||
|
|
1da0b69092 | ||
|
|
3b315ba366 | ||
|
|
5e9fa8a24c | ||
|
|
961db52934 | ||
|
|
ca537c1d2e | ||
|
|
8cd2e444d1 | ||
|
|
d78ad9741e | ||
|
|
36b34bfcbf | ||
|
|
3074ed2654 | ||
|
|
287899ca98 | ||
|
|
99a6dab644 | ||
|
|
ff9b686186 | ||
|
|
0ad606427d | ||
|
|
c69adb9d7f | ||
|
|
ad83b6b9ad | ||
|
|
65427f2740 | ||
|
|
77ae4012b5 | ||
|
|
f04dc53025 | ||
|
|
7909caa3f2 | ||
|
|
116c215759 | ||
|
|
91273a68d0 | ||
|
|
d6d35c9799 | ||
|
|
cec20d0a29 | ||
|
|
30d7934dfe | ||
|
|
e06126af46 | ||
|
|
81d4b36c60 | ||
|
|
6b1be12204 | ||
|
|
9890bc621a | ||
|
|
647c3c0e88 | ||
|
|
cfff2dee54 | ||
|
|
c66ca1b31f | ||
|
|
24416b4679 | ||
|
|
0029a386e2 | ||
|
|
e333597512 | ||
|
|
85c1ac0d1f | ||
|
|
4d1fe2fc00 | ||
|
|
d6c48c0f67 | ||
|
|
4e4c210314 | ||
|
|
39b9b96f0a | ||
|
|
5014efb083 | ||
|
|
9c960b158e | ||
|
|
0dc18f640a | ||
|
|
55a652872e | ||
|
|
77a28a5e6c | ||
|
|
9df3982d52 | ||
|
|
4a22c129ef | ||
|
|
bd17fe2b2f | ||
|
|
a8bfbf6db3 | ||
|
|
1ec9f8fe13 | ||
|
|
f1deb73151 | ||
|
|
35493b2f90 | ||
|
|
b4bf18bc44 | ||
|
|
cf3b09c495 | ||
|
|
8b97e31724 | ||
|
|
61d31d3313 | ||
|
|
33d460bef6 | ||
|
|
6516cc3a70 | ||
|
|
6b699fc046 | ||
|
|
60014f9d0b | ||
|
|
bb99dec73f | ||
|
|
e603107af6 | ||
|
|
473f80087b | ||
|
|
040b62651f | ||
|
|
866d1567e2 | ||
|
|
9a04caa115 | ||
|
|
c8afd126f1 | ||
|
|
65cc2ff37a | ||
|
|
2735cb7f59 | ||
|
|
c28a1e954f | ||
|
|
e826a30dd1 | ||
|
|
6003d5ee9d | ||
|
|
672c24819e | ||
|
|
3b435f1f24 | ||
|
|
a6a1b2b1b4 | ||
|
|
2b81acb937 | ||
|
|
7d1cfcf98a | ||
|
|
4e727c9e05 | ||
|
|
490f38dbb5 | ||
|
|
78c9ba62ca | ||
|
|
0f8450abed |
||
|
|
c10dff9f72 |
||
|
|
ff37b9e98d |
||
|
|
f4d96195f7 |
||
|
|
f2af597e82 | ||
|
|
5efd1a1a5a | ||
|
|
23f974ff7c | ||
|
|
378c99f102 |
||
|
|
b2ff26baaa | ||
|
|
c2a32ddd12 | ||
|
|
fff7d88c32 | ||
|
|
8739b84cc7 |
||
|
|
5c8a05e8d1 | ||
|
|
e72e0b77df |
||
|
|
f598488a79 | ||
|
|
ec70897be4 |
||
|
|
5f4c811487 | ||
|
|
b931afff8d | ||
|
|
7878f4b6bc | ||
|
|
0636ff1f77 | ||
|
|
964443b370 | ||
|
|
316334b35f |
||
|
|
8da51b6838 |
||
|
|
22615fdb3e | ||
|
|
cf820f7d92 |
||
|
|
e556318046 |
||
|
|
785b96f8ba | ||
|
|
d001f183c4 |
||
|
|
279143d272 | ||
|
|
95d4a9908a |
||
|
|
82728cc6ce |
||
|
|
409190f659 |
||
|
|
324d2dc0fc |
||
|
|
e2b69afd46 |
||
|
|
3fa56323c0 |
||
|
|
f72ee2395b |
||
|
|
6a3302a0e1 | ||
|
|
b53329b05a | ||
|
|
3601750996 |
||
|
|
f79ca8903e | ||
|
|
f8a875d85a | ||
|
|
80749df206 | ||
|
|
14096920f5 |
||
|
|
eecf80b4af | ||
|
|
29f933973e | ||
|
|
b149168900 | ||
|
|
ded83b5934 | ||
|
|
00055623d2 | ||
|
|
864e7b6491 | ||
|
|
8892f848b2 |
||
|
|
ee73ea2d18 |
||
|
|
87f9453dd6 | ||
|
|
428df114ee | ||
|
|
1a21af89c4 | ||
|
|
e970f20b46 | ||
|
|
81719d66fe | ||
|
|
b4d25f7cc5 | ||
|
|
21c1d10106 | ||
|
|
447a6b3111 | ||
|
|
eebac04dfd | ||
|
|
58458beceb | ||
|
|
09bf7b1b2d | ||
|
|
049b0f66f6 | ||
|
|
b80a79ec07 | ||
|
|
85775ab887 |
||
|
|
c9ba412f7c | ||
|
|
faa9accf2b | ||
|
|
faec95ed33 | ||
|
|
97e2dc2c53 | ||
|
|
a3b5129661 | ||
|
|
d115630b52 | ||
|
|
772dbde034 | ||
|
|
bcfaa77399 | ||
|
|
b199b1f022 | ||
|
|
a3104ae190 | ||
|
|
fce4b4e598 | ||
|
|
d1232524b0 | ||
|
|
85a5f1d7e8 | ||
|
|
3779aa986b | ||
|
|
66a1b58665 |
||
|
|
f3a0ca21b0 | ||
|
|
83a9307859 | ||
|
|
0748c43e32 | ||
|
|
a1c6454f3e | ||
|
|
6fff97c3dd | ||
|
|
ed39b008b0 | ||
|
|
c847855fd7 | ||
|
|
2f071bc17d | ||
|
|
9b985dc8ad | ||
|
|
a9fd03b114 | ||
|
|
933f2fe9c7 | ||
|
|
31276ce0c9 | ||
|
|
69ed74e31b | ||
|
|
6ebda19672 | ||
|
|
5b467198f4 | ||
|
|
543e5bdda5 | ||
|
|
6f2e125c4d | ||
|
|
fdb00d2a5e | ||
|
|
515e0e79e2 | ||
|
|
aa92897b03 | ||
|
|
aa224e7033 | ||
|
|
4c68323339 | ||
|
|
c0fc8283f2 | ||
|
|
014d92c363 |
||
|
|
76d1380e69 | ||
|
|
2f12b3e59e | ||
|
|
2d9f342b83 | ||
|
|
bdaa844334 | ||
|
|
7fd5652a0d | ||
|
|
c176dd8025 | ||
|
|
8f77a5bad2 | ||
|
|
f1b44b9bcf | ||
|
|
8e3d06682d | ||
|
|
38be301069 | ||
|
|
b4f30451c1 | ||
|
|
ec7eeb8d95 | ||
|
|
fc841cf8d3 | ||
|
|
1b0fe53452 | ||
|
|
c588833763 | ||
|
|
00a29628e2 | ||
|
|
31725dcc65 | ||
|
|
094049e9bf | ||
|
|
e617f01aa2 |
||
|
|
4e31f1d088 | ||
|
|
22baf87d10 |
2969 changed files with 22477 additions and 49840 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
|
@ -1,8 +1,11 @@
|
|||
clog
|
||||
*.xz
|
||||
*.bz2
|
||||
*.gz
|
||||
*.rpm
|
||||
*.orig
|
||||
*.sign
|
||||
kernel-[234].*/
|
||||
kernel-[45].*/
|
||||
perf-man-*.tar.gz
|
||||
kernel-headers/
|
||||
kernel-tools/
|
||||
|
|
|
|||
25
0001-Drop-that-for-now.patch
Normal file
25
0001-Drop-that-for-now.patch
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
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
|
||||
|
||||
|
|
@ -6,27 +6,27 @@ Subject: [PATCH 1/3] Make get_cert_list() not complain about cert lists that
|
|||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
---
|
||||
certs/load_uefi.c | 37 ++++++++++++++++++++++---------------
|
||||
security/integrity/platform_certs/load_uefi.c | 37 ++++++++++++++++++++++---------------
|
||||
1 file changed, 22 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/certs/load_uefi.c b/certs/load_uefi.c
|
||||
index 3d884598601..9ef34c44fd1 100644
|
||||
--- a/certs/load_uefi.c
|
||||
+++ b/certs/load_uefi.c
|
||||
@@ -35,8 +35,8 @@ static __init bool uefi_check_ignore_db(void)
|
||||
diff --git a/security/integrity/platform_certs/load_uefi.c b/security/integrity/platform_certs/load_uefi.c
|
||||
index 81b19c52832b..e188f3ecbce3 100644
|
||||
--- a/security/integrity/platform_certs/load_uefi.c
|
||||
+++ b/security/integrity/platform_certs/load_uefi.c
|
||||
@@ -38,8 +38,8 @@ static __init bool uefi_check_ignore_db(void)
|
||||
/*
|
||||
* Get a certificate list blob from the named EFI variable.
|
||||
*/
|
||||
-static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid,
|
||||
- unsigned long *size)
|
||||
+static __init int get_cert_list(efi_char16_t *name, efi_guid_t *guid,
|
||||
+ unsigned long *size, void **cert_list)
|
||||
+ unsigned long *size , void **cert_list)
|
||||
{
|
||||
efi_status_t status;
|
||||
unsigned long lsize = 4;
|
||||
@@ -44,26 +44,33 @@ static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid,
|
||||
@@ -47,24 +47,31 @@ static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid,
|
||||
void *db;
|
||||
|
||||
|
||||
status = efi.get_variable(name, guid, NULL, &lsize, &tmpdb);
|
||||
+ if (status == EFI_NOT_FOUND) {
|
||||
+ *size = 0;
|
||||
|
|
@ -39,14 +39,12 @@ index 3d884598601..9ef34c44fd1 100644
|
|||
- return NULL;
|
||||
+ return efi_status_to_err(status);
|
||||
}
|
||||
|
||||
|
||||
db = kmalloc(lsize, GFP_KERNEL);
|
||||
if (!db) {
|
||||
pr_err("Couldn't allocate memory for uefi cert list\n");
|
||||
if (!db)
|
||||
- return NULL;
|
||||
+ return -ENOMEM;
|
||||
}
|
||||
|
||||
|
||||
status = efi.get_variable(name, guid, NULL, &lsize, db);
|
||||
if (status != EFI_SUCCESS) {
|
||||
kfree(db);
|
||||
|
|
@ -54,15 +52,15 @@ index 3d884598601..9ef34c44fd1 100644
|
|||
- return NULL;
|
||||
+ return efi_status_to_err(status);
|
||||
}
|
||||
|
||||
|
||||
*size = lsize;
|
||||
- return db;
|
||||
+ *cert_list = db;
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
@@ -152,10 +159,10 @@ static int __init load_uefi_certs(void)
|
||||
@@ -153,10 +160,10 @@ static int __init load_uefi_certs(void)
|
||||
* an error if we can't get them.
|
||||
*/
|
||||
if (!uefi_check_ignore_db()) {
|
||||
|
|
@ -74,36 +72,33 @@ index 3d884598601..9ef34c44fd1 100644
|
|||
- } else {
|
||||
+ } else if (dbsize != 0) {
|
||||
rc = parse_efi_signature_list("UEFI:db",
|
||||
db, dbsize, get_handler_for_db);
|
||||
db, dbsize, get_handler_for_db);
|
||||
if (rc)
|
||||
@@ -164,10 +171,10 @@ static int __init load_uefi_certs(void)
|
||||
@@ -166,10 +173,10 @@ static int __init load_uefi_certs(void)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
- mok = get_cert_list(L"MokListRT", &mok_var, &moksize);
|
||||
- if (!mok) {
|
||||
+ rc = get_cert_list(L"MokListRT", &mok_var, &moksize, &mok);
|
||||
+ if (rc < 0) {
|
||||
pr_info("MODSIGN: Couldn't get UEFI MokListRT\n");
|
||||
pr_info("Couldn't get UEFI MokListRT\n");
|
||||
- } else {
|
||||
+ } else if (moksize != 0) {
|
||||
rc = parse_efi_signature_list("UEFI:MokListRT",
|
||||
mok, moksize, get_handler_for_db);
|
||||
if (rc)
|
||||
@@ -175,10 +182,10 @@ static int __init load_uefi_certs(void)
|
||||
@@ -177,10 +184,10 @@ static int __init load_uefi_certs(void)
|
||||
kfree(mok);
|
||||
}
|
||||
|
||||
|
||||
- dbx = get_cert_list(L"dbx", &secure_var, &dbxsize);
|
||||
- if (!dbx) {
|
||||
+ rc = get_cert_list(L"dbx", &secure_var, &dbxsize, &dbx);
|
||||
+ if (rc < 0) {
|
||||
pr_info("MODSIGN: Couldn't get UEFI dbx list\n");
|
||||
pr_info("Couldn't get UEFI dbx list\n");
|
||||
- } else {
|
||||
+ } else if (dbxsize != 0) {
|
||||
rc = parse_efi_signature_list("UEFI:dbx",
|
||||
dbx, dbxsize,
|
||||
get_handler_for_dbx);
|
||||
--
|
||||
2.15.0
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,33 @@
|
|||
From 4a9d46a9fe14401f21df69cea97c62396d5fb053 Mon Sep 17 00:00:00 2001
|
||||
From: Navid Emamdoost <navid.emamdoost@gmail.com>
|
||||
Date: Tue, 10 Sep 2019 17:21:19 -0500
|
||||
Subject: [PATCH] RDMA: Fix goto target to release the allocated memory
|
||||
|
||||
In bnxt_re_create_srq(), when ib_copy_to_udata() fails allocated memory
|
||||
should be released by goto fail.
|
||||
|
||||
Fixes: 37cb11acf1f7 ("RDMA/bnxt_re: Add SRQ support for Broadcom adapters")
|
||||
Link: https://lore.kernel.org/r/20190910222120.16517-1-navid.emamdoost@gmail.com
|
||||
Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
|
||||
Reviewed-by: Jason Gunthorpe <jgg@mellanox.com>
|
||||
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
|
||||
---
|
||||
drivers/infiniband/hw/bnxt_re/ib_verbs.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/infiniband/hw/bnxt_re/ib_verbs.c b/drivers/infiniband/hw/bnxt_re/ib_verbs.c
|
||||
index f9e97d0cc459..b4149dc9e824 100644
|
||||
--- a/drivers/infiniband/hw/bnxt_re/ib_verbs.c
|
||||
+++ b/drivers/infiniband/hw/bnxt_re/ib_verbs.c
|
||||
@@ -1398,7 +1398,7 @@ int bnxt_re_create_srq(struct ib_srq *ib_srq,
|
||||
dev_err(rdev_to_dev(rdev), "SRQ copy to udata failed!");
|
||||
bnxt_qplib_destroy_srq(&rdev->qplib_res,
|
||||
&srq->qplib_srq);
|
||||
- goto exit;
|
||||
+ goto fail;
|
||||
}
|
||||
}
|
||||
if (nq)
|
||||
--
|
||||
2.23.0
|
||||
|
||||
29
0001-ath9k-release-allocated-buffer-if-timed-out.patch
Normal file
29
0001-ath9k-release-allocated-buffer-if-timed-out.patch
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
From 728c1e2a05e4b5fc52fab3421dce772a806612a2 Mon Sep 17 00:00:00 2001
|
||||
From: Navid Emamdoost <navid.emamdoost@gmail.com>
|
||||
Date: Fri, 6 Sep 2019 13:59:30 -0500
|
||||
Subject: [PATCH] ath9k: release allocated buffer if timed out
|
||||
|
||||
In ath9k_wmi_cmd, the allocated network buffer needs to be released
|
||||
if timeout happens. Otherwise memory will be leaked.
|
||||
|
||||
Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
|
||||
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
---
|
||||
drivers/net/wireless/ath/ath9k/wmi.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/drivers/net/wireless/ath/ath9k/wmi.c b/drivers/net/wireless/ath/ath9k/wmi.c
|
||||
index d1f6710ca63b..cdc146091194 100644
|
||||
--- a/drivers/net/wireless/ath/ath9k/wmi.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/wmi.c
|
||||
@@ -336,6 +336,7 @@ int ath9k_wmi_cmd(struct wmi *wmi, enum wmi_cmd_id cmd_id,
|
||||
ath_dbg(common, WMI, "Timeout waiting for WMI command: %s\n",
|
||||
wmi_cmd_to_name(cmd_id));
|
||||
mutex_unlock(&wmi->op_mutex);
|
||||
+ kfree_skb(skb);
|
||||
return -ETIMEDOUT;
|
||||
}
|
||||
|
||||
--
|
||||
2.23.0
|
||||
|
||||
46
0001-ath9k_htc-release-allocated-buffer-if-timed-out.patch
Normal file
46
0001-ath9k_htc-release-allocated-buffer-if-timed-out.patch
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
From 853acf7caf10b828102d92d05b5c101666a6142b Mon Sep 17 00:00:00 2001
|
||||
From: Navid Emamdoost <navid.emamdoost@gmail.com>
|
||||
Date: Fri, 6 Sep 2019 13:26:03 -0500
|
||||
Subject: [PATCH] ath9k_htc: release allocated buffer if timed out
|
||||
|
||||
In htc_config_pipe_credits, htc_setup_complete, and htc_connect_service
|
||||
if time out happens, the allocated buffer needs to be released.
|
||||
Otherwise there will be memory leak.
|
||||
|
||||
Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
|
||||
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
---
|
||||
drivers/net/wireless/ath/ath9k/htc_hst.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/drivers/net/wireless/ath/ath9k/htc_hst.c b/drivers/net/wireless/ath/ath9k/htc_hst.c
|
||||
index 1bf63a4efb4c..d091c8ebdcf0 100644
|
||||
--- a/drivers/net/wireless/ath/ath9k/htc_hst.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/htc_hst.c
|
||||
@@ -170,6 +170,7 @@ static int htc_config_pipe_credits(struct htc_target *target)
|
||||
time_left = wait_for_completion_timeout(&target->cmd_wait, HZ);
|
||||
if (!time_left) {
|
||||
dev_err(target->dev, "HTC credit config timeout\n");
|
||||
+ kfree_skb(skb);
|
||||
return -ETIMEDOUT;
|
||||
}
|
||||
|
||||
@@ -205,6 +206,7 @@ static int htc_setup_complete(struct htc_target *target)
|
||||
time_left = wait_for_completion_timeout(&target->cmd_wait, HZ);
|
||||
if (!time_left) {
|
||||
dev_err(target->dev, "HTC start timeout\n");
|
||||
+ kfree_skb(skb);
|
||||
return -ETIMEDOUT;
|
||||
}
|
||||
|
||||
@@ -277,6 +279,7 @@ int htc_connect_service(struct htc_target *target,
|
||||
if (!time_left) {
|
||||
dev_err(target->dev, "Service connection timeout for: %d\n",
|
||||
service_connreq->service_id);
|
||||
+ kfree_skb(skb);
|
||||
return -ETIMEDOUT;
|
||||
}
|
||||
|
||||
--
|
||||
2.23.0
|
||||
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
From 15f77c4ade3364106a3a397f0a8d6fce9d6a6326 Mon Sep 17 00:00:00 2001
|
||||
From: Ben Skeggs <bskeggs@redhat.com>
|
||||
Date: Fri, 11 Jan 2019 16:08:20 +1000
|
||||
Subject: [PATCH] drm/nouveau: register backlight on pascal and newer
|
||||
|
||||
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
||||
---
|
||||
drivers/gpu/drm/nouveau/nouveau_backlight.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/drivers/gpu/drm/nouveau/nouveau_backlight.c b/drivers/gpu/drm/nouveau/nouveau_backlight.c
|
||||
index 5f5be6368aed..c7a94c94dbf3 100644
|
||||
--- a/drivers/gpu/drm/nouveau/nouveau_backlight.c
|
||||
+++ b/drivers/gpu/drm/nouveau/nouveau_backlight.c
|
||||
@@ -253,6 +253,8 @@ nouveau_backlight_init(struct drm_connector *connector)
|
||||
case NV_DEVICE_INFO_V0_FERMI:
|
||||
case NV_DEVICE_INFO_V0_KEPLER:
|
||||
case NV_DEVICE_INFO_V0_MAXWELL:
|
||||
+ case NV_DEVICE_INFO_V0_PASCAL:
|
||||
+ case NV_DEVICE_INFO_V0_VOLTA:
|
||||
ret = nv50_backlight_init(nv_encoder, &props, &ops);
|
||||
break;
|
||||
default:
|
||||
--
|
||||
2.20.1
|
||||
|
||||
|
|
@ -1,64 +0,0 @@
|
|||
From 0eadbb65c0026fb4eec89c54f6b48a0febd87f92 Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Fri, 9 Sep 2016 08:19:17 -0700
|
||||
Subject: [PATCH] iio: Use type header from kernel tree
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
To: Jonathan Cameron <jic23@kernel.org>
|
||||
To: Hartmut Knaack <knaack.h@gmx.de>
|
||||
To: Lars-Peter Clausen <lars@metafoo.de>
|
||||
To: Peter Meerwald-Stadler <pmeerw@pmeerw.net>
|
||||
Cc: linux-iio@vger.kernel.org
|
||||
Cc: linux-kernel@vger.kernel.org
|
||||
|
||||
|
||||
The iio tools have been updated as new event types have been added to
|
||||
the kernel. The tools currently use the standard system headers which
|
||||
means that the system may not have the newest defintitions. This leads
|
||||
to build failures when building newer tools on older hosts:
|
||||
|
||||
gcc -Wall -g -D_GNU_SOURCE -c -o iio_event_monitor.o
|
||||
iio_event_monitor.c
|
||||
iio_event_monitor.c:59:3: error: ‘IIO_UVINDEX’ undeclared here (not in a
|
||||
function)
|
||||
[IIO_UVINDEX] = "uvindex",
|
||||
^~~~~~~~~~~
|
||||
iio_event_monitor.c:59:3: error: array index in initializer not of
|
||||
integer type
|
||||
iio_event_monitor.c:59:3: note: (near initialization for
|
||||
‘iio_chan_type_name_spec’)
|
||||
iio_event_monitor.c:97:3: error: ‘IIO_MOD_LIGHT_UV’ undeclared here (not
|
||||
in a function)
|
||||
[IIO_MOD_LIGHT_UV] = "uv",
|
||||
^~~~~~~~~~~~~~~~
|
||||
iio_event_monitor.c:97:3: error: array index in initializer not of
|
||||
integer type
|
||||
iio_event_monitor.c:97:3: note: (near initialization for
|
||||
‘iio_modifier_names’)
|
||||
<builtin>: recipe for target 'iio_event_monitor.o' failed
|
||||
|
||||
Switch to using the header from the kernel tree to ensure the newest
|
||||
defintions are always picked up.
|
||||
|
||||
Signed-off-by: Laura Abbott <labbott@redhat.com>
|
||||
---
|
||||
tools/iio/iio_event_monitor.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tools/iio/iio_event_monitor.c b/tools/iio/iio_event_monitor.c
|
||||
index d9b7e0f..f02523d 100644
|
||||
--- a/tools/iio/iio_event_monitor.c
|
||||
+++ b/tools/iio/iio_event_monitor.c
|
||||
@@ -26,7 +26,7 @@
|
||||
#include <sys/ioctl.h>
|
||||
#include "iio_utils.h"
|
||||
#include <linux/iio/events.h>
|
||||
-#include <linux/iio/types.h>
|
||||
+#include "../../include/uapi/linux/iio/types.h"
|
||||
|
||||
static const char * const iio_chan_type_name_spec[] = {
|
||||
[IIO_VOLTAGE] = "voltage",
|
||||
--
|
||||
2.7.4
|
||||
|
||||
29
0001-iwlwifi-dbg_ini-fix-memory-leak-in-alloc_sgtable.patch
Normal file
29
0001-iwlwifi-dbg_ini-fix-memory-leak-in-alloc_sgtable.patch
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
From b4b814fec1a5a849383f7b3886b654a13abbda7d Mon Sep 17 00:00:00 2001
|
||||
From: Navid Emamdoost <navid.emamdoost@gmail.com>
|
||||
Date: Thu, 12 Sep 2019 23:23:27 -0500
|
||||
Subject: [PATCH] iwlwifi: dbg_ini: fix memory leak in alloc_sgtable
|
||||
|
||||
In alloc_sgtable if alloc_page fails, the alocated table should be
|
||||
released.
|
||||
|
||||
Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
|
||||
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
|
||||
---
|
||||
drivers/net/wireless/intel/iwlwifi/fw/dbg.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
|
||||
index 5c8602de9168..87421807e040 100644
|
||||
--- a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
|
||||
+++ b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
|
||||
@@ -646,6 +646,7 @@ static struct scatterlist *alloc_sgtable(int size)
|
||||
if (new_page)
|
||||
__free_page(new_page);
|
||||
}
|
||||
+ kfree(table);
|
||||
return NULL;
|
||||
}
|
||||
alloc_size = min_t(int, size, PAGE_SIZE);
|
||||
--
|
||||
2.23.0
|
||||
|
||||
|
|
@ -0,0 +1,99 @@
|
|||
From 0f4f199443faca715523b0659aa536251d8b978f Mon Sep 17 00:00:00 2001
|
||||
From: Navid Emamdoost <navid.emamdoost@gmail.com>
|
||||
Date: Fri, 27 Sep 2019 15:56:04 -0500
|
||||
Subject: [PATCH] iwlwifi: pcie: fix memory leaks in
|
||||
iwl_pcie_ctxt_info_gen3_init
|
||||
|
||||
In iwl_pcie_ctxt_info_gen3_init there are cases that the allocated dma
|
||||
memory is leaked in case of error.
|
||||
|
||||
DMA memories prph_scratch, prph_info, and ctxt_info_gen3 are allocated
|
||||
and initialized to be later assigned to trans_pcie. But in any error case
|
||||
before such assignment the allocated memories should be released.
|
||||
|
||||
First of such error cases happens when iwl_pcie_init_fw_sec fails.
|
||||
Current implementation correctly releases prph_scratch. But in two
|
||||
sunsequent error cases where dma_alloc_coherent may fail, such
|
||||
releases are missing.
|
||||
|
||||
This commit adds release for prph_scratch when allocation for
|
||||
prph_info fails, and adds releases for prph_scratch and prph_info when
|
||||
allocation for ctxt_info_gen3 fails.
|
||||
|
||||
Fixes: 2ee824026288 ("iwlwifi: pcie: support context information for 22560 devices")
|
||||
Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
|
||||
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
|
||||
---
|
||||
.../intel/iwlwifi/pcie/ctxt-info-gen3.c | 36 +++++++++++++------
|
||||
1 file changed, 25 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c b/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
|
||||
index 75fa8a6aafee..74980382e64c 100644
|
||||
--- a/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
|
||||
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
|
||||
@@ -107,13 +107,9 @@ int iwl_pcie_ctxt_info_gen3_init(struct iwl_trans *trans,
|
||||
|
||||
/* allocate ucode sections in dram and set addresses */
|
||||
ret = iwl_pcie_init_fw_sec(trans, fw, &prph_scratch->dram);
|
||||
- if (ret) {
|
||||
- dma_free_coherent(trans->dev,
|
||||
- sizeof(*prph_scratch),
|
||||
- prph_scratch,
|
||||
- trans_pcie->prph_scratch_dma_addr);
|
||||
- return ret;
|
||||
- }
|
||||
+ if (ret)
|
||||
+ goto err_free_prph_scratch;
|
||||
+
|
||||
|
||||
/* Allocate prph information
|
||||
* currently we don't assign to the prph info anything, but it would get
|
||||
@@ -121,16 +117,20 @@ int iwl_pcie_ctxt_info_gen3_init(struct iwl_trans *trans,
|
||||
prph_info = dma_alloc_coherent(trans->dev, sizeof(*prph_info),
|
||||
&trans_pcie->prph_info_dma_addr,
|
||||
GFP_KERNEL);
|
||||
- if (!prph_info)
|
||||
- return -ENOMEM;
|
||||
+ if (!prph_info) {
|
||||
+ ret = -ENOMEM;
|
||||
+ goto err_free_prph_scratch;
|
||||
+ }
|
||||
|
||||
/* Allocate context info */
|
||||
ctxt_info_gen3 = dma_alloc_coherent(trans->dev,
|
||||
sizeof(*ctxt_info_gen3),
|
||||
&trans_pcie->ctxt_info_dma_addr,
|
||||
GFP_KERNEL);
|
||||
- if (!ctxt_info_gen3)
|
||||
- return -ENOMEM;
|
||||
+ if (!ctxt_info_gen3) {
|
||||
+ ret = -ENOMEM;
|
||||
+ goto err_free_prph_info;
|
||||
+ }
|
||||
|
||||
ctxt_info_gen3->prph_info_base_addr =
|
||||
cpu_to_le64(trans_pcie->prph_info_dma_addr);
|
||||
@@ -186,6 +186,20 @@ int iwl_pcie_ctxt_info_gen3_init(struct iwl_trans *trans,
|
||||
iwl_set_bit(trans, CSR_GP_CNTRL, CSR_AUTO_FUNC_INIT);
|
||||
|
||||
return 0;
|
||||
+
|
||||
+err_free_prph_info:
|
||||
+ dma_free_coherent(trans->dev,
|
||||
+ sizeof(*prph_info),
|
||||
+ prph_info,
|
||||
+ trans_pcie->prph_info_dma_addr);
|
||||
+
|
||||
+err_free_prph_scratch:
|
||||
+ dma_free_coherent(trans->dev,
|
||||
+ sizeof(*prph_scratch),
|
||||
+ prph_scratch,
|
||||
+ trans_pcie->prph_scratch_dma_addr);
|
||||
+ return ret;
|
||||
+
|
||||
}
|
||||
|
||||
void iwl_pcie_ctxt_info_gen3_free(struct iwl_trans *trans)
|
||||
--
|
||||
2.23.0
|
||||
|
||||
|
|
@ -1,134 +0,0 @@
|
|||
From 25d3cf21987c752240df03c050593621ed2bd3a3 Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Tue, 3 Jul 2018 15:50:14 -0700
|
||||
Subject: [PATCHv6 1/4] kbuild: Add build salt to the kernel and modules
|
||||
To: Andy Lutomirski <luto@kernel.org>
|
||||
To: mjw@fedoraproject.org
|
||||
Cc: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
To: H. J. Lu <hjl.tools@gmail.com>
|
||||
Cc: X86 ML <x86@kernel.org>
|
||||
Cc: linux-kernel@vger.kernel.org
|
||||
To: Masahiro Yamada <yamada.masahiro@socionext.com>
|
||||
Cc: Nick Clifton <nickc@redhat.com>
|
||||
Cc: Cary Coutant <ccoutant@gmail.com>
|
||||
Cc: linux-kbuild@vger.kernel.org
|
||||
Cc: linuxppc-dev@lists.ozlabs.org
|
||||
To: Michael Ellerman <mpe@ellerman.id.au>
|
||||
To: Catalin Marinas <catalin.marinas@arm.com>
|
||||
To: Will Deacon <will.deacon@arm.com>
|
||||
Cc: linux-arm-kernel@lists.infradead.org
|
||||
|
||||
|
||||
In Fedora, the debug information is packaged separately (foo-debuginfo) and
|
||||
can be installed separately. There's been a long standing issue where only
|
||||
one version of a debuginfo info package can be installed at a time. There's
|
||||
been an effort for Fedora for parallel debuginfo to rectify this problem.
|
||||
|
||||
Part of the requirement to allow parallel debuginfo to work is that build ids
|
||||
are unique between builds. The existing upstream rpm implementation ensures
|
||||
this by re-calculating the build-id using the version and release as a
|
||||
seed. This doesn't work 100% for the kernel because of the vDSO which is
|
||||
its own binary and doesn't get updated when embedded.
|
||||
|
||||
Fix this by adding some data in an ELF note for both the kernel and modules.
|
||||
The data is controlled via a Kconfig option so distributions can set it
|
||||
to an appropriate value to ensure uniqueness between builds.
|
||||
|
||||
Suggested-by: Masahiro Yamada <yamada.masahiro@socionext.com>
|
||||
Signed-off-by: Laura Abbott <labbott@redhat.com>
|
||||
---
|
||||
v6: Added more detail to the commit text about why exactly this feature
|
||||
is useful. Default string now ""
|
||||
---
|
||||
include/linux/build-salt.h | 20 ++++++++++++++++++++
|
||||
init/Kconfig | 9 +++++++++
|
||||
init/version.c | 3 +++
|
||||
scripts/mod/modpost.c | 3 +++
|
||||
4 files changed, 35 insertions(+)
|
||||
create mode 100644 include/linux/build-salt.h
|
||||
|
||||
diff --git a/include/linux/build-salt.h b/include/linux/build-salt.h
|
||||
new file mode 100644
|
||||
index 000000000000..bb007bd05e7a
|
||||
--- /dev/null
|
||||
+++ b/include/linux/build-salt.h
|
||||
@@ -0,0 +1,20 @@
|
||||
+#ifndef __BUILD_SALT_H
|
||||
+#define __BUILD_SALT_H
|
||||
+
|
||||
+#include <linux/elfnote.h>
|
||||
+
|
||||
+#define LINUX_ELFNOTE_BUILD_SALT 0x100
|
||||
+
|
||||
+#ifdef __ASSEMBLER__
|
||||
+
|
||||
+#define BUILD_SALT \
|
||||
+ ELFNOTE(Linux, LINUX_ELFNOTE_BUILD_SALT, .asciz CONFIG_BUILD_SALT)
|
||||
+
|
||||
+#else
|
||||
+
|
||||
+#define BUILD_SALT \
|
||||
+ ELFNOTE32("Linux", LINUX_ELFNOTE_BUILD_SALT, CONFIG_BUILD_SALT)
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
+#endif /* __BUILD_SALT_H */
|
||||
diff --git a/init/Kconfig b/init/Kconfig
|
||||
index 041f3a022122..d39b31484c52 100644
|
||||
--- a/init/Kconfig
|
||||
+++ b/init/Kconfig
|
||||
@@ -107,6 +107,15 @@ config LOCALVERSION_AUTO
|
||||
|
||||
which is done within the script "scripts/setlocalversion".)
|
||||
|
||||
+config BUILD_SALT
|
||||
+ string "Build ID Salt"
|
||||
+ default ""
|
||||
+ help
|
||||
+ The build ID is used to link binaries and their debug info. Setting
|
||||
+ this option will use the value in the calculation of the build id.
|
||||
+ This is mostly useful for distributions which want to ensure the
|
||||
+ build is unique between builds. It's safe to leave the default.
|
||||
+
|
||||
config HAVE_KERNEL_GZIP
|
||||
bool
|
||||
|
||||
diff --git a/init/version.c b/init/version.c
|
||||
index bfb4e3f4955e..ef4012ec4375 100644
|
||||
--- a/init/version.c
|
||||
+++ b/init/version.c
|
||||
@@ -7,6 +7,7 @@
|
||||
*/
|
||||
|
||||
#include <generated/compile.h>
|
||||
+#include <linux/build-salt.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/uts.h>
|
||||
#include <linux/utsname.h>
|
||||
@@ -49,3 +50,5 @@ const char linux_proc_banner[] =
|
||||
"%s version %s"
|
||||
" (" LINUX_COMPILE_BY "@" LINUX_COMPILE_HOST ")"
|
||||
" (" LINUX_COMPILER ") %s\n";
|
||||
+
|
||||
+BUILD_SALT;
|
||||
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
|
||||
index 1663fb19343a..dc6d714e4dcb 100644
|
||||
--- a/scripts/mod/modpost.c
|
||||
+++ b/scripts/mod/modpost.c
|
||||
@@ -2125,10 +2125,13 @@ static int check_modname_len(struct module *mod)
|
||||
**/
|
||||
static void add_header(struct buffer *b, struct module *mod)
|
||||
{
|
||||
+ buf_printf(b, "#include <linux/build-salt.h>\n");
|
||||
buf_printf(b, "#include <linux/module.h>\n");
|
||||
buf_printf(b, "#include <linux/vermagic.h>\n");
|
||||
buf_printf(b, "#include <linux/compiler.h>\n");
|
||||
buf_printf(b, "\n");
|
||||
+ buf_printf(b, "BUILD_SALT;\n");
|
||||
+ buf_printf(b, "\n");
|
||||
buf_printf(b, "MODULE_INFO(vermagic, VERMAGIC_STRING);\n");
|
||||
buf_printf(b, "MODULE_INFO(name, KBUILD_MODNAME);\n");
|
||||
buf_printf(b, "\n");
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
From 1399c59fa92984836db90538cf92397fe7caaa57 Mon Sep 17 00:00:00 2001
|
||||
From: Navid Emamdoost <navid.emamdoost@gmail.com>
|
||||
Date: Fri, 4 Oct 2019 14:42:19 -0500
|
||||
Subject: [PATCH] nl80211: fix memory leak in nl80211_get_ftm_responder_stats
|
||||
|
||||
In nl80211_get_ftm_responder_stats, a new skb is created via nlmsg_new
|
||||
named msg. If nl80211hdr_put() fails, then msg should be released. The
|
||||
return statement should be replace by goto to error handling code.
|
||||
|
||||
Fixes: 81e54d08d9d8 ("cfg80211: support FTM responder configuration/statistics")
|
||||
Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
|
||||
Link: https://lore.kernel.org/r/20191004194220.19412-1-navid.emamdoost@gmail.com
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
---
|
||||
net/wireless/nl80211.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
|
||||
index 141cdb171665..4453dd375de9 100644
|
||||
--- a/net/wireless/nl80211.c
|
||||
+++ b/net/wireless/nl80211.c
|
||||
@@ -13682,7 +13682,7 @@ static int nl80211_get_ftm_responder_stats(struct sk_buff *skb,
|
||||
hdr = nl80211hdr_put(msg, info->snd_portid, info->snd_seq, 0,
|
||||
NL80211_CMD_GET_FTM_RESPONDER_STATS);
|
||||
if (!hdr)
|
||||
- return -ENOBUFS;
|
||||
+ goto nla_put_failure;
|
||||
|
||||
if (nla_put_u32(msg, NL80211_ATTR_IFINDEX, dev->ifindex))
|
||||
goto nla_put_failure;
|
||||
--
|
||||
2.23.0
|
||||
|
||||
|
|
@ -1,99 +0,0 @@
|
|||
From 714fe15daa07e7691c9731c88de71aa57f84b6c2 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Wed, 3 Jan 2018 11:13:54 +0100
|
||||
Subject: [PATCH] platform/x86: dell-laptop: Filter out spurious keyboard
|
||||
backlight change events
|
||||
|
||||
On some Dell XPS models WMI events of type 0x0000 reporting a keycode of
|
||||
0xe00c get reported when the brightness of the LCD panel changes.
|
||||
|
||||
This leads to us reporting false-positive kbd_led change events to
|
||||
userspace which in turn leads to the kbd backlight OSD showing when it
|
||||
should not.
|
||||
|
||||
We already read the current keyboard backlight brightness value when
|
||||
reporting events because the led_classdev_notify_brightness_hw_changed
|
||||
API requires this. Compare this value to the last known value and filter
|
||||
out duplicate events, fixing this.
|
||||
|
||||
Note the fixed issue is esp. a problem on XPS models with an ambient light
|
||||
sensor and automatic brightness adjustments turned on, this causes the kbd
|
||||
backlight OSD to show all the time there.
|
||||
|
||||
BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1514969
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/platform/x86/dell-laptop.c | 24 ++++++++++++++++++++++--
|
||||
1 file changed, 22 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c
|
||||
index cd4725e7e0b5..2ef3297a9efc 100644
|
||||
--- a/drivers/platform/x86/dell-laptop.c
|
||||
+++ b/drivers/platform/x86/dell-laptop.c
|
||||
@@ -1133,6 +1133,7 @@ static u8 kbd_previous_mode_bit;
|
||||
|
||||
static bool kbd_led_present;
|
||||
static DEFINE_MUTEX(kbd_led_mutex);
|
||||
+static enum led_brightness kbd_led_level;
|
||||
|
||||
/*
|
||||
* NOTE: there are three ways to set the keyboard backlight level.
|
||||
@@ -1947,6 +1948,7 @@ static enum led_brightness kbd_led_level_get(struct led_classdev *led_cdev)
|
||||
static int kbd_led_level_set(struct led_classdev *led_cdev,
|
||||
enum led_brightness value)
|
||||
{
|
||||
+ enum led_brightness new_value = value;
|
||||
struct kbd_state state;
|
||||
struct kbd_state new_state;
|
||||
u16 num;
|
||||
@@ -1976,6 +1978,9 @@ static int kbd_led_level_set(struct led_classdev *led_cdev,
|
||||
}
|
||||
|
||||
out:
|
||||
+ if (ret == 0)
|
||||
+ kbd_led_level = new_value;
|
||||
+
|
||||
mutex_unlock(&kbd_led_mutex);
|
||||
return ret;
|
||||
}
|
||||
@@ -2003,6 +2008,9 @@ static int __init kbd_led_init(struct device *dev)
|
||||
if (kbd_led.max_brightness)
|
||||
kbd_led.max_brightness--;
|
||||
}
|
||||
+
|
||||
+ kbd_led_level = kbd_led_level_get(NULL);
|
||||
+
|
||||
ret = led_classdev_register(dev, &kbd_led);
|
||||
if (ret)
|
||||
kbd_led_present = false;
|
||||
@@ -2027,13 +2035,25 @@ static void kbd_led_exit(void)
|
||||
static int dell_laptop_notifier_call(struct notifier_block *nb,
|
||||
unsigned long action, void *data)
|
||||
{
|
||||
+ bool changed = false;
|
||||
+ enum led_brightness new_kbd_led_level;
|
||||
+
|
||||
switch (action) {
|
||||
case DELL_LAPTOP_KBD_BACKLIGHT_BRIGHTNESS_CHANGED:
|
||||
if (!kbd_led_present)
|
||||
break;
|
||||
|
||||
- led_classdev_notify_brightness_hw_changed(&kbd_led,
|
||||
- kbd_led_level_get(&kbd_led));
|
||||
+ mutex_lock(&kbd_led_mutex);
|
||||
+ new_kbd_led_level = kbd_led_level_get(&kbd_led);
|
||||
+ if (kbd_led_level != new_kbd_led_level) {
|
||||
+ kbd_led_level = new_kbd_led_level;
|
||||
+ changed = true;
|
||||
+ }
|
||||
+ mutex_unlock(&kbd_led_mutex);
|
||||
+
|
||||
+ if (changed)
|
||||
+ led_classdev_notify_brightness_hw_changed(&kbd_led,
|
||||
+ kbd_led_level);
|
||||
break;
|
||||
}
|
||||
|
||||
--
|
||||
2.14.3
|
||||
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
From 79bfd044ed82290603093be1a3759672176f3e6f Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Tue, 19 Jun 2018 13:30:04 +0200
|
||||
Subject: [PATCH] printk: Make CONSOLE_LOGLEVEL_QUIET configurable
|
||||
|
||||
The goal of passing the "quiet" option to the kernel is for the kernel
|
||||
to be quiet unless something really is wrong.
|
||||
|
||||
Sofar passing quiet has been (mostly) equivalent to passing
|
||||
loglevel=4 on the kernel commandline. Which means to show any messages
|
||||
with a level of KERN_ERR or higher severity on the console.
|
||||
|
||||
In practice this often does not result in a quiet boot though, since
|
||||
there are many false-positive or otherwise harmless error messages printed,
|
||||
defeating the purpose of the quiet option. Esp. the ACPICA code is really
|
||||
bad wrt this, but there are plenty of others too.
|
||||
|
||||
This commit makes CONSOLE_LOGLEVEL_QUIET configurable.
|
||||
|
||||
This for example will allow distros which want quiet to really mean quiet
|
||||
to set CONSOLE_LOGLEVEL_QUIET so that only messages with a higher severity
|
||||
then KERN_ERR (CRIT, ALERT, EMERG) get printed, avoiding an endless game
|
||||
of whack-a-mole silencing harmless error messages.
|
||||
|
||||
Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
include/linux/printk.h | 6 +++---
|
||||
lib/Kconfig.debug | 11 +++++++++++
|
||||
2 files changed, 14 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/include/linux/printk.h b/include/linux/printk.h
|
||||
index 6d7e800affd8..18602bb3eca8 100644
|
||||
--- a/include/linux/printk.h
|
||||
+++ b/include/linux/printk.h
|
||||
@@ -50,15 +50,15 @@ static inline const char *printk_skip_headers(const char *buffer)
|
||||
/* We show everything that is MORE important than this.. */
|
||||
#define CONSOLE_LOGLEVEL_SILENT 0 /* Mum's the word */
|
||||
#define CONSOLE_LOGLEVEL_MIN 1 /* Minimum loglevel we let people use */
|
||||
-#define CONSOLE_LOGLEVEL_QUIET 4 /* Shhh ..., when booted with "quiet" */
|
||||
#define CONSOLE_LOGLEVEL_DEBUG 10 /* issue debug messages */
|
||||
#define CONSOLE_LOGLEVEL_MOTORMOUTH 15 /* You can't shut this one up */
|
||||
|
||||
/*
|
||||
- * Default used to be hard-coded at 7, we're now allowing it to be set from
|
||||
- * kernel config.
|
||||
+ * Default used to be hard-coded at 7, quiet used to be hardcoded at 4,
|
||||
+ * we're now allowing both to be set from kernel config.
|
||||
*/
|
||||
#define CONSOLE_LOGLEVEL_DEFAULT CONFIG_CONSOLE_LOGLEVEL_DEFAULT
|
||||
+#define CONSOLE_LOGLEVEL_QUIET CONFIG_CONSOLE_LOGLEVEL_QUIET
|
||||
|
||||
extern int console_printk[];
|
||||
|
||||
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
|
||||
index 8838d1158d19..0d1c48dd22a9 100644
|
||||
--- a/lib/Kconfig.debug
|
||||
+++ b/lib/Kconfig.debug
|
||||
@@ -30,6 +30,17 @@ config CONSOLE_LOGLEVEL_DEFAULT
|
||||
usage in the kernel. That is controlled by the MESSAGE_LOGLEVEL_DEFAULT
|
||||
option.
|
||||
|
||||
+config CONSOLE_LOGLEVEL_QUIET
|
||||
+ int "quiet console loglevel (1-15)"
|
||||
+ range 1 15
|
||||
+ default "4"
|
||||
+ help
|
||||
+ loglevel to use when "quiet" is passed on the kernel commandline.
|
||||
+
|
||||
+ When "quiet" is passed on the kernel commandline this loglevel
|
||||
+ will be used as the loglevel. IOW passing "quiet" will be the
|
||||
+ equivalent of passing "loglevel=<CONSOLE_LOGLEVEL_QUIET>"
|
||||
+
|
||||
config MESSAGE_LOGLEVEL_DEFAULT
|
||||
int "Default message log level (1-7)"
|
||||
range 1 7
|
||||
--
|
||||
2.18.0
|
||||
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
From 85721e6bfc5da3c8f7971c4acb1a0ad16fb2c16a Mon Sep 17 00:00:00 2001
|
||||
From: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
|
||||
Date: Thu, 1 Feb 2018 13:29:38 +1100
|
||||
Subject: [PATCH] tools/lib/subcmd/pager.c: do not alias select() params
|
||||
|
||||
Use a separate fd set for select()-s exception fds param to fix the
|
||||
following gcc warning:
|
||||
|
||||
pager.c:36:12: error: passing argument 2 to restrict-qualified
|
||||
parameter aliases with argument 4 [-Werror=restrict]
|
||||
select(1, &in, NULL, &in, NULL);
|
||||
^~~ ~~~
|
||||
|
||||
Link: http://lkml.kernel.org/r/20180101105626.7168-1-sergey.senozhatsky@gmail.com
|
||||
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
|
||||
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
|
||||
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||||
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
|
||||
---
|
||||
tools/lib/subcmd/pager.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tools/lib/subcmd/pager.c b/tools/lib/subcmd/pager.c
|
||||
index 5ba754d17952..9997a8805a82 100644
|
||||
--- a/tools/lib/subcmd/pager.c
|
||||
+++ b/tools/lib/subcmd/pager.c
|
||||
@@ -30,10 +30,13 @@ static void pager_preexec(void)
|
||||
* have real input
|
||||
*/
|
||||
fd_set in;
|
||||
+ fd_set exception;
|
||||
|
||||
FD_ZERO(&in);
|
||||
+ FD_ZERO(&exception);
|
||||
FD_SET(0, &in);
|
||||
- select(1, &in, NULL, &in, NULL);
|
||||
+ FD_SET(0, &exception);
|
||||
+ select(1, &in, NULL, &exception, NULL);
|
||||
|
||||
setenv("LESS", "FRSX", 0);
|
||||
}
|
||||
--
|
||||
2.14.3
|
||||
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
From 96c5c6e6a5b6db592acae039fed54b5c8844cd35 Mon Sep 17 00:00:00 2001
|
||||
From: Navid Emamdoost <navid.emamdoost@gmail.com>
|
||||
Date: Fri, 20 Sep 2019 17:57:59 -0500
|
||||
Subject: [PATCH] tracing: Have error path in predicate_parse() free its
|
||||
allocated memory
|
||||
|
||||
In predicate_parse, there is an error path that is not going to
|
||||
out_free instead it returns directly which leads to a memory leak.
|
||||
|
||||
Link: http://lkml.kernel.org/r/20190920225800.3870-1-navid.emamdoost@gmail.com
|
||||
|
||||
Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
|
||||
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
|
||||
---
|
||||
kernel/trace/trace_events_filter.c | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c
|
||||
index c773b8fb270c..c9a74f82b14a 100644
|
||||
--- a/kernel/trace/trace_events_filter.c
|
||||
+++ b/kernel/trace/trace_events_filter.c
|
||||
@@ -452,8 +452,10 @@ predicate_parse(const char *str, int nr_parens, int nr_preds,
|
||||
|
||||
switch (*next) {
|
||||
case '(': /* #2 */
|
||||
- if (top - op_stack > nr_parens)
|
||||
- return ERR_PTR(-EINVAL);
|
||||
+ if (top - op_stack > nr_parens) {
|
||||
+ ret = -EINVAL;
|
||||
+ goto out_free;
|
||||
+ }
|
||||
*(++top) = invert;
|
||||
continue;
|
||||
case '!': /* #3 */
|
||||
--
|
||||
2.23.0
|
||||
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
From d48de54a9dab5370edd2e991f78cc7996cf5483e Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Thu, 28 Jun 2018 15:20:27 +0200
|
||||
Subject: [PATCH 2/7] printk: Export is_console_locked
|
||||
|
||||
This is a preparation patch for adding a number of WARN_CONSOLE_UNLOCKED()
|
||||
calls to the fbcon code, which may be built as a module (event though
|
||||
usually it is not).
|
||||
|
||||
Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
|
||||
Acked-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
|
||||
Acked-by: Petr Mladek <pmladek@suse.com>
|
||||
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
|
||||
---
|
||||
kernel/printk/printk.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
|
||||
index 247808333ba4..3f041e7cbfc9 100644
|
||||
--- a/kernel/printk/printk.c
|
||||
+++ b/kernel/printk/printk.c
|
||||
@@ -2243,6 +2243,7 @@ int is_console_locked(void)
|
||||
{
|
||||
return console_locked;
|
||||
}
|
||||
+EXPORT_SYMBOL(is_console_locked);
|
||||
|
||||
/*
|
||||
* Check if we have any console that is capable of printing while cpu is
|
||||
--
|
||||
2.18.0
|
||||
|
||||
|
|
@ -1,75 +0,0 @@
|
|||
From 2199e4e9f81bd90ba82fcb8641a1a5911ac9c96b Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Tue, 3 Jul 2018 15:56:14 -0700
|
||||
Subject: [PATCHv6 2/4] x86: Add build salt to the vDSO
|
||||
To: Andy Lutomirski <luto@kernel.org>
|
||||
To: mjw@fedoraproject.org
|
||||
Cc: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
To: H. J. Lu <hjl.tools@gmail.com>
|
||||
Cc: X86 ML <x86@kernel.org>
|
||||
Cc: linux-kernel@vger.kernel.org
|
||||
To: Masahiro Yamada <yamada.masahiro@socionext.com>
|
||||
Cc: Nick Clifton <nickc@redhat.com>
|
||||
Cc: Cary Coutant <ccoutant@gmail.com>
|
||||
Cc: linux-kbuild@vger.kernel.org
|
||||
Cc: linuxppc-dev@lists.ozlabs.org
|
||||
Cc: Michael Ellerman <mpe@ellerman.id.au>
|
||||
Cc: Catalin Marinas <catalin.marinas@arm.com>
|
||||
Cc: Will Deacon <will.deacon@arm.com>
|
||||
Cc: linux-arm-kernel@lists.infradead.org
|
||||
|
||||
|
||||
The vDSO needs to have a unique build id in a similar manner
|
||||
to the kernel and modules. Use the build salt macro.
|
||||
|
||||
Acked-by: Andy Lutomirski <luto@kernel.org>
|
||||
Signed-off-by: Laura Abbott <labbott@redhat.com>
|
||||
---
|
||||
v6: Ack from Andy
|
||||
---
|
||||
arch/x86/entry/vdso/vdso-note.S | 3 +++
|
||||
arch/x86/entry/vdso/vdso32/note.S | 3 +++
|
||||
2 files changed, 6 insertions(+)
|
||||
|
||||
diff --git a/arch/x86/entry/vdso/vdso-note.S b/arch/x86/entry/vdso/vdso-note.S
|
||||
index 79a071e4357e..79423170118f 100644
|
||||
--- a/arch/x86/entry/vdso/vdso-note.S
|
||||
+++ b/arch/x86/entry/vdso/vdso-note.S
|
||||
@@ -3,6 +3,7 @@
|
||||
* Here we can supply some information useful to userland.
|
||||
*/
|
||||
|
||||
+#include <linux/build-salt.h>
|
||||
#include <linux/uts.h>
|
||||
#include <linux/version.h>
|
||||
#include <linux/elfnote.h>
|
||||
@@ -10,3 +11,5 @@
|
||||
ELFNOTE_START(Linux, 0, "a")
|
||||
.long LINUX_VERSION_CODE
|
||||
ELFNOTE_END
|
||||
+
|
||||
+BUILD_SALT
|
||||
diff --git a/arch/x86/entry/vdso/vdso32/note.S b/arch/x86/entry/vdso/vdso32/note.S
|
||||
index 9fd51f206314..e78047d119f6 100644
|
||||
--- a/arch/x86/entry/vdso/vdso32/note.S
|
||||
+++ b/arch/x86/entry/vdso/vdso32/note.S
|
||||
@@ -4,6 +4,7 @@
|
||||
* Here we can supply some information useful to userland.
|
||||
*/
|
||||
|
||||
+#include <linux/build-salt.h>
|
||||
#include <linux/version.h>
|
||||
#include <linux/elfnote.h>
|
||||
|
||||
@@ -14,6 +15,8 @@ ELFNOTE_START(Linux, 0, "a")
|
||||
.long LINUX_VERSION_CODE
|
||||
ELFNOTE_END
|
||||
|
||||
+BUILD_SALT
|
||||
+
|
||||
#ifdef CONFIG_XEN
|
||||
/*
|
||||
* Add a special note telling glibc's dynamic linker a fake hardware
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
@ -6,13 +6,13 @@ Subject: [PATCH 3/3] Make get_cert_list() use efi_status_to_str() to print
|
|||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
---
|
||||
certs/load_uefi.c | 6 ++++--
|
||||
security/integrity/platform_certs/load_uefi.c | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/certs/load_uefi.c b/certs/load_uefi.c
|
||||
diff --git a/security/integrity/platform_certs/load_uefi.c b/security/integrity/platform_certs/load_uefi.c
|
||||
index 9ef34c44fd1..13a2826715d 100644
|
||||
--- a/certs/load_uefi.c
|
||||
+++ b/certs/load_uefi.c
|
||||
--- a/security/integrity/platform_certs/load_uefi.c
|
||||
+++ b/security/integrity/platform_certs/load_uefi.c
|
||||
@@ -51,7 +51,8 @@ static __init int get_cert_list(efi_char16_t *name, efi_guid_t *guid,
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,70 +0,0 @@
|
|||
From 3bd3a0e330aae4fffa8028aba2407ef615ab040b Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Thu, 28 Jun 2018 15:20:28 +0200
|
||||
Subject: [PATCH 3/7] fbcon: Call WARN_CONSOLE_UNLOCKED() where applicable
|
||||
|
||||
Replace comments about places where the console lock should be held with
|
||||
calls to WARN_CONSOLE_UNLOCKED() to assert that it is actually held.
|
||||
|
||||
Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
|
||||
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
||||
Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
|
||||
---
|
||||
drivers/video/fbdev/core/fbcon.c | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
|
||||
index c910e74d46ff..cd8d52a967aa 100644
|
||||
--- a/drivers/video/fbdev/core/fbcon.c
|
||||
+++ b/drivers/video/fbdev/core/fbcon.c
|
||||
@@ -828,6 +828,8 @@ static int set_con2fb_map(int unit, int newidx, int user)
|
||||
struct fb_info *oldinfo = NULL;
|
||||
int found, err = 0;
|
||||
|
||||
+ WARN_CONSOLE_UNLOCKED();
|
||||
+
|
||||
if (oldidx == newidx)
|
||||
return 0;
|
||||
|
||||
@@ -3044,6 +3046,8 @@ static int fbcon_fb_unbind(int idx)
|
||||
{
|
||||
int i, new_idx = -1, ret = 0;
|
||||
|
||||
+ WARN_CONSOLE_UNLOCKED();
|
||||
+
|
||||
if (!fbcon_has_console_bind)
|
||||
return 0;
|
||||
|
||||
@@ -3094,6 +3098,8 @@ static int fbcon_fb_unregistered(struct fb_info *info)
|
||||
{
|
||||
int i, idx;
|
||||
|
||||
+ WARN_CONSOLE_UNLOCKED();
|
||||
+
|
||||
idx = info->node;
|
||||
for (i = first_fb_vc; i <= last_fb_vc; i++) {
|
||||
if (con2fb_map[i] == idx)
|
||||
@@ -3131,6 +3137,9 @@ static int fbcon_fb_unregistered(struct fb_info *info)
|
||||
static void fbcon_remap_all(int idx)
|
||||
{
|
||||
int i;
|
||||
+
|
||||
+ WARN_CONSOLE_UNLOCKED();
|
||||
+
|
||||
for (i = first_fb_vc; i <= last_fb_vc; i++)
|
||||
set_con2fb_map(i, idx, 0);
|
||||
|
||||
@@ -3177,6 +3186,8 @@ static int fbcon_fb_registered(struct fb_info *info)
|
||||
{
|
||||
int ret = 0, i, idx;
|
||||
|
||||
+ WARN_CONSOLE_UNLOCKED();
|
||||
+
|
||||
idx = info->node;
|
||||
fbcon_select_primary(info);
|
||||
|
||||
--
|
||||
2.18.0
|
||||
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
From e9bb20873f9dff73fc6f381e32b43f198974ed71 Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Tue, 3 Jul 2018 15:59:53 -0700
|
||||
Subject: [PATCHv6 3/4] powerpc: Add build salt to the vDSO
|
||||
Cc: Andy Lutomirski <luto@kernel.org>
|
||||
To: mjw@fedoraproject.org
|
||||
Cc: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
To: H. J. Lu <hjl.tools@gmail.com>
|
||||
Cc: X86 ML <x86@kernel.org>
|
||||
Cc: linux-kernel@vger.kernel.org
|
||||
To: Masahiro Yamada <yamada.masahiro@socionext.com>
|
||||
Cc: Nick Clifton <nickc@redhat.com>
|
||||
Cc: Cary Coutant <ccoutant@gmail.com>
|
||||
Cc: linux-kbuild@vger.kernel.org
|
||||
Cc: linuxppc-dev@lists.ozlabs.org
|
||||
To: Michael Ellerman <mpe@ellerman.id.au>
|
||||
Cc: Catalin Marinas <catalin.marinas@arm.com>
|
||||
Cc: Will Deacon <will.deacon@arm.com>
|
||||
Cc: linux-arm-kernel@lists.infradead.org
|
||||
|
||||
The vDSO needs to have a unique build id in a similar manner
|
||||
to the kernel and modules. Use the build salt macro.
|
||||
|
||||
Signed-off-by: Laura Abbott <labbott@redhat.com>
|
||||
---
|
||||
v6: Remove semi-colon
|
||||
---
|
||||
arch/powerpc/kernel/vdso32/note.S | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/arch/powerpc/kernel/vdso32/note.S b/arch/powerpc/kernel/vdso32/note.S
|
||||
index d4b5be4f3d5f..227a7327399e 100644
|
||||
--- a/arch/powerpc/kernel/vdso32/note.S
|
||||
+++ b/arch/powerpc/kernel/vdso32/note.S
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include <linux/uts.h>
|
||||
#include <linux/version.h>
|
||||
+#include <linux/build-salt.h>
|
||||
|
||||
#define ASM_ELF_NOTE_BEGIN(name, flags, vendor, type) \
|
||||
.section name, flags; \
|
||||
@@ -23,3 +24,5 @@
|
||||
ASM_ELF_NOTE_BEGIN(".note.kernel-version", "a", UTS_SYSNAME, 0)
|
||||
.long LINUX_VERSION_CODE
|
||||
ASM_ELF_NOTE_END
|
||||
+
|
||||
+BUILD_SALT
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
@ -1,150 +0,0 @@
|
|||
From af0b06e726242516da9df5071e4e058f949f2240 Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Thu, 5 Jul 2018 14:39:20 -0700
|
||||
Subject: [PATCHv2] treewide: Rename HOSTCFLAGS -> KBUILD_HOSTCFLAGS
|
||||
To: Masahiro Yamada <yamada.masahiro@socionext.com>
|
||||
To: Josh Poimboeuf <jpoimboe@redhat.com>
|
||||
To: Jiri Olsa <jolsa@kernel.org>
|
||||
Cc: linux-kbuild@vger.kernel.org
|
||||
Cc: linux-kernel@vger.kernel.org
|
||||
Cc: Robin Jarry <robin.jarry@6wind.com>
|
||||
|
||||
In preparation for enabling command line CFLAGS, re-name HOSTCFLAGS to
|
||||
KBUILD_HOSTCFLAGS as the internal use only flags. This should not have any
|
||||
visible effects.
|
||||
|
||||
Signed-off-by: Laura Abbott <labbott@redhat.com>
|
||||
---
|
||||
v2: Dropped name change for individual files (still CHOSTFLAGS_foo)
|
||||
---
|
||||
Makefile | 4 ++--
|
||||
arch/alpha/boot/Makefile | 2 +-
|
||||
net/bpfilter/Makefile | 2 +-
|
||||
samples/bpf/Makefile | 10 +++++-----
|
||||
scripts/Kbuild.include | 2 +-
|
||||
scripts/Makefile.host | 2 +-
|
||||
tools/build/Build.include | 2 +-
|
||||
tools/objtool/Makefile | 2 +-
|
||||
8 files changed, 13 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 925c55f2524f..1feec222f3c1 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -359,7 +359,7 @@ HOST_LFS_LIBS := $(shell getconf LFS_LIBS)
|
||||
|
||||
HOSTCC = gcc
|
||||
HOSTCXX = g++
|
||||
-HOSTCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 \
|
||||
+KBUILD_HOSTCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 \
|
||||
-fomit-frame-pointer -std=gnu89 $(HOST_LFS_CFLAGS)
|
||||
HOSTCXXFLAGS := -O2 $(HOST_LFS_CFLAGS)
|
||||
HOSTLDFLAGS := $(HOST_LFS_LDFLAGS)
|
||||
@@ -429,7 +429,7 @@ KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds
|
||||
LDFLAGS :=
|
||||
GCC_PLUGINS_CFLAGS :=
|
||||
|
||||
-export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC
|
||||
+export ARCH SRCARCH CONFIG_SHELL HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE AS LD CC
|
||||
export CPP AR NM STRIP OBJCOPY OBJDUMP HOSTLDFLAGS HOST_LOADLIBES
|
||||
export MAKE LEX YACC AWK GENKSYMS INSTALLKERNEL PERL PYTHON PYTHON2 PYTHON3 UTS_MACHINE
|
||||
export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
|
||||
diff --git a/arch/alpha/boot/Makefile b/arch/alpha/boot/Makefile
|
||||
index 0cbe4c59d3ce..dfccf0195306 100644
|
||||
--- a/arch/alpha/boot/Makefile
|
||||
+++ b/arch/alpha/boot/Makefile
|
||||
@@ -14,7 +14,7 @@ targets := vmlinux.gz vmlinux \
|
||||
tools/bootpzh bootloader bootpheader bootpzheader
|
||||
OBJSTRIP := $(obj)/tools/objstrip
|
||||
|
||||
-HOSTCFLAGS := -Wall -I$(objtree)/usr/include
|
||||
+KBUILD_HOSTCFLAGS := -Wall -I$(objtree)/usr/include
|
||||
BOOTCFLAGS += -I$(objtree)/$(obj) -I$(srctree)/$(obj)
|
||||
|
||||
# SRM bootable image. Copy to offset 512 of a partition.
|
||||
diff --git a/net/bpfilter/Makefile b/net/bpfilter/Makefile
|
||||
index 39c6980b5d99..70beeb4ad806 100644
|
||||
--- a/net/bpfilter/Makefile
|
||||
+++ b/net/bpfilter/Makefile
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
hostprogs-y := bpfilter_umh
|
||||
bpfilter_umh-objs := main.o
|
||||
-HOSTCFLAGS += -I. -Itools/include/ -Itools/include/uapi
|
||||
+KBUILD_HOSTCFLAGS += -I. -Itools/include/ -Itools/include/uapi
|
||||
HOSTCC := $(CC)
|
||||
|
||||
ifeq ($(CONFIG_BPFILTER_UMH), y)
|
||||
diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
|
||||
index 1303af10e54d..494ef04c56cc 100644
|
||||
--- a/samples/bpf/Makefile
|
||||
+++ b/samples/bpf/Makefile
|
||||
@@ -164,11 +164,11 @@ always += xdpsock_kern.o
|
||||
always += xdp_fwd_kern.o
|
||||
always += task_fd_query_kern.o
|
||||
|
||||
-HOSTCFLAGS += -I$(objtree)/usr/include
|
||||
-HOSTCFLAGS += -I$(srctree)/tools/lib/
|
||||
-HOSTCFLAGS += -I$(srctree)/tools/testing/selftests/bpf/
|
||||
-HOSTCFLAGS += -I$(srctree)/tools/lib/ -I$(srctree)/tools/include
|
||||
-HOSTCFLAGS += -I$(srctree)/tools/perf
|
||||
+KBUILD_HOSTCFLAGS += -I$(objtree)/usr/include
|
||||
+KBUILD_HOSTCFLAGS += -I$(srctree)/tools/lib/
|
||||
+KBUILD_HOSTCFLAGS += -I$(srctree)/tools/testing/selftests/bpf/
|
||||
+KBUILD_HOSTCFLAGS += -I$(srctree)/tools/lib/ -I$(srctree)/tools/include
|
||||
+KBUILD_HOSTCFLAGS += -I$(srctree)/tools/perf
|
||||
|
||||
HOSTCFLAGS_bpf_load.o += -I$(objtree)/usr/include -Wno-unused-variable
|
||||
HOSTCFLAGS_trace_helpers.o += -I$(srctree)/tools/lib/bpf/
|
||||
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
|
||||
index c8156d61678c..827344dfb185 100644
|
||||
--- a/scripts/Kbuild.include
|
||||
+++ b/scripts/Kbuild.include
|
||||
@@ -126,7 +126,7 @@ cc-option = $(call __cc-option, $(CC),\
|
||||
# hostcc-option
|
||||
# Usage: cflags-y += $(call hostcc-option,-march=winchip-c6,-march=i586)
|
||||
hostcc-option = $(call __cc-option, $(HOSTCC),\
|
||||
- $(HOSTCFLAGS) $(HOST_EXTRACFLAGS),$(1),$(2))
|
||||
+ $(KBUILD_HOSTCFLAGS) $(HOST_EXTRACFLAGS),$(1),$(2))
|
||||
|
||||
# cc-option-yn
|
||||
# Usage: flag := $(call cc-option-yn,-march=winchip-c6)
|
||||
diff --git a/scripts/Makefile.host b/scripts/Makefile.host
|
||||
index aa971cc3f339..09f00dae21fe 100644
|
||||
--- a/scripts/Makefile.host
|
||||
+++ b/scripts/Makefile.host
|
||||
@@ -62,7 +62,7 @@ host-cxxshobjs := $(addprefix $(obj)/,$(host-cxxshobjs))
|
||||
#####
|
||||
# Handle options to gcc. Support building with separate output directory
|
||||
|
||||
-_hostc_flags = $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) \
|
||||
+_hostc_flags = $(KBUILD_HOSTCFLAGS) $(HOST_EXTRACFLAGS) \
|
||||
$(HOSTCFLAGS_$(basetarget).o)
|
||||
_hostcxx_flags = $(HOSTCXXFLAGS) $(HOST_EXTRACXXFLAGS) \
|
||||
$(HOSTCXXFLAGS_$(basetarget).o)
|
||||
diff --git a/tools/build/Build.include b/tools/build/Build.include
|
||||
index b5c679cd441c..a75fa0b6ffc0 100644
|
||||
--- a/tools/build/Build.include
|
||||
+++ b/tools/build/Build.include
|
||||
@@ -98,4 +98,4 @@ cxx_flags = -Wp,-MD,$(depfile) -Wp,-MT,$@ $(CXXFLAGS) -D"BUILD_STR(s)=\#s" $(CXX
|
||||
###
|
||||
## HOSTCC C flags
|
||||
|
||||
-host_c_flags = -Wp,-MD,$(depfile) -Wp,-MT,$@ $(HOSTCFLAGS) -D"BUILD_STR(s)=\#s" $(HOSTCFLAGS_$(basetarget).o) $(HOSTCFLAGS_$(obj))
|
||||
+host_c_flags = -Wp,-MD,$(depfile) -Wp,-MT,$@ $(KBUILD_HOSTCFLAGS) -D"BUILD_STR(s)=\#s" $(HOSTCFLAGS_$(basetarget).o) $(HOSTCFLAGS_$(obj))
|
||||
diff --git a/tools/objtool/Makefile b/tools/objtool/Makefile
|
||||
index f76d9914686a..b5d8c2964b52 100644
|
||||
--- a/tools/objtool/Makefile
|
||||
+++ b/tools/objtool/Makefile
|
||||
@@ -31,7 +31,7 @@ INCLUDES := -I$(srctree)/tools/include \
|
||||
-I$(srctree)/tools/arch/$(HOSTARCH)/include/uapi \
|
||||
-I$(srctree)/tools/objtool/arch/$(ARCH)/include
|
||||
WARNINGS := $(EXTRA_WARNINGS) -Wno-switch-default -Wno-switch-enum -Wno-packed
|
||||
-CFLAGS += -Werror $(WARNINGS) $(HOSTCFLAGS) -g $(INCLUDES)
|
||||
+CFLAGS += -Werror $(WARNINGS) $(KBUILD_HOSTCFLAGS) -g $(INCLUDES)
|
||||
LDFLAGS += -lelf $(LIBSUBCMD) $(HOSTLDFLAGS)
|
||||
|
||||
# Allow old libelf to be used:
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
From de9537aca25d53d9b44e7ec9a9952ebd77d69cd1 Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Tue, 3 Jul 2018 16:01:24 -0700
|
||||
Subject: [PATCHv6 4/4] arm64: Add build salt to the vDSO
|
||||
Cc: Andy Lutomirski <luto@kernel.org>
|
||||
To: mjw@fedoraproject.org
|
||||
Cc: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
To: H. J. Lu <hjl.tools@gmail.com>
|
||||
Cc: X86 ML <x86@kernel.org>
|
||||
Cc: linux-kernel@vger.kernel.org
|
||||
To: Masahiro Yamada <yamada.masahiro@socionext.com>
|
||||
Cc: Nick Clifton <nickc@redhat.com>
|
||||
Cc: Cary Coutant <ccoutant@gmail.com>
|
||||
Cc: linux-kbuild@vger.kernel.org
|
||||
Cc: linuxppc-dev@lists.ozlabs.org
|
||||
Cc: Michael Ellerman <mpe@ellerman.id.au>
|
||||
To: Catalin Marinas <catalin.marinas@arm.com>
|
||||
To: Will Deacon <will.deacon@arm.com>
|
||||
Cc: linux-arm-kernel@lists.infradead.org
|
||||
|
||||
The vDSO needs to have a unique build id in a similar manner
|
||||
to the kernel and modules. Use the build salt macro.
|
||||
|
||||
Acked-by: Will Deacon <will.deacon@arm.com>
|
||||
Signed-off-by: Laura Abbott <labbott@redhat.com>
|
||||
---
|
||||
v6: Remove the semi-colon, Ack from Will
|
||||
---
|
||||
arch/arm64/kernel/vdso/note.S | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/kernel/vdso/note.S b/arch/arm64/kernel/vdso/note.S
|
||||
index b82c85e5d972..e20483b104d9 100644
|
||||
--- a/arch/arm64/kernel/vdso/note.S
|
||||
+++ b/arch/arm64/kernel/vdso/note.S
|
||||
@@ -22,7 +22,10 @@
|
||||
#include <linux/uts.h>
|
||||
#include <linux/version.h>
|
||||
#include <linux/elfnote.h>
|
||||
+#include <linux/build-salt.h>
|
||||
|
||||
ELFNOTE_START(Linux, 0, "a")
|
||||
.long LINUX_VERSION_CODE
|
||||
ELFNOTE_END
|
||||
+
|
||||
+BUILD_SALT
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
@ -1,322 +0,0 @@
|
|||
From 83d83bebf40132e2d55ec58af666713cc76f9764 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Thu, 28 Jun 2018 15:20:30 +0200
|
||||
Subject: [PATCH 4/7] console/fbcon: Add support for deferred console takeover
|
||||
|
||||
Currently fbcon claims fbdevs as soon as they are registered and takes over
|
||||
the console as soon as the first fbdev gets registered.
|
||||
|
||||
This behavior is undesirable in cases where a smooth graphical bootup is
|
||||
desired, in such cases we typically want the contents of the framebuffer
|
||||
(typically a vendor logo) to stay in place as is.
|
||||
|
||||
The current solution for this problem (on embedded systems) is to not
|
||||
enable fbcon.
|
||||
|
||||
This commit adds a new FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER config option,
|
||||
which when enabled defers fbcon taking over the console from the dummy
|
||||
console until the first text is displayed on the console. Together with the
|
||||
"quiet" kernel commandline option, this allows fbcon to still be used
|
||||
together with a smooth graphical bootup, having it take over the console as
|
||||
soon as e.g. an error message is logged.
|
||||
|
||||
Note the choice to detect the first console output in the dummycon driver,
|
||||
rather then handling this entirely inside the fbcon code, was made after
|
||||
2 failed attempts to handle this entirely inside the fbcon code. The fbcon
|
||||
code is woven quite tightly into the console code, making this to only
|
||||
feasible option.
|
||||
|
||||
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
|
||||
---
|
||||
Documentation/fb/fbcon.txt | 7 ++++
|
||||
drivers/video/console/Kconfig | 11 +++++
|
||||
drivers/video/console/dummycon.c | 67 +++++++++++++++++++++++++----
|
||||
drivers/video/fbdev/core/fbcon.c | 72 ++++++++++++++++++++++++++++++++
|
||||
include/linux/console.h | 5 +++
|
||||
5 files changed, 154 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/Documentation/fb/fbcon.txt b/Documentation/fb/fbcon.txt
|
||||
index 79c22d096bbc..d4d642e1ce9c 100644
|
||||
--- a/Documentation/fb/fbcon.txt
|
||||
+++ b/Documentation/fb/fbcon.txt
|
||||
@@ -155,6 +155,13 @@ C. Boot options
|
||||
used by text. By default, this area will be black. The 'color' value
|
||||
is an integer number that depends on the framebuffer driver being used.
|
||||
|
||||
+6. fbcon=nodefer
|
||||
+
|
||||
+ If the kernel is compiled with deferred fbcon takeover support, normally
|
||||
+ the framebuffer contents, left in place by the firmware/bootloader, will
|
||||
+ be preserved until there actually is some text is output to the console.
|
||||
+ This option causes fbcon to bind immediately to the fbdev device.
|
||||
+
|
||||
C. Attaching, Detaching and Unloading
|
||||
|
||||
Before going on how to attach, detach and unload the framebuffer console, an
|
||||
diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig
|
||||
index 4110ba7d7ca9..e91edef98633 100644
|
||||
--- a/drivers/video/console/Kconfig
|
||||
+++ b/drivers/video/console/Kconfig
|
||||
@@ -150,6 +150,17 @@ config FRAMEBUFFER_CONSOLE_ROTATION
|
||||
such that other users of the framebuffer will remain normally
|
||||
oriented.
|
||||
|
||||
+config FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER
|
||||
+ bool "Framebuffer Console Deferred Takeover"
|
||||
+ depends on FRAMEBUFFER_CONSOLE=y && DUMMY_CONSOLE=y
|
||||
+ help
|
||||
+ If enabled this defers the framebuffer console taking over the
|
||||
+ console from the dummy console until the first text is displayed on
|
||||
+ the console. This is useful in combination with the "quiet" kernel
|
||||
+ commandline option to keep the framebuffer contents initially put up
|
||||
+ by the firmware in place, rather then replacing the contents with a
|
||||
+ black screen as soon as fbcon loads.
|
||||
+
|
||||
config STI_CONSOLE
|
||||
bool "STI text console"
|
||||
depends on PARISC && HAS_IOMEM
|
||||
diff --git a/drivers/video/console/dummycon.c b/drivers/video/console/dummycon.c
|
||||
index f2eafe2ed980..45ad925ad5f8 100644
|
||||
--- a/drivers/video/console/dummycon.c
|
||||
+++ b/drivers/video/console/dummycon.c
|
||||
@@ -26,6 +26,65 @@
|
||||
#define DUMMY_ROWS CONFIG_DUMMY_CONSOLE_ROWS
|
||||
#endif
|
||||
|
||||
+#ifdef CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER
|
||||
+/* These are both protected by the console_lock */
|
||||
+static RAW_NOTIFIER_HEAD(dummycon_output_nh);
|
||||
+static bool dummycon_putc_called;
|
||||
+
|
||||
+void dummycon_register_output_notifier(struct notifier_block *nb)
|
||||
+{
|
||||
+ raw_notifier_chain_register(&dummycon_output_nh, nb);
|
||||
+
|
||||
+ if (dummycon_putc_called)
|
||||
+ nb->notifier_call(nb, 0, NULL);
|
||||
+}
|
||||
+
|
||||
+void dummycon_unregister_output_notifier(struct notifier_block *nb)
|
||||
+{
|
||||
+ raw_notifier_chain_unregister(&dummycon_output_nh, nb);
|
||||
+}
|
||||
+
|
||||
+static void dummycon_putc(struct vc_data *vc, int c, int ypos, int xpos)
|
||||
+{
|
||||
+ dummycon_putc_called = true;
|
||||
+ raw_notifier_call_chain(&dummycon_output_nh, 0, NULL);
|
||||
+}
|
||||
+
|
||||
+static void dummycon_putcs(struct vc_data *vc, const unsigned short *s,
|
||||
+ int count, int ypos, int xpos)
|
||||
+{
|
||||
+ int i;
|
||||
+
|
||||
+ if (!dummycon_putc_called) {
|
||||
+ /* Ignore erases */
|
||||
+ for (i = 0 ; i < count; i++) {
|
||||
+ if (s[i] != vc->vc_video_erase_char)
|
||||
+ break;
|
||||
+ }
|
||||
+ if (i == count)
|
||||
+ return;
|
||||
+
|
||||
+ dummycon_putc_called = true;
|
||||
+ }
|
||||
+
|
||||
+ raw_notifier_call_chain(&dummycon_output_nh, 0, NULL);
|
||||
+}
|
||||
+
|
||||
+static int dummycon_blank(struct vc_data *vc, int blank, int mode_switch)
|
||||
+{
|
||||
+ /* Redraw, so that we get putc(s) for output done while blanked */
|
||||
+ return 1;
|
||||
+}
|
||||
+#else
|
||||
+static void dummycon_putc(struct vc_data *vc, int c, int ypos, int xpos) { }
|
||||
+static void dummycon_putcs(struct vc_data *vc, const unsigned short *s,
|
||||
+ int count, int ypos, int xpos) { }
|
||||
+static int dummycon_blank(struct vc_data *vc, int blank, int mode_switch)
|
||||
+{
|
||||
+ return 0;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
static const char *dummycon_startup(void)
|
||||
{
|
||||
return "dummy device";
|
||||
@@ -44,9 +103,6 @@ static void dummycon_init(struct vc_data *vc, int init)
|
||||
static void dummycon_deinit(struct vc_data *vc) { }
|
||||
static void dummycon_clear(struct vc_data *vc, int sy, int sx, int height,
|
||||
int width) { }
|
||||
-static void dummycon_putc(struct vc_data *vc, int c, int ypos, int xpos) { }
|
||||
-static void dummycon_putcs(struct vc_data *vc, const unsigned short *s,
|
||||
- int count, int ypos, int xpos) { }
|
||||
static void dummycon_cursor(struct vc_data *vc, int mode) { }
|
||||
|
||||
static bool dummycon_scroll(struct vc_data *vc, unsigned int top,
|
||||
@@ -61,11 +117,6 @@ static int dummycon_switch(struct vc_data *vc)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static int dummycon_blank(struct vc_data *vc, int blank, int mode_switch)
|
||||
-{
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
static int dummycon_font_set(struct vc_data *vc, struct console_font *font,
|
||||
unsigned int flags)
|
||||
{
|
||||
diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
|
||||
index cd8d52a967aa..5fb156bdcf4e 100644
|
||||
--- a/drivers/video/fbdev/core/fbcon.c
|
||||
+++ b/drivers/video/fbdev/core/fbcon.c
|
||||
@@ -129,6 +129,12 @@ static inline void fbcon_map_override(void)
|
||||
}
|
||||
#endif /* CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY */
|
||||
|
||||
+#ifdef CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER
|
||||
+static bool deferred_takeover = true;
|
||||
+#else
|
||||
+#define deferred_takeover false
|
||||
+#endif
|
||||
+
|
||||
/* font data */
|
||||
static char fontname[40];
|
||||
|
||||
@@ -499,6 +505,12 @@ static int __init fb_console_setup(char *this_opt)
|
||||
margin_color = simple_strtoul(options, &options, 0);
|
||||
continue;
|
||||
}
|
||||
+#ifdef CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER
|
||||
+ if (!strcmp(options, "nodefer")) {
|
||||
+ deferred_takeover = false;
|
||||
+ continue;
|
||||
+ }
|
||||
+#endif
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
@@ -3100,6 +3112,9 @@ static int fbcon_fb_unregistered(struct fb_info *info)
|
||||
|
||||
WARN_CONSOLE_UNLOCKED();
|
||||
|
||||
+ if (deferred_takeover)
|
||||
+ return 0;
|
||||
+
|
||||
idx = info->node;
|
||||
for (i = first_fb_vc; i <= last_fb_vc; i++) {
|
||||
if (con2fb_map[i] == idx)
|
||||
@@ -3140,6 +3155,13 @@ static void fbcon_remap_all(int idx)
|
||||
|
||||
WARN_CONSOLE_UNLOCKED();
|
||||
|
||||
+ if (deferred_takeover) {
|
||||
+ for (i = first_fb_vc; i <= last_fb_vc; i++)
|
||||
+ con2fb_map_boot[i] = idx;
|
||||
+ fbcon_map_override();
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
for (i = first_fb_vc; i <= last_fb_vc; i++)
|
||||
set_con2fb_map(i, idx, 0);
|
||||
|
||||
@@ -3191,6 +3213,11 @@ static int fbcon_fb_registered(struct fb_info *info)
|
||||
idx = info->node;
|
||||
fbcon_select_primary(info);
|
||||
|
||||
+ if (deferred_takeover) {
|
||||
+ pr_info("fbcon: Deferring console take-over\n");
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
if (info_idx == -1) {
|
||||
for (i = first_fb_vc; i <= last_fb_vc; i++) {
|
||||
if (con2fb_map_boot[i] == idx) {
|
||||
@@ -3566,8 +3593,46 @@ static int fbcon_init_device(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+#ifdef CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER
|
||||
+static struct notifier_block fbcon_output_nb;
|
||||
+
|
||||
+static int fbcon_output_notifier(struct notifier_block *nb,
|
||||
+ unsigned long action, void *data)
|
||||
+{
|
||||
+ int i;
|
||||
+
|
||||
+ WARN_CONSOLE_UNLOCKED();
|
||||
+
|
||||
+ pr_info("fbcon: Taking over console\n");
|
||||
+
|
||||
+ dummycon_unregister_output_notifier(&fbcon_output_nb);
|
||||
+ deferred_takeover = false;
|
||||
+ logo_shown = FBCON_LOGO_DONTSHOW;
|
||||
+
|
||||
+ for (i = 0; i < FB_MAX; i++) {
|
||||
+ if (registered_fb[i])
|
||||
+ fbcon_fb_registered(registered_fb[i]);
|
||||
+ }
|
||||
+
|
||||
+ return NOTIFY_OK;
|
||||
+}
|
||||
+
|
||||
+static void fbcon_register_output_notifier(void)
|
||||
+{
|
||||
+ fbcon_output_nb.notifier_call = fbcon_output_notifier;
|
||||
+ dummycon_register_output_notifier(&fbcon_output_nb);
|
||||
+}
|
||||
+#else
|
||||
+static inline void fbcon_register_output_notifier(void) {}
|
||||
+#endif
|
||||
+
|
||||
static void fbcon_start(void)
|
||||
{
|
||||
+ if (deferred_takeover) {
|
||||
+ fbcon_register_output_notifier();
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
if (num_registered_fb) {
|
||||
int i;
|
||||
|
||||
@@ -3594,6 +3659,13 @@ static void fbcon_exit(void)
|
||||
if (fbcon_has_exited)
|
||||
return;
|
||||
|
||||
+#ifdef CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER
|
||||
+ if (deferred_takeover) {
|
||||
+ dummycon_unregister_output_notifier(&fbcon_output_nb);
|
||||
+ deferred_takeover = false;
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
kfree((void *)softback_buf);
|
||||
softback_buf = 0UL;
|
||||
|
||||
diff --git a/include/linux/console.h b/include/linux/console.h
|
||||
index dfd6b0e97855..f59f3dbca65c 100644
|
||||
--- a/include/linux/console.h
|
||||
+++ b/include/linux/console.h
|
||||
@@ -21,6 +21,7 @@ struct console_font_op;
|
||||
struct console_font;
|
||||
struct module;
|
||||
struct tty_struct;
|
||||
+struct notifier_block;
|
||||
|
||||
/*
|
||||
* this is what the terminal answers to a ESC-Z or csi0c query.
|
||||
@@ -220,4 +221,8 @@ static inline bool vgacon_text_force(void) { return false; }
|
||||
|
||||
extern void console_init(void);
|
||||
|
||||
+/* For deferred console takeover */
|
||||
+void dummycon_register_output_notifier(struct notifier_block *nb);
|
||||
+void dummycon_unregister_output_notifier(struct notifier_block *nb);
|
||||
+
|
||||
#endif /* _LINUX_CONSOLE_H */
|
||||
--
|
||||
2.18.0
|
||||
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
From a6faf06c7da9ea06ca23c3a50215860f5d83b3bd Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Thu, 5 Jul 2018 14:43:37 -0700
|
||||
Subject: [PATCHv2 4/7] treewide: Rename HOSTCXXFLAGS to KBUILD_HOSTCXXFLAGS
|
||||
To: Masahiro Yamada <yamada.masahiro@socionext.com>
|
||||
To: Josh Poimboeuf <jpoimboe@redhat.com>
|
||||
To: Jiri Olsa <jolsa@kernel.org>
|
||||
Cc: linux-kbuild@vger.kernel.org
|
||||
Cc: linux-kernel@vger.kernel.org
|
||||
Cc: Robin Jarry <robin.jarry@6wind.com>
|
||||
|
||||
In preparation for enabling command line CXXFLAGS, re-name HOSTCXXFLAGS to
|
||||
KBUILD_HOSTCXXFLAGS as the internal use only flags. This should not have any
|
||||
visible effects.
|
||||
|
||||
Signed-off-by: Laura Abbott <labbott@redhat.com>
|
||||
---
|
||||
v2: Dropped name change for individual files (still HOSTCXXFLAGS_foo)
|
||||
---
|
||||
Makefile | 4 ++--
|
||||
scripts/Makefile.host | 2 +-
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 1feec222f3c1..857ccd28dc36 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -361,7 +361,7 @@ HOSTCC = gcc
|
||||
HOSTCXX = g++
|
||||
KBUILD_HOSTCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 \
|
||||
-fomit-frame-pointer -std=gnu89 $(HOST_LFS_CFLAGS)
|
||||
-HOSTCXXFLAGS := -O2 $(HOST_LFS_CFLAGS)
|
||||
+KBUILD_HOSTCXXFLAGS := -O2 $(HOST_LFS_CFLAGS)
|
||||
HOSTLDFLAGS := $(HOST_LFS_LDFLAGS)
|
||||
HOST_LOADLIBES := $(HOST_LFS_LIBS)
|
||||
|
||||
@@ -432,7 +432,7 @@ GCC_PLUGINS_CFLAGS :=
|
||||
export ARCH SRCARCH CONFIG_SHELL HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE AS LD CC
|
||||
export CPP AR NM STRIP OBJCOPY OBJDUMP HOSTLDFLAGS HOST_LOADLIBES
|
||||
export MAKE LEX YACC AWK GENKSYMS INSTALLKERNEL PERL PYTHON PYTHON2 PYTHON3 UTS_MACHINE
|
||||
-export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
|
||||
+export HOSTCXX KBUILD_HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
|
||||
|
||||
export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS
|
||||
export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
|
||||
diff --git a/scripts/Makefile.host b/scripts/Makefile.host
|
||||
index 09f00dae21fe..455d85aa1d37 100644
|
||||
--- a/scripts/Makefile.host
|
||||
+++ b/scripts/Makefile.host
|
||||
@@ -64,7 +64,7 @@ host-cxxshobjs := $(addprefix $(obj)/,$(host-cxxshobjs))
|
||||
|
||||
_hostc_flags = $(KBUILD_HOSTCFLAGS) $(HOST_EXTRACFLAGS) \
|
||||
$(HOSTCFLAGS_$(basetarget).o)
|
||||
-_hostcxx_flags = $(HOSTCXXFLAGS) $(HOST_EXTRACXXFLAGS) \
|
||||
+_hostcxx_flags = $(KBUILD_HOSTCXXFLAGS) $(HOST_EXTRACXXFLAGS) \
|
||||
$(HOSTCXXFLAGS_$(basetarget).o)
|
||||
|
||||
ifeq ($(KBUILD_SRC),)
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
From 421b8aef3902426c4c3ebd23218c0ad282786e1d Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Tue, 3 Jul 2018 17:43:10 +0200
|
||||
Subject: [PATCH 5/7] efi/bgrt: Drop __initdata from bgrt_image_size
|
||||
|
||||
bgrt_image_size is necessary to (optionally) show the boot graphics from
|
||||
the efifb code. The efifb driver is a platform driver, using a normal
|
||||
driver probe() driver callback. So even though it is always builtin it
|
||||
cannot reference __initdata.
|
||||
|
||||
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
|
||||
---
|
||||
drivers/firmware/efi/efi-bgrt.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/firmware/efi/efi-bgrt.c b/drivers/firmware/efi/efi-bgrt.c
|
||||
index 50793fda7819..b22ccfb0c991 100644
|
||||
--- a/drivers/firmware/efi/efi-bgrt.c
|
||||
+++ b/drivers/firmware/efi/efi-bgrt.c
|
||||
@@ -20,7 +20,7 @@
|
||||
#include <linux/efi-bgrt.h>
|
||||
|
||||
struct acpi_table_bgrt bgrt_tab;
|
||||
-size_t __initdata bgrt_image_size;
|
||||
+size_t bgrt_image_size;
|
||||
|
||||
struct bmp_header {
|
||||
u16 id;
|
||||
--
|
||||
2.18.0
|
||||
|
||||
|
|
@ -1,139 +0,0 @@
|
|||
From 017d1ce33501da9e3e438066d853a874df64f1a5 Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Thu, 5 Jul 2018 14:45:52 -0700
|
||||
Subject: [PATCHv2 5/7] treewide: Rename HOSTLDFLAGS to KBUILD_HOSTLDFLAGS
|
||||
To: Masahiro Yamada <yamada.masahiro@socionext.com>
|
||||
To: Josh Poimboeuf <jpoimboe@redhat.com>
|
||||
To: Jiri Olsa <jolsa@kernel.org>
|
||||
Cc: linux-kbuild@vger.kernel.org
|
||||
Cc: linux-kernel@vger.kernel.org
|
||||
Cc: Robin Jarry <robin.jarry@6wind.com>
|
||||
|
||||
In preparation for enabling command line LDFLAGS, re-name HOSTLDFLAGS to
|
||||
KBUILD_HOSTLDFLAGS as the internal use only flags. This should not have any
|
||||
visible effects.
|
||||
|
||||
Signed-off-by: Laura Abbott <labbott@redhat.com>
|
||||
---
|
||||
v2: No change
|
||||
---
|
||||
Makefile | 4 ++--
|
||||
net/bpfilter/Makefile | 2 +-
|
||||
scripts/Makefile.host | 10 +++++-----
|
||||
tools/build/Makefile | 2 +-
|
||||
tools/objtool/Makefile | 2 +-
|
||||
5 files changed, 10 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 857ccd28dc36..bd2d64b89463 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -362,7 +362,7 @@ HOSTCXX = g++
|
||||
KBUILD_HOSTCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 \
|
||||
-fomit-frame-pointer -std=gnu89 $(HOST_LFS_CFLAGS)
|
||||
KBUILD_HOSTCXXFLAGS := -O2 $(HOST_LFS_CFLAGS)
|
||||
-HOSTLDFLAGS := $(HOST_LFS_LDFLAGS)
|
||||
+KBUILD_HOSTLDFLAGS := $(HOST_LFS_LDFLAGS)
|
||||
HOST_LOADLIBES := $(HOST_LFS_LIBS)
|
||||
|
||||
# Make variables (CC, etc...)
|
||||
@@ -430,7 +430,7 @@ LDFLAGS :=
|
||||
GCC_PLUGINS_CFLAGS :=
|
||||
|
||||
export ARCH SRCARCH CONFIG_SHELL HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE AS LD CC
|
||||
-export CPP AR NM STRIP OBJCOPY OBJDUMP HOSTLDFLAGS HOST_LOADLIBES
|
||||
+export CPP AR NM STRIP OBJCOPY OBJDUMP KBUILD_HOSTLDFLAGS HOST_LOADLIBES
|
||||
export MAKE LEX YACC AWK GENKSYMS INSTALLKERNEL PERL PYTHON PYTHON2 PYTHON3 UTS_MACHINE
|
||||
export HOSTCXX KBUILD_HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
|
||||
|
||||
diff --git a/net/bpfilter/Makefile b/net/bpfilter/Makefile
|
||||
index 70beeb4ad806..0947ee7f70d5 100644
|
||||
--- a/net/bpfilter/Makefile
|
||||
+++ b/net/bpfilter/Makefile
|
||||
@@ -12,7 +12,7 @@ ifeq ($(CONFIG_BPFILTER_UMH), y)
|
||||
# builtin bpfilter_umh should be compiled with -static
|
||||
# since rootfs isn't mounted at the time of __init
|
||||
# function is called and do_execv won't find elf interpreter
|
||||
-HOSTLDFLAGS += -static
|
||||
+KBUILD_HOSTLDFLAGS += -static
|
||||
endif
|
||||
|
||||
$(obj)/bpfilter_umh_blob.o: $(obj)/bpfilter_umh
|
||||
diff --git a/scripts/Makefile.host b/scripts/Makefile.host
|
||||
index 455d85aa1d37..c019d781b2c9 100644
|
||||
--- a/scripts/Makefile.host
|
||||
+++ b/scripts/Makefile.host
|
||||
@@ -84,7 +84,7 @@ hostcxx_flags = -Wp,-MD,$(depfile) $(__hostcxx_flags)
|
||||
# Create executable from a single .c file
|
||||
# host-csingle -> Executable
|
||||
quiet_cmd_host-csingle = HOSTCC $@
|
||||
- cmd_host-csingle = $(HOSTCC) $(hostc_flags) $(HOSTLDFLAGS) -o $@ $< \
|
||||
+ cmd_host-csingle = $(HOSTCC) $(hostc_flags) $(KBUILD_HOSTLDFLAGS) -o $@ $< \
|
||||
$(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
|
||||
$(host-csingle): $(obj)/%: $(src)/%.c FORCE
|
||||
$(call if_changed_dep,host-csingle)
|
||||
@@ -92,7 +92,7 @@ $(host-csingle): $(obj)/%: $(src)/%.c FORCE
|
||||
# Link an executable based on list of .o files, all plain c
|
||||
# host-cmulti -> executable
|
||||
quiet_cmd_host-cmulti = HOSTLD $@
|
||||
- cmd_host-cmulti = $(HOSTCC) $(HOSTLDFLAGS) -o $@ \
|
||||
+ cmd_host-cmulti = $(HOSTCC) $(KBUILD_HOSTLDFLAGS) -o $@ \
|
||||
$(addprefix $(obj)/,$($(@F)-objs)) \
|
||||
$(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
|
||||
$(host-cmulti): FORCE
|
||||
@@ -109,7 +109,7 @@ $(host-cobjs): $(obj)/%.o: $(src)/%.c FORCE
|
||||
# Link an executable based on list of .o files, a mixture of .c and .cc
|
||||
# host-cxxmulti -> executable
|
||||
quiet_cmd_host-cxxmulti = HOSTLD $@
|
||||
- cmd_host-cxxmulti = $(HOSTCXX) $(HOSTLDFLAGS) -o $@ \
|
||||
+ cmd_host-cxxmulti = $(HOSTCXX) $(KBUILD_HOSTLDFLAGS) -o $@ \
|
||||
$(foreach o,objs cxxobjs,\
|
||||
$(addprefix $(obj)/,$($(@F)-$(o)))) \
|
||||
$(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
|
||||
@@ -143,7 +143,7 @@ $(host-cxxshobjs): $(obj)/%.o: $(src)/%.c FORCE
|
||||
# Link a shared library, based on position independent .o files
|
||||
# *.o -> .so shared library (host-cshlib)
|
||||
quiet_cmd_host-cshlib = HOSTLLD -shared $@
|
||||
- cmd_host-cshlib = $(HOSTCC) $(HOSTLDFLAGS) -shared -o $@ \
|
||||
+ cmd_host-cshlib = $(HOSTCC) $(KBUILD_HOSTLDFLAGS) -shared -o $@ \
|
||||
$(addprefix $(obj)/,$($(@F:.so=-objs))) \
|
||||
$(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
|
||||
$(host-cshlib): FORCE
|
||||
@@ -153,7 +153,7 @@ $(call multi_depend, $(host-cshlib), .so, -objs)
|
||||
# Link a shared library, based on position independent .o files
|
||||
# *.o -> .so shared library (host-cxxshlib)
|
||||
quiet_cmd_host-cxxshlib = HOSTLLD -shared $@
|
||||
- cmd_host-cxxshlib = $(HOSTCXX) $(HOSTLDFLAGS) -shared -o $@ \
|
||||
+ cmd_host-cxxshlib = $(HOSTCXX) $(KBUILD_HOSTLDFLAGS) -shared -o $@ \
|
||||
$(addprefix $(obj)/,$($(@F:.so=-objs))) \
|
||||
$(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
|
||||
$(host-cxxshlib): FORCE
|
||||
diff --git a/tools/build/Makefile b/tools/build/Makefile
|
||||
index 5edf65e684ab..727050c40f09 100644
|
||||
--- a/tools/build/Makefile
|
||||
+++ b/tools/build/Makefile
|
||||
@@ -43,7 +43,7 @@ $(OUTPUT)fixdep-in.o: FORCE
|
||||
$(Q)$(MAKE) $(build)=fixdep
|
||||
|
||||
$(OUTPUT)fixdep: $(OUTPUT)fixdep-in.o
|
||||
- $(QUIET_LINK)$(HOSTCC) $(HOSTLDFLAGS) -o $@ $<
|
||||
+ $(QUIET_LINK)$(HOSTCC) $(KBUILD_HOSTLDFLAGS) -o $@ $<
|
||||
|
||||
FORCE:
|
||||
|
||||
diff --git a/tools/objtool/Makefile b/tools/objtool/Makefile
|
||||
index b5d8c2964b52..c9d038f91af6 100644
|
||||
--- a/tools/objtool/Makefile
|
||||
+++ b/tools/objtool/Makefile
|
||||
@@ -32,7 +32,7 @@ INCLUDES := -I$(srctree)/tools/include \
|
||||
-I$(srctree)/tools/objtool/arch/$(ARCH)/include
|
||||
WARNINGS := $(EXTRA_WARNINGS) -Wno-switch-default -Wno-switch-enum -Wno-packed
|
||||
CFLAGS += -Werror $(WARNINGS) $(KBUILD_HOSTCFLAGS) -g $(INCLUDES)
|
||||
-LDFLAGS += -lelf $(LIBSUBCMD) $(HOSTLDFLAGS)
|
||||
+LDFLAGS += -lelf $(LIBSUBCMD) $(KBUILD_HOSTLDFLAGS)
|
||||
|
||||
# Allow old libelf to be used:
|
||||
elfshdr := $(shell echo '$(pound)include <libelf.h>' | $(CC) $(CFLAGS) -x c -E - | grep elf_getshdr)
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
@ -1,201 +0,0 @@
|
|||
From a5f742d7ba70c702bcf67dd1fd8d5dde3f5042fc Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Tue, 3 Jul 2018 17:43:10 +0200
|
||||
Subject: [PATCH 6/7] efifb: Copy the ACPI BGRT boot graphics to the
|
||||
framebuffer
|
||||
|
||||
On systems where fbcon is configured for deferred console takeover, the
|
||||
intend is for the framebuffer to show the boot graphics (e.g a vendor
|
||||
logo) until some message (e.g. an error) is printed or a graphical
|
||||
session takes over.
|
||||
|
||||
Some firmware relies on the OS to show the boot graphics.
|
||||
|
||||
This patch adds support to efifb to show the boot graphics and
|
||||
automatically enables this when fbcon is configured for deferred
|
||||
console takeover.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
|
||||
---
|
||||
drivers/video/fbdev/efifb.c | 140 ++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 140 insertions(+)
|
||||
|
||||
diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
|
||||
index c6f78d27947b..67684412ba8a 100644
|
||||
--- a/drivers/video/fbdev/efifb.c
|
||||
+++ b/drivers/video/fbdev/efifb.c
|
||||
@@ -9,16 +9,39 @@
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/efi.h>
|
||||
+#include <linux/efi-bgrt.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/fb.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/platform_device.h>
|
||||
+#include <linux/printk.h>
|
||||
#include <linux/screen_info.h>
|
||||
#include <video/vga.h>
|
||||
#include <asm/efi.h>
|
||||
#include <drm/drm_utils.h> /* For drm_get_panel_orientation_quirk */
|
||||
#include <drm/drm_connector.h> /* For DRM_MODE_PANEL_ORIENTATION_* */
|
||||
|
||||
+struct bmp_file_header {
|
||||
+ u16 id;
|
||||
+ u32 file_size;
|
||||
+ u32 reserved;
|
||||
+ u32 bitmap_offset;
|
||||
+} __packed;
|
||||
+
|
||||
+struct bmp_dib_header {
|
||||
+ u32 dib_header_size;
|
||||
+ s32 width;
|
||||
+ s32 height;
|
||||
+ u16 planes;
|
||||
+ u16 bpp;
|
||||
+ u32 compression;
|
||||
+ u32 bitmap_size;
|
||||
+ u32 horz_resolution;
|
||||
+ u32 vert_resolution;
|
||||
+ u32 colors_used;
|
||||
+ u32 colors_important;
|
||||
+} __packed;
|
||||
+
|
||||
static bool request_mem_succeeded = false;
|
||||
static u64 mem_flags = EFI_MEMORY_WC | EFI_MEMORY_UC;
|
||||
|
||||
@@ -66,6 +89,121 @@ static int efifb_setcolreg(unsigned regno, unsigned red, unsigned green,
|
||||
return 0;
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * If fbcon deffered console takeover is configured, the intent is for the
|
||||
+ * framebuffer to show the boot graphics (e.g. vendor logo) until there is some
|
||||
+ * (error) message to display. But the boot graphics may have been destroyed by
|
||||
+ * e.g. option ROM output, detect this and restore the boot graphics.
|
||||
+ */
|
||||
+#if defined CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER && \
|
||||
+ defined CONFIG_ACPI_BGRT
|
||||
+static void efifb_copy_bmp(u8 *src, u32 *dst, int width, struct screen_info *si)
|
||||
+{
|
||||
+ u8 r, g, b;
|
||||
+
|
||||
+ while (width--) {
|
||||
+ b = *src++;
|
||||
+ g = *src++;
|
||||
+ r = *src++;
|
||||
+ *dst++ = (r << si->red_pos) |
|
||||
+ (g << si->green_pos) |
|
||||
+ (b << si->blue_pos);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void efifb_show_boot_graphics(struct fb_info *info)
|
||||
+{
|
||||
+ u32 bmp_width, bmp_height, bmp_pitch, screen_pitch, dst_x, y, src_y;
|
||||
+ struct screen_info *si = &screen_info;
|
||||
+ struct bmp_file_header *file_header;
|
||||
+ struct bmp_dib_header *dib_header;
|
||||
+ void *bgrt_image = NULL;
|
||||
+ u8 *dst = info->screen_base;
|
||||
+
|
||||
+ if (!bgrt_tab.image_address) {
|
||||
+ pr_info("efifb: No BGRT, not showing boot graphics\n");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ /* Avoid flashing the logo if we're going to print std probe messages */
|
||||
+ if (console_loglevel > CONSOLE_LOGLEVEL_QUIET)
|
||||
+ return;
|
||||
+
|
||||
+ /* bgrt_tab.status is unreliable, so we don't check it */
|
||||
+
|
||||
+ if (si->lfb_depth != 32) {
|
||||
+ pr_info("efifb: not 32 bits, not showing boot graphics\n");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ bgrt_image = memremap(bgrt_tab.image_address, bgrt_image_size,
|
||||
+ MEMREMAP_WB);
|
||||
+ if (!bgrt_image) {
|
||||
+ pr_warn("efifb: Ignoring BGRT: failed to map image memory\n");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (bgrt_image_size < (sizeof(*file_header) + sizeof(*dib_header)))
|
||||
+ goto error;
|
||||
+
|
||||
+ file_header = bgrt_image;
|
||||
+ if (file_header->id != 0x4d42 || file_header->reserved != 0)
|
||||
+ goto error;
|
||||
+
|
||||
+ dib_header = bgrt_image + sizeof(*file_header);
|
||||
+ if (dib_header->dib_header_size != 40 || dib_header->width < 0 ||
|
||||
+ dib_header->planes != 1 || dib_header->bpp != 24 ||
|
||||
+ dib_header->compression != 0)
|
||||
+ goto error;
|
||||
+
|
||||
+ bmp_width = dib_header->width;
|
||||
+ bmp_height = abs(dib_header->height);
|
||||
+ bmp_pitch = round_up(3 * bmp_width, 4);
|
||||
+ screen_pitch = si->lfb_linelength;
|
||||
+
|
||||
+ if ((file_header->bitmap_offset + bmp_pitch * bmp_height) >
|
||||
+ bgrt_image_size)
|
||||
+ goto error;
|
||||
+
|
||||
+ if ((bgrt_tab.image_offset_x + bmp_width) > si->lfb_width ||
|
||||
+ (bgrt_tab.image_offset_y + bmp_height) > si->lfb_height)
|
||||
+ goto error;
|
||||
+
|
||||
+ pr_info("efifb: showing boot graphics\n");
|
||||
+
|
||||
+ for (y = 0; y < si->lfb_height; y++, dst += si->lfb_linelength) {
|
||||
+ /* Only background? */
|
||||
+ if (y < bgrt_tab.image_offset_y ||
|
||||
+ y >= (bgrt_tab.image_offset_y + bmp_height)) {
|
||||
+ memset(dst, 0, 4 * si->lfb_width);
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ src_y = y - bgrt_tab.image_offset_y;
|
||||
+ /* Positive header height means upside down row order */
|
||||
+ if (dib_header->height > 0)
|
||||
+ src_y = (bmp_height - 1) - src_y;
|
||||
+
|
||||
+ memset(dst, 0, bgrt_tab.image_offset_x * 4);
|
||||
+ dst_x = bgrt_tab.image_offset_x;
|
||||
+ efifb_copy_bmp(bgrt_image + file_header->bitmap_offset +
|
||||
+ src_y * bmp_pitch,
|
||||
+ (u32 *)dst + dst_x, bmp_width, si);
|
||||
+ dst_x += bmp_width;
|
||||
+ memset((u32 *)dst + dst_x, 0, (si->lfb_width - dst_x) * 4);
|
||||
+ }
|
||||
+
|
||||
+ memunmap(bgrt_image);
|
||||
+ return;
|
||||
+
|
||||
+error:
|
||||
+ memunmap(bgrt_image);
|
||||
+ pr_warn("efifb: Ignoring BGRT: unexpected or invalid BMP data\n");
|
||||
+}
|
||||
+#else
|
||||
+static inline void efifb_show_boot_graphics(struct fb_info *info) {}
|
||||
+#endif
|
||||
+
|
||||
static void efifb_destroy(struct fb_info *info)
|
||||
{
|
||||
if (info->screen_base) {
|
||||
@@ -311,6 +449,8 @@ static int efifb_probe(struct platform_device *dev)
|
||||
goto err_release_fb;
|
||||
}
|
||||
|
||||
+ efifb_show_boot_graphics(info);
|
||||
+
|
||||
pr_info("efifb: framebuffer at 0x%lx, using %dk, total %dk\n",
|
||||
efifb_fix.smem_start, size_remap/1024, size_total/1024);
|
||||
pr_info("efifb: mode is %dx%dx%d, linelength=%d, pages=%d\n",
|
||||
--
|
||||
2.18.0
|
||||
|
||||
|
|
@ -1,188 +0,0 @@
|
|||
From b7e46c634a6a8b5a40369b70f1f6e0bf21fd8c22 Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Thu, 5 Jul 2018 15:01:07 -0700
|
||||
Subject: [PATCH] treewide: Rename HOST_LOADLIBES to KBUILD_HOSTLDLIBS
|
||||
|
||||
In preparation for enabling command line LDLIBS, re-name HOST_LOADLIBES to
|
||||
KBUILD_HOSTLDLIBS as the internal use only flags. Also rename existing usage
|
||||
to HOSTLDLIBS for consistency. This should not have any visible effects.
|
||||
|
||||
Signed-off-by: Laura Abbott <labbott@redhat.com>
|
||||
---
|
||||
Makefile | 4 ++--
|
||||
samples/bpf/Makefile | 12 ++++++------
|
||||
samples/seccomp/Makefile | 6 +++---
|
||||
scripts/Makefile | 4 ++--
|
||||
scripts/Makefile.host | 10 +++++-----
|
||||
scripts/kconfig/Makefile | 8 ++++----
|
||||
6 files changed, 22 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index bd2d64b89463..96e34381d9ee 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -363,7 +363,7 @@ KBUILD_HOSTCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 \
|
||||
-fomit-frame-pointer -std=gnu89 $(HOST_LFS_CFLAGS)
|
||||
KBUILD_HOSTCXXFLAGS := -O2 $(HOST_LFS_CFLAGS)
|
||||
KBUILD_HOSTLDFLAGS := $(HOST_LFS_LDFLAGS)
|
||||
-HOST_LOADLIBES := $(HOST_LFS_LIBS)
|
||||
+KBUILD_HOSTLDLIBS := $(HOST_LFS_LIBS)
|
||||
|
||||
# Make variables (CC, etc...)
|
||||
AS = $(CROSS_COMPILE)as
|
||||
@@ -430,7 +430,7 @@ LDFLAGS :=
|
||||
GCC_PLUGINS_CFLAGS :=
|
||||
|
||||
export ARCH SRCARCH CONFIG_SHELL HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE AS LD CC
|
||||
-export CPP AR NM STRIP OBJCOPY OBJDUMP KBUILD_HOSTLDFLAGS HOST_LOADLIBES
|
||||
+export CPP AR NM STRIP OBJCOPY OBJDUMP KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS
|
||||
export MAKE LEX YACC AWK GENKSYMS INSTALLKERNEL PERL PYTHON PYTHON2 PYTHON3 UTS_MACHINE
|
||||
export HOSTCXX KBUILD_HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
|
||||
|
||||
diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
|
||||
index 494ef04c56cc..bd9f6c2a808e 100644
|
||||
--- a/samples/bpf/Makefile
|
||||
+++ b/samples/bpf/Makefile
|
||||
@@ -180,12 +180,12 @@ HOSTCFLAGS_trace_event_user.o += -I$(srctree)/tools/lib/bpf/
|
||||
HOSTCFLAGS_sampleip_user.o += -I$(srctree)/tools/lib/bpf/
|
||||
HOSTCFLAGS_task_fd_query_user.o += -I$(srctree)/tools/lib/bpf/
|
||||
|
||||
-HOST_LOADLIBES += $(LIBBPF) -lelf
|
||||
-HOSTLOADLIBES_tracex4 += -lrt
|
||||
-HOSTLOADLIBES_trace_output += -lrt
|
||||
-HOSTLOADLIBES_map_perf_test += -lrt
|
||||
-HOSTLOADLIBES_test_overhead += -lrt
|
||||
-HOSTLOADLIBES_xdpsock += -pthread
|
||||
+KBUILD_HOSTLDLIBS += $(LIBBPF) -lelf
|
||||
+HOSTLDLIBS_tracex4 += -lrt
|
||||
+HOSTLDLIBS_trace_output += -lrt
|
||||
+HOSTLDLIBS_map_perf_test += -lrt
|
||||
+HOSTLDLIBS_test_overhead += -lrt
|
||||
+HOSTLDLIBS_xdpsock += -pthread
|
||||
|
||||
# Allows pointing LLC/CLANG to a LLVM backend with bpf support, redefine on cmdline:
|
||||
# make samples/bpf/ LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang
|
||||
diff --git a/samples/seccomp/Makefile b/samples/seccomp/Makefile
|
||||
index ba942e3ead89..cf34ff6b4065 100644
|
||||
--- a/samples/seccomp/Makefile
|
||||
+++ b/samples/seccomp/Makefile
|
||||
@@ -30,9 +30,9 @@ HOSTCFLAGS_bpf-direct.o += $(MFLAG)
|
||||
HOSTCFLAGS_dropper.o += $(MFLAG)
|
||||
HOSTCFLAGS_bpf-helper.o += $(MFLAG)
|
||||
HOSTCFLAGS_bpf-fancy.o += $(MFLAG)
|
||||
-HOSTLOADLIBES_bpf-direct += $(MFLAG)
|
||||
-HOSTLOADLIBES_bpf-fancy += $(MFLAG)
|
||||
-HOSTLOADLIBES_dropper += $(MFLAG)
|
||||
+HOSTLDLIBS_bpf-direct += $(MFLAG)
|
||||
+HOSTLDLIBS_bpf-fancy += $(MFLAG)
|
||||
+HOSTLDLIBS_dropper += $(MFLAG)
|
||||
endif
|
||||
always := $(hostprogs-m)
|
||||
endif
|
||||
diff --git a/scripts/Makefile b/scripts/Makefile
|
||||
index 25ab143cbe14..166b94db90e3 100644
|
||||
--- a/scripts/Makefile
|
||||
+++ b/scripts/Makefile
|
||||
@@ -22,8 +22,8 @@ hostprogs-$(CONFIG_SYSTEM_EXTRA_CERTIFICATE) += insert-sys-cert
|
||||
|
||||
HOSTCFLAGS_sortextable.o = -I$(srctree)/tools/include
|
||||
HOSTCFLAGS_asn1_compiler.o = -I$(srctree)/include
|
||||
-HOSTLOADLIBES_sign-file = -lcrypto
|
||||
-HOSTLOADLIBES_extract-cert = -lcrypto
|
||||
+HOSTLDLIBS_sign-file = -lcrypto
|
||||
+HOSTLDLIBS_extract-cert = -lcrypto
|
||||
|
||||
always := $(hostprogs-y) $(hostprogs-m)
|
||||
|
||||
diff --git a/scripts/Makefile.host b/scripts/Makefile.host
|
||||
index c019d781b2c9..0393f75db4d4 100644
|
||||
--- a/scripts/Makefile.host
|
||||
+++ b/scripts/Makefile.host
|
||||
@@ -85,7 +85,7 @@ hostcxx_flags = -Wp,-MD,$(depfile) $(__hostcxx_flags)
|
||||
# host-csingle -> Executable
|
||||
quiet_cmd_host-csingle = HOSTCC $@
|
||||
cmd_host-csingle = $(HOSTCC) $(hostc_flags) $(KBUILD_HOSTLDFLAGS) -o $@ $< \
|
||||
- $(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
|
||||
+ $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
|
||||
$(host-csingle): $(obj)/%: $(src)/%.c FORCE
|
||||
$(call if_changed_dep,host-csingle)
|
||||
|
||||
@@ -94,7 +94,7 @@ $(host-csingle): $(obj)/%: $(src)/%.c FORCE
|
||||
quiet_cmd_host-cmulti = HOSTLD $@
|
||||
cmd_host-cmulti = $(HOSTCC) $(KBUILD_HOSTLDFLAGS) -o $@ \
|
||||
$(addprefix $(obj)/,$($(@F)-objs)) \
|
||||
- $(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
|
||||
+ $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
|
||||
$(host-cmulti): FORCE
|
||||
$(call if_changed,host-cmulti)
|
||||
$(call multi_depend, $(host-cmulti), , -objs)
|
||||
@@ -112,7 +112,7 @@ quiet_cmd_host-cxxmulti = HOSTLD $@
|
||||
cmd_host-cxxmulti = $(HOSTCXX) $(KBUILD_HOSTLDFLAGS) -o $@ \
|
||||
$(foreach o,objs cxxobjs,\
|
||||
$(addprefix $(obj)/,$($(@F)-$(o)))) \
|
||||
- $(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
|
||||
+ $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
|
||||
$(host-cxxmulti): FORCE
|
||||
$(call if_changed,host-cxxmulti)
|
||||
$(call multi_depend, $(host-cxxmulti), , -objs -cxxobjs)
|
||||
@@ -145,7 +145,7 @@ $(host-cxxshobjs): $(obj)/%.o: $(src)/%.c FORCE
|
||||
quiet_cmd_host-cshlib = HOSTLLD -shared $@
|
||||
cmd_host-cshlib = $(HOSTCC) $(KBUILD_HOSTLDFLAGS) -shared -o $@ \
|
||||
$(addprefix $(obj)/,$($(@F:.so=-objs))) \
|
||||
- $(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
|
||||
+ $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
|
||||
$(host-cshlib): FORCE
|
||||
$(call if_changed,host-cshlib)
|
||||
$(call multi_depend, $(host-cshlib), .so, -objs)
|
||||
@@ -155,7 +155,7 @@ $(call multi_depend, $(host-cshlib), .so, -objs)
|
||||
quiet_cmd_host-cxxshlib = HOSTLLD -shared $@
|
||||
cmd_host-cxxshlib = $(HOSTCXX) $(KBUILD_HOSTLDFLAGS) -shared -o $@ \
|
||||
$(addprefix $(obj)/,$($(@F:.so=-objs))) \
|
||||
- $(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
|
||||
+ $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
|
||||
$(host-cxxshlib): FORCE
|
||||
$(call if_changed,host-cxxshlib)
|
||||
$(call multi_depend, $(host-cxxshlib), .so, -objs)
|
||||
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
|
||||
index a3ac2c91331c..8f283acdaa4d 100644
|
||||
--- a/scripts/kconfig/Makefile
|
||||
+++ b/scripts/kconfig/Makefile
|
||||
@@ -169,7 +169,7 @@ HOSTCFLAGS_zconf.tab.o := -I$(src)
|
||||
hostprogs-y += nconf
|
||||
nconf-objs := nconf.o zconf.tab.o nconf.gui.o
|
||||
|
||||
-HOSTLOADLIBES_nconf = $(shell . $(obj)/.nconf-cfg && echo $$libs)
|
||||
+HOSTLDLIBS_nconf = $(shell . $(obj)/.nconf-cfg && echo $$libs)
|
||||
HOSTCFLAGS_nconf.o = $(shell . $(obj)/.nconf-cfg && echo $$cflags)
|
||||
HOSTCFLAGS_nconf.gui.o = $(shell . $(obj)/.nconf-cfg && echo $$cflags)
|
||||
|
||||
@@ -180,7 +180,7 @@ hostprogs-y += mconf
|
||||
lxdialog := checklist.o inputbox.o menubox.o textbox.o util.o yesno.o
|
||||
mconf-objs := mconf.o zconf.tab.o $(addprefix lxdialog/, $(lxdialog))
|
||||
|
||||
-HOSTLOADLIBES_mconf = $(shell . $(obj)/.mconf-cfg && echo $$libs)
|
||||
+HOSTLDLIBS_mconf = $(shell . $(obj)/.mconf-cfg && echo $$libs)
|
||||
$(foreach f, mconf.o $(lxdialog), \
|
||||
$(eval HOSTCFLAGS_$f = $$(shell . $(obj)/.mconf-cfg && echo $$$$cflags)))
|
||||
|
||||
@@ -191,7 +191,7 @@ hostprogs-y += qconf
|
||||
qconf-cxxobjs := qconf.o
|
||||
qconf-objs := zconf.tab.o
|
||||
|
||||
-HOSTLOADLIBES_qconf = $(shell . $(obj)/.qconf-cfg && echo $$libs)
|
||||
+HOSTLDLIBS_qconf = $(shell . $(obj)/.qconf-cfg && echo $$libs)
|
||||
HOSTCXXFLAGS_qconf.o = $(shell . $(obj)/.qconf-cfg && echo $$cflags)
|
||||
|
||||
$(obj)/qconf.o: $(obj)/.qconf-cfg $(obj)/qconf.moc
|
||||
@@ -206,7 +206,7 @@ $(obj)/%.moc: $(src)/%.h $(obj)/.qconf-cfg
|
||||
hostprogs-y += gconf
|
||||
gconf-objs := gconf.o zconf.tab.o
|
||||
|
||||
-HOSTLOADLIBES_gconf = $(shell . $(obj)/.gconf-cfg && echo $$libs)
|
||||
+HOSTLDLIBS_gconf = $(shell . $(obj)/.gconf-cfg && echo $$libs)
|
||||
HOSTCFLAGS_gconf.o = $(shell . $(obj)/.gconf-cfg && echo $$cflags)
|
||||
|
||||
$(obj)/gconf.o: $(obj)/.gconf-cfg
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
From 36be6e2f197b4abaf0e7c4fe2f525eb56b3f0298 Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Fri, 6 Jul 2018 17:21:01 -0700
|
||||
Subject: [PATCHv2 7/7] Kbuild: Use HOST*FLAGS options from the command line
|
||||
To: Masahiro Yamada <yamada.masahiro@socionext.com>
|
||||
To: Josh Poimboeuf <jpoimboe@redhat.com>
|
||||
To: Jiri Olsa <jolsa@kernel.org>
|
||||
Cc: linux-kbuild@vger.kernel.org
|
||||
Cc: linux-kernel@vger.kernel.org
|
||||
Cc: Robin Jarry <robin.jarry@6wind.com>
|
||||
Cc: Jonathan Corbet <corbet@lwn.net>
|
||||
Cc: linux-doc@vger.kernel.org
|
||||
|
||||
|
||||
Now that we have the rename in place, reuse the HOST*FLAGS options as
|
||||
something that can be set from the command line and included with the
|
||||
rest of the flags.
|
||||
|
||||
Signed-off-by: Laura Abbott <labbott@redhat.com>
|
||||
---
|
||||
v2: Use the correct name for HOSTLDLIBS, update documentation.
|
||||
---
|
||||
Documentation/kbuild/kbuild.txt | 16 ++++++++++++++++
|
||||
Makefile | 9 +++++----
|
||||
2 files changed, 21 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/Documentation/kbuild/kbuild.txt b/Documentation/kbuild/kbuild.txt
|
||||
index 6c9c69ec3986..9847a5974826 100644
|
||||
--- a/Documentation/kbuild/kbuild.txt
|
||||
+++ b/Documentation/kbuild/kbuild.txt
|
||||
@@ -238,3 +238,19 @@ KBUILD_VMLINUX_LIBS
|
||||
All .a "lib" files for vmlinux.
|
||||
KBUILD_VMLINUX_INIT, KBUILD_VMLINUX_MAIN, and KBUILD_VMLINUX_LIBS together
|
||||
specify all the object files used to link vmlinux.
|
||||
+
|
||||
+HOSTCFLAGS
|
||||
+--------------------------------------------------
|
||||
+Additional flags to be passed to $(HOSTCC) when building host programs.
|
||||
+
|
||||
+HOSTLDFLAGS
|
||||
+--------------------------------------------------
|
||||
+Additional flags to be passed to $(HOSTLD) when building host programs.
|
||||
+
|
||||
+HOSTCXXFLAGS
|
||||
+--------------------------------------------------
|
||||
+Additional flags to be passed to $(HOSTCXX) when building host programs.
|
||||
+
|
||||
+HOSTLDLIBS
|
||||
+--------------------------------------------------
|
||||
+Additional libraries to link against when building host programs.
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 96e34381d9ee..c2ee1d4c12c9 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -360,10 +360,11 @@ HOST_LFS_LIBS := $(shell getconf LFS_LIBS)
|
||||
HOSTCC = gcc
|
||||
HOSTCXX = g++
|
||||
KBUILD_HOSTCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 \
|
||||
- -fomit-frame-pointer -std=gnu89 $(HOST_LFS_CFLAGS)
|
||||
-KBUILD_HOSTCXXFLAGS := -O2 $(HOST_LFS_CFLAGS)
|
||||
-KBUILD_HOSTLDFLAGS := $(HOST_LFS_LDFLAGS)
|
||||
-KBUILD_HOSTLDLIBS := $(HOST_LFS_LIBS)
|
||||
+ -fomit-frame-pointer -std=gnu89 $(HOST_LFS_CFLAGS) \
|
||||
+ $(HOSTCFLAGS)
|
||||
+KBUILD_HOSTCXXFLAGS := -O2 $(HOST_LFS_CFLAGS) $(HOSTCXXFLAGS)
|
||||
+KBUILD_HOSTLDFLAGS := $(HOST_LFS_LDFLAGS) $(HOSTLDFLAGS)
|
||||
+KBUILD_HOSTLDLIBS := $(HOST_LFS_LIBS) $(HOSTLDLIBS)
|
||||
|
||||
# Make variables (CC, etc...)
|
||||
AS = $(CROSS_COMPILE)as
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
@ -1,85 +0,0 @@
|
|||
From c4220b3f747ae6dd28171137d85fba0eab64e36d Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Tue, 24 Jul 2018 19:11:28 +0200
|
||||
Subject: [PATCH 7/7] efifb: BGRT: Do not copy the boot graphics for non native
|
||||
resolutions
|
||||
|
||||
On x86 some firmwares use a low non native resolution for the display when
|
||||
they have shown some text messages. While keeping the bgrt filled with info
|
||||
for the native resolution. If the bgrt image intended for the native
|
||||
resolution still fits, it will be displayed very close to the right edge of
|
||||
the display looking quite bad.
|
||||
|
||||
This commits adds a (heuristics based) checks for this and makes efifb
|
||||
not show the boot graphics when this is the case.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
|
||||
---
|
||||
drivers/video/fbdev/efifb.c | 43 +++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 43 insertions(+)
|
||||
|
||||
diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
|
||||
index fa01eecc0a55..52bf39f93888 100644
|
||||
--- a/drivers/video/fbdev/efifb.c
|
||||
+++ b/drivers/video/fbdev/efifb.c
|
||||
@@ -111,6 +111,46 @@ static void efifb_copy_bmp(u8 *src, u32 *dst, int width, struct screen_info *si)
|
||||
}
|
||||
}
|
||||
|
||||
+#ifdef CONFIG_X86
|
||||
+/*
|
||||
+ * On x86 some firmwares use a low non native resolution for the display when
|
||||
+ * they have shown some text messages. While keeping the bgrt filled with info
|
||||
+ * for the native resolution. If the bgrt image intended for the native
|
||||
+ * resolution still fits, it will be displayed very close to the right edge of
|
||||
+ * the display looking quite bad. This function checks for this.
|
||||
+ */
|
||||
+static bool efifb_bgrt_sanity_check(struct screen_info *si, u32 bmp_width)
|
||||
+{
|
||||
+ static const int default_resolutions[][2] = {
|
||||
+ { 800, 600 },
|
||||
+ { 1024, 768 },
|
||||
+ { 1280, 1024 },
|
||||
+ };
|
||||
+ u32 i, right_margin;
|
||||
+
|
||||
+ for (i = 0; i < ARRAY_SIZE(default_resolutions); i++) {
|
||||
+ if (default_resolutions[i][0] == si->lfb_width &&
|
||||
+ default_resolutions[i][1] == si->lfb_height)
|
||||
+ break;
|
||||
+ }
|
||||
+ /* If not a default resolution used for textmode, this should be fine */
|
||||
+ if (i >= ARRAY_SIZE(default_resolutions))
|
||||
+ return true;
|
||||
+
|
||||
+ /* If the right margin is 5 times smaller then the left one, reject */
|
||||
+ right_margin = si->lfb_width - (bgrt_tab.image_offset_x + bmp_width);
|
||||
+ if (right_margin < (bgrt_tab.image_offset_x / 5))
|
||||
+ return false;
|
||||
+
|
||||
+ return true;
|
||||
+}
|
||||
+#else
|
||||
+static bool efifb_bgrt_sanity_check(struct screen_info *si, u32 bmp_width)
|
||||
+{
|
||||
+ return true;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
static void efifb_show_boot_graphics(struct fb_info *info)
|
||||
{
|
||||
u32 bmp_width, bmp_height, bmp_pitch, screen_pitch, dst_x, y, src_y;
|
||||
@@ -169,6 +209,9 @@ static void efifb_show_boot_graphics(struct fb_info *info)
|
||||
(bgrt_tab.image_offset_y + bmp_height) > si->lfb_height)
|
||||
goto error;
|
||||
|
||||
+ if (!efifb_bgrt_sanity_check(si, bmp_width))
|
||||
+ goto error;
|
||||
+
|
||||
pr_info("efifb: showing boot graphics\n");
|
||||
|
||||
for (y = 0; y < si->lfb_height; y++, dst += si->lfb_linelength) {
|
||||
--
|
||||
2.18.0
|
||||
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
From b4e821e0b782ff2e816ca342af6a9eab32116ece Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Fri, 29 Jun 2018 11:46:19 +0200
|
||||
Subject: [PATCH 8/8] console: dummycon: export
|
||||
dummycon_[un]register_output_notifier
|
||||
|
||||
Export dummycon_[un]register_output_notifier, the fbcon code needs this
|
||||
and may be build as a module.
|
||||
|
||||
Fixes: 83d83bebf401 ("console/fbcon: Add support for deferred console takeover")
|
||||
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
|
||||
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
|
||||
---
|
||||
drivers/video/console/dummycon.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/drivers/video/console/dummycon.c b/drivers/video/console/dummycon.c
|
||||
index 45ad925ad5f8..0254251fdd79 100644
|
||||
--- a/drivers/video/console/dummycon.c
|
||||
+++ b/drivers/video/console/dummycon.c
|
||||
@@ -38,11 +38,13 @@ void dummycon_register_output_notifier(struct notifier_block *nb)
|
||||
if (dummycon_putc_called)
|
||||
nb->notifier_call(nb, 0, NULL);
|
||||
}
|
||||
+EXPORT_SYMBOL_GPL(dummycon_register_output_notifier);
|
||||
|
||||
void dummycon_unregister_output_notifier(struct notifier_block *nb)
|
||||
{
|
||||
raw_notifier_chain_unregister(&dummycon_output_nh, nb);
|
||||
}
|
||||
+EXPORT_SYMBOL_GPL(dummycon_unregister_output_notifier);
|
||||
|
||||
static void dummycon_putc(struct vc_data *vc, int c, int ypos, int xpos)
|
||||
{
|
||||
--
|
||||
2.18.0
|
||||
|
||||
|
|
@ -1,100 +0,0 @@
|
|||
From 317b698406457eb97277d4220126683a59c74fd8 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Wed, 1 Aug 2018 15:19:52 +0200
|
||||
Subject: [PATCH] fbcon: Only defer console takeover if the current
|
||||
console driver is the dummycon
|
||||
|
||||
We rely on dummycon's output notifier mechanism to defer the takeover.
|
||||
|
||||
If say vgacon is the current console driver then dummycon will never get
|
||||
used so its output notifier will also never get called and fbcon never
|
||||
takes over. This commit fixes this by only deferring the console takeover
|
||||
if the current console driver is the dummycon driver.
|
||||
|
||||
This commit also moves the entirety of fbcon_start under the console_lock,
|
||||
since the conswitchp which fbcon_start now checks is protected by it.
|
||||
|
||||
This commit also inlines fbcon_register_output_notifier, since we now
|
||||
need a #ifdef CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER in fbcon_start
|
||||
anyways because of the write access to the deferred_takeover variable,
|
||||
this has the added advantage that it puts the
|
||||
dummycon_register_output_notifier() call directly after the "conswitchp !=
|
||||
&dummy_con" comparison making it clear why that check is there.
|
||||
|
||||
Note the arch setup code will set conswitchp to either dummy_con or
|
||||
vga_con, in the cases where it gets set to vga_con even though their is
|
||||
no vga_con present we rely on vga_con_startup() to set conswitchp to
|
||||
dummy_con. vga_con_startup() is guaranteed to happen before
|
||||
fb_console_init() as it gets called as a console_initcall where as
|
||||
fb_console_init() gets called as a subsys_initcall.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/video/fbdev/core/fbcon.c | 24 ++++++++++--------------
|
||||
1 file changed, 10 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
|
||||
index e30d3a138c97..ef8b2d0b7071 100644
|
||||
--- a/drivers/video/fbdev/core/fbcon.c
|
||||
+++ b/drivers/video/fbdev/core/fbcon.c
|
||||
@@ -3612,38 +3612,34 @@ static int fbcon_output_notifier(struct notifier_block *nb,
|
||||
|
||||
return NOTIFY_OK;
|
||||
}
|
||||
-
|
||||
-static void fbcon_register_output_notifier(void)
|
||||
-{
|
||||
- fbcon_output_nb.notifier_call = fbcon_output_notifier;
|
||||
- dummycon_register_output_notifier(&fbcon_output_nb);
|
||||
-}
|
||||
-#else
|
||||
-static inline void fbcon_register_output_notifier(void) {}
|
||||
#endif
|
||||
|
||||
static void fbcon_start(void)
|
||||
{
|
||||
+ WARN_CONSOLE_UNLOCKED();
|
||||
+
|
||||
+#ifdef CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER
|
||||
+ if (conswitchp != &dummy_con)
|
||||
+ deferred_takeover = false;
|
||||
+
|
||||
if (deferred_takeover) {
|
||||
- fbcon_register_output_notifier();
|
||||
+ fbcon_output_nb.notifier_call = fbcon_output_notifier;
|
||||
+ dummycon_register_output_notifier(&fbcon_output_nb);
|
||||
return;
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (num_registered_fb) {
|
||||
int i;
|
||||
|
||||
- console_lock();
|
||||
-
|
||||
for (i = 0; i < FB_MAX; i++) {
|
||||
if (registered_fb[i] != NULL) {
|
||||
info_idx = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
do_fbcon_takeover(0);
|
||||
- console_unlock();
|
||||
-
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3724,8 +3720,8 @@ void __init fb_console_init(void)
|
||||
for (i = 0; i < MAX_NR_CONSOLES; i++)
|
||||
con2fb_map[i] = -1;
|
||||
|
||||
- console_unlock();
|
||||
fbcon_start();
|
||||
+ console_unlock();
|
||||
}
|
||||
|
||||
#ifdef MODULE
|
||||
--
|
||||
2.18.0
|
||||
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
From 8f571bbfc621fd0826bbc7a8924c811f3a3167c9 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 6 Aug 2018 16:32:27 +0200
|
||||
Subject: [PATCH] fbcon: Do not takeover the console from atomic context
|
||||
|
||||
Taking over the console involves allocating mem with GFP_KERNEL, talking
|
||||
to drm drivers, etc. So this should not be done from an atomic context.
|
||||
|
||||
But the console-output trigger deferred console takeover may happen from an
|
||||
atomic context, which leads to "BUG: sleeping function called from invalid
|
||||
context" errors.
|
||||
|
||||
This commit fixes these errors by doing the deferred takeover from a
|
||||
workqueue when the notifier runs from an atomic context.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/video/fbdev/core/fbcon.c | 21 +++++++++++++++++++--
|
||||
1 file changed, 19 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
|
||||
index a3fd510..f812891 100644
|
||||
--- a/drivers/video/fbdev/core/fbcon.c
|
||||
+++ b/drivers/video/fbdev/core/fbcon.c
|
||||
@@ -3596,7 +3596,22 @@ static int fbcon_init_device(void)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER
|
||||
+static void fbcon_register_existing_fbs(struct work_struct *work)
|
||||
+{
|
||||
+ int i;
|
||||
+
|
||||
+ console_lock();
|
||||
+
|
||||
+ for (i = 0; i < FB_MAX; i++) {
|
||||
+ if (registered_fb[i])
|
||||
+ fbcon_fb_registered(registered_fb[i]);
|
||||
+ }
|
||||
+
|
||||
+ console_unlock();
|
||||
+}
|
||||
+
|
||||
static struct notifier_block fbcon_output_nb;
|
||||
+static DECLARE_WORK(fbcon_deferred_takeover_work, fbcon_register_existing_fbs);
|
||||
|
||||
static int fbcon_output_notifier(struct notifier_block *nb,
|
||||
unsigned long action, void *data)
|
||||
@@ -3611,10 +3626,8 @@ static int fbcon_output_notifier(struct notifier_block *nb,
|
||||
deferred_takeover = false;
|
||||
logo_shown = FBCON_LOGO_DONTSHOW;
|
||||
|
||||
- for (i = 0; i < FB_MAX; i++) {
|
||||
- if (registered_fb[i])
|
||||
- fbcon_fb_registered(registered_fb[i]);
|
||||
- }
|
||||
+ /* We may get called in atomic context */
|
||||
+ schedule_work(&fbcon_deferred_takeover_work);
|
||||
|
||||
return NOTIFY_OK;
|
||||
}
|
||||
--
|
||||
2.18.0
|
||||
|
||||
|
|
@ -1,15 +1,7 @@
|
|||
From patchwork Fri Apr 20 03:29:47 2018
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Subject: ACPI / scan: Fix regression related to X-Gene UARTs
|
||||
From 1e494dc5f3140005ff1f17bc06c0c16d6d50d580 Mon Sep 17 00:00:00 2001
|
||||
From: Mark Salter <msalter@redhat.com>
|
||||
X-Patchwork-Id: 10351797
|
||||
Message-Id: <20180420032947.23023-1-msalter@redhat.com>
|
||||
To: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Danis?= <frederic.danis.oss@gmail.com>
|
||||
Cc: "Rafael J . Wysocki" <rjw@rjwysocki.net>,
|
||||
linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org
|
||||
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
|
||||
|
|
@ -24,12 +16,12 @@ Signed-off-by: Mark Salter <msalter@redhat.com>
|
|||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
|
||||
index cc234e6a6297..1dcdd0122862 100644
|
||||
index e1b6231cfa1c..542dafac4306 100644
|
||||
--- a/drivers/acpi/scan.c
|
||||
+++ b/drivers/acpi/scan.c
|
||||
@@ -1551,6 +1551,14 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device)
|
||||
fwnode_property_present(&device->fwnode, "baud")))
|
||||
return true;
|
||||
@@ -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
|
||||
|
|
@ -42,3 +34,6 @@ index cc234e6a6297..1dcdd0122862 100644
|
|||
INIT_LIST_HEAD(&resource_list);
|
||||
acpi_dev_get_resources(device, &resource_list,
|
||||
acpi_check_serial_bus_slave,
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
|
|||
|
|
@ -1,217 +0,0 @@
|
|||
From 6b6203b92cfb457a0669a9c87a29b360405bffc6 Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
Date: Fri, 9 Aug 2013 18:36:30 -0400
|
||||
Subject: [PATCH 10/20] Add option to automatically enforce module signatures
|
||||
when in Secure Boot mode
|
||||
|
||||
UEFI Secure Boot provides a mechanism for ensuring that the firmware will
|
||||
only load signed bootloaders and kernels. Certain use cases may also
|
||||
require that all kernel modules also be signed. Add a configuration option
|
||||
that enforces this automatically when enabled.
|
||||
|
||||
Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
---
|
||||
Documentation/x86/zero-page.txt | 2 ++
|
||||
arch/x86/Kconfig | 11 ++++++
|
||||
arch/x86/boot/compressed/eboot.c | 66 +++++++++++++++++++++++++++++++++++
|
||||
arch/x86/include/uapi/asm/bootparam.h | 3 +-
|
||||
arch/x86/kernel/setup.c | 6 ++++
|
||||
include/linux/module.h | 6 ++++
|
||||
kernel/module.c | 7 ++++
|
||||
7 files changed, 100 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Documentation/x86/zero-page.txt b/Documentation/x86/zero-page.txt
|
||||
index 95a4d34af3fd..b8527c6b7646 100644
|
||||
--- a/Documentation/x86/zero-page.txt
|
||||
+++ b/Documentation/x86/zero-page.txt
|
||||
@@ -31,6 +31,8 @@ Offset Proto Name Meaning
|
||||
1E9/001 ALL eddbuf_entries Number of entries in eddbuf (below)
|
||||
1EA/001 ALL edd_mbr_sig_buf_entries Number of entries in edd_mbr_sig_buffer
|
||||
(below)
|
||||
+1EB/001 ALL kbd_status Numlock is enabled
|
||||
+1EC/001 ALL secure_boot Secure boot is enabled in the firmware
|
||||
1EF/001 ALL sentinel Used to detect broken bootloaders
|
||||
290/040 ALL edd_mbr_sig_buffer EDD MBR signatures
|
||||
2D0/A00 ALL e820_map E820 memory map table
|
||||
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
|
||||
index bada636d1065..d666ef8b616c 100644
|
||||
--- a/arch/x86/Kconfig
|
||||
+++ b/arch/x86/Kconfig
|
||||
@@ -1786,6 +1786,17 @@ config EFI_MIXED
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
+config EFI_SECURE_BOOT_SIG_ENFORCE
|
||||
+ def_bool n
|
||||
+ depends on EFI
|
||||
+ prompt "Force module signing when UEFI Secure Boot is enabled"
|
||||
+ ---help---
|
||||
+ UEFI Secure Boot provides a mechanism for ensuring that the
|
||||
+ firmware will only load signed bootloaders and kernels. Certain
|
||||
+ use cases may also require that all kernel modules also be signed.
|
||||
+ Say Y here to automatically enable module signature enforcement
|
||||
+ when a system boots with UEFI Secure Boot enabled.
|
||||
+
|
||||
config SECCOMP
|
||||
def_bool y
|
||||
prompt "Enable seccomp to safely compute untrusted bytecode"
|
||||
diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
|
||||
index cc69e37548db..ebc85c1eefd6 100644
|
||||
--- a/arch/x86/boot/compressed/eboot.c
|
||||
+++ b/arch/x86/boot/compressed/eboot.c
|
||||
@@ -12,6 +12,7 @@
|
||||
#include <asm/efi.h>
|
||||
#include <asm/setup.h>
|
||||
#include <asm/desc.h>
|
||||
+#include <asm/bootparam_utils.h>
|
||||
|
||||
#include "../string.h"
|
||||
#include "eboot.h"
|
||||
@@ -537,6 +538,67 @@ static void setup_efi_pci(struct boot_params *params)
|
||||
efi_call_early(free_pool, pci_handle);
|
||||
}
|
||||
|
||||
+static int get_secure_boot(void)
|
||||
+{
|
||||
+ u8 sb, setup;
|
||||
+ unsigned long datasize = sizeof(sb);
|
||||
+ efi_guid_t var_guid = EFI_GLOBAL_VARIABLE_GUID;
|
||||
+ efi_status_t status;
|
||||
+
|
||||
+ status = efi_early->call((unsigned long)sys_table->runtime->get_variable,
|
||||
+ L"SecureBoot", &var_guid, NULL, &datasize, &sb);
|
||||
+
|
||||
+ if (status != EFI_SUCCESS)
|
||||
+ return 0;
|
||||
+
|
||||
+ if (sb == 0)
|
||||
+ return 0;
|
||||
+
|
||||
+
|
||||
+ status = efi_early->call((unsigned long)sys_table->runtime->get_variable,
|
||||
+ L"SetupMode", &var_guid, NULL, &datasize,
|
||||
+ &setup);
|
||||
+
|
||||
+ if (status != EFI_SUCCESS)
|
||||
+ return 0;
|
||||
+
|
||||
+ if (setup == 1)
|
||||
+ return 0;
|
||||
+
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/*
|
||||
+ * See if we have Graphics Output Protocol
|
||||
+ */
|
||||
+static efi_status_t setup_gop(struct screen_info *si, efi_guid_t *proto,
|
||||
+ unsigned long size)
|
||||
+{
|
||||
+ efi_status_t status;
|
||||
+ void **gop_handle = NULL;
|
||||
+
|
||||
+ status = efi_call_early(allocate_pool, EFI_LOADER_DATA,
|
||||
+ size, (void **)&gop_handle);
|
||||
+ if (status != EFI_SUCCESS)
|
||||
+ return status;
|
||||
+
|
||||
+ status = efi_call_early(locate_handle,
|
||||
+ EFI_LOCATE_BY_PROTOCOL,
|
||||
+ proto, NULL, &size, gop_handle);
|
||||
+ if (status != EFI_SUCCESS)
|
||||
+ goto free_handle;
|
||||
+
|
||||
+ if (efi_early->is64)
|
||||
+ status = setup_gop64(si, proto, size, gop_handle);
|
||||
+ else
|
||||
+ status = setup_gop32(si, proto, size, gop_handle);
|
||||
+
|
||||
+free_handle:
|
||||
+ efi_call_early(free_pool, gop_handle);
|
||||
+ return status;
|
||||
+}
|
||||
+
|
||||
static efi_status_t
|
||||
setup_uga32(void **uga_handle, unsigned long size, u32 *width, u32 *height)
|
||||
{
|
||||
@@ -1094,6 +1156,10 @@ struct boot_params *efi_main(struct efi_config *c,
|
||||
else
|
||||
setup_boot_services32(efi_early);
|
||||
|
||||
+ sanitize_boot_params(boot_params);
|
||||
+
|
||||
+ boot_params->secure_boot = get_secure_boot();
|
||||
+
|
||||
setup_graphics(boot_params);
|
||||
|
||||
setup_efi_pci(boot_params);
|
||||
diff --git a/arch/x86/include/uapi/asm/bootparam.h b/arch/x86/include/uapi/asm/bootparam.h
|
||||
index c18ce67495fa..2b3e5427097b 100644
|
||||
--- a/arch/x86/include/uapi/asm/bootparam.h
|
||||
+++ b/arch/x86/include/uapi/asm/bootparam.h
|
||||
@@ -134,7 +134,8 @@ struct boot_params {
|
||||
__u8 eddbuf_entries; /* 0x1e9 */
|
||||
__u8 edd_mbr_sig_buf_entries; /* 0x1ea */
|
||||
__u8 kbd_status; /* 0x1eb */
|
||||
- __u8 _pad5[3]; /* 0x1ec */
|
||||
+ __u8 secure_boot; /* 0x1ec */
|
||||
+ __u8 _pad5[2]; /* 0x1ed */
|
||||
/*
|
||||
* The sentinel is set to a nonzero value (0xff) in header.S.
|
||||
*
|
||||
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
|
||||
index bbfbca5fea0c..d40e961753c9 100644
|
||||
--- a/arch/x86/kernel/setup.c
|
||||
+++ b/arch/x86/kernel/setup.c
|
||||
@@ -1160,6 +1160,12 @@ void __init setup_arch(char **cmdline_p)
|
||||
|
||||
io_delay_init();
|
||||
|
||||
+#ifdef CONFIG_EFI_SECURE_BOOT_SIG_ENFORCE
|
||||
+ if (boot_params.secure_boot) {
|
||||
+ enforce_signed_modules();
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
/*
|
||||
* Parse the ACPI tables for possible boot-time SMP configuration.
|
||||
*/
|
||||
diff --git a/include/linux/module.h b/include/linux/module.h
|
||||
index 05bd6c989a0c..32327704e18d 100644
|
||||
--- a/include/linux/module.h
|
||||
+++ b/include/linux/module.h
|
||||
@@ -260,6 +260,12 @@ extern const typeof(name) __mod_##type##__##name##_device_table \
|
||||
|
||||
struct notifier_block;
|
||||
|
||||
+#ifdef CONFIG_MODULE_SIG
|
||||
+extern void enforce_signed_modules(void);
|
||||
+#else
|
||||
+static inline void enforce_signed_modules(void) {};
|
||||
+#endif
|
||||
+
|
||||
#ifdef CONFIG_MODULES
|
||||
|
||||
extern int modules_disabled; /* for sysctl */
|
||||
diff --git a/kernel/module.c b/kernel/module.c
|
||||
index cb864505d020..cb1f1da69bf4 100644
|
||||
--- a/kernel/module.c
|
||||
+++ b/kernel/module.c
|
||||
@@ -4285,6 +4285,13 @@ void module_layout(struct module *mod,
|
||||
EXPORT_SYMBOL(module_layout);
|
||||
#endif
|
||||
|
||||
+#ifdef CONFIG_MODULE_SIG
|
||||
+void enforce_signed_modules(void)
|
||||
+{
|
||||
+ sig_enforce = true;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
bool secure_modules(void)
|
||||
{
|
||||
#ifdef CONFIG_MODULE_SIG
|
||||
--
|
||||
2.9.3
|
||||
|
||||
|
|
@ -1,180 +0,0 @@
|
|||
From: "J. Bruce Fields" <bfields@redhat.com>
|
||||
Date: 2017-04-14 15:04:40
|
||||
Subject: [PATCH] nfsd: check for oversized NFSv2/v3 arguments
|
||||
|
||||
A client can append random data to the end of an NFSv2 or NFSv3 RPC call
|
||||
without our complaining; we'll just stop parsing at the end of the
|
||||
expected data and ignore the rest.
|
||||
|
||||
Encoded arguments and replies are stored together in an array of pages,
|
||||
and if a call is too large it could leave inadequate space for the
|
||||
reply. This is normally OK because NFS RPC's typically have either
|
||||
short arguments and long replies (like READ) or long arguments and short
|
||||
replies (like WRITE). But a client that sends an incorrectly long reply
|
||||
can violate those assumptions. This was observed to cause crashes.
|
||||
|
||||
So, insist that the argument not be any longer than we expect.
|
||||
|
||||
Also, several operations increment rq_next_page in the decode routine
|
||||
before checking the argument size, which can leave rq_next_page pointing
|
||||
well past the end of the page array, causing trouble later in
|
||||
svc_free_pages.
|
||||
|
||||
As followup we may also want to rewrite the encoding routines to check
|
||||
more carefully that they aren't running off the end of the page array.
|
||||
|
||||
Reported-by: Tuomas Haanpää <thaan@synopsys.com>
|
||||
Reported-by: Ari Kauppi <ari@synopsys.com>
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
|
||||
---
|
||||
fs/nfsd/nfs3xdr.c | 23 +++++++++++++++++------
|
||||
fs/nfsd/nfsxdr.c | 13 ++++++++++---
|
||||
include/linux/sunrpc/svc.h | 3 +--
|
||||
3 files changed, 28 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/fs/nfsd/nfs3xdr.c b/fs/nfsd/nfs3xdr.c
|
||||
index dba2ff8eaa68..be66bcadfaea 100644
|
||||
--- a/fs/nfsd/nfs3xdr.c
|
||||
+++ b/fs/nfsd/nfs3xdr.c
|
||||
@@ -334,8 +334,11 @@ nfs3svc_decode_readargs(struct svc_rqst *rqstp, __be32 *p,
|
||||
if (!p)
|
||||
return 0;
|
||||
p = xdr_decode_hyper(p, &args->offset);
|
||||
-
|
||||
args->count = ntohl(*p++);
|
||||
+
|
||||
+ if (!xdr_argsize_check(rqstp, p))
|
||||
+ return 0;
|
||||
+
|
||||
len = min(args->count, max_blocksize);
|
||||
|
||||
/* set up the kvec */
|
||||
@@ -349,7 +352,7 @@ nfs3svc_decode_readargs(struct svc_rqst *rqstp, __be32 *p,
|
||||
v++;
|
||||
}
|
||||
args->vlen = v;
|
||||
- return xdr_argsize_check(rqstp, p);
|
||||
+ return 1;
|
||||
}
|
||||
|
||||
int
|
||||
@@ -536,9 +539,11 @@ nfs3svc_decode_readlinkargs(struct svc_rqst *rqstp, __be32 *p,
|
||||
p = decode_fh(p, &args->fh);
|
||||
if (!p)
|
||||
return 0;
|
||||
+ if (!xdr_argsize_check(rqstp, p))
|
||||
+ return 0;
|
||||
args->buffer = page_address(*(rqstp->rq_next_page++));
|
||||
|
||||
- return xdr_argsize_check(rqstp, p);
|
||||
+ return 1;
|
||||
}
|
||||
|
||||
int
|
||||
@@ -564,10 +569,14 @@ nfs3svc_decode_readdirargs(struct svc_rqst *rqstp, __be32 *p,
|
||||
args->verf = p; p += 2;
|
||||
args->dircount = ~0;
|
||||
args->count = ntohl(*p++);
|
||||
+
|
||||
+ if (!xdr_argsize_check(rqstp, p))
|
||||
+ return 0;
|
||||
+
|
||||
args->count = min_t(u32, args->count, PAGE_SIZE);
|
||||
args->buffer = page_address(*(rqstp->rq_next_page++));
|
||||
|
||||
- return xdr_argsize_check(rqstp, p);
|
||||
+ return 1;
|
||||
}
|
||||
|
||||
int
|
||||
@@ -585,6 +594,9 @@ nfs3svc_decode_readdirplusargs(struct svc_rqst *rqstp, __be32 *p,
|
||||
args->dircount = ntohl(*p++);
|
||||
args->count = ntohl(*p++);
|
||||
|
||||
+ if (!xdr_argsize_check(rqstp, p))
|
||||
+ return 0;
|
||||
+
|
||||
len = args->count = min(args->count, max_blocksize);
|
||||
while (len > 0) {
|
||||
struct page *p = *(rqstp->rq_next_page++);
|
||||
@@ -592,8 +604,7 @@ nfs3svc_decode_readdirplusargs(struct svc_rqst *rqstp, __be32 *p,
|
||||
args->buffer = page_address(p);
|
||||
len -= PAGE_SIZE;
|
||||
}
|
||||
-
|
||||
- return xdr_argsize_check(rqstp, p);
|
||||
+ return 1;
|
||||
}
|
||||
|
||||
int
|
||||
diff --git a/fs/nfsd/nfsxdr.c b/fs/nfsd/nfsxdr.c
|
||||
index 41b468a6a90f..79268369f7b3 100644
|
||||
--- a/fs/nfsd/nfsxdr.c
|
||||
+++ b/fs/nfsd/nfsxdr.c
|
||||
@@ -257,6 +257,9 @@ nfssvc_decode_readargs(struct svc_rqst *rqstp, __be32 *p,
|
||||
len = args->count = ntohl(*p++);
|
||||
p++; /* totalcount - unused */
|
||||
|
||||
+ if (!xdr_argsize_check(rqstp, p))
|
||||
+ return 0;
|
||||
+
|
||||
len = min_t(unsigned int, len, NFSSVC_MAXBLKSIZE_V2);
|
||||
|
||||
/* set up somewhere to store response.
|
||||
@@ -272,7 +275,7 @@ nfssvc_decode_readargs(struct svc_rqst *rqstp, __be32 *p,
|
||||
v++;
|
||||
}
|
||||
args->vlen = v;
|
||||
- return xdr_argsize_check(rqstp, p);
|
||||
+ return 1;
|
||||
}
|
||||
|
||||
int
|
||||
@@ -360,9 +363,11 @@ nfssvc_decode_readlinkargs(struct svc_rqst *rqstp, __be32 *p, struct nfsd_readli
|
||||
p = decode_fh(p, &args->fh);
|
||||
if (!p)
|
||||
return 0;
|
||||
+ if (!xdr_argsize_check(rqstp, p))
|
||||
+ return 0;
|
||||
args->buffer = page_address(*(rqstp->rq_next_page++));
|
||||
|
||||
- return xdr_argsize_check(rqstp, p);
|
||||
+ return 1;
|
||||
}
|
||||
|
||||
int
|
||||
@@ -400,9 +405,11 @@ nfssvc_decode_readdirargs(struct svc_rqst *rqstp, __be32 *p,
|
||||
args->cookie = ntohl(*p++);
|
||||
args->count = ntohl(*p++);
|
||||
args->count = min_t(u32, args->count, PAGE_SIZE);
|
||||
+ if (!xdr_argsize_check(rqstp, p))
|
||||
+ return 0;
|
||||
args->buffer = page_address(*(rqstp->rq_next_page++));
|
||||
|
||||
- return xdr_argsize_check(rqstp, p);
|
||||
+ return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h
|
||||
index e770abeed32d..6ef19cf658b4 100644
|
||||
--- a/include/linux/sunrpc/svc.h
|
||||
+++ b/include/linux/sunrpc/svc.h
|
||||
@@ -336,8 +336,7 @@ xdr_argsize_check(struct svc_rqst *rqstp, __be32 *p)
|
||||
{
|
||||
char *cp = (char *)p;
|
||||
struct kvec *vec = &rqstp->rq_arg.head[0];
|
||||
- return cp >= (char*)vec->iov_base
|
||||
- && cp <= (char*)vec->iov_base + vec->iov_len;
|
||||
+ return cp == (char *)vec->iov_base + vec->iov_len;
|
||||
}
|
||||
|
||||
static inline int
|
||||
--
|
||||
2.9.3
|
||||
|
||||
--
|
||||
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
|
||||
the body of a message to majordomo@vger.kernel.org
|
||||
More majordomo info at http://vger.kernel.org/majordomo-info.html
|
||||
167
CVE-2019-3459-and-CVE-2019-3460.patch
Normal file
167
CVE-2019-3459-and-CVE-2019-3460.patch
Normal file
|
|
@ -0,0 +1,167 @@
|
|||
From 20614b74e481f0c9f94032ae99f110d4647b65a6 Mon Sep 17 00:00:00 2001
|
||||
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
Date: Thu, 10 Jan 2019 07:28:33 +0100
|
||||
Subject: [PATCH 1/2] Bluetooth: check message types in l2cap_get_conf_opt
|
||||
|
||||
l2cap_get_conf_opt can handle a "default" message type, but it needs to
|
||||
be verified that it really is the correct type (CONF_EFS or CONF_RFC)
|
||||
before passing it back to the caller. To do this we need to check the
|
||||
return value of this call now and handle the error correctly up the
|
||||
stack.
|
||||
|
||||
Based on a patch from Ran Menscher.
|
||||
|
||||
Reported-by: Ran Menscher <ran.menscher@karambasecurity.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
Signed-off-by: Jeremy Cline <jcline@redhat.com>
|
||||
---
|
||||
net/bluetooth/l2cap_core.c | 25 +++++++++++++++++++------
|
||||
1 file changed, 19 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
|
||||
index d17a4736e47c..a0ce6e8e5ef7 100644
|
||||
--- a/net/bluetooth/l2cap_core.c
|
||||
+++ b/net/bluetooth/l2cap_core.c
|
||||
@@ -2979,6 +2979,10 @@ static inline int l2cap_get_conf_opt(void **ptr, int *type, int *olen,
|
||||
break;
|
||||
|
||||
default:
|
||||
+ /* Only CONF_EFS and CONF_RFC are allowed here */
|
||||
+ if ((opt->type != L2CAP_CONF_EFS) &&
|
||||
+ (opt->type != L2CAP_CONF_RFC))
|
||||
+ return -EPROTO;
|
||||
*val = (unsigned long) opt->val;
|
||||
break;
|
||||
}
|
||||
@@ -3323,7 +3327,7 @@ static int l2cap_parse_conf_req(struct l2cap_chan *chan, void *data, size_t data
|
||||
void *endptr = data + data_size;
|
||||
void *req = chan->conf_req;
|
||||
int len = chan->conf_len;
|
||||
- int type, hint, olen;
|
||||
+ int type, hint, olen, err;
|
||||
unsigned long val;
|
||||
struct l2cap_conf_rfc rfc = { .mode = L2CAP_MODE_BASIC };
|
||||
struct l2cap_conf_efs efs;
|
||||
@@ -3335,7 +3339,10 @@ static int l2cap_parse_conf_req(struct l2cap_chan *chan, void *data, size_t data
|
||||
BT_DBG("chan %p", chan);
|
||||
|
||||
while (len >= L2CAP_CONF_OPT_SIZE) {
|
||||
- len -= l2cap_get_conf_opt(&req, &type, &olen, &val);
|
||||
+ err = l2cap_get_conf_opt(&req, &type, &olen, &val);
|
||||
+ if (err < 0)
|
||||
+ return err;
|
||||
+ len -= err;
|
||||
|
||||
hint = type & L2CAP_CONF_HINT;
|
||||
type &= L2CAP_CONF_MASK;
|
||||
@@ -3538,7 +3545,7 @@ static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len,
|
||||
struct l2cap_conf_req *req = data;
|
||||
void *ptr = req->data;
|
||||
void *endptr = data + size;
|
||||
- int type, olen;
|
||||
+ int type, olen, err;
|
||||
unsigned long val;
|
||||
struct l2cap_conf_rfc rfc = { .mode = L2CAP_MODE_BASIC };
|
||||
struct l2cap_conf_efs efs;
|
||||
@@ -3546,7 +3553,10 @@ static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len,
|
||||
BT_DBG("chan %p, rsp %p, len %d, req %p", chan, rsp, len, data);
|
||||
|
||||
while (len >= L2CAP_CONF_OPT_SIZE) {
|
||||
- len -= l2cap_get_conf_opt(&rsp, &type, &olen, &val);
|
||||
+ err = l2cap_get_conf_opt(&rsp, &type, &olen, &val);
|
||||
+ if (err < 0)
|
||||
+ return err;
|
||||
+ len -= err;
|
||||
|
||||
switch (type) {
|
||||
case L2CAP_CONF_MTU:
|
||||
@@ -3706,7 +3716,7 @@ void __l2cap_connect_rsp_defer(struct l2cap_chan *chan)
|
||||
|
||||
static void l2cap_conf_rfc_get(struct l2cap_chan *chan, void *rsp, int len)
|
||||
{
|
||||
- int type, olen;
|
||||
+ int type, olen, err;
|
||||
unsigned long val;
|
||||
/* Use sane default values in case a misbehaving remote device
|
||||
* did not send an RFC or extended window size option.
|
||||
@@ -3726,7 +3736,10 @@ static void l2cap_conf_rfc_get(struct l2cap_chan *chan, void *rsp, int len)
|
||||
return;
|
||||
|
||||
while (len >= L2CAP_CONF_OPT_SIZE) {
|
||||
- len -= l2cap_get_conf_opt(&rsp, &type, &olen, &val);
|
||||
+ err = l2cap_get_conf_opt(&rsp, &type, &olen, &val);
|
||||
+ if (err < 0)
|
||||
+ return;
|
||||
+ len -= err;
|
||||
|
||||
switch (type) {
|
||||
case L2CAP_CONF_RFC:
|
||||
--
|
||||
2.20.1
|
||||
|
||||
From 50cd5314f5ffa264906f4986f414750d648c4ece Mon Sep 17 00:00:00 2001
|
||||
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
Date: Thu, 10 Jan 2019 07:29:17 +0100
|
||||
Subject: [PATCH 2/2] Bluetooth: check the buffer size for some messages before
|
||||
parsing
|
||||
|
||||
The L2CAP_CONF_EFS and L2CAP_CONF_RFC messages can be sent from
|
||||
userspace so their structure sizes need to be checked before parsing
|
||||
them.
|
||||
|
||||
Based on a patch from Ran Menscher.
|
||||
|
||||
Reported-by: Ran Menscher <ran.menscher@karambasecurity.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
Signed-off-by: Jeremy Cline <jcline@redhat.com>
|
||||
---
|
||||
net/bluetooth/l2cap_core.c | 12 ++++++++----
|
||||
1 file changed, 8 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
|
||||
index a0ce6e8e5ef7..d8d3cbdc0d29 100644
|
||||
--- a/net/bluetooth/l2cap_core.c
|
||||
+++ b/net/bluetooth/l2cap_core.c
|
||||
@@ -3360,7 +3360,8 @@ static int l2cap_parse_conf_req(struct l2cap_chan *chan, void *data, size_t data
|
||||
break;
|
||||
|
||||
case L2CAP_CONF_RFC:
|
||||
- if (olen == sizeof(rfc))
|
||||
+ if ((olen == sizeof(rfc)) &&
|
||||
+ (endptr - ptr >= L2CAP_CONF_OPT_SIZE + sizeof(rfc)))
|
||||
memcpy(&rfc, (void *) val, olen);
|
||||
break;
|
||||
|
||||
@@ -3370,7 +3371,8 @@ static int l2cap_parse_conf_req(struct l2cap_chan *chan, void *data, size_t data
|
||||
break;
|
||||
|
||||
case L2CAP_CONF_EFS:
|
||||
- if (olen == sizeof(efs)) {
|
||||
+ if ((olen == sizeof(efs)) &&
|
||||
+ (endptr - ptr >= L2CAP_CONF_OPT_SIZE + sizeof(efs))) {
|
||||
remote_efs = 1;
|
||||
memcpy(&efs, (void *) val, olen);
|
||||
}
|
||||
@@ -3575,7 +3577,8 @@ static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len,
|
||||
break;
|
||||
|
||||
case L2CAP_CONF_RFC:
|
||||
- if (olen == sizeof(rfc))
|
||||
+ if ((olen == sizeof(rfc)) &&
|
||||
+ (endptr - ptr >= L2CAP_CONF_OPT_SIZE + sizeof(rfc)))
|
||||
memcpy(&rfc, (void *)val, olen);
|
||||
|
||||
if (test_bit(CONF_STATE2_DEVICE, &chan->conf_state) &&
|
||||
@@ -3595,7 +3598,8 @@ static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len,
|
||||
break;
|
||||
|
||||
case L2CAP_CONF_EFS:
|
||||
- if (olen == sizeof(efs)) {
|
||||
+ if ((olen == sizeof(efs)) &&
|
||||
+ (endptr - ptr >= L2CAP_CONF_OPT_SIZE + sizeof(efs))) {
|
||||
memcpy(&efs, (void *)val, olen);
|
||||
|
||||
if (chan->local_stype != L2CAP_SERV_NOTRAFIC &&
|
||||
--
|
||||
2.20.1
|
||||
|
||||
|
|
@ -1,95 +0,0 @@
|
|||
From fb2ac204a70da565de9ef9a9d6d69a40c2d59727 Mon Sep 17 00:00:00 2001
|
||||
From: David Howells <dhowells@redhat.com>
|
||||
Date: Fri, 5 May 2017 08:21:56 +0100
|
||||
Subject: [PATCH] KEYS: Allow unrestricted boot-time addition of keys to
|
||||
secondary keyring
|
||||
|
||||
Allow keys to be added to the system secondary certificates keyring during
|
||||
kernel initialisation in an unrestricted fashion. Such keys are implicitly
|
||||
trusted and don't have their trust chains checked on link.
|
||||
|
||||
This allows keys in the UEFI database to be added in secure boot mode for
|
||||
the purposes of module signing.
|
||||
|
||||
Signed-off-by: David Howells <dhowells@redhat.com>
|
||||
---
|
||||
certs/internal.h | 18 ++++++++++++++++++
|
||||
certs/system_keyring.c | 33 +++++++++++++++++++++++++++++++++
|
||||
2 files changed, 51 insertions(+)
|
||||
create mode 100644 certs/internal.h
|
||||
|
||||
diff --git a/certs/internal.h b/certs/internal.h
|
||||
new file mode 100644
|
||||
index 0000000..5dcbefb
|
||||
--- /dev/null
|
||||
+++ b/certs/internal.h
|
||||
@@ -0,0 +1,18 @@
|
||||
+/* Internal definitions
|
||||
+ *
|
||||
+ * Copyright (C) 2016 Red Hat, Inc. All Rights Reserved.
|
||||
+ * Written by David Howells (dhowells@redhat.com)
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU General Public Licence
|
||||
+ * as published by the Free Software Foundation; either version
|
||||
+ * 2 of the Licence, or (at your option) any later version.
|
||||
+ */
|
||||
+
|
||||
+/*
|
||||
+ * system_keyring.c
|
||||
+ */
|
||||
+#ifdef CONFIG_SECONDARY_TRUSTED_KEYRING
|
||||
+extern void __init add_trusted_secondary_key(const char *source,
|
||||
+ const void *data, size_t len);
|
||||
+#endif
|
||||
diff --git a/certs/system_keyring.c b/certs/system_keyring.c
|
||||
index 6251d1b..5ac8ba6 100644
|
||||
--- a/certs/system_keyring.c
|
||||
+++ b/certs/system_keyring.c
|
||||
@@ -18,6 +18,7 @@
|
||||
#include <keys/asymmetric-type.h>
|
||||
#include <keys/system_keyring.h>
|
||||
#include <crypto/pkcs7.h>
|
||||
+#include "internal.h"
|
||||
|
||||
static struct key *builtin_trusted_keys;
|
||||
#ifdef CONFIG_SECONDARY_TRUSTED_KEYRING
|
||||
@@ -265,3 +266,35 @@ int verify_pkcs7_signature(const void *data, size_t len,
|
||||
EXPORT_SYMBOL_GPL(verify_pkcs7_signature);
|
||||
|
||||
#endif /* CONFIG_SYSTEM_DATA_VERIFICATION */
|
||||
+
|
||||
+#ifdef CONFIG_SECONDARY_TRUSTED_KEYRING
|
||||
+/**
|
||||
+ * add_trusted_secondary_key - Add to secondary keyring with no validation
|
||||
+ * @source: Source of key
|
||||
+ * @data: The blob holding the key
|
||||
+ * @len: The length of the data blob
|
||||
+ *
|
||||
+ * Add a key to the secondary keyring without checking its trust chain. This
|
||||
+ * is available only during kernel initialisation.
|
||||
+ */
|
||||
+void __init add_trusted_secondary_key(const char *source,
|
||||
+ const void *data, size_t len)
|
||||
+{
|
||||
+ key_ref_t key;
|
||||
+
|
||||
+ key = key_create_or_update(make_key_ref(secondary_trusted_keys, 1),
|
||||
+ "asymmetric",
|
||||
+ NULL, data, len,
|
||||
+ (KEY_POS_ALL & ~KEY_POS_SETATTR) |
|
||||
+ KEY_USR_VIEW,
|
||||
+ KEY_ALLOC_NOT_IN_QUOTA |
|
||||
+ KEY_ALLOC_BYPASS_RESTRICTION);
|
||||
+
|
||||
+ if (IS_ERR(key))
|
||||
+ pr_err("Problem loading %s X.509 certificate (%ld)\n",
|
||||
+ source, PTR_ERR(key));
|
||||
+ else
|
||||
+ pr_notice("Loaded %s cert '%s' linked to secondary sys keyring\n",
|
||||
+ source, key_ref_to_ptr(key)->description);
|
||||
+}
|
||||
+#endif /* CONFIG_SECONDARY_TRUSTED_KEYRING */
|
||||
--
|
||||
2.9.3
|
||||
|
||||
54
KEYS-Make-use-of-platform-keyring-for-module-signature.patch
Normal file
54
KEYS-Make-use-of-platform-keyring-for-module-signature.patch
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
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>
|
||||
---
|
||||
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 6b9a926fd86b..cf94220e9154 100644
|
||||
--- a/kernel/module_signing.c
|
||||
+++ b/kernel/module_signing.c
|
||||
@@ -49,6 +49,7 @@ int mod_verify_sig(const void *mod, struct load_info *info)
|
||||
{
|
||||
struct module_signature ms;
|
||||
size_t sig_len, modlen = info->len;
|
||||
+ int ret;
|
||||
|
||||
pr_devel("==>%s(,%zu)\n", __func__, modlen);
|
||||
|
||||
@@ -82,8 +83,15 @@ int mod_verify_sig(const void *mod, struct load_info *info)
|
||||
return -EBADMSG;
|
||||
}
|
||||
|
||||
- return verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len,
|
||||
- VERIFY_USE_SECONDARY_KEYRING,
|
||||
- VERIFYING_MODULE_SIGNATURE,
|
||||
- NULL, NULL);
|
||||
+ 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
|
||||
|
||||
|
|
@ -1,130 +0,0 @@
|
|||
From 7289bfaee2a42bdb56eecab0625907c045d080ba Mon Sep 17 00:00:00 2001
|
||||
From: Eric Biggers <ebiggers@google.com>
|
||||
Date: Wed, 27 Sep 2017 12:50:41 -0700
|
||||
Subject: [PATCH] KEYS: don't let add_key() update an uninstantiated key
|
||||
|
||||
Currently, add_key() will, when passed a key that already exists, call
|
||||
the key's ->update() method. But this is heavily broken in the case
|
||||
where the key is uninstantiated because it doesn't call
|
||||
__key_instantiate_and_link(). Consequently, it doesn't do most of the
|
||||
things that are supposed to happen when the key is instantiated, such as
|
||||
setting KEY_FLAG_INSTANTIATED, clearing KEY_FLAG_USER_CONSTRUCT and
|
||||
awakening tasks waiting on it, and incrementing key->user->nikeys.
|
||||
|
||||
It also never takes key_construction_mutex, which means that
|
||||
->instantiate() can run concurrently with ->update() on the same key.
|
||||
In the case of the "user" and "logon" key types this causes a memory
|
||||
leak, at best. Maybe even worse, the ->update() methods of the
|
||||
"encrypted" and "trusted" key types actually just dereference a NULL
|
||||
pointer when passed an uninstantiated key.
|
||||
|
||||
Therefore, change find_key_to_update() to return NULL if the found key
|
||||
is uninstantiated, so that add_key() replaces the key rather than
|
||||
instantiating it. This seems to be better than fixing __key_update() to
|
||||
call __key_instantiate_and_link(), since given all the bugs noted above
|
||||
as well as that the existing behavior was undocumented and
|
||||
keyctl_instantiate() is supposed to be used instead, I doubt anyone was
|
||||
relying on the existing behavior.
|
||||
|
||||
This patch only affects *uninstantiated* keys. For now we still allow a
|
||||
negatively instantiated key to be updated (thereby positively
|
||||
instantiating it), although that's broken too (the next patch fixes it)
|
||||
and I'm not sure that anyone actually uses that functionality either.
|
||||
|
||||
Here is a simple reproducer for the bug using the "encrypted" key type
|
||||
(requires CONFIG_ENCRYPTED_KEYS=y), though as noted above the bug
|
||||
pertained to more than just the "encrypted" key type:
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <keyutils.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int ringid = keyctl_join_session_keyring(NULL);
|
||||
|
||||
if (fork()) {
|
||||
for (;;) {
|
||||
const char payload[] = "update user:foo 32";
|
||||
|
||||
usleep(rand() % 10000);
|
||||
add_key("encrypted", "desc", payload, sizeof(payload), ringid);
|
||||
keyctl_clear(ringid);
|
||||
}
|
||||
} else {
|
||||
for (;;)
|
||||
request_key("encrypted", "desc", "callout_info", ringid);
|
||||
}
|
||||
}
|
||||
|
||||
It causes:
|
||||
|
||||
BUG: unable to handle kernel NULL pointer dereference at 0000000000000018
|
||||
IP: encrypted_update+0xb0/0x170
|
||||
PGD 7a178067 P4D 7a178067 PUD 77269067 PMD 0
|
||||
PREEMPT SMP
|
||||
CPU: 0 PID: 340 Comm: reproduce Tainted: G D 4.14.0-rc1-00025-g428490e38b2e #796
|
||||
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
|
||||
task: ffff8a467a39a340 task.stack: ffffb15c40770000
|
||||
RIP: 0010:encrypted_update+0xb0/0x170
|
||||
RSP: 0018:ffffb15c40773de8 EFLAGS: 00010246
|
||||
RAX: 0000000000000000 RBX: ffff8a467a275b00 RCX: 0000000000000000
|
||||
RDX: 0000000000000005 RSI: ffff8a467a275b14 RDI: ffffffffb742f303
|
||||
RBP: ffffb15c40773e20 R08: 0000000000000000 R09: ffff8a467a275b17
|
||||
R10: 0000000000000020 R11: 0000000000000000 R12: 0000000000000000
|
||||
R13: 0000000000000000 R14: ffff8a4677057180 R15: ffff8a467a275b0f
|
||||
FS: 00007f5d7fb08700(0000) GS:ffff8a467f200000(0000) knlGS:0000000000000000
|
||||
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
|
||||
CR2: 0000000000000018 CR3: 0000000077262005 CR4: 00000000001606f0
|
||||
Call Trace:
|
||||
key_create_or_update+0x2bc/0x460
|
||||
SyS_add_key+0x10c/0x1d0
|
||||
entry_SYSCALL_64_fastpath+0x1f/0xbe
|
||||
RIP: 0033:0x7f5d7f211259
|
||||
RSP: 002b:00007ffed03904c8 EFLAGS: 00000246 ORIG_RAX: 00000000000000f8
|
||||
RAX: ffffffffffffffda RBX: 000000003b2a7955 RCX: 00007f5d7f211259
|
||||
RDX: 00000000004009e4 RSI: 00000000004009ff RDI: 0000000000400a04
|
||||
RBP: 0000000068db8bad R08: 000000003b2a7955 R09: 0000000000000004
|
||||
R10: 000000000000001a R11: 0000000000000246 R12: 0000000000400868
|
||||
R13: 00007ffed03905d0 R14: 0000000000000000 R15: 0000000000000000
|
||||
Code: 77 28 e8 64 34 1f 00 45 31 c0 31 c9 48 8d 55 c8 48 89 df 48 8d 75 d0 e8 ff f9 ff ff 85 c0 41 89 c4 0f 88 84 00 00 00 4c 8b 7d c8 <49> 8b 75 18 4c 89 ff e8 24 f8 ff ff 85 c0 41 89 c4 78 6d 49 8b
|
||||
RIP: encrypted_update+0xb0/0x170 RSP: ffffb15c40773de8
|
||||
CR2: 0000000000000018
|
||||
|
||||
Cc: <stable@vger.kernel.org> [v2.6.12+]
|
||||
Signed-off-by: Eric Biggers <ebiggers@google.com>
|
||||
---
|
||||
security/keys/keyring.c | 10 ++++++----
|
||||
1 file changed, 6 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/security/keys/keyring.c b/security/keys/keyring.c
|
||||
index 4fa82a8a9c0e..129a4175760b 100644
|
||||
--- a/security/keys/keyring.c
|
||||
+++ b/security/keys/keyring.c
|
||||
@@ -1056,8 +1056,8 @@ EXPORT_SYMBOL(keyring_restrict);
|
||||
* caller must also hold a lock on the keyring semaphore.
|
||||
*
|
||||
* Returns a pointer to the found key with usage count incremented if
|
||||
- * successful and returns NULL if not found. Revoked and invalidated keys are
|
||||
- * skipped over.
|
||||
+ * successful and returns NULL if not found. Revoked, invalidated, and
|
||||
+ * uninstantiated keys are skipped over. (But negative keys are not!)
|
||||
*
|
||||
* If successful, the possession indicator is propagated from the keyring ref
|
||||
* to the returned key reference.
|
||||
@@ -1084,8 +1084,10 @@ key_ref_t find_key_to_update(key_ref_t keyring_ref,
|
||||
|
||||
found:
|
||||
key = keyring_ptr_to_key(object);
|
||||
- if (key->flags & ((1 << KEY_FLAG_INVALIDATED) |
|
||||
- (1 << KEY_FLAG_REVOKED))) {
|
||||
+ if ((key->flags & ((1 << KEY_FLAG_INVALIDATED) |
|
||||
+ (1 << KEY_FLAG_REVOKED) |
|
||||
+ (1 << KEY_FLAG_INSTANTIATED))) !=
|
||||
+ (1 << KEY_FLAG_INSTANTIATED)) {
|
||||
kleave(" = NULL [x]");
|
||||
return NULL;
|
||||
}
|
||||
--
|
||||
2.13.6
|
||||
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
From a446d2f94ce540689c7a46bf457d92409e9c4d7e Mon Sep 17 00:00:00 2001
|
||||
From: Josh Stone <jistone@redhat.com>
|
||||
Date: Fri, 21 Nov 2014 10:40:00 -0800
|
||||
Subject: [PATCH] Kbuild: Add an option to enable GCC VTA
|
||||
|
|
@ -37,32 +38,33 @@ Cc: Andrew Morton <akpm@linux-foundation.org>
|
|||
Cc: Markus Trippelsdorf <markus@trippelsdorf.de>
|
||||
Cc: Michel Dänzer <michel@daenzer.net>
|
||||
Signed-off-by: Josh Stone <jistone@redhat.com>
|
||||
Signed-off-by: Jeremy Cline <jcline@redhat.com>
|
||||
---
|
||||
Makefile | 4 ++++
|
||||
lib/Kconfig.debug | 18 +++++++++++++++++-
|
||||
2 files changed, 21 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 257ef5892ab7..3cc6f4477e78 100644
|
||||
index 9ef547fc7ffe..5777d902f8f3 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -701,7 +701,11 @@ KBUILD_CFLAGS += -fomit-frame-pointer
|
||||
endif
|
||||
@@ -735,7 +735,11 @@ KBUILD_CFLAGS += -fomit-frame-pointer
|
||||
KBUILD_CFLAGS += -ftrivial-auto-var-init=pattern
|
||||
endif
|
||||
|
||||
+ifdef CONFIG_DEBUG_INFO_VTA
|
||||
+KBUILD_CFLAGS += $(call cc-option, -fvar-tracking-assignments)
|
||||
+DEBUG_CFLAGS += $(call cc-option, -fvar-tracking-assignments)
|
||||
+else
|
||||
KBUILD_CFLAGS += $(call cc-option, -fno-var-tracking-assignments)
|
||||
DEBUG_CFLAGS := $(call cc-option, -fno-var-tracking-assignments)
|
||||
+endif
|
||||
|
||||
ifdef CONFIG_DEBUG_INFO
|
||||
ifdef CONFIG_DEBUG_INFO_SPLIT
|
||||
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
|
||||
index e2894b23efb6..d98afe18f704 100644
|
||||
index 0d9e81779e37..424206212931 100644
|
||||
--- a/lib/Kconfig.debug
|
||||
+++ b/lib/Kconfig.debug
|
||||
@@ -165,7 +165,23 @@ config DEBUG_INFO_DWARF4
|
||||
@@ -217,7 +217,23 @@ config DEBUG_INFO_DWARF4
|
||||
Generate dwarf4 debug info. This requires recent versions
|
||||
of gcc and gdb. It makes the debug information larger.
|
||||
But it significantly improves the success of resolving
|
||||
|
|
@ -85,5 +87,8 @@ index e2894b23efb6..d98afe18f704 100644
|
|||
+ environment to automatically compile everything both ways,
|
||||
+ generating an error if anything differs.
|
||||
|
||||
config GDB_SCRIPTS
|
||||
bool "Provide GDB scripts for kernel debugging"
|
||||
config DEBUG_INFO_BTF
|
||||
bool "Generate BTF typeinfo"
|
||||
--
|
||||
2.20.1
|
||||
|
||||
|
|
|
|||
153
PATCH-v2-selinux-allow-labeling-before-policy-is-loaded.patch
Normal file
153
PATCH-v2-selinux-allow-labeling-before-policy-is-loaded.patch
Normal file
|
|
@ -0,0 +1,153 @@
|
|||
From mboxrd@z Thu Jan 1 00:00:00 1970
|
||||
Return-Path: <SRS0=e2dy=XH=vger.kernel.org=selinux-owner@kernel.org>
|
||||
X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
|
||||
aws-us-west-2-korg-lkml-1.web.codeaurora.org
|
||||
X-Spam-Level:
|
||||
X-Spam-Status: No, score=-15.0 required=3.0
|
||||
tests=HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,
|
||||
MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT
|
||||
autolearn=ham autolearn_force=no version=3.4.0
|
||||
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
|
||||
by smtp.lore.kernel.org (Postfix) with ESMTP id 0CE63C4CEC5
|
||||
for <selinux@archiver.kernel.org>; Thu, 12 Sep 2019 13:30:40 +0000 (UTC)
|
||||
Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
|
||||
by mail.kernel.org (Postfix) with ESMTP id DC0B020CC7
|
||||
for <selinux@archiver.kernel.org>; Thu, 12 Sep 2019 13:30:39 +0000 (UTC)
|
||||
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
|
||||
id S1732192AbfILNaj (ORCPT <rfc822;selinux@archiver.kernel.org>);
|
||||
Thu, 12 Sep 2019 09:30:39 -0400
|
||||
Received: from mx1.redhat.com ([209.132.183.28]:52278 "EHLO mx1.redhat.com"
|
||||
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
|
||||
id S1731687AbfILNaj (ORCPT <rfc822;selinux@vger.kernel.org>);
|
||||
Thu, 12 Sep 2019 09:30:39 -0400
|
||||
Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197])
|
||||
(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
|
||||
(No client certificate requested)
|
||||
by mx1.redhat.com (Postfix) with ESMTPS id 97CC359465
|
||||
for <selinux@vger.kernel.org>; Thu, 12 Sep 2019 13:30:38 +0000 (UTC)
|
||||
Received: by mail-qt1-f197.google.com with SMTP id c8so13609684qtd.20
|
||||
for <selinux@vger.kernel.org>; Thu, 12 Sep 2019 06:30:38 -0700 (PDT)
|
||||
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=S/MIBrjCy5DTvfqPzJTJqDQQH1pDu780wgGyHs56w4k=;
|
||||
b=H7fZr4X/c4ge0SXeHHRXrq3U4J60PWfSRqdCphTWxKjyLvBs8nktbJczT562oH7Hxv
|
||||
hdvVjKgAzNxIXFdQetnmveDXojtHFrE21PNdo5ONQIyh35oZyrJB4ewZdUrNfbrvDc2y
|
||||
ElMr/HoKEX5pY+GMJE4nzeBotlfCWU9BoAxJPUhzKA9Oib+AqDzQ0hCGH6pQY9RXRXBV
|
||||
IMH21FE5dxQGtLHNCJXVxE14edDeRo8qQFWQw6ooogK7JvduuJrWBn3BmCbKz1YLTNZE
|
||||
9wRXvaHFVGNhr79JrRcItTp6Sx+tZ3XY46CV+Wi6Rq1fu8MePP9zFdIQXw9wqyd+UgLa
|
||||
AIlw==
|
||||
X-Gm-Message-State: APjAAAXpWx500L+bZRH8M7OzuSb0aBlsvvjaBYCGvSkzojpa2nRWjtk0
|
||||
cjKEj45ivsUgPW2Bbi6CGEtspqM4wmwb72z+ajR4hy5OjMT3KRh6W71HFbVPrlLYQTvse11Ax2d
|
||||
wGOma7U/qIGDDYkjh/Q==
|
||||
X-Received: by 2002:ac8:7b2e:: with SMTP id l14mr8094193qtu.11.1568295037636;
|
||||
Thu, 12 Sep 2019 06:30:37 -0700 (PDT)
|
||||
X-Google-Smtp-Source: APXvYqzybFpoaFyGZXafGEdtHCL3XllpHltaXggcIZEb7De49V/kJzm1pU6vpg1gN8HtgnB3cilLuA==
|
||||
X-Received: by 2002:ac8:7b2e:: with SMTP id l14mr8094176qtu.11.1568295037442;
|
||||
Thu, 12 Sep 2019 06:30:37 -0700 (PDT)
|
||||
Received: from localhost.localdomain ([12.133.141.2])
|
||||
by smtp.gmail.com with ESMTPSA id h68sm11848865qkd.35.2019.09.12.06.30.35
|
||||
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
|
||||
Thu, 12 Sep 2019 06:30:36 -0700 (PDT)
|
||||
From: Jonathan Lebon <jlebon@redhat.com>
|
||||
To: selinux@vger.kernel.org
|
||||
Cc: Jonathan Lebon <jlebon@redhat.com>,
|
||||
Victor Kamensky <kamensky@cisco.com>
|
||||
Subject: [PATCH v2] selinux: allow labeling before policy is loaded
|
||||
Date: Thu, 12 Sep 2019 09:30:07 -0400
|
||||
Message-Id: <20190912133007.27545-1-jlebon@redhat.com>
|
||||
X-Mailer: git-send-email 2.21.0
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 8bit
|
||||
Sender: selinux-owner@vger.kernel.org
|
||||
Precedence: bulk
|
||||
List-ID: <selinux.vger.kernel.org>
|
||||
X-Mailing-List: selinux@vger.kernel.org
|
||||
Archived-At: <https://lore.kernel.org/selinux/20190912133007.27545-1-jlebon@redhat.com/>
|
||||
List-Archive: <https://lore.kernel.org/selinux/>
|
||||
List-Post: <mailto:selinux@vger.kernel.org>
|
||||
|
||||
Currently, the SELinux LSM prevents one from setting the
|
||||
`security.selinux` xattr on an inode without a policy first being
|
||||
loaded. However, this restriction is problematic: it makes it impossible
|
||||
to have newly created files with the correct label before actually
|
||||
loading the policy.
|
||||
|
||||
This is relevant in distributions like Fedora, where the policy is
|
||||
loaded by systemd shortly after pivoting out of the initrd. In such
|
||||
instances, all files created prior to pivoting will be unlabeled. One
|
||||
then has to relabel them after pivoting, an operation which inherently
|
||||
races with other processes trying to access those same files.
|
||||
|
||||
Going further, there are use cases for creating the entire root
|
||||
filesystem on first boot from the initrd (e.g. Container Linux supports
|
||||
this today[1], and we'd like to support it in Fedora CoreOS as well[2]).
|
||||
One can imagine doing this in two ways: at the block device level (e.g.
|
||||
laying down a disk image), or at the filesystem level. In the former,
|
||||
labeling can simply be part of the image. But even in the latter
|
||||
scenario, one still really wants to be able to set the right labels when
|
||||
populating the new filesystem.
|
||||
|
||||
This patch enables this by changing behaviour in the following two ways:
|
||||
1. allow `setxattr` if we're not initialized
|
||||
2. don't try to set the in-core inode SID if we're not initialized;
|
||||
instead leave it as `LABEL_INVALID` so that revalidation may be
|
||||
attempted at a later time
|
||||
|
||||
Note the first hunk of this patch is mostly the same as a previously
|
||||
discussed one[3], though it was part of a larger series which wasn't
|
||||
accepted.
|
||||
|
||||
Co-developed-by: Victor Kamensky <kamensky@cisco.com>
|
||||
Signed-off-by: Victor Kamensky <kamensky@cisco.com>
|
||||
Signed-off-by: Jonathan Lebon <jlebon@redhat.com>
|
||||
|
||||
[1] https://coreos.com/os/docs/latest/root-filesystem-placement.html
|
||||
[2] https://github.com/coreos/fedora-coreos-tracker/issues/94
|
||||
[3] https://www.spinics.net/lists/linux-initramfs/msg04593.html
|
||||
|
||||
---
|
||||
|
||||
v2:
|
||||
- return early in selinux_inode_setxattr if policy hasn't been loaded
|
||||
|
||||
---
|
||||
|
||||
security/selinux/hooks.c | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
|
||||
index 94de51628..dbe96c707 100644
|
||||
--- a/security/selinux/hooks.c
|
||||
+++ b/security/selinux/hooks.c
|
||||
@@ -3142,6 +3142,9 @@ static int selinux_inode_setxattr(struct dentry *dentry, const char *name,
|
||||
return dentry_has_perm(current_cred(), dentry, FILE__SETATTR);
|
||||
}
|
||||
|
||||
+ if (!selinux_state.initialized)
|
||||
+ return (inode_owner_or_capable(inode) ? 0 : -EPERM);
|
||||
+
|
||||
sbsec = inode->i_sb->s_security;
|
||||
if (!(sbsec->flags & SBLABEL_MNT))
|
||||
return -EOPNOTSUPP;
|
||||
@@ -3225,6 +3228,15 @@ static void selinux_inode_post_setxattr(struct dentry *dentry, const char *name,
|
||||
return;
|
||||
}
|
||||
|
||||
+ if (!selinux_state.initialized) {
|
||||
+ /* If we haven't even been initialized, then we can't validate
|
||||
+ * against a policy, so leave the label as invalid. It may
|
||||
+ * resolve to a valid label on the next revalidation try if
|
||||
+ * we've since initialized.
|
||||
+ */
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
rc = security_context_to_sid_force(&selinux_state, value, size,
|
||||
&newsid);
|
||||
if (rc) {
|
||||
--
|
||||
2.21.0
|
||||
|
||||
|
||||
|
|
@ -1,352 +0,0 @@
|
|||
From ced8025b569e21c31b52cc80410ed49d0bf13368 Mon Sep 17 00:00:00 2001
|
||||
From: Dennis Gilmore <dennis@ausil.us>
|
||||
Date: Tue, 5 Jun 2018 17:15:45 -0500
|
||||
Subject: ARM: dts: armada388-helios4
|
||||
|
||||
The helios4 is a Armada388 based nas board designed by SolidRun and
|
||||
based on their SOM. It is sold by kobol.io the dts file came from
|
||||
https://raw.githubusercontent.com/armbian/build/master/patch/kernel/mvebu-default/95-helios4-device-tree.patch
|
||||
I added a SPDX license line to match the clearfog it says it was based
|
||||
on and a compatible line for "kobol,helios4"
|
||||
|
||||
Signed-off-by: Dennis Gilmore <dennis@ausil.us>
|
||||
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
|
||||
---
|
||||
arch/arm/boot/dts/Makefile | 1 +
|
||||
arch/arm/boot/dts/armada-388-helios4.dts | 313 +++++++++++++++++++++++++++++++
|
||||
2 files changed, 314 insertions(+)
|
||||
create mode 100644 arch/arm/boot/dts/armada-388-helios4.dts
|
||||
|
||||
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
|
||||
index 37a3de760d40..55133fac83ab 100644
|
||||
--- a/arch/arm/boot/dts/Makefile
|
||||
+++ b/arch/arm/boot/dts/Makefile
|
||||
@@ -1138,6 +1138,7 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \
|
||||
armada-388-clearfog-pro.dtb \
|
||||
armada-388-db.dtb \
|
||||
armada-388-gp.dtb \
|
||||
+ armada-388-helios4.dtb \
|
||||
armada-388-rd.dtb
|
||||
dtb-$(CONFIG_MACH_ARMADA_39X) += \
|
||||
armada-398-db.dtb
|
||||
diff --git a/arch/arm/boot/dts/armada-388-helios4.dts b/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
new file mode 100644
|
||||
index 000000000000..705adfa8c680
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
@@ -0,0 +1,313 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
+/*
|
||||
+ * Device Tree file for Helios4
|
||||
+ * based on SolidRun Clearfog revision A1 rev 2.0 (88F6828)
|
||||
+ *
|
||||
+ * Copyright (C) 2017 Aditya Prayoga <aditya@kobol.io>
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+#include "armada-388.dtsi"
|
||||
+#include "armada-38x-solidrun-microsom.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ model = "Helios4";
|
||||
+ compatible = "kobol,helios4", "marvell,armada388",
|
||||
+ "marvell,armada385", "marvell,armada380";
|
||||
+
|
||||
+ memory {
|
||||
+ device_type = "memory";
|
||||
+ reg = <0x00000000 0x80000000>; /* 2 GB */
|
||||
+ };
|
||||
+
|
||||
+ aliases {
|
||||
+ /* So that mvebu u-boot can update the MAC addresses */
|
||||
+ ethernet1 = ð0;
|
||||
+ };
|
||||
+
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
+ reg_12v: regulator-12v {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "power_brick_12V";
|
||||
+ regulator-min-microvolt = <12000000>;
|
||||
+ regulator-max-microvolt = <12000000>;
|
||||
+ regulator-always-on;
|
||||
+ };
|
||||
+
|
||||
+ reg_3p3v: regulator-3p3v {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "3P3V";
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-always-on;
|
||||
+ vin-supply = <®_12v>;
|
||||
+ };
|
||||
+
|
||||
+ reg_5p0v_hdd: regulator-5v-hdd {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "5V_HDD";
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ vin-supply = <®_12v>;
|
||||
+ };
|
||||
+
|
||||
+ reg_5p0v_usb: regulator-5v-usb {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "USB-PWR";
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-always-on;
|
||||
+ enable-active-high;
|
||||
+ gpio = <&expander0 6 GPIO_ACTIVE_HIGH>;
|
||||
+ vin-supply = <®_12v>;
|
||||
+ };
|
||||
+
|
||||
+ system-leds {
|
||||
+ compatible = "gpio-leds";
|
||||
+ status-led {
|
||||
+ label = "helios4:green:status";
|
||||
+ gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
|
||||
+ linux,default-trigger = "heartbeat";
|
||||
+ default-state = "on";
|
||||
+ };
|
||||
+
|
||||
+ fault-led {
|
||||
+ label = "helios4:red:fault";
|
||||
+ gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
|
||||
+ default-state = "keep";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ io-leds {
|
||||
+ compatible = "gpio-leds";
|
||||
+ sata1-led {
|
||||
+ label = "helios4:green:ata1";
|
||||
+ gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
|
||||
+ linux,default-trigger = "ata1";
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+ sata2-led {
|
||||
+ label = "helios4:green:ata2";
|
||||
+ gpios = <&gpio1 18 GPIO_ACTIVE_LOW>;
|
||||
+ linux,default-trigger = "ata2";
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+ sata3-led {
|
||||
+ label = "helios4:green:ata3";
|
||||
+ gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
|
||||
+ linux,default-trigger = "ata3";
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+ sata4-led {
|
||||
+ label = "helios4:green:ata4";
|
||||
+ gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
|
||||
+ linux,default-trigger = "ata4";
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+ usb-led {
|
||||
+ label = "helios4:green:usb";
|
||||
+ gpios = <&gpio1 22 GPIO_ACTIVE_LOW>;
|
||||
+ linux,default-trigger = "usb-host";
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ fan1: j10-pwm {
|
||||
+ compatible = "pwm-fan";
|
||||
+ pwms = <&gpio1 9 40000>; /* Target freq:25 kHz */
|
||||
+ };
|
||||
+
|
||||
+ fan2: j17-pwm {
|
||||
+ compatible = "pwm-fan";
|
||||
+ pwms = <&gpio1 23 40000>; /* Target freq:25 kHz */
|
||||
+ };
|
||||
+
|
||||
+ usb2_phy: usb2-phy {
|
||||
+ compatible = "usb-nop-xceiv";
|
||||
+ vbus-regulator = <®_5p0v_usb>;
|
||||
+ };
|
||||
+
|
||||
+ usb3_phy: usb3-phy {
|
||||
+ compatible = "usb-nop-xceiv";
|
||||
+ };
|
||||
+
|
||||
+ soc {
|
||||
+ internal-regs {
|
||||
+ i2c@11000 {
|
||||
+ clock-frequency = <400000>;
|
||||
+ pinctrl-0 = <&i2c0_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ status = "okay";
|
||||
+
|
||||
+ /*
|
||||
+ * PCA9655 GPIO expander, up to 1MHz clock.
|
||||
+ * 0-Board Revision bit 0 #
|
||||
+ * 1-Board Revision bit 1 #
|
||||
+ * 5-USB3 overcurrent
|
||||
+ * 6-USB3 power
|
||||
+ */
|
||||
+ expander0: gpio-expander@20 {
|
||||
+ /*
|
||||
+ * This is how it should be:
|
||||
+ * compatible = "onnn,pca9655",
|
||||
+ * "nxp,pca9555";
|
||||
+ * but you can't do this because of
|
||||
+ * the way I2C works.
|
||||
+ */
|
||||
+ compatible = "nxp,pca9555";
|
||||
+ gpio-controller;
|
||||
+ #gpio-cells = <2>;
|
||||
+ reg = <0x20>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&pca0_pins>;
|
||||
+ interrupt-parent = <&gpio0>;
|
||||
+ interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
|
||||
+ interrupt-controller;
|
||||
+ #interrupt-cells = <2>;
|
||||
+
|
||||
+ board_rev_bit_0 {
|
||||
+ gpio-hog;
|
||||
+ gpios = <0 GPIO_ACTIVE_LOW>;
|
||||
+ input;
|
||||
+ line-name = "board-rev-0";
|
||||
+ };
|
||||
+ board_rev_bit_1 {
|
||||
+ gpio-hog;
|
||||
+ gpios = <1 GPIO_ACTIVE_LOW>;
|
||||
+ input;
|
||||
+ line-name = "board-rev-1";
|
||||
+ };
|
||||
+ usb3_ilimit {
|
||||
+ gpio-hog;
|
||||
+ gpios = <5 GPIO_ACTIVE_HIGH>;
|
||||
+ input;
|
||||
+ line-name = "usb-overcurrent-status";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ temp_sensor: temp@4c {
|
||||
+ compatible = "ti,lm75";
|
||||
+ reg = <0x4c>;
|
||||
+ vcc-supply = <®_3p3v>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ i2c@11100 {
|
||||
+ /*
|
||||
+ * External I2C Bus for user peripheral
|
||||
+ */
|
||||
+ clock-frequency = <400000>;
|
||||
+ pinctrl-0 = <&helios_i2c1_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+
|
||||
+ sata@a8000 {
|
||||
+ status = "okay";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ sata0: sata-port@0 {
|
||||
+ reg = <0>;
|
||||
+ };
|
||||
+
|
||||
+ sata1: sata-port@1 {
|
||||
+ reg = <1>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ sata@e0000 {
|
||||
+ status = "okay";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ sata2: sata-port@0 {
|
||||
+ reg = <0>;
|
||||
+ };
|
||||
+
|
||||
+ sata3: sata-port@1 {
|
||||
+ reg = <1>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ spi@10680 {
|
||||
+ pinctrl-0 = <&spi1_pins
|
||||
+ µsom_spi1_cs_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+
|
||||
+ sdhci@d8000 {
|
||||
+ bus-width = <4>;
|
||||
+ cd-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
|
||||
+ no-1-8-v;
|
||||
+ pinctrl-0 = <&helios_sdhci_pins
|
||||
+ &helios_sdhci_cd_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ status = "okay";
|
||||
+ vmmc = <®_3p3v>;
|
||||
+ wp-inverted;
|
||||
+ };
|
||||
+
|
||||
+ usb@58000 {
|
||||
+ usb-phy = <&usb2_phy>;
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+
|
||||
+ usb3@f0000 {
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+
|
||||
+ usb3@f8000 {
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+
|
||||
+ pinctrl@18000 {
|
||||
+ pca0_pins: pca0-pins {
|
||||
+ marvell,pins = "mpp23";
|
||||
+ marvell,function = "gpio";
|
||||
+ };
|
||||
+ microsom_phy0_int_pins: microsom-phy0-int-pins {
|
||||
+ marvell,pins = "mpp18";
|
||||
+ marvell,function = "gpio";
|
||||
+ };
|
||||
+ helios_i2c1_pins: i2c1-pins {
|
||||
+ marvell,pins = "mpp26", "mpp27";
|
||||
+ marvell,function = "i2c1";
|
||||
+ };
|
||||
+ helios_sdhci_cd_pins: helios-sdhci-cd-pins {
|
||||
+ marvell,pins = "mpp20";
|
||||
+ marvell,function = "gpio";
|
||||
+ };
|
||||
+ helios_sdhci_pins: helios-sdhci-pins {
|
||||
+ marvell,pins = "mpp21", "mpp28",
|
||||
+ "mpp37", "mpp38",
|
||||
+ "mpp39", "mpp40";
|
||||
+ marvell,function = "sd0";
|
||||
+ };
|
||||
+ helios_led_pins: helios-led-pins {
|
||||
+ marvell,pins = "mpp24", "mpp25",
|
||||
+ "mpp49", "mpp50",
|
||||
+ "mpp52", "mpp53",
|
||||
+ "mpp54";
|
||||
+ marvell,function = "gpio";
|
||||
+ };
|
||||
+ helios_fan_pins: helios-fan-pins {
|
||||
+ marvell,pins = "mpp41", "mpp43",
|
||||
+ "mpp48", "mpp55";
|
||||
+ marvell,function = "gpio";
|
||||
+ };
|
||||
+ microsom_spi1_cs_pins: spi1-cs-pins {
|
||||
+ marvell,pins = "mpp59";
|
||||
+ marvell,function = "spi1";
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
--
|
||||
cgit 1.2-0.3.lf.el7
|
||||
31
arm-make-highpte-not-expert.patch
Normal file
31
arm-make-highpte-not-expert.patch
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
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
|
||||
|
||||
75
arm-omap4-fix-lack-of-time-interupts-after-hotplug.patch
Normal file
75
arm-omap4-fix-lack-of-time-interupts-after-hotplug.patch
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
From 50d6b3cf9403879911e06d69c7ef41e43f8f7b4b Mon Sep 17 00:00:00 2001
|
||||
From: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
Date: Wed, 12 Dec 2018 11:49:47 +0000
|
||||
Subject: ARM: OMAP2+: fix lack of timer interrupts on CPU1 after hotplug
|
||||
|
||||
If we have a kernel configured for periodic timer interrupts, and we
|
||||
have cpuidle enabled, then we end up with CPU1 losing timer interupts
|
||||
after a hotplug.
|
||||
|
||||
This can manifest itself in RCU stall warnings, or userspace becoming
|
||||
unresponsive.
|
||||
|
||||
The problem is that the kernel initially wants to use the TWD timer
|
||||
for interrupts, but the TWD loses context when we enter the C3 cpuidle
|
||||
state. Nothing reprograms the TWD after idle.
|
||||
|
||||
We have solved this in the past by switching to broadcast timer ticks,
|
||||
and cpuidle44xx switches to that mode at boot time. However, there is
|
||||
nothing to switch from periodic mode local timers after a hotplug
|
||||
operation.
|
||||
|
||||
We call tick_broadcast_enter() in omap_enter_idle_coupled(), which one
|
||||
would expect would take care of the issue, but internally this only
|
||||
deals with one-shot local timers - tick_broadcast_enable() on the other
|
||||
hand only deals with periodic local timers. So, we need to call both.
|
||||
|
||||
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
[tony@atomide.com: just standardized the subject line]
|
||||
Signed-off-by: Tony Lindgren <tony@atomide.com>
|
||||
---
|
||||
arch/arm/mach-omap2/cpuidle44xx.c | 16 ++++------------
|
||||
1 file changed, 4 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/cpuidle44xx.c b/arch/arm/mach-omap2/cpuidle44xx.c
|
||||
index a8b291f00109..dae514c8276a 100644
|
||||
--- a/arch/arm/mach-omap2/cpuidle44xx.c
|
||||
+++ b/arch/arm/mach-omap2/cpuidle44xx.c
|
||||
@@ -152,6 +152,10 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
|
||||
mpuss_can_lose_context = (cx->mpu_state == PWRDM_POWER_RET) &&
|
||||
(cx->mpu_logic_state == PWRDM_POWER_OFF);
|
||||
|
||||
+ /* Enter broadcast mode for periodic timers */
|
||||
+ tick_broadcast_enable();
|
||||
+
|
||||
+ /* Enter broadcast mode for one-shot timers */
|
||||
tick_broadcast_enter();
|
||||
|
||||
/*
|
||||
@@ -218,15 +222,6 @@ fail:
|
||||
return index;
|
||||
}
|
||||
|
||||
-/*
|
||||
- * For each cpu, setup the broadcast timer because local timers
|
||||
- * stops for the states above C1.
|
||||
- */
|
||||
-static void omap_setup_broadcast_timer(void *arg)
|
||||
-{
|
||||
- tick_broadcast_enable();
|
||||
-}
|
||||
-
|
||||
static struct cpuidle_driver omap4_idle_driver = {
|
||||
.name = "omap4_idle",
|
||||
.owner = THIS_MODULE,
|
||||
@@ -319,8 +314,5 @@ int __init omap4_idle_init(void)
|
||||
if (!cpu_clkdm[0] || !cpu_clkdm[1])
|
||||
return -ENODEV;
|
||||
|
||||
- /* Configure the broadcast timer on each cpu */
|
||||
- on_each_cpu(omap_setup_broadcast_timer, NULL, 1);
|
||||
-
|
||||
return cpuidle_register(idle_driver, cpu_online_mask);
|
||||
}
|
||||
--
|
||||
cgit 1.2-0.3.lf.el7
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
From dc30e70391376ba3987aeb856ae6d9c0706534f1 Mon Sep 17 00:00:00 2001
|
||||
From: Yizhuo <yzhai003@ucr.edu>
|
||||
Date: Fri, 25 Jan 2019 22:32:20 -0800
|
||||
Subject: ARM: OMAP2+: Variable "reg" in function omap4_dsi_mux_pads() could be
|
||||
uninitialized
|
||||
|
||||
In function omap4_dsi_mux_pads(), local variable "reg" could
|
||||
be uninitialized if function regmap_read() returns -EINVAL.
|
||||
However, it will be used directly in the later context, which
|
||||
is potentially unsafe.
|
||||
|
||||
Signed-off-by: Yizhuo <yzhai003@ucr.edu>
|
||||
Signed-off-by: Tony Lindgren <tony@atomide.com>
|
||||
---
|
||||
arch/arm/mach-omap2/display.c | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c
|
||||
index f86b72d1d59e..1444b4b4bd9f 100644
|
||||
--- a/arch/arm/mach-omap2/display.c
|
||||
+++ b/arch/arm/mach-omap2/display.c
|
||||
@@ -83,6 +83,7 @@ static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes)
|
||||
u32 enable_mask, enable_shift;
|
||||
u32 pipd_mask, pipd_shift;
|
||||
u32 reg;
|
||||
+ int ret;
|
||||
|
||||
if (dsi_id == 0) {
|
||||
enable_mask = OMAP4_DSI1_LANEENABLE_MASK;
|
||||
@@ -98,7 +99,11 @@ static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes)
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
- regmap_read(omap4_dsi_mux_syscon, OMAP4_DSIPHY_SYSCON_OFFSET, ®);
|
||||
+ ret = regmap_read(omap4_dsi_mux_syscon,
|
||||
+ OMAP4_DSIPHY_SYSCON_OFFSET,
|
||||
+ ®);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
|
||||
reg &= ~enable_mask;
|
||||
reg &= ~pipd_mask;
|
||||
--
|
||||
cgit 1.2-0.3.lf.el7
|
||||
|
|
@ -1,118 +1,3 @@
|
|||
From patchwork Thu Jun 28 07:31:36 2018
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Subject: mmc: sdhci-esdhc-imx: support eMMC DDR mode when running at 3.3V
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
X-Patchwork-Id: 10493185
|
||||
Message-Id: <20180628073136.21748-1-stefan@agner.ch>
|
||||
To: adrian.hunter@intel.com, ulf.hansson@linaro.org
|
||||
Cc: fabio.estevam@nxp.com, haibo.chen@nxp.com, aisheng.dong@nxp.com,
|
||||
michael@amarulasolutions.com, linux-mmc@vger.kernel.org,
|
||||
linux-kernel@vger.kernel.org, Stefan Agner <stefan@agner.ch>
|
||||
Date: Thu, 28 Jun 2018 09:31:36 +0200
|
||||
|
||||
The uSDHC supports DDR modes for eMMC devices running at 3.3V. This
|
||||
allows to run eMMC with 3.3V signaling voltage at DDR52 mode:
|
||||
|
||||
# cat /sys/kernel/debug/mmc1/ios
|
||||
clock: 52000000 Hz
|
||||
vdd: 21 (3.3 ~ 3.4 V)
|
||||
bus mode: 2 (push-pull)
|
||||
chip select: 0 (don't care)
|
||||
power mode: 2 (on)
|
||||
bus width: 3 (8 bits)
|
||||
timing spec: 8 (mmc DDR52)
|
||||
signal voltage: 0 (3.30 V)
|
||||
driver type: 0 (driver type B)
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
drivers/mmc/host/sdhci-esdhc-imx.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
|
||||
index b716b933f00a..6f444731754d 100644
|
||||
--- a/drivers/mmc/host/sdhci-esdhc-imx.c
|
||||
+++ b/drivers/mmc/host/sdhci-esdhc-imx.c
|
||||
@@ -1324,7 +1324,7 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
|
||||
|
||||
if (esdhc_is_usdhc(imx_data)) {
|
||||
host->quirks2 |= SDHCI_QUIRK2_PRESET_VALUE_BROKEN;
|
||||
- host->mmc->caps |= MMC_CAP_1_8V_DDR;
|
||||
+ host->mmc->caps |= MMC_CAP_1_8V_DDR | MMC_CAP_3_3V_DDR;
|
||||
if (!(imx_data->socdata->flags & ESDHC_FLAG_HS200))
|
||||
host->quirks2 |= SDHCI_QUIRK2_BROKEN_HS200;
|
||||
|
||||
From patchwork Thu Jun 28 08:13:29 2018
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Subject: [1/3] mmc: sdhci-esdhc-imx: get rid of support_vsel
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
X-Patchwork-Id: 10493269
|
||||
Message-Id: <20180628081331.13051-2-stefan@agner.ch>
|
||||
To: adrian.hunter@intel.com, ulf.hansson@linaro.org
|
||||
Cc: fabio.estevam@nxp.com, haibo.chen@nxp.com, aisheng.dong@nxp.com,
|
||||
michael@amarulasolutions.com, rmk+kernel@armlinux.org.uk,
|
||||
linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org,
|
||||
Stefan Agner <stefan@agner.ch>
|
||||
Date: Thu, 28 Jun 2018 10:13:29 +0200
|
||||
|
||||
The field support_vsel is currently only used in the device tree
|
||||
case. Get rid of it. No change in behavior.
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
drivers/mmc/host/sdhci-esdhc-imx.c | 8 ++------
|
||||
include/linux/platform_data/mmc-esdhc-imx.h | 2 --
|
||||
2 files changed, 2 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
|
||||
index 6f444731754d..20a420b765b3 100644
|
||||
--- a/drivers/mmc/host/sdhci-esdhc-imx.c
|
||||
+++ b/drivers/mmc/host/sdhci-esdhc-imx.c
|
||||
@@ -1145,18 +1145,14 @@ sdhci_esdhc_imx_probe_dt(struct platform_device *pdev,
|
||||
&boarddata->tuning_start_tap);
|
||||
|
||||
if (of_find_property(np, "no-1-8-v", NULL))
|
||||
- boarddata->support_vsel = false;
|
||||
- else
|
||||
- boarddata->support_vsel = true;
|
||||
+ host->quirks2 |= SDHCI_QUIRK2_NO_1_8_V;
|
||||
|
||||
if (of_property_read_u32(np, "fsl,delay-line", &boarddata->delay_line))
|
||||
boarddata->delay_line = 0;
|
||||
|
||||
mmc_of_parse_voltage(np, &host->ocr_mask);
|
||||
|
||||
- /* sdr50 and sdr104 need work on 1.8v signal voltage */
|
||||
- if ((boarddata->support_vsel) && esdhc_is_usdhc(imx_data) &&
|
||||
- !IS_ERR(imx_data->pins_default)) {
|
||||
+ if (esdhc_is_usdhc(imx_data) && !IS_ERR(imx_data->pins_default)) {
|
||||
imx_data->pins_100mhz = pinctrl_lookup_state(imx_data->pinctrl,
|
||||
ESDHC_PINCTRL_STATE_100MHZ);
|
||||
imx_data->pins_200mhz = pinctrl_lookup_state(imx_data->pinctrl,
|
||||
diff --git a/include/linux/platform_data/mmc-esdhc-imx.h b/include/linux/platform_data/mmc-esdhc-imx.h
|
||||
index 7daa78a2f342..640dec8b5b0c 100644
|
||||
--- a/include/linux/platform_data/mmc-esdhc-imx.h
|
||||
+++ b/include/linux/platform_data/mmc-esdhc-imx.h
|
||||
@@ -34,7 +34,6 @@ enum cd_types {
|
||||
* @cd_gpio: gpio for card_detect interrupt
|
||||
* @wp_type: type of write_protect method (see wp_types enum above)
|
||||
* @cd_type: type of card_detect method (see cd_types enum above)
|
||||
- * @support_vsel: indicate it supports 1.8v switching
|
||||
*/
|
||||
|
||||
struct esdhc_platform_data {
|
||||
@@ -43,7 +42,6 @@ struct esdhc_platform_data {
|
||||
enum wp_types wp_type;
|
||||
enum cd_types cd_type;
|
||||
int max_bus_width;
|
||||
- bool support_vsel;
|
||||
unsigned int delay_line;
|
||||
unsigned int tuning_step; /* The delay cell steps in tuning procedure */
|
||||
unsigned int tuning_start_tap; /* The start delay cell point in tuning procedure */
|
||||
From patchwork Thu Jun 28 08:13:30 2018
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
|
|
@ -162,11 +47,11 @@ index 23966f887da6..cb2433d6d61f 100644
|
|||
--- a/drivers/mmc/host/sdhci.h
|
||||
+++ b/drivers/mmc/host/sdhci.h
|
||||
@@ -450,6 +450,8 @@ struct sdhci_host {
|
||||
* obtainable timeout.
|
||||
* block count.
|
||||
*/
|
||||
#define SDHCI_QUIRK2_DISABLE_HW_TIMEOUT (1<<17)
|
||||
#define SDHCI_QUIRK2_USE_32BIT_BLK_CNT (1<<18)
|
||||
+/* Do not support any higher speeds (>50MHz) */
|
||||
+#define SDHCI_QUIRK2_NO_UHS_HS200_HS400 (1<<18)
|
||||
+#define SDHCI_QUIRK2_NO_UHS_HS200_HS400 (1<<19)
|
||||
|
||||
int irq; /* Device IRQ */
|
||||
void __iomem *ioaddr; /* Mapped address */
|
||||
|
|
|
|||
|
|
@ -1,64 +0,0 @@
|
|||
From 369971aa0101c4cfb84dacaaaa1b5cc5790c14ff Mon Sep 17 00:00:00 2001
|
||||
From: Thierry Reding <treding@nvidia.com>
|
||||
Date: Wed, 11 Apr 2018 10:34:17 +0200
|
||||
Subject: [PATCH] drm/nouveau: tegra: Detach from ARM DMA/IOMMU mapping
|
||||
|
||||
Depending on the kernel configuration, early ARM architecture setup code
|
||||
may have attached the GPU to a DMA/IOMMU mapping that transparently uses
|
||||
the IOMMU to back the DMA API. Tegra requires special handling for IOMMU
|
||||
backed buffers (a special bit in the GPU's MMU page tables indicates the
|
||||
memory path to take: via the SMMU or directly to the memory controller).
|
||||
Transparently backing DMA memory with an IOMMU prevents Nouveau from
|
||||
properly handling such memory accesses and causes memory access faults.
|
||||
|
||||
As a side-note: buffers other than those allocated in instance memory
|
||||
don't need to be physically contiguous from the GPU's perspective since
|
||||
the GPU can map them into contiguous buffers using its own MMU. Mapping
|
||||
these buffers through the IOMMU is unnecessary and will even lead to
|
||||
performance degradation because of the additional translation.
|
||||
|
||||
Signed-off-by: Thierry Reding <treding@nvidia.com>
|
||||
---
|
||||
drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c | 19 +++++++++++++++++++
|
||||
1 file changed, 19 insertions(+)
|
||||
|
||||
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c
|
||||
index 1f07999aea1d..ac7706f56f6f 100644
|
||||
--- a/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c
|
||||
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c
|
||||
@@ -19,6 +19,11 @@
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
+
|
||||
+#if IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU)
|
||||
+#include <asm/dma-iommu.h>
|
||||
+#endif
|
||||
+
|
||||
#include <core/tegra.h>
|
||||
#ifdef CONFIG_NOUVEAU_PLATFORM_DRIVER
|
||||
#include "priv.h"
|
||||
@@ -105,6 +110,20 @@ nvkm_device_tegra_probe_iommu(struct nvkm_device_tegra *tdev)
|
||||
unsigned long pgsize_bitmap;
|
||||
int ret;
|
||||
|
||||
+#if IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU)
|
||||
+ if (dev->archdata.mapping) {
|
||||
+ struct dma_iommu_mapping *mapping = to_dma_iommu_mapping(dev);
|
||||
+
|
||||
+ arm_iommu_release_mapping(mapping);
|
||||
+ arm_iommu_detach_device(dev);
|
||||
+
|
||||
+ if (dev->archdata.dma_coherent)
|
||||
+ set_dma_ops(dev, &arm_coherent_dma_ops);
|
||||
+ else
|
||||
+ set_dma_ops(dev, &arm_dma_ops);
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
if (!tdev->func->iommu_bit)
|
||||
return;
|
||||
|
||||
--
|
||||
2.16.3
|
||||
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,184 +0,0 @@
|
|||
From patchwork Fri May 11 02:27:50 2018
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 8bit
|
||||
Subject: [1/2] arm64: arch_timer: Workaround for Allwinner A64 timer
|
||||
instability
|
||||
From: Samuel Holland <samuel@sholland.org>
|
||||
X-Patchwork-Id: 10392891
|
||||
Message-Id: <20180511022751.9096-2-samuel@sholland.org>
|
||||
To: Maxime Ripard <maxime.ripard@bootlin.com>, Chen-Yu Tsai <wens@csie.org>,
|
||||
Catalin Marinas <catalin.marinas@arm.com>,
|
||||
Will Deacon <will.deacon@arm.com>,
|
||||
Daniel Lezcano <daniel.lezcano@linaro.org>,
|
||||
Thomas Gleixner <tglx@linutronix.de>, Marc Zyngier <marc.zyngier@arm.com>
|
||||
Cc: linux-sunxi@googlegroups.com, linux-kernel@vger.kernel.org,
|
||||
linux-arm-kernel@lists.infradead.org, Samuel Holland <samuel@sholland.org>
|
||||
Date: Thu, 10 May 2018 21:27:50 -0500
|
||||
|
||||
The Allwinner A64 SoC is known [1] to have an unstable architectural
|
||||
timer, which manifests itself most obviously in the time jumping forward
|
||||
a multiple of 95 years [2][3]. This coincides with 2^56 cycles at a
|
||||
timer frequency of 24 MHz, implying that the time went slightly backward
|
||||
(and this was interpreted by the kernel as it jumping forward and
|
||||
wrapping around past the epoch).
|
||||
|
||||
Further investigation revealed instability in the low bits of CNTVCT at
|
||||
the point a high bit rolls over. This leads to power-of-two cycle
|
||||
forward and backward jumps. (Testing shows that forward jumps are about
|
||||
twice as likely as backward jumps.)
|
||||
|
||||
Without trapping reads to CNTVCT, a userspace program is able to read it
|
||||
in a loop faster than it changes. A test program running on all 4 CPU
|
||||
cores that reported jumps larger than 100 ms was run for 13.6 hours and
|
||||
reported the following:
|
||||
|
||||
Count | Event
|
||||
-------+---------------------------
|
||||
9940 | jumped backward 699ms
|
||||
268 | jumped backward 1398ms
|
||||
1 | jumped backward 2097ms
|
||||
16020 | jumped forward 175ms
|
||||
6443 | jumped forward 699ms
|
||||
2976 | jumped forward 1398ms
|
||||
9 | jumped forward 356516ms
|
||||
9 | jumped forward 357215ms
|
||||
4 | jumped forward 714430ms
|
||||
1 | jumped forward 3578440ms
|
||||
|
||||
This works out to a jump larger than 100 ms about every 5.5 seconds on
|
||||
each CPU core.
|
||||
|
||||
The largest jump (almost an hour!) was the following sequence of reads:
|
||||
0x0000007fffffffff → 0x00000093feffffff → 0x0000008000000000
|
||||
|
||||
Note that the middle bits don't necessarily all read as all zeroes or
|
||||
all ones during the anomalous behavior; however the low 11 bits checked
|
||||
by the function in this patch have never been observed with any other
|
||||
value.
|
||||
|
||||
Also note that smaller jumps are much more common, with the smallest
|
||||
backward jumps of 2048 cycles observed over 400 times per second on each
|
||||
core. (Of course, this is partially due to lower bits rolling over more
|
||||
frequently.) Any one of these could have caused the 95 year time skip.
|
||||
|
||||
Similar anomalies were observed while reading CNTPCT (after patching the
|
||||
kernel to allow reads from userspace). However, the jumps are much less
|
||||
frequent, and only small jumps were observed. The same program as before
|
||||
(except now reading CNTPCT) observed after 72 hours:
|
||||
|
||||
Count | Event
|
||||
-------+---------------------------
|
||||
17 | jumped backward 699ms
|
||||
52 | jumped forward 175ms
|
||||
2831 | jumped forward 699ms
|
||||
5 | jumped forward 1398ms
|
||||
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
|
||||
Tested-by: Andre Przywara <andre.przywara@arm.com>
|
||||
|
||||
========================================================================
|
||||
|
||||
Because the CPU can read the CNTPCT/CNTVCT registers faster than they
|
||||
change, performing two reads of the register and comparing the high bits
|
||||
(like other workarounds) is not a workable solution. And because the
|
||||
timer can jump both forward and backward, no pair of reads can
|
||||
distinguish a good value from a bad one. The only way to guarantee a
|
||||
good value from consecutive reads would be to read _three_ times, and
|
||||
take the middle value iff the three values are 1) individually unique
|
||||
and 2) increasing. This takes at minimum 3 cycles (125 ns), or more if
|
||||
an anomaly is detected.
|
||||
|
||||
However, since there is a distinct pattern to the bad values, we can
|
||||
optimize the common case (2046/2048 of the time) to a single read by
|
||||
simply ignoring values that match the pattern. This still takes no more
|
||||
than 3 cycles in the worst case, and requires much less code.
|
||||
|
||||
[1]: https://github.com/armbian/build/commit/a08cd6fe7ae9
|
||||
[2]: https://forum.armbian.com/topic/3458-a64-datetime-clock-issue/
|
||||
[3]: https://irclog.whitequark.org/linux-sunxi/2018-01-26
|
||||
|
||||
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
||||
---
|
||||
drivers/clocksource/Kconfig | 11 ++++++++++
|
||||
drivers/clocksource/arm_arch_timer.c | 39 ++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 50 insertions(+)
|
||||
|
||||
diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig
|
||||
index 8e8a09755d10..7a5d434dd30b 100644
|
||||
--- a/drivers/clocksource/Kconfig
|
||||
+++ b/drivers/clocksource/Kconfig
|
||||
@@ -364,6 +364,17 @@ config ARM64_ERRATUM_858921
|
||||
The workaround will be dynamically enabled when an affected
|
||||
core is detected.
|
||||
|
||||
+config SUN50I_A64_UNSTABLE_TIMER
|
||||
+ bool "Workaround for Allwinner A64 timer instability"
|
||||
+ default y
|
||||
+ depends on ARM_ARCH_TIMER && ARM64 && ARCH_SUNXI
|
||||
+ select ARM_ARCH_TIMER_OOL_WORKAROUND
|
||||
+ help
|
||||
+ This option enables a workaround for instability in the timer on
|
||||
+ the Allwinner A64 SoC. The workaround will only be active if the
|
||||
+ allwinner,sun50i-a64-unstable-timer property is found in the
|
||||
+ timer node.
|
||||
+
|
||||
config ARM_GLOBAL_TIMER
|
||||
bool "Support for the ARM global timer" if COMPILE_TEST
|
||||
select TIMER_OF if OF
|
||||
diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
|
||||
index 57cb2f00fc07..66ce13578c52 100644
|
||||
--- a/drivers/clocksource/arm_arch_timer.c
|
||||
+++ b/drivers/clocksource/arm_arch_timer.c
|
||||
@@ -319,6 +319,36 @@ static u64 notrace arm64_858921_read_cntvct_el0(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
+#ifdef CONFIG_SUN50I_A64_UNSTABLE_TIMER
|
||||
+/*
|
||||
+ * The low bits of each register can transiently read as all ones or all zeroes
|
||||
+ * when bit 11 or greater rolls over. Since the value can jump both backward
|
||||
+ * (7ff -> 000 -> 800) and forward (7ff -> fff -> 800), it is simplest to just
|
||||
+ * ignore register values with all ones or zeros in the low bits.
|
||||
+ */
|
||||
+static u64 notrace sun50i_a64_read_cntpct_el0(void)
|
||||
+{
|
||||
+ u64 val;
|
||||
+
|
||||
+ do {
|
||||
+ val = read_sysreg(cntpct_el0);
|
||||
+ } while (((val + 1) & GENMASK(10, 0)) <= 1);
|
||||
+
|
||||
+ return val;
|
||||
+}
|
||||
+
|
||||
+static u64 notrace sun50i_a64_read_cntvct_el0(void)
|
||||
+{
|
||||
+ u64 val;
|
||||
+
|
||||
+ do {
|
||||
+ val = read_sysreg(cntvct_el0);
|
||||
+ } while (((val + 1) & GENMASK(10, 0)) <= 1);
|
||||
+
|
||||
+ return val;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
#ifdef CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND
|
||||
DEFINE_PER_CPU(const struct arch_timer_erratum_workaround *, timer_unstable_counter_workaround);
|
||||
EXPORT_SYMBOL_GPL(timer_unstable_counter_workaround);
|
||||
@@ -408,6 +438,15 @@ static const struct arch_timer_erratum_workaround ool_workarounds[] = {
|
||||
.read_cntvct_el0 = arm64_858921_read_cntvct_el0,
|
||||
},
|
||||
#endif
|
||||
+#ifdef CONFIG_SUN50I_A64_UNSTABLE_TIMER
|
||||
+ {
|
||||
+ .match_type = ate_match_dt,
|
||||
+ .id = "allwinner,sun50i-a64-unstable-timer",
|
||||
+ .desc = "Allwinner A64 timer instability",
|
||||
+ .read_cntpct_el0 = sun50i_a64_read_cntpct_el0,
|
||||
+ .read_cntvct_el0 = sun50i_a64_read_cntvct_el0,
|
||||
+ },
|
||||
+#endif
|
||||
};
|
||||
|
||||
typedef bool (*ate_match_fn_t)(const struct arch_timer_erratum_workaround *,
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
From patchwork Fri May 11 02:27:51 2018
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Subject: [2/2] arm64: dts: allwinner: a64: Enable A64 timer workaround
|
||||
From: Samuel Holland <samuel@sholland.org>
|
||||
X-Patchwork-Id: 10392889
|
||||
Message-Id: <20180511022751.9096-3-samuel@sholland.org>
|
||||
To: Maxime Ripard <maxime.ripard@bootlin.com>, Chen-Yu Tsai <wens@csie.org>,
|
||||
Catalin Marinas <catalin.marinas@arm.com>,
|
||||
Will Deacon <will.deacon@arm.com>,
|
||||
Daniel Lezcano <daniel.lezcano@linaro.org>,
|
||||
Thomas Gleixner <tglx@linutronix.de>, Marc Zyngier <marc.zyngier@arm.com>
|
||||
Cc: linux-sunxi@googlegroups.com, linux-kernel@vger.kernel.org,
|
||||
linux-arm-kernel@lists.infradead.org, Samuel Holland <samuel@sholland.org>
|
||||
Date: Thu, 10 May 2018 21:27:51 -0500
|
||||
|
||||
As instability in the architectural timer has been observed on multiple
|
||||
devices using this SoC, inluding the Pine64 and the Orange Pi Win,
|
||||
enable the workaround in the SoC's device tree.
|
||||
|
||||
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
||||
---
|
||||
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
|
||||
index 1b2ef28c42bd..5202b76e9684 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
|
||||
@@ -152,6 +152,7 @@
|
||||
|
||||
timer {
|
||||
compatible = "arm,armv8-timer";
|
||||
+ allwinner,sun50i-a64-unstable-timer;
|
||||
interrupts = <GIC_PPI 13
|
||||
(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
|
||||
<GIC_PPI 14
|
||||
623
arm64-dts-qcom-Add-Lenovo-Yoga-C630.patch
Normal file
623
arm64-dts-qcom-Add-Lenovo-Yoga-C630.patch
Normal file
|
|
@ -0,0 +1,623 @@
|
|||
From patchwork Thu Sep 5 14:51:12 2019
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Lee Jones <lee.jones@linaro.org>
|
||||
X-Patchwork-Id: 11133293
|
||||
Return-Path:
|
||||
<SRS0=FLD0=XA=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 EF29913BD
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Thu, 5 Sep 2019 14:51:26 +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 1997020820
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Thu, 5 Sep 2019 14:51:27 +0000 (UTC)
|
||||
Authentication-Results: mail.kernel.org;
|
||||
dkim=pass (2048-bit key) header.d=lists.infradead.org
|
||||
header.i=@lists.infradead.org header.b="QcCmRfwJ";
|
||||
dkim=fail reason="signature verification failed" (2048-bit key)
|
||||
header.d=linaro.org header.i=@linaro.org header.b="UUIx2S2a"
|
||||
DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1997020820
|
||||
Authentication-Results: mail.kernel.org;
|
||||
dmarc=fail (p=none dis=none) header.from=linaro.org
|
||||
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:MIME-Version:Cc:List-Subscribe:
|
||||
List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id: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:In-Reply-To:
|
||||
References:List-Owner; bh=RFMjkhfiAb3mDQJcei/M3ErXIrcuIvXho1uY3CGaFs8=; b=QcC
|
||||
mRfwJTEzsniFc2PQTDfopo/phWmprscia3e6OqRIHx0I6F8qNt3pLneLcx7MATAHPJHeD2Bfz/d1W
|
||||
vk/w8leYRcdrNca/SkMK3grqwTP3XueqwIC3W59cpisOR1/MTcmZZ05pTYnppFox5HNzWRfOL6Z6r
|
||||
CZvdTV7DVN0DYpv+NU1GnegQ3L8w/B1BaXGHVCPJjH/dHMLJ4OqBor2LD0dBQpYwROMamQbE3enrN
|
||||
WGMNjdb3YYZU47m5stsgoivzulIOlOF5PKp+VY75IwHxck1S07mqhqxB9cmIvdEke7S9T1EpoIOJs
|
||||
2cu8v9rxofEpJNocOcSJeYiEpGj6qIA==;
|
||||
Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org)
|
||||
by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux))
|
||||
id 1i5t6X-0000ra-3X; Thu, 05 Sep 2019 14:51:21 +0000
|
||||
Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343])
|
||||
by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux))
|
||||
id 1i5t6S-0000r9-W3
|
||||
for linux-arm-kernel@lists.infradead.org; Thu, 05 Sep 2019 14:51:18 +0000
|
||||
Received: by mail-wm1-x343.google.com with SMTP id n10so3441823wmj.0
|
||||
for <linux-arm-kernel@lists.infradead.org>;
|
||||
Thu, 05 Sep 2019 07:51:16 -0700 (PDT)
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google;
|
||||
h=from:to:cc:subject:date:message-id;
|
||||
bh=hP6dTKrGhmI4Li1vYBwvA5G00RWYLdiehRQLahBt/08=;
|
||||
b=UUIx2S2a1OTzLYcxsOGi8vjYvnpXjIXXfjjInQmQhJrOoLVMUI4bMk0pP8K4hv5+v1
|
||||
bC+ahF3FezFlzFIlypiny7EYPPxM79sdZHZnnpe6qgrTfl/6guRvEmNJy8vpPadhocR8
|
||||
IW0JAJGxuc7RH4bWScdjpjBLvTYEo3MLTNDGuJOCB05O5AH8D6gSDZPqwaUWbITmdboy
|
||||
JTOLJ37XUMxPF83r7F6BQwynpfcnLc9Ytv9w1tMp0R82MmO52QP457mar3d7PWPJu/Rw
|
||||
YJb6IDjcjSjZJrr3aGvnJVnETp/zGeRsmeTgNtJe37OYQ5blm4tzTlx1dRxuMiRRs6DS
|
||||
rUaA==
|
||||
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;
|
||||
bh=hP6dTKrGhmI4Li1vYBwvA5G00RWYLdiehRQLahBt/08=;
|
||||
b=d2RovY2av4Dyx8Ou6LJ+nAvLFVrruV6de3b6OWCOF5mnVZA2T2tJEcsrZEGXSSpkiz
|
||||
1YxSkV7YgJJElZhqlfudvkyyxth7A1ZDQnU4x3QyppMQ5lWeHg/xT9+q+h7orxiRjQeX
|
||||
2J+SRG4WqZwcpbUSe95Wy2tPFVB5GYv1eyARjCARCpYOECeprtSl1ckDVyBJ/3G4AVLm
|
||||
kB1xk3Ua101/bad3LA8IW1Zo0ld7x7u42jPYO7kJhPH8Ec/l0mrAVSIJn54PKoLu/DhW
|
||||
yH6q+kD4LffmAtpj4ICo/rQdtmjV7msTJZ/Dcos9IpUPi5KoXbxWdP+NoUyaVleKhEIl
|
||||
IYMA==
|
||||
X-Gm-Message-State: APjAAAUQgezKycPxaZ7DvJWRiVy/0dp867xlik7J0fXQ60D99YKcuW0q
|
||||
aRR9aWXTADWPSkrcTkd0a071Qw==
|
||||
X-Google-Smtp-Source:
|
||||
APXvYqybUDyw7bzKyC0JJlkse2i6lXau2tHY0+7iUxCwZcbyfwIDTqmYWXxNn26wfhgBAKudt68zBQ==
|
||||
X-Received: by 2002:a1c:a404:: with SMTP id n4mr3206745wme.137.1567695075383;
|
||||
Thu, 05 Sep 2019 07:51:15 -0700 (PDT)
|
||||
Received: from localhost.localdomain ([95.147.198.36])
|
||||
by smtp.gmail.com with ESMTPSA id g201sm4376858wmg.34.2019.09.05.07.51.14
|
||||
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
|
||||
Thu, 05 Sep 2019 07:51:14 -0700 (PDT)
|
||||
From: Lee Jones <lee.jones@linaro.org>
|
||||
To: agross@kernel.org, robh+dt@kernel.org, mark.rutland@arm.com,
|
||||
bjorn.andersson@linaro.org, arnd@arndb.de
|
||||
Subject: [PATCH v4 1/1] arm64: dts: qcom: Add Lenovo Yoga C630
|
||||
Date: Thu, 5 Sep 2019 15:51:12 +0100
|
||||
Message-Id: <20190905145112.7366-1-lee.jones@linaro.org>
|
||||
X-Mailer: git-send-email 2.17.1
|
||||
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
|
||||
X-CRM114-CacheID: sfid-20190905_075117_040430_5C619449
|
||||
X-CRM114-Status: GOOD ( 14.05 )
|
||||
X-Spam-Score: -0.2 (/)
|
||||
X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary:
|
||||
Content analysis details: (-0.2 points)
|
||||
pts rule name description
|
||||
---- ----------------------
|
||||
--------------------------------------------------
|
||||
-0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/,
|
||||
no trust [2a00:1450:4864:20:0:0:0:343 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.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from
|
||||
envelope-from domain
|
||||
-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from
|
||||
author's domain
|
||||
0.1 DKIM_SIGNED Message has a DKIM or DK signature,
|
||||
not necessarily
|
||||
valid
|
||||
-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
|
||||
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: devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org,
|
||||
linux-kernel@vger.kernel.org, soc@kernel.org,
|
||||
Lee Jones <lee.jones@linaro.org>,
|
||||
linux-arm-kernel@lists.infradead.org
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset="us-ascii"
|
||||
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
|
||||
|
||||
From: Bjorn Andersson <bjorn.andersson@linaro.org>
|
||||
|
||||
The Lenovo Yoga C630 is built on the SDM850 from Qualcomm, but this seem
|
||||
to be similar enough to the SDM845 that we can reuse the sdm845.dtsi.
|
||||
|
||||
Supported by this patch is: keyboard, battery monitoring, UFS storage,
|
||||
USB host and Bluetooth.
|
||||
|
||||
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
|
||||
Reviewed-by: Vinod Koul <vkoul@kernel.org>
|
||||
Acked-by: Sudeep Holla <sudeep.holla@arm.com>
|
||||
[Lee] Reorder, change licence, remove non-upstream device node
|
||||
Signed-off-by: Lee Jones <lee.jones@linaro.org>
|
||||
---
|
||||
|
||||
Changelog:
|
||||
* Reorder nodes alphabetically
|
||||
* Remove superfluous node for driver not yet upstream
|
||||
* Add (then remove) 'no-dma' property
|
||||
* Change licence to BSD
|
||||
|
||||
arch/arm64/boot/dts/qcom/Makefile | 1 +
|
||||
.../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 446 ++++++++++++++++++
|
||||
2 files changed, 447 insertions(+)
|
||||
create mode 100644 arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
|
||||
index 0a7e5dfce6f7..670c6c65f9e9 100644
|
||||
--- a/arch/arm64/boot/dts/qcom/Makefile
|
||||
+++ b/arch/arm64/boot/dts/qcom/Makefile
|
||||
@@ -12,5 +12,6 @@ dtb-$(CONFIG_ARCH_QCOM) += sdm845-cheza-r2.dtb
|
||||
dtb-$(CONFIG_ARCH_QCOM) += sdm845-cheza-r3.dtb
|
||||
dtb-$(CONFIG_ARCH_QCOM) += sdm845-db845c.dtb
|
||||
dtb-$(CONFIG_ARCH_QCOM) += sdm845-mtp.dtb
|
||||
+dtb-$(CONFIG_ARCH_QCOM) += sdm850-lenovo-yoga-c630.dtb
|
||||
dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb
|
||||
dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-4000.dtb
|
||||
diff --git a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
|
||||
new file mode 100644
|
||||
index 000000000000..ded120d3aef5
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
|
||||
@@ -0,0 +1,446 @@
|
||||
+// SPDX-License-Identifier: BSD-3-Clause
|
||||
+/*
|
||||
+ * Lenovo Yoga C630
|
||||
+ *
|
||||
+ * Copyright (c) 2019, Linaro Ltd.
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
|
||||
+#include "sdm845.dtsi"
|
||||
+#include "pm8998.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ model = "Lenovo Yoga C630";
|
||||
+ compatible = "lenovo,yoga-c630", "qcom,sdm845";
|
||||
+
|
||||
+ aliases {
|
||||
+ hsuart0 = &uart6;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&apps_rsc {
|
||||
+ pm8998-rpmh-regulators {
|
||||
+ compatible = "qcom,pm8998-rpmh-regulators";
|
||||
+ qcom,pmic-id = "a";
|
||||
+
|
||||
+ vdd-l2-l8-l17-supply = <&vreg_s3a_1p35>;
|
||||
+ vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>;
|
||||
+
|
||||
+ vreg_s2a_1p125: smps2 {
|
||||
+ };
|
||||
+
|
||||
+ vreg_s3a_1p35: smps3 {
|
||||
+ regulator-min-microvolt = <1352000>;
|
||||
+ regulator-max-microvolt = <1352000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_s4a_1p8: smps4 {
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_s5a_2p04: smps5 {
|
||||
+ regulator-min-microvolt = <2040000>;
|
||||
+ regulator-max-microvolt = <2040000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_s7a_1p025: smps7 {
|
||||
+ };
|
||||
+
|
||||
+ vdd_qusb_hs0:
|
||||
+ vdda_hp_pcie_core:
|
||||
+ vdda_mipi_csi0_0p9:
|
||||
+ vdda_mipi_csi1_0p9:
|
||||
+ vdda_mipi_csi2_0p9:
|
||||
+ vdda_mipi_dsi0_pll:
|
||||
+ vdda_mipi_dsi1_pll:
|
||||
+ vdda_qlink_lv:
|
||||
+ vdda_qlink_lv_ck:
|
||||
+ vdda_qrefs_0p875:
|
||||
+ vdda_pcie_core:
|
||||
+ vdda_pll_cc_ebi01:
|
||||
+ vdda_pll_cc_ebi23:
|
||||
+ vdda_sp_sensor:
|
||||
+ vdda_ufs1_core:
|
||||
+ vdda_ufs2_core:
|
||||
+ vdda_usb1_ss_core:
|
||||
+ vdda_usb2_ss_core:
|
||||
+ vreg_l1a_0p875: ldo1 {
|
||||
+ regulator-min-microvolt = <880000>;
|
||||
+ regulator-max-microvolt = <880000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vddpx_10:
|
||||
+ vreg_l2a_1p2: ldo2 {
|
||||
+ regulator-min-microvolt = <1200000>;
|
||||
+ regulator-max-microvolt = <1200000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ regulator-always-on;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l3a_1p0: ldo3 {
|
||||
+ };
|
||||
+
|
||||
+ vdd_wcss_cx:
|
||||
+ vdd_wcss_mx:
|
||||
+ vdda_wcss_pll:
|
||||
+ vreg_l5a_0p8: ldo5 {
|
||||
+ regulator-min-microvolt = <800000>;
|
||||
+ regulator-max-microvolt = <800000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vddpx_13:
|
||||
+ vreg_l6a_1p8: ldo6 {
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l7a_1p8: ldo7 {
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l8a_1p2: ldo8 {
|
||||
+ };
|
||||
+
|
||||
+ vreg_l9a_1p8: ldo9 {
|
||||
+ };
|
||||
+
|
||||
+ vreg_l10a_1p8: ldo10 {
|
||||
+ };
|
||||
+
|
||||
+ vreg_l11a_1p0: ldo11 {
|
||||
+ };
|
||||
+
|
||||
+ vdd_qfprom:
|
||||
+ vdd_qfprom_sp:
|
||||
+ vdda_apc1_cs_1p8:
|
||||
+ vdda_gfx_cs_1p8:
|
||||
+ vdda_qrefs_1p8:
|
||||
+ vdda_qusb_hs0_1p8:
|
||||
+ vddpx_11:
|
||||
+ vreg_l12a_1p8: ldo12 {
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vddpx_2:
|
||||
+ vreg_l13a_2p95: ldo13 {
|
||||
+ };
|
||||
+
|
||||
+ vreg_l14a_1p88: ldo14 {
|
||||
+ regulator-min-microvolt = <1880000>;
|
||||
+ regulator-max-microvolt = <1880000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ regulator-always-on;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l15a_1p8: ldo15 {
|
||||
+ };
|
||||
+
|
||||
+ vreg_l16a_2p7: ldo16 {
|
||||
+ };
|
||||
+
|
||||
+ vreg_l17a_1p3: ldo17 {
|
||||
+ regulator-min-microvolt = <1304000>;
|
||||
+ regulator-max-microvolt = <1304000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l18a_2p7: ldo18 {
|
||||
+ };
|
||||
+
|
||||
+ vreg_l19a_3p0: ldo19 {
|
||||
+ regulator-min-microvolt = <3100000>;
|
||||
+ regulator-max-microvolt = <3108000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l20a_2p95: ldo20 {
|
||||
+ regulator-min-microvolt = <2960000>;
|
||||
+ regulator-max-microvolt = <2960000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l21a_2p95: ldo21 {
|
||||
+ };
|
||||
+
|
||||
+ vreg_l22a_2p85: ldo22 {
|
||||
+ };
|
||||
+
|
||||
+ vreg_l23a_3p3: ldo23 {
|
||||
+ };
|
||||
+
|
||||
+ vdda_qusb_hs0_3p1:
|
||||
+ vreg_l24a_3p075: ldo24 {
|
||||
+ regulator-min-microvolt = <3075000>;
|
||||
+ regulator-max-microvolt = <3083000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l25a_3p3: ldo25 {
|
||||
+ regulator-min-microvolt = <3104000>;
|
||||
+ regulator-max-microvolt = <3112000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vdda_hp_pcie_1p2:
|
||||
+ vdda_hv_ebi0:
|
||||
+ vdda_hv_ebi1:
|
||||
+ vdda_hv_ebi2:
|
||||
+ vdda_hv_ebi3:
|
||||
+ vdda_mipi_csi_1p25:
|
||||
+ vdda_mipi_dsi0_1p2:
|
||||
+ vdda_mipi_dsi1_1p2:
|
||||
+ vdda_pcie_1p2:
|
||||
+ vdda_ufs1_1p2:
|
||||
+ vdda_ufs2_1p2:
|
||||
+ vdda_usb1_ss_1p2:
|
||||
+ vdda_usb2_ss_1p2:
|
||||
+ vreg_l26a_1p2: ldo26 {
|
||||
+ regulator-min-microvolt = <1200000>;
|
||||
+ regulator-max-microvolt = <1208000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l28a_3p0: ldo28 {
|
||||
+ };
|
||||
+
|
||||
+ vreg_lvs1a_1p8: lvs1 {
|
||||
+ };
|
||||
+
|
||||
+ vreg_lvs2a_1p8: lvs2 {
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&apps_smmu {
|
||||
+ /* TODO: Figure out how to survive booting with this enabled */
|
||||
+ status = "disabled";
|
||||
+};
|
||||
+
|
||||
+&gcc {
|
||||
+ protected-clocks = <GCC_QSPI_CORE_CLK>,
|
||||
+ <GCC_QSPI_CORE_CLK_SRC>,
|
||||
+ <GCC_QSPI_CNOC_PERIPH_AHB_CLK>;
|
||||
+};
|
||||
+
|
||||
+&i2c1 {
|
||||
+ status = "okay";
|
||||
+ clock-frequency = <400000>;
|
||||
+};
|
||||
+
|
||||
+&i2c3 {
|
||||
+ status = "okay";
|
||||
+ clock-frequency = <400000>;
|
||||
+
|
||||
+ hid@15 {
|
||||
+ compatible = "hid-over-i2c";
|
||||
+ reg = <0x15>;
|
||||
+ hid-descr-addr = <0x1>;
|
||||
+
|
||||
+ interrupts-extended = <&tlmm 37 IRQ_TYPE_EDGE_RISING>;
|
||||
+ };
|
||||
+
|
||||
+ hid@2c {
|
||||
+ compatible = "hid-over-i2c";
|
||||
+ reg = <0x2c>;
|
||||
+ hid-descr-addr = <0x20>;
|
||||
+
|
||||
+ interrupts-extended = <&tlmm 37 IRQ_TYPE_EDGE_RISING>;
|
||||
+
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&i2c2_hid_active>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&i2c5 {
|
||||
+ status = "okay";
|
||||
+ clock-frequency = <400000>;
|
||||
+
|
||||
+ hid@10 {
|
||||
+ compatible = "hid-over-i2c";
|
||||
+ reg = <0x10>;
|
||||
+ hid-descr-addr = <0x1>;
|
||||
+
|
||||
+ interrupts-extended = <&tlmm 125 IRQ_TYPE_EDGE_FALLING>;
|
||||
+
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&i2c6_hid_active>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&i2c11 {
|
||||
+ status = "okay";
|
||||
+ clock-frequency = <400000>;
|
||||
+
|
||||
+ hid@5c {
|
||||
+ compatible = "hid-over-i2c";
|
||||
+ reg = <0x5c>;
|
||||
+ hid-descr-addr = <0x1>;
|
||||
+
|
||||
+ interrupts-extended = <&tlmm 92 IRQ_TYPE_LEVEL_LOW>;
|
||||
+
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&i2c12_hid_active>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&qup_i2c12_default {
|
||||
+ drive-strength = <2>;
|
||||
+ bias-disable;
|
||||
+};
|
||||
+
|
||||
+&qup_uart6_default {
|
||||
+ pinmux {
|
||||
+ pins = "gpio45", "gpio46", "gpio47", "gpio48";
|
||||
+ function = "qup6";
|
||||
+ };
|
||||
+
|
||||
+ cts {
|
||||
+ pins = "gpio45";
|
||||
+ bias-pull-down;
|
||||
+ };
|
||||
+
|
||||
+ rts-tx {
|
||||
+ pins = "gpio46", "gpio47";
|
||||
+ drive-strength = <2>;
|
||||
+ bias-disable;
|
||||
+ };
|
||||
+
|
||||
+ rx {
|
||||
+ pins = "gpio48";
|
||||
+ bias-pull-up;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&qupv3_id_0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&qupv3_id_1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&tlmm {
|
||||
+ gpio-reserved-ranges = <0 4>, <81 4>;
|
||||
+
|
||||
+ i2c2_hid_active: i2c2-hid-active {
|
||||
+ pins = <37>;
|
||||
+ function = "gpio";
|
||||
+
|
||||
+ input-enable;
|
||||
+ bias-pull-up;
|
||||
+ drive-strength = <2>;
|
||||
+ };
|
||||
+
|
||||
+ i2c6_hid_active: i2c6-hid-active {
|
||||
+ pins = <125>;
|
||||
+ function = "gpio";
|
||||
+
|
||||
+ input-enable;
|
||||
+ bias-pull-up;
|
||||
+ drive-strength = <2>;
|
||||
+ };
|
||||
+
|
||||
+ i2c12_hid_active: i2c12-hid-active {
|
||||
+ pins = <92>;
|
||||
+ function = "gpio";
|
||||
+
|
||||
+ input-enable;
|
||||
+ bias-pull-up;
|
||||
+ drive-strength = <2>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&uart6 {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ bluetooth {
|
||||
+ compatible = "qcom,wcn3990-bt";
|
||||
+
|
||||
+ vddio-supply = <&vreg_s4a_1p8>;
|
||||
+ vddxo-supply = <&vreg_l7a_1p8>;
|
||||
+ vddrf-supply = <&vreg_l17a_1p3>;
|
||||
+ vddch0-supply = <&vreg_l25a_3p3>;
|
||||
+ max-speed = <3200000>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&ufs_mem_hc {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ vcc-supply = <&vreg_l20a_2p95>;
|
||||
+ vcc-max-microamp = <600000>;
|
||||
+};
|
||||
+
|
||||
+&ufs_mem_phy {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ vdda-phy-supply = <&vdda_ufs1_core>;
|
||||
+ vdda-pll-supply = <&vdda_ufs1_1p2>;
|
||||
+};
|
||||
+
|
||||
+&usb_1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_1_dwc3 {
|
||||
+ dr_mode = "host";
|
||||
+};
|
||||
+
|
||||
+&usb_1_hsphy {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ vdd-supply = <&vdda_usb1_ss_core>;
|
||||
+ vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
|
||||
+ vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
|
||||
+
|
||||
+ qcom,imp-res-offset-value = <8>;
|
||||
+ qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>;
|
||||
+ qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>;
|
||||
+ qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
|
||||
+};
|
||||
+
|
||||
+&usb_1_qmpphy {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ vdda-phy-supply = <&vdda_usb1_ss_1p2>;
|
||||
+ vdda-pll-supply = <&vdda_usb1_ss_core>;
|
||||
+};
|
||||
+
|
||||
+&usb_2 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_2_dwc3 {
|
||||
+ dr_mode = "host";
|
||||
+};
|
||||
+
|
||||
+&usb_2_hsphy {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ vdd-supply = <&vdda_usb2_ss_core>;
|
||||
+ vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
|
||||
+ vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
|
||||
+
|
||||
+ qcom,imp-res-offset-value = <8>;
|
||||
+ qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_22_8_MA>;
|
||||
+};
|
||||
+
|
||||
+&usb_2_qmpphy {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ vdda-phy-supply = <&vdda_usb2_ss_1p2>;
|
||||
+ vdda-pll-supply = <&vdda_usb2_ss_core>;
|
||||
+};
|
||||
29
arm64-tegra-Jetson-TX2-Allow-bootloader-to-configure.patch
Normal file
29
arm64-tegra-Jetson-TX2-Allow-bootloader-to-configure.patch
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
From 59780095ba35a49946e726c88caff6f65f3e433a Mon Sep 17 00:00:00 2001
|
||||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Tue, 30 Jul 2019 14:22:36 +0100
|
||||
Subject: [PATCH] arm64: tegra: Jetson TX2: Allow bootloader to configure
|
||||
Ethernet MAC
|
||||
|
||||
Add an ethernet alias so that a stable MAC address is added to the
|
||||
device tree for the wired ethernet interface.
|
||||
|
||||
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi b/arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi
|
||||
index 5e18acf5cfad..947744d0f04c 100644
|
||||
--- a/arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi
|
||||
+++ b/arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi
|
||||
@@ -8,6 +8,7 @@
|
||||
compatible = "nvidia,p3310", "nvidia,tegra186";
|
||||
|
||||
aliases {
|
||||
+ ethernet0 = "/ethernet@2490000";
|
||||
sdhci0 = "/sdhci@3460000";
|
||||
sdhci1 = "/sdhci@3400000";
|
||||
serial0 = &uarta;
|
||||
--
|
||||
2.21.0
|
||||
|
||||
39
arm64-tegra-jetson-tx1-fixes.patch
Normal file
39
arm64-tegra-jetson-tx1-fixes.patch
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
From aea4a7a551fd7342299d34f04a8b75f58644ac07 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Sat, 23 Mar 2019 17:45:10 +0000
|
||||
Subject: [PATCH 2/3] arm64: tegra210: Jetson TX1: disable display panel and
|
||||
associated backlight
|
||||
|
||||
The Jetson TX1 dev kit doesn't ship with a screen by default and if
|
||||
it's not there it appears to crash on boot so disable them both by
|
||||
default until we work out the problem.
|
||||
|
||||
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts b/arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts
|
||||
index 37e3c46e753f..a16f24f1d5ff 100644
|
||||
--- a/arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts
|
||||
+++ b/arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
host1x@50000000 {
|
||||
dsi@54300000 {
|
||||
- status = "okay";
|
||||
+ status = "disabled";
|
||||
|
||||
avdd-dsi-csi-supply = <&vdd_dsi_csi>;
|
||||
|
||||
@@ -54,6 +54,8 @@
|
||||
|
||||
i2c@7000c400 {
|
||||
backlight: backlight@2c {
|
||||
+ status = "disabled";
|
||||
+
|
||||
compatible = "ti,lp8557";
|
||||
reg = <0x2c>;
|
||||
|
||||
--
|
||||
2.20.1
|
||||
51
arm64-tegra186-enable-USB-on-Jetson-TX2.patch
Normal file
51
arm64-tegra186-enable-USB-on-Jetson-TX2.patch
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
From e5ccb943712d261b8ebb3e8ac92a82be4b244ce4 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Sun, 6 Oct 2019 14:44:25 +0100
|
||||
Subject: [PATCH] arm64: tegra186: enable USB on Jetson-TX2
|
||||
|
||||
Based on the following patch series:
|
||||
https://www.spinics.net/lists/linux-tegra/msg44216.html
|
||||
|
||||
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts | 4 ++--
|
||||
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 1 +
|
||||
2 files changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts b/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts
|
||||
index bdace01561ba..2e6195764268 100644
|
||||
--- a/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts
|
||||
+++ b/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts
|
||||
@@ -115,7 +115,7 @@
|
||||
};
|
||||
|
||||
padctl@3520000 {
|
||||
- status = "disabled";
|
||||
+ status = "okay";
|
||||
|
||||
avdd-pll-erefeut-supply = <&vdd_1v8_pll>;
|
||||
avdd-usb-supply = <&vdd_3v3_sys>;
|
||||
@@ -193,7 +193,7 @@
|
||||
};
|
||||
|
||||
usb@3530000 {
|
||||
- status = "disabled";
|
||||
+ status = "okay";
|
||||
|
||||
phys = <&{/padctl@3520000/pads/usb2/lanes/usb2-0}>,
|
||||
<&{/padctl@3520000/pads/usb2/lanes/usb2-1}>,
|
||||
diff --git a/arch/arm64/boot/dts/nvidia/tegra186.dtsi b/arch/arm64/boot/dts/nvidia/tegra186.dtsi
|
||||
index 47cd831fcf44..abdc81f555b9 100644
|
||||
--- a/arch/arm64/boot/dts/nvidia/tegra186.dtsi
|
||||
+++ b/arch/arm64/boot/dts/nvidia/tegra186.dtsi
|
||||
@@ -525,6 +525,7 @@
|
||||
<0x0 0x03538000 0x0 0x1000>;
|
||||
reg-names = "hcd", "fpci";
|
||||
|
||||
+ iommus = <&smmu TEGRA186_SID_XUSB_HOST>;
|
||||
interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
|
||||
--
|
||||
2.21.0
|
||||
|
||||
124
asus-fx503-keyb.patch
Normal file
124
asus-fx503-keyb.patch
Normal file
|
|
@ -0,0 +1,124 @@
|
|||
From c1dfbd7a588e43be466d12c3636f5670aef04847 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Fri, 23 Nov 2018 13:31:00 +0100
|
||||
Subject: [PATCH 1/2] HID: asus: Add event handler to catch unmapped Asus
|
||||
Vendor UsagePage codes
|
||||
|
||||
Various Asus devices generate HID events using the Asus Vendor specific
|
||||
UsagePage 0xff31 and hid-asus will map these in its input_mapping for all
|
||||
devices to which it binds (independent of any quirks).
|
||||
|
||||
Add an event callback which check for unmapped (because sofar unknown)
|
||||
usages within the Asus Vendor UsagePage and log a warning for these.
|
||||
|
||||
The purpose of this patch is to help debugging / find such unmapped codes
|
||||
and add them to the asus_input_mapping() function.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/hid/hid-asus.c | 13 +++++++++++++
|
||||
1 file changed, 13 insertions(+)
|
||||
|
||||
diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c
|
||||
index a1fa2fc8c9b5..61fb5a43c1cb 100644
|
||||
--- a/drivers/hid/hid-asus.c
|
||||
+++ b/drivers/hid/hid-asus.c
|
||||
@@ -241,6 +241,18 @@ static int asus_report_input(struct asus_drvdata *drvdat, u8 *data, int size)
|
||||
return 1;
|
||||
}
|
||||
|
||||
+static int asus_event(struct hid_device *hdev, struct hid_field *field,
|
||||
+ struct hid_usage *usage, __s32 value)
|
||||
+{
|
||||
+ if ((usage->hid & HID_USAGE_PAGE) == 0xff310000 &&
|
||||
+ (usage->hid & HID_USAGE) != 0x00 && !usage->type) {
|
||||
+ hid_warn(hdev, "Unmapped Asus vendor usagepage code 0x%02x\n",
|
||||
+ usage->hid & HID_USAGE);
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static int asus_raw_event(struct hid_device *hdev,
|
||||
struct hid_report *report, u8 *data, int size)
|
||||
{
|
||||
@@ -832,6 +844,7 @@ static struct hid_driver asus_driver = {
|
||||
#ifdef CONFIG_PM
|
||||
.reset_resume = asus_reset_resume,
|
||||
#endif
|
||||
+ .event = asus_event,
|
||||
.raw_event = asus_raw_event
|
||||
};
|
||||
module_hid_driver(asus_driver);
|
||||
--
|
||||
2.19.2
|
||||
|
||||
From 53cb4c986eaedd2cfa161932b36d80c70d947e9e Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Fri, 23 Nov 2018 13:44:27 +0100
|
||||
Subject: [PATCH 2/2] HID: asus: Add support for the ASUS FX503VD laptop
|
||||
|
||||
The ASUS FX503VD laptop uses an USB keyboard with several hotkeys
|
||||
which use the Asus Vendor specific UsagePage.
|
||||
|
||||
This uses two usage-codes within the page which have not been seen
|
||||
before, 0x7c for its mic-mute hotkey and 0x99 for Fn+F5 which has
|
||||
a "fan" symbol as hotkey symbol on the keyb. we map this to KEY_PROG4
|
||||
(PROG1-PROG3 are already used).
|
||||
|
||||
This commit adds the mappings for the 2 new usage codes and the USB-ids
|
||||
for this keyboard to the hid-asus driver.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/hid/hid-asus.c | 7 +++++++
|
||||
drivers/hid/hid-ids.h | 1 +
|
||||
2 files changed, 8 insertions(+)
|
||||
|
||||
diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c
|
||||
index 61fb5a43c1cb..ab8bd40a77ed 100644
|
||||
--- a/drivers/hid/hid-asus.c
|
||||
+++ b/drivers/hid/hid-asus.c
|
||||
@@ -522,6 +522,7 @@ static int asus_input_mapping(struct hid_device *hdev,
|
||||
case 0x20: asus_map_key_clear(KEY_BRIGHTNESSUP); break;
|
||||
case 0x35: asus_map_key_clear(KEY_DISPLAY_OFF); break;
|
||||
case 0x6c: asus_map_key_clear(KEY_SLEEP); break;
|
||||
+ case 0x7c: asus_map_key_clear(KEY_MICMUTE); break;
|
||||
case 0x82: asus_map_key_clear(KEY_CAMERA); break;
|
||||
case 0x88: asus_map_key_clear(KEY_RFKILL); break;
|
||||
case 0xb5: asus_map_key_clear(KEY_CALC); break;
|
||||
@@ -540,6 +541,9 @@ static int asus_input_mapping(struct hid_device *hdev,
|
||||
/* Fn+Space Power4Gear Hybrid */
|
||||
case 0x5c: asus_map_key_clear(KEY_PROG3); break;
|
||||
|
||||
+ /* Fn+F5 "fan" symbol on FX503VD */
|
||||
+ case 0x99: asus_map_key_clear(KEY_PROG4); break;
|
||||
+
|
||||
default:
|
||||
/* ASUS lazily declares 256 usages, ignore the rest,
|
||||
* as some make the keyboard appear as a pointer device. */
|
||||
@@ -817,6 +821,9 @@ static const struct hid_device_id asus_devices[] = {
|
||||
USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD2), QUIRK_USE_KBD_BACKLIGHT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
|
||||
USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD3), QUIRK_G752_KEYBOARD },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
|
||||
+ USB_DEVICE_ID_ASUSTEK_FX503VD_KEYBOARD),
|
||||
+ QUIRK_USE_KBD_BACKLIGHT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
|
||||
USB_DEVICE_ID_ASUSTEK_T100TA_KEYBOARD),
|
||||
QUIRK_T100_KEYBOARD | QUIRK_NO_CONSUMER_USAGES },
|
||||
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
|
||||
index ed35c9a9a110..4206428c0ba2 100644
|
||||
--- a/drivers/hid/hid-ids.h
|
||||
+++ b/drivers/hid/hid-ids.h
|
||||
@@ -190,6 +190,7 @@
|
||||
#define USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD1 0x1854
|
||||
#define USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD2 0x1837
|
||||
#define USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD3 0x1822
|
||||
+#define USB_DEVICE_ID_ASUSTEK_FX503VD_KEYBOARD 0x1869
|
||||
|
||||
#define USB_VENDOR_ID_ATEN 0x0557
|
||||
#define USB_DEVICE_ID_ATEN_UC100KM 0x2004
|
||||
--
|
||||
2.19.2
|
||||
|
||||
154
ath10k-fix-memory-leak.patch
Normal file
154
ath10k-fix-memory-leak.patch
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
From patchwork Fri Sep 20 01:36:26 2019
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Navid Emamdoost <navid.emamdoost@gmail.com>
|
||||
X-Patchwork-Id: 11153701
|
||||
Return-Path:
|
||||
<SRS0=bWbZ=XP=lists.infradead.org=ath10k-bounces+patchwork-ath10k=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 D3F0714DB
|
||||
for <patchwork-ath10k@patchwork.kernel.org>;
|
||||
Fri, 20 Sep 2019 01:36:54 +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 B1A2E206C2
|
||||
for <patchwork-ath10k@patchwork.kernel.org>;
|
||||
Fri, 20 Sep 2019 01:36:54 +0000 (UTC)
|
||||
Authentication-Results: mail.kernel.org;
|
||||
dkim=pass (2048-bit key) header.d=lists.infradead.org
|
||||
header.i=@lists.infradead.org header.b="bhsKgarK";
|
||||
dkim=fail reason="signature verification failed" (2048-bit key)
|
||||
header.d=gmail.com header.i=@gmail.com header.b="nljLTTHa"
|
||||
DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B1A2E206C2
|
||||
Authentication-Results: mail.kernel.org;
|
||||
dmarc=fail (p=none dis=none) header.from=gmail.com
|
||||
Authentication-Results: mail.kernel.org;
|
||||
spf=none
|
||||
smtp.mailfrom=ath10k-bounces+patchwork-ath10k=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:MIME-Version:Cc:List-Subscribe:
|
||||
List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id: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:In-Reply-To:
|
||||
References:List-Owner; bh=TgqIPzTUSDBMffxK6MmqtQ+I81SfWmrbmWLuWLbhwV8=; b=bhs
|
||||
KgarKUaVoFaf/6TPo+T+LIemPUgT0DioZ9Aa4cXD7m02vV5SrBodW911B9amgDGQ4ipx7UyAgOokS
|
||||
QqumgU8MLbC9VEmDHseDYkrMDJvPAVL/+Ou5bAAoDDa4G14hJi1RWh5lsdIJBMKmjMI9KcW7qFdEj
|
||||
eQ6JBoJXliaYp31BoAPEbyBnG4b8RQxO6wT9wA+/Bs8gR8bBQN9Wjo7zsIKHobQbKfAXTTRwn46dt
|
||||
J7kt19264hkIv2Dr3UQc7W8kYL09TmllYFjEGYTOuGFEOoHlejt6CpbUnh0mdPtDggPPxsQ+e/f/h
|
||||
0dGNUqgR/L7R5/70DbHnF24DnXzwfQw==;
|
||||
Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org)
|
||||
by bombadil.infradead.org with esmtp (Exim 4.92.2 #3 (Red Hat Linux))
|
||||
id 1iB7qu-0006An-U6; Fri, 20 Sep 2019 01:36:52 +0000
|
||||
Received: from mail-io1-xd43.google.com ([2607:f8b0:4864:20::d43])
|
||||
by bombadil.infradead.org with esmtps (Exim 4.92.2 #3 (Red Hat Linux))
|
||||
id 1iB7qr-0006A2-PC
|
||||
for ath10k@lists.infradead.org; Fri, 20 Sep 2019 01:36:51 +0000
|
||||
Received: by mail-io1-xd43.google.com with SMTP id q10so12531160iop.2
|
||||
for <ath10k@lists.infradead.org>; Thu, 19 Sep 2019 18:36:47 -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;
|
||||
bh=2vkYM2Vw9GpvccAiSSIMhifEzfuK8Ld4R3bwXVgh1ps=;
|
||||
b=nljLTTHaQr3RenMHyxOGrtAwE/I0ES0GK9UJLdYkS7iEalzRrwu+/ygif0A/YnEFuE
|
||||
fMLFG5zBRN2I7SpqvTBqaxAYJbA+a5Nnb5ymeV3s6Ef+CcGHE165IRfi+4dxEt/RvV3k
|
||||
4CjBDTDWGnnBO1wfDcS0WW9TqjJEoxFKWNCL+8oAzUyMten4zs8XPRUPlZVc5dHnkqC9
|
||||
LmLWnaSBjm2g5JG0GJKSrT8KrYP2mv4yGUR0HaWruQWwfQQ8NJc2RyXm1Ml99KZkoU73
|
||||
TG98jQSy2dcHrVqaNRfpAtyj0WEwXdLqMfT1ggk69p1ZfC7ol/7QEQxzgDIU0EFn2r59
|
||||
owvA==
|
||||
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;
|
||||
bh=2vkYM2Vw9GpvccAiSSIMhifEzfuK8Ld4R3bwXVgh1ps=;
|
||||
b=h6uidvjJA/lvtevOi6n+lWV9vjtx5XM1d7kRlAFgObUBjJMIap329Jxa7uA0de8dx/
|
||||
4ANBCQj9/8psgTYwWqBv0bJH+7IC+ewxZb2m3z1dMYwsFp8coTyMryaBVWb4trh0My3B
|
||||
XT2OseKTL0iAiy35/SDbWV/5FljTuVmto5Jgglq6lB3uPpQVIGu46UY8kNKwuIdNseow
|
||||
y4r+4w82KCHMoANJmlEPlFYb7xnmENPIdx0ZITs6ISjjvTICaf8nyA3OgqPCI5l3/DCb
|
||||
3plewsEuTwGiFXPqJx2ldY3gIwfH8D7w1MLxadUUL6o2fDRt0ZjFbJuUk/tiX/EM5MOL
|
||||
W3dQ==
|
||||
X-Gm-Message-State: APjAAAWIX+IMQ2tM7gV9yX2n6iqisUO1ysXCEYfl/P1BcWwlYgTk8xNq
|
||||
/djn9P594uwGss08Ku8JA9E=
|
||||
X-Google-Smtp-Source:
|
||||
APXvYqzLPqJkNUviwDSfcaSYJH+eUFOLc0fBeZpgji797e/U5UAY6XAi9Cq7iKldElsnElvAmFWNCw==
|
||||
X-Received: by 2002:a6b:8f15:: with SMTP id r21mr3490587iod.259.1568943406715;
|
||||
Thu, 19 Sep 2019 18:36:46 -0700 (PDT)
|
||||
Received: from cs-dulles.cs.umn.edu (cs-dulles.cs.umn.edu. [128.101.35.54])
|
||||
by smtp.googlemail.com with ESMTPSA id x12sm335602ioh.76.2019.09.19.18.36.45
|
||||
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
|
||||
Thu, 19 Sep 2019 18:36:45 -0700 (PDT)
|
||||
From: Navid Emamdoost <navid.emamdoost@gmail.com>
|
||||
To:
|
||||
Subject: [PATCH] ath10k: fix memory leak
|
||||
Date: Thu, 19 Sep 2019 20:36:26 -0500
|
||||
Message-Id: <20190920013632.30796-1-navid.emamdoost@gmail.com>
|
||||
X-Mailer: git-send-email 2.17.1
|
||||
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
|
||||
X-CRM114-CacheID: sfid-20190919_183649_845813_A1A80F7F
|
||||
X-CRM114-Status: UNSURE ( 7.25 )
|
||||
X-CRM114-Notice: Please train this message.
|
||||
X-Spam-Score: -0.2 (/)
|
||||
X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary:
|
||||
Content analysis details: (-0.2 points)
|
||||
pts rule name description
|
||||
---- ----------------------
|
||||
--------------------------------------------------
|
||||
-0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/,
|
||||
no trust [2607:f8b0:4864:20:0:0:0:d43 listed in]
|
||||
[list.dnswl.org]
|
||||
0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
|
||||
-0.0 SPF_PASS SPF: sender matches SPF record
|
||||
0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail
|
||||
provider (navid.emamdoost[at]gmail.com)
|
||||
-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
|
||||
-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from
|
||||
author's domain
|
||||
-0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from
|
||||
envelope-from domain
|
||||
0.1 DKIM_SIGNED Message has a DKIM or DK signature,
|
||||
not necessarily
|
||||
valid
|
||||
X-BeenThere: ath10k@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.29
|
||||
Precedence: list
|
||||
List-Id: <ath10k.lists.infradead.org>
|
||||
List-Unsubscribe: <http://lists.infradead.org/mailman/options/ath10k>,
|
||||
<mailto:ath10k-request@lists.infradead.org?subject=unsubscribe>
|
||||
List-Archive: <http://lists.infradead.org/pipermail/ath10k/>
|
||||
List-Post: <mailto:ath10k@lists.infradead.org>
|
||||
List-Help: <mailto:ath10k-request@lists.infradead.org?subject=help>
|
||||
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/ath10k>,
|
||||
<mailto:ath10k-request@lists.infradead.org?subject=subscribe>
|
||||
Cc: linux-wireless@vger.kernel.org, kjlu@umn.edu,
|
||||
linux-kernel@vger.kernel.org,
|
||||
ath10k@lists.infradead.org, emamd001@umn.edu, smccaman@umn.edu,
|
||||
netdev@vger.kernel.org, "David S. Miller" <davem@davemloft.net>,
|
||||
Kalle Valo <kvalo@codeaurora.org>,
|
||||
Navid Emamdoost <navid.emamdoost@gmail.com>
|
||||
MIME-Version: 1.0
|
||||
Sender: "ath10k" <ath10k-bounces@lists.infradead.org>
|
||||
Errors-To:
|
||||
ath10k-bounces+patchwork-ath10k=patchwork.kernel.org@lists.infradead.org
|
||||
|
||||
In ath10k_usb_hif_tx_sg the allocated urb should be released if
|
||||
usb_submit_urb fails.
|
||||
|
||||
Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
|
||||
---
|
||||
drivers/net/wireless/ath/ath10k/usb.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/drivers/net/wireless/ath/ath10k/usb.c b/drivers/net/wireless/ath/ath10k/usb.c
|
||||
index e1420f67f776..730ed22e08a0 100644
|
||||
--- a/drivers/net/wireless/ath/ath10k/usb.c
|
||||
+++ b/drivers/net/wireless/ath/ath10k/usb.c
|
||||
@@ -435,6 +435,7 @@ static int ath10k_usb_hif_tx_sg(struct ath10k *ar, u8 pipe_id,
|
||||
ath10k_dbg(ar, ATH10K_DBG_USB_BULK,
|
||||
"usb bulk transmit failed: %d\n", ret);
|
||||
usb_unanchor_urb(urb);
|
||||
+ usb_free_urb(urb);
|
||||
ret = -EINVAL;
|
||||
goto err_free_urb_to_pipe;
|
||||
}
|
||||
|
|
@ -1,301 +0,0 @@
|
|||
From 624e057827435de39274c34e20c2d937cb9d4ac3 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Thu, 31 May 2018 19:08:12 +0100
|
||||
Subject: [PATCH] bcm2835: cpufreq: add CPU frequency control driver
|
||||
|
||||
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
|
||||
---
|
||||
arch/arm/boot/dts/bcm2835-rpi.dtsi | 7 ++
|
||||
arch/arm/boot/dts/bcm2837.dtsi | 33 +++++++
|
||||
drivers/clk/bcm/Kconfig | 8 ++
|
||||
drivers/clk/bcm/Makefile | 1 +
|
||||
drivers/clk/bcm/clk-raspberrypi.c | 138 +++++++++++++++++++++++++++++
|
||||
5 files changed, 187 insertions(+)
|
||||
create mode 100644 drivers/clk/bcm/clk-raspberrypi.c
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
|
||||
index 6c3cfaa77f3d..e6d1627ec421 100644
|
||||
--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
|
||||
@@ -35,6 +35,13 @@
|
||||
reg = <0x7e00b840 0xf>;
|
||||
interrupts = <0 2>;
|
||||
};
|
||||
+
|
||||
+ arm_clk: arm_clk {
|
||||
+ compatible = "raspberrypi,bcm2835-cpu";
|
||||
+ clocks = <&clocks BCM2835_CLOCK_VPU>;
|
||||
+ #clock-cells = <0>;
|
||||
+ clock-output-names = "arm";
|
||||
+ };
|
||||
};
|
||||
};
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm2837.dtsi b/arch/arm/boot/dts/bcm2837.dtsi
|
||||
index 7704bb029605..c24176282a1f 100644
|
||||
--- a/arch/arm/boot/dts/bcm2837.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm2837.dtsi
|
||||
@@ -38,6 +38,9 @@
|
||||
reg = <0>;
|
||||
enable-method = "spin-table";
|
||||
cpu-release-addr = <0x0 0x000000d8>;
|
||||
+ clocks = <&arm_clk>;
|
||||
+ clock-names = "cpu";
|
||||
+ operating-points-v2 = <&cpu0_opp_table>;
|
||||
};
|
||||
|
||||
cpu1: cpu@1 {
|
||||
@@ -46,6 +49,9 @@
|
||||
reg = <1>;
|
||||
enable-method = "spin-table";
|
||||
cpu-release-addr = <0x0 0x000000e0>;
|
||||
+ clocks = <&arm_clk>;
|
||||
+ clock-names = "cpu";
|
||||
+ operating-points-v2 = <&cpu0_opp_table>;
|
||||
};
|
||||
|
||||
cpu2: cpu@2 {
|
||||
@@ -54,6 +60,9 @@
|
||||
reg = <2>;
|
||||
enable-method = "spin-table";
|
||||
cpu-release-addr = <0x0 0x000000e8>;
|
||||
+ clocks = <&arm_clk>;
|
||||
+ clock-names = "cpu";
|
||||
+ operating-points-v2 = <&cpu0_opp_table>;
|
||||
};
|
||||
|
||||
cpu3: cpu@3 {
|
||||
@@ -62,6 +71,30 @@
|
||||
reg = <3>;
|
||||
enable-method = "spin-table";
|
||||
cpu-release-addr = <0x0 0x000000f0>;
|
||||
+ clocks = <&arm_clk>;
|
||||
+ clock-names = "cpu";
|
||||
+ operating-points-v2 = <&cpu0_opp_table>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ cpu0_opp_table: opp_table0 {
|
||||
+ compatible = "operating-points-v2";
|
||||
+ opp-shared;
|
||||
+
|
||||
+ opp@600000000 {
|
||||
+ opp-hz = /bits/ 64 <600000000>;
|
||||
+ clock-latency-ns = <355000>;
|
||||
+ opp-suspend;
|
||||
+ };
|
||||
+
|
||||
+ opp@900000000 {
|
||||
+ opp-hz = /bits/ 64 <900000000>;
|
||||
+ clock-latency-ns = <355000>;
|
||||
+ };
|
||||
+
|
||||
+ opp@1200000000 {
|
||||
+ opp-hz = /bits/ 64 <1200000000>;
|
||||
+ clock-latency-ns = <355000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
diff --git a/drivers/clk/bcm/Kconfig b/drivers/clk/bcm/Kconfig
|
||||
index 4c4bd85f707c..e40bd19da22b 100644
|
||||
--- a/drivers/clk/bcm/Kconfig
|
||||
+++ b/drivers/clk/bcm/Kconfig
|
||||
@@ -63,3 +63,11 @@ config CLK_BCM_SR
|
||||
default ARCH_BCM_IPROC
|
||||
help
|
||||
Enable common clock framework support for the Broadcom Stingray SoC
|
||||
+
|
||||
+config CLK_RASPBERRYPI_CPU
|
||||
+ bool "Raspberry Pi CPU clock driver"
|
||||
+ depends on ARCH_BCM2835 || (COMPILE_TEST && OF)
|
||||
+ depends on RASPBERRYPI_FIRMWARE=y
|
||||
+ help
|
||||
+ This enables support for the RPi CPU clock which can be adjusted
|
||||
+ via the RPi firmware.
|
||||
diff --git a/drivers/clk/bcm/Makefile b/drivers/clk/bcm/Makefile
|
||||
index 002661d39128..a028b0a90b6e 100644
|
||||
--- a/drivers/clk/bcm/Makefile
|
||||
+++ b/drivers/clk/bcm/Makefile
|
||||
@@ -8,6 +8,7 @@ obj-$(CONFIG_COMMON_CLK_IPROC) += clk-iproc-armpll.o clk-iproc-pll.o clk-iproc-a
|
||||
obj-$(CONFIG_ARCH_BCM2835) += clk-bcm2835.o
|
||||
obj-$(CONFIG_ARCH_BCM2835) += clk-bcm2835-aux.o
|
||||
obj-$(CONFIG_ARCH_BCM_53573) += clk-bcm53573-ilp.o
|
||||
+obj-$(CONFIG_CLK_RASPBERRYPI_CPU) += clk-raspberrypi.o
|
||||
obj-$(CONFIG_CLK_BCM_CYGNUS) += clk-cygnus.o
|
||||
obj-$(CONFIG_CLK_BCM_HR2) += clk-hr2.o
|
||||
obj-$(CONFIG_CLK_BCM_NSP) += clk-nsp.o
|
||||
diff --git a/drivers/clk/bcm/clk-raspberrypi.c b/drivers/clk/bcm/clk-raspberrypi.c
|
||||
new file mode 100644
|
||||
index 000000000000..046efc822a59
|
||||
--- /dev/null
|
||||
+++ b/drivers/clk/bcm/clk-raspberrypi.c
|
||||
@@ -0,0 +1,138 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0+
|
||||
+/*
|
||||
+ * Raspberry Pi CPU clock driver
|
||||
+ *
|
||||
+ * Copyright (C) 2018 Stefan Wahren <stefan.wahren@i2se.com>
|
||||
+ */
|
||||
+
|
||||
+#include <linux/clk.h>
|
||||
+#include <linux/clk-provider.h>
|
||||
+#include <linux/device.h>
|
||||
+#include <linux/err.h>
|
||||
+#include <linux/module.h>
|
||||
+#include <linux/of_device.h>
|
||||
+#include <linux/platform_device.h>
|
||||
+#include <linux/slab.h>
|
||||
+#include <soc/bcm2835/raspberrypi-firmware.h>
|
||||
+
|
||||
+#define VCMSG_ID_ARM_CLOCK 0x000000003 /* Clock/Voltage ID's */
|
||||
+
|
||||
+struct rpi_cpu_clkgen {
|
||||
+ struct clk_hw hw;
|
||||
+ struct rpi_firmware *fw;
|
||||
+};
|
||||
+
|
||||
+/* tag part of the message */
|
||||
+struct prop {
|
||||
+ u32 id; /* the ID of the clock/voltage to get or set */
|
||||
+ u32 val; /* the value (e.g. rate (in Hz)) to set */
|
||||
+} __packed;
|
||||
+
|
||||
+static int rpi_cpu_clock_property(struct rpi_firmware *fw, u32 tag, u32 *val)
|
||||
+{
|
||||
+ int ret;
|
||||
+ struct prop msg = {
|
||||
+ .id = VCMSG_ID_ARM_CLOCK,
|
||||
+ .val = *val,
|
||||
+ };
|
||||
+
|
||||
+ ret = rpi_firmware_property(fw, tag, &msg, sizeof(msg));
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ *val = msg.val;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static unsigned long rpi_cpu_get_rate(struct clk_hw *hw,
|
||||
+ unsigned long parent_rate)
|
||||
+{
|
||||
+ struct rpi_cpu_clkgen *cpu = container_of(hw, struct rpi_cpu_clkgen, hw);
|
||||
+ u32 rate = 0;
|
||||
+
|
||||
+ rpi_cpu_clock_property(cpu->fw, RPI_FIRMWARE_GET_CLOCK_RATE, &rate);
|
||||
+
|
||||
+ return rate;
|
||||
+}
|
||||
+
|
||||
+static long rpi_cpu_round_rate(struct clk_hw *hw, unsigned long rate,
|
||||
+ unsigned long *parent_rate)
|
||||
+{
|
||||
+ return rate;
|
||||
+}
|
||||
+
|
||||
+static int rpi_cpu_set_rate(struct clk_hw *hw, unsigned long rate,
|
||||
+ unsigned long parent_rate)
|
||||
+{
|
||||
+ struct rpi_cpu_clkgen *cpu = container_of(hw, struct rpi_cpu_clkgen, hw);
|
||||
+ u32 new_rate = rate;
|
||||
+
|
||||
+ return rpi_cpu_clock_property(cpu->fw, RPI_FIRMWARE_SET_CLOCK_RATE,
|
||||
+ &new_rate);
|
||||
+}
|
||||
+
|
||||
+static const struct clk_ops rpi_cpu_ops = {
|
||||
+ .recalc_rate = rpi_cpu_get_rate,
|
||||
+ .round_rate = rpi_cpu_round_rate,
|
||||
+ .set_rate = rpi_cpu_set_rate,
|
||||
+};
|
||||
+
|
||||
+static int rpi_cpu_probe(struct platform_device *pdev)
|
||||
+{
|
||||
+ struct device *dev = &pdev->dev;
|
||||
+ struct device_node *fw_node;
|
||||
+ struct rpi_cpu_clkgen *cpu;
|
||||
+ struct clk_init_data *init;
|
||||
+ int ret;
|
||||
+
|
||||
+ cpu = devm_kzalloc(dev, sizeof(*cpu), GFP_KERNEL);
|
||||
+ if (!cpu)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
+ init = devm_kzalloc(dev, sizeof(*init), GFP_KERNEL);
|
||||
+ if (!init)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
+ fw_node = of_find_compatible_node(NULL, NULL,
|
||||
+ "raspberrypi,bcm2835-firmware");
|
||||
+ if (!fw_node) {
|
||||
+ dev_err(dev, "Missing firmware node\n");
|
||||
+ return -ENOENT;
|
||||
+ }
|
||||
+
|
||||
+ cpu->fw = rpi_firmware_get(fw_node);
|
||||
+ of_node_put(fw_node);
|
||||
+ if (!cpu->fw)
|
||||
+ return -EPROBE_DEFER;
|
||||
+
|
||||
+ init->name = dev->of_node->name;
|
||||
+ init->ops = &rpi_cpu_ops;
|
||||
+
|
||||
+ cpu->hw.init = init;
|
||||
+ ret = devm_clk_hw_register(dev, &cpu->hw);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ return of_clk_add_hw_provider(dev->of_node, of_clk_hw_simple_get,
|
||||
+ &cpu->hw);
|
||||
+}
|
||||
+
|
||||
+static const struct of_device_id rpi_cpu_of_match[] = {
|
||||
+ { .compatible = "raspberrypi,bcm2835-cpu", },
|
||||
+ {},
|
||||
+};
|
||||
+MODULE_DEVICE_TABLE(of, rpi_cpu_of_match);
|
||||
+
|
||||
+static struct platform_driver rpi_cpu_driver = {
|
||||
+ .driver = {
|
||||
+ .name = "raspberrypi-cpu",
|
||||
+ .of_match_table = rpi_cpu_of_match,
|
||||
+ },
|
||||
+ .probe = rpi_cpu_probe,
|
||||
+};
|
||||
+builtin_platform_driver(rpi_cpu_driver);
|
||||
+
|
||||
+MODULE_AUTHOR("Stefan Wahren <stefan.wahren@i2se.com>");
|
||||
+MODULE_DESCRIPTION("Raspberry Pi CPU clock driver");
|
||||
+MODULE_LICENSE("GPL v2");
|
||||
--
|
||||
2.17.0
|
||||
|
||||
From 40a82f71737891581dcbe45331d15a29dd3e7805 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Mon, 4 Jun 2018 09:14:10 +0100
|
||||
Subject: [PATCH 7/7] add 1.4 ghz OPP for the 3B+
|
||||
|
||||
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
|
||||
---
|
||||
arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts
|
||||
index 4adb85e66be3..aaefb078f391 100644
|
||||
--- a/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts
|
||||
+++ b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts
|
||||
@@ -106,3 +106,10 @@
|
||||
pinctrl-0 = <&uart1_gpio14>;
|
||||
status = "okay";
|
||||
};
|
||||
+
|
||||
+&cpu0_opp_table {
|
||||
+ opp@1400000000 {
|
||||
+ opp-hz = /bits/ 64 <1400000000>;
|
||||
+ clock-latency-ns = <355000>;
|
||||
+ };
|
||||
+};
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
@ -1,403 +0,0 @@
|
|||
From be3035e3627d2570de4c2c612ecd095968986437 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
Date: Fri, 25 May 2018 21:24:34 +0200
|
||||
Subject: [PATCH 1/4] ARM: bcm2835: Add GET_THROTTLED firmware property
|
||||
|
||||
Recent Raspberry Pi firmware provides a mailbox property to detect
|
||||
under-voltage conditions. Here is the current definition.
|
||||
|
||||
The u32 value returned by the firmware is divided into 2 parts:
|
||||
- lower 16-bits are the live value
|
||||
- upper 16-bits are the history or sticky value
|
||||
|
||||
Bits:
|
||||
0: undervoltage
|
||||
1: arm frequency capped
|
||||
2: currently throttled
|
||||
16: undervoltage has occurred
|
||||
17: arm frequency capped has occurred
|
||||
18: throttling has occurred
|
||||
|
||||
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
Signed-off-by: Eric Anholt <eric@anholt.net>
|
||||
Reviewed-by: Eric Anholt <eric@anholt.net>
|
||||
---
|
||||
include/soc/bcm2835/raspberrypi-firmware.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h
|
||||
index 8ee8991aa099a..c4a5c9e9fb478 100644
|
||||
--- a/include/soc/bcm2835/raspberrypi-firmware.h
|
||||
+++ b/include/soc/bcm2835/raspberrypi-firmware.h
|
||||
@@ -75,6 +75,7 @@ enum rpi_firmware_property_tag {
|
||||
RPI_FIRMWARE_GET_EDID_BLOCK = 0x00030020,
|
||||
RPI_FIRMWARE_GET_CUSTOMER_OTP = 0x00030021,
|
||||
RPI_FIRMWARE_GET_DOMAIN_STATE = 0x00030030,
|
||||
+ RPI_FIRMWARE_GET_THROTTLED = 0x00030046,
|
||||
RPI_FIRMWARE_SET_CLOCK_STATE = 0x00038001,
|
||||
RPI_FIRMWARE_SET_CLOCK_RATE = 0x00038002,
|
||||
RPI_FIRMWARE_SET_VOLTAGE = 0x00038003,
|
||||
--
|
||||
2.17.1
|
||||
|
||||
From 3c493c885cf8abf0986c9877875161dfd0a29273 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
Date: Fri, 25 May 2018 21:24:35 +0200
|
||||
Subject: [PATCH 2/4] hwmon: Add support for RPi voltage sensor
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Currently there is no easy way to detect undervoltage conditions on a
|
||||
remote Raspberry Pi. This hwmon driver retrieves the state of the
|
||||
undervoltage sensor via mailbox interface. The handling based on
|
||||
Noralf's modifications to the downstream firmware driver. In case of
|
||||
an undervoltage condition only an entry is written to the kernel log.
|
||||
|
||||
CC: "Noralf Trønnes" <noralf@tronnes.org>
|
||||
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
Signed-off-by: Eric Anholt <eric@anholt.net>
|
||||
Acked-by: Guenter Roeck <linux@roeck-us.net>
|
||||
---
|
||||
Documentation/hwmon/raspberrypi-hwmon | 22 ++++
|
||||
drivers/hwmon/Kconfig | 10 ++
|
||||
drivers/hwmon/Makefile | 1 +
|
||||
drivers/hwmon/raspberrypi-hwmon.c | 166 ++++++++++++++++++++++++++
|
||||
4 files changed, 199 insertions(+)
|
||||
create mode 100644 Documentation/hwmon/raspberrypi-hwmon
|
||||
create mode 100644 drivers/hwmon/raspberrypi-hwmon.c
|
||||
|
||||
diff --git a/Documentation/hwmon/raspberrypi-hwmon b/Documentation/hwmon/raspberrypi-hwmon
|
||||
new file mode 100644
|
||||
index 0000000000000..3c92e2cb52d60
|
||||
--- /dev/null
|
||||
+++ b/Documentation/hwmon/raspberrypi-hwmon
|
||||
@@ -0,0 +1,22 @@
|
||||
+Kernel driver raspberrypi-hwmon
|
||||
+===============================
|
||||
+
|
||||
+Supported boards:
|
||||
+ * Raspberry Pi A+ (via GPIO on SoC)
|
||||
+ * Raspberry Pi B+ (via GPIO on SoC)
|
||||
+ * Raspberry Pi 2 B (via GPIO on SoC)
|
||||
+ * Raspberry Pi 3 B (via GPIO on port expander)
|
||||
+ * Raspberry Pi 3 B+ (via PMIC)
|
||||
+
|
||||
+Author: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
+
|
||||
+Description
|
||||
+-----------
|
||||
+
|
||||
+This driver periodically polls a mailbox property of the VC4 firmware to detect
|
||||
+undervoltage conditions.
|
||||
+
|
||||
+Sysfs entries
|
||||
+-------------
|
||||
+
|
||||
+in0_lcrit_alarm Undervoltage alarm
|
||||
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
|
||||
index f10840ad465c2..fdaab8229686f 100644
|
||||
--- a/drivers/hwmon/Kconfig
|
||||
+++ b/drivers/hwmon/Kconfig
|
||||
@@ -1298,6 +1298,16 @@ config SENSORS_PWM_FAN
|
||||
This driver can also be built as a module. If so, the module
|
||||
will be called pwm-fan.
|
||||
|
||||
+config SENSORS_RASPBERRYPI_HWMON
|
||||
+ tristate "Raspberry Pi voltage monitor"
|
||||
+ depends on RASPBERRYPI_FIRMWARE || COMPILE_TEST
|
||||
+ help
|
||||
+ If you say yes here you get support for voltage sensor on the
|
||||
+ Raspberry Pi.
|
||||
+
|
||||
+ This driver can also be built as a module. If so, the module
|
||||
+ will be called raspberrypi-hwmon.
|
||||
+
|
||||
config SENSORS_SHT15
|
||||
tristate "Sensiron humidity and temperature sensors. SHT15 and compat."
|
||||
depends on GPIOLIB || COMPILE_TEST
|
||||
diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
|
||||
index e7d52a36e6c4f..a9297703fd6e4 100644
|
||||
--- a/drivers/hwmon/Makefile
|
||||
+++ b/drivers/hwmon/Makefile
|
||||
@@ -141,6 +141,7 @@ obj-$(CONFIG_SENSORS_PC87427) += pc87427.o
|
||||
obj-$(CONFIG_SENSORS_PCF8591) += pcf8591.o
|
||||
obj-$(CONFIG_SENSORS_POWR1220) += powr1220.o
|
||||
obj-$(CONFIG_SENSORS_PWM_FAN) += pwm-fan.o
|
||||
+obj-$(CONFIG_SENSORS_RASPBERRYPI_HWMON) += raspberrypi-hwmon.o
|
||||
obj-$(CONFIG_SENSORS_S3C) += s3c-hwmon.o
|
||||
obj-$(CONFIG_SENSORS_SCH56XX_COMMON)+= sch56xx-common.o
|
||||
obj-$(CONFIG_SENSORS_SCH5627) += sch5627.o
|
||||
diff --git a/drivers/hwmon/raspberrypi-hwmon.c b/drivers/hwmon/raspberrypi-hwmon.c
|
||||
new file mode 100644
|
||||
index 0000000000000..fb4e4a6bb1f63
|
||||
--- /dev/null
|
||||
+++ b/drivers/hwmon/raspberrypi-hwmon.c
|
||||
@@ -0,0 +1,166 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0+
|
||||
+/*
|
||||
+ * Raspberry Pi voltage sensor driver
|
||||
+ *
|
||||
+ * Based on firmware/raspberrypi.c by Noralf Trønnes
|
||||
+ *
|
||||
+ * Copyright (C) 2018 Stefan Wahren <stefan.wahren@i2se.com>
|
||||
+ */
|
||||
+#include <linux/device.h>
|
||||
+#include <linux/err.h>
|
||||
+#include <linux/hwmon.h>
|
||||
+#include <linux/module.h>
|
||||
+#include <linux/platform_device.h>
|
||||
+#include <linux/slab.h>
|
||||
+#include <linux/workqueue.h>
|
||||
+#include <soc/bcm2835/raspberrypi-firmware.h>
|
||||
+
|
||||
+#define UNDERVOLTAGE_STICKY_BIT BIT(16)
|
||||
+
|
||||
+struct rpi_hwmon_data {
|
||||
+ struct device *hwmon_dev;
|
||||
+ struct rpi_firmware *fw;
|
||||
+ u32 last_throttled;
|
||||
+ struct delayed_work get_values_poll_work;
|
||||
+};
|
||||
+
|
||||
+static void rpi_firmware_get_throttled(struct rpi_hwmon_data *data)
|
||||
+{
|
||||
+ u32 new_uv, old_uv, value;
|
||||
+ int ret;
|
||||
+
|
||||
+ /* Request firmware to clear sticky bits */
|
||||
+ value = 0xffff;
|
||||
+
|
||||
+ ret = rpi_firmware_property(data->fw, RPI_FIRMWARE_GET_THROTTLED,
|
||||
+ &value, sizeof(value));
|
||||
+ if (ret) {
|
||||
+ dev_err_once(data->hwmon_dev, "Failed to get throttled (%d)\n",
|
||||
+ ret);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ new_uv = value & UNDERVOLTAGE_STICKY_BIT;
|
||||
+ old_uv = data->last_throttled & UNDERVOLTAGE_STICKY_BIT;
|
||||
+ data->last_throttled = value;
|
||||
+
|
||||
+ if (new_uv == old_uv)
|
||||
+ return;
|
||||
+
|
||||
+ if (new_uv)
|
||||
+ dev_crit(data->hwmon_dev, "Undervoltage detected!\n");
|
||||
+ else
|
||||
+ dev_info(data->hwmon_dev, "Voltage normalised\n");
|
||||
+
|
||||
+ sysfs_notify(&data->hwmon_dev->kobj, NULL, "in0_lcrit_alarm");
|
||||
+}
|
||||
+
|
||||
+static void get_values_poll(struct work_struct *work)
|
||||
+{
|
||||
+ struct rpi_hwmon_data *data;
|
||||
+
|
||||
+ data = container_of(work, struct rpi_hwmon_data,
|
||||
+ get_values_poll_work.work);
|
||||
+
|
||||
+ rpi_firmware_get_throttled(data);
|
||||
+
|
||||
+ /*
|
||||
+ * We can't run faster than the sticky shift (100ms) since we get
|
||||
+ * flipping in the sticky bits that are cleared.
|
||||
+ */
|
||||
+ schedule_delayed_work(&data->get_values_poll_work, 2 * HZ);
|
||||
+}
|
||||
+
|
||||
+static int rpi_read(struct device *dev, enum hwmon_sensor_types type,
|
||||
+ u32 attr, int channel, long *val)
|
||||
+{
|
||||
+ struct rpi_hwmon_data *data = dev_get_drvdata(dev);
|
||||
+
|
||||
+ *val = !!(data->last_throttled & UNDERVOLTAGE_STICKY_BIT);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static umode_t rpi_is_visible(const void *_data, enum hwmon_sensor_types type,
|
||||
+ u32 attr, int channel)
|
||||
+{
|
||||
+ return 0444;
|
||||
+}
|
||||
+
|
||||
+static const u32 rpi_in_config[] = {
|
||||
+ HWMON_I_LCRIT_ALARM,
|
||||
+ 0
|
||||
+};
|
||||
+
|
||||
+static const struct hwmon_channel_info rpi_in = {
|
||||
+ .type = hwmon_in,
|
||||
+ .config = rpi_in_config,
|
||||
+};
|
||||
+
|
||||
+static const struct hwmon_channel_info *rpi_info[] = {
|
||||
+ &rpi_in,
|
||||
+ NULL
|
||||
+};
|
||||
+
|
||||
+static const struct hwmon_ops rpi_hwmon_ops = {
|
||||
+ .is_visible = rpi_is_visible,
|
||||
+ .read = rpi_read,
|
||||
+};
|
||||
+
|
||||
+static const struct hwmon_chip_info rpi_chip_info = {
|
||||
+ .ops = &rpi_hwmon_ops,
|
||||
+ .info = rpi_info,
|
||||
+};
|
||||
+
|
||||
+static int rpi_hwmon_probe(struct platform_device *pdev)
|
||||
+{
|
||||
+ struct device *dev = &pdev->dev;
|
||||
+ struct rpi_hwmon_data *data;
|
||||
+ int ret;
|
||||
+
|
||||
+ data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
|
||||
+ if (!data)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
+ /* Parent driver assure that firmware is correct */
|
||||
+ data->fw = dev_get_drvdata(dev->parent);
|
||||
+
|
||||
+ /* Init throttled */
|
||||
+ ret = rpi_firmware_property(data->fw, RPI_FIRMWARE_GET_THROTTLED,
|
||||
+ &data->last_throttled,
|
||||
+ sizeof(data->last_throttled));
|
||||
+
|
||||
+ data->hwmon_dev = devm_hwmon_device_register_with_info(dev, "rpi_volt",
|
||||
+ data,
|
||||
+ &rpi_chip_info,
|
||||
+ NULL);
|
||||
+
|
||||
+ INIT_DELAYED_WORK(&data->get_values_poll_work, get_values_poll);
|
||||
+ platform_set_drvdata(pdev, data);
|
||||
+
|
||||
+ if (!PTR_ERR_OR_ZERO(data->hwmon_dev))
|
||||
+ schedule_delayed_work(&data->get_values_poll_work, 2 * HZ);
|
||||
+
|
||||
+ return PTR_ERR_OR_ZERO(data->hwmon_dev);
|
||||
+}
|
||||
+
|
||||
+static int rpi_hwmon_remove(struct platform_device *pdev)
|
||||
+{
|
||||
+ struct rpi_hwmon_data *data = platform_get_drvdata(pdev);
|
||||
+
|
||||
+ cancel_delayed_work_sync(&data->get_values_poll_work);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static struct platform_driver rpi_hwmon_driver = {
|
||||
+ .probe = rpi_hwmon_probe,
|
||||
+ .remove = rpi_hwmon_remove,
|
||||
+ .driver = {
|
||||
+ .name = "raspberrypi-hwmon",
|
||||
+ },
|
||||
+};
|
||||
+module_platform_driver(rpi_hwmon_driver);
|
||||
+
|
||||
+MODULE_AUTHOR("Stefan Wahren <stefan.wahren@i2se.com>");
|
||||
+MODULE_DESCRIPTION("Raspberry Pi voltage sensor driver");
|
||||
+MODULE_LICENSE("GPL v2");
|
||||
--
|
||||
2.17.1
|
||||
|
||||
From 4ebe8673279b7afbbcbcf92094c9012a3c91f240 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
Date: Fri, 25 May 2018 21:24:36 +0200
|
||||
Subject: [PATCH 3/4] firmware: raspberrypi: Register hwmon driver
|
||||
|
||||
Since the raspberrypi-hwmon driver is tied to the VC4 firmware instead of
|
||||
particular hardware its registration should be in the firmware driver.
|
||||
|
||||
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
Signed-off-by: Eric Anholt <eric@anholt.net>
|
||||
---
|
||||
drivers/firmware/raspberrypi.c | 19 +++++++++++++++++++
|
||||
1 file changed, 19 insertions(+)
|
||||
|
||||
diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c
|
||||
index 6692888f04cfb..0602626bf72d0 100644
|
||||
--- a/drivers/firmware/raspberrypi.c
|
||||
+++ b/drivers/firmware/raspberrypi.c
|
||||
@@ -21,6 +21,8 @@
|
||||
#define MBOX_DATA28(msg) ((msg) & ~0xf)
|
||||
#define MBOX_CHAN_PROPERTY 8
|
||||
|
||||
+static struct platform_device *rpi_hwmon;
|
||||
+
|
||||
struct rpi_firmware {
|
||||
struct mbox_client cl;
|
||||
struct mbox_chan *chan; /* The property channel. */
|
||||
@@ -183,6 +185,20 @@ rpi_firmware_print_firmware_revision(struct rpi_firmware *fw)
|
||||
}
|
||||
}
|
||||
|
||||
+static void
|
||||
+rpi_register_hwmon_driver(struct device *dev, struct rpi_firmware *fw)
|
||||
+{
|
||||
+ u32 packet;
|
||||
+ int ret = rpi_firmware_property(fw, RPI_FIRMWARE_GET_THROTTLED,
|
||||
+ &packet, sizeof(packet));
|
||||
+
|
||||
+ if (ret)
|
||||
+ return;
|
||||
+
|
||||
+ rpi_hwmon = platform_device_register_data(dev, "raspberrypi-hwmon",
|
||||
+ -1, NULL, 0);
|
||||
+}
|
||||
+
|
||||
static int rpi_firmware_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct device *dev = &pdev->dev;
|
||||
@@ -209,6 +225,7 @@ static int rpi_firmware_probe(struct platform_device *pdev)
|
||||
platform_set_drvdata(pdev, fw);
|
||||
|
||||
rpi_firmware_print_firmware_revision(fw);
|
||||
+ rpi_register_hwmon_driver(dev, fw);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -217,6 +234,8 @@ static int rpi_firmware_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct rpi_firmware *fw = platform_get_drvdata(pdev);
|
||||
|
||||
+ platform_device_unregister(rpi_hwmon);
|
||||
+ rpi_hwmon = NULL;
|
||||
mbox_free_channel(fw->chan);
|
||||
|
||||
return 0;
|
||||
--
|
||||
2.17.1
|
||||
|
||||
From a0cf7704b6bc145a9f198a9b2bcf92ccc5d6b6be Mon Sep 17 00:00:00 2001
|
||||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Fri, 20 Jul 2018 12:58:37 +0100
|
||||
Subject: [PATCH] hwmon: rpi: add module alias to raspberrypi-hwmon
|
||||
|
||||
The raspberrypi-hwmon driver doesn't automatically load, although it does work
|
||||
when loaded, by adding the alias it auto loads as expected when built as a
|
||||
module. Tested on RPi2/RPi3 on 32 bit kernel and RPi3B+ on aarch64 with
|
||||
Fedora 28 and a patched 4.18 RC kernel.
|
||||
|
||||
Fixes: q3c493c885cf ("hwmon: Add support for RPi voltage sensor")
|
||||
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
|
||||
CC: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
CC: Eric Anholt <eric@anholt.net>
|
||||
---
|
||||
drivers/hwmon/raspberrypi-hwmon.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/drivers/hwmon/raspberrypi-hwmon.c b/drivers/hwmon/raspberrypi-hwmon.c
|
||||
index fb4e4a6bb1f63..be5ba46908953 100644
|
||||
--- a/drivers/hwmon/raspberrypi-hwmon.c
|
||||
+++ b/drivers/hwmon/raspberrypi-hwmon.c
|
||||
@@ -164,3 +164,4 @@ module_platform_driver(rpi_hwmon_driver);
|
||||
MODULE_AUTHOR("Stefan Wahren <stefan.wahren@i2se.com>");
|
||||
MODULE_DESCRIPTION("Raspberry Pi voltage sensor driver");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
+MODULE_ALIAS("platform:raspberrypi-hwmon");
|
||||
--
|
||||
2.17.1
|
||||
|
||||
776
bcm2835-mmc-Several-fixes-for-bcm2835-driver.patch
Normal file
776
bcm2835-mmc-Several-fixes-for-bcm2835-driver.patch
Normal file
|
|
@ -0,0 +1,776 @@
|
|||
From patchwork Sun Nov 11 20:23:55 2018
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
X-Patchwork-Id: 10677861
|
||||
Return-Path:
|
||||
<linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org>
|
||||
Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
|
||||
[172.30.200.125])
|
||||
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3920A14BD
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Sun, 11 Nov 2018 20:26:49 +0000 (UTC)
|
||||
Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
|
||||
by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2BB86296F9
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Sun, 11 Nov 2018 20:26:49 +0000 (UTC)
|
||||
Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
|
||||
id 201BB296FF; Sun, 11 Nov 2018 20:26:49 +0000 (UTC)
|
||||
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
|
||||
pdx-wl-mail.web.codeaurora.org
|
||||
X-Spam-Level:
|
||||
X-Spam-Status: No, score=-3.6 required=2.0 tests=BAYES_00,DKIM_SIGNED,
|
||||
DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1
|
||||
Received: from bombadil.infradead.org (bombadil.infradead.org
|
||||
[198.137.202.133])
|
||||
(using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits))
|
||||
(No client certificate requested)
|
||||
by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id CB68B296F9
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Sun, 11 Nov 2018 20:26:48 +0000 (UTC)
|
||||
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:MIME-Version:Cc:List-Subscribe:
|
||||
List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id: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=Tt5EgaFovmpaVblg1vCoUL5KFNHfoZnIbMjvuoDpH+A=; b=YkFJNA/0JeWm1W0agi1fs65bw4
|
||||
MuaP5Xd9dNXoiUTsnX7DaDk+CMixGON/AQSwqrRmPptbNpeKcoQ2xx08c2EyKnpDYGfzQ/HhclUjO
|
||||
ZNhvf7TNzQknjeJ00NlJBnp1PwS4Mj9YZsHHTzC8GdMwzQ1IsBTh7F+j4sDJfF78FjjC14+nCgrjS
|
||||
RiFJhoPq/9ddurP5XoM0scxQ6AziagQA3OPOalJK16OvXnyjBnZoFATKWhJ4ZbShRh6nlQoynEgIj
|
||||
5WWVXJYzjquyUo2NV0tTq2QO/LSzrYscljqgOp7Fuu2YJeAa2QMRbFddcqempXwT0DDHLnFEvJ9kM
|
||||
9VcVHbzw==;
|
||||
Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org)
|
||||
by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1gLwJh-0005jD-Dj; Sun, 11 Nov 2018 20:26:45 +0000
|
||||
Received: from merlin.infradead.org ([2001:8b0:10b:1231::1])
|
||||
by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1gLwHw-0002cc-12; Sun, 11 Nov 2018 20:24:56 +0000
|
||||
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
|
||||
d=infradead.org; s=merlin.20170209; h=References:In-Reply-To:Message-Id:Date:
|
||||
Subject:Cc:To:From:Sender:Reply-To:MIME-Version:Content-Type:
|
||||
Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:
|
||||
Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:
|
||||
List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive;
|
||||
bh=9cNmmn25bR2zeN1vbgdjE8/Y0JXpSDhSkPM5GZxTcOo=; b=mF/YFu0vAFm8Cr1Ty9Lek+w6Y
|
||||
8FRR01cy8fLjmnnNz+SVBTeEx6C/eTg7Q8SLdeJR6ql3cIeepC0WkIWJnFUCdWJ7fDkL5686pgjS7
|
||||
2+4K5o5D1t8yank/9kA464gHTrwO0u4FUse+XWEoSPiET3SmZXXsHAQkBgfzIh2gyckpB0wir7K6h
|
||||
tY5UPKoEDSbOa7uFKvARA6LA+0p+LS3mrZMFPQedoC0Uir/fMY8YYdY2Pc+vMi2nPXQ9LJ0fQ1dSe
|
||||
wqYoeLdrTYjWL2XRMPohx95JxWvxfmgEhxXIFm6RFJvO9WItczYLy90wYmLHBvv9vyVUTo+nsLmvK
|
||||
/EjccIV6w==;
|
||||
Received: from mout.kundenserver.de ([212.227.126.130])
|
||||
by merlin.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1gLwHt-0001en-8D; Sun, 11 Nov 2018 20:24:54 +0000
|
||||
Received: from localhost.localdomain ([37.4.249.153]) by
|
||||
mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis)
|
||||
id 1Mw9oq-1fWAVX1zBk-00s3Fm; Sun, 11 Nov 2018 21:24:31 +0100
|
||||
From: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
To: Eric Anholt <eric@anholt.net>, Florian Fainelli <f.fainelli@gmail.com>,
|
||||
Ulf Hansson <ulf.hansson@linaro.org>
|
||||
Subject: [PATCH V2 3/7] mmc: bcm2835: Release DMA channel on driver unload
|
||||
Date: Sun, 11 Nov 2018 21:23:55 +0100
|
||||
Message-Id: <1541967839-2847-4-git-send-email-stefan.wahren@i2se.com>
|
||||
X-Mailer: git-send-email 2.7.4
|
||||
In-Reply-To: <1541967839-2847-1-git-send-email-stefan.wahren@i2se.com>
|
||||
References: <1541967839-2847-1-git-send-email-stefan.wahren@i2se.com>
|
||||
X-Provags-ID: V03:K1:vlovEOP4OCkjuj6JaOkYwfmgG3Bal1ftfBxnk4DH9YyAICNcm4/
|
||||
BpDpxF7lig5Fm91zl9duBF8Z2zsadWWX/cwUNHvjuCQzK6hM1miYmPrje9c2so98xLmVH42
|
||||
HbkSAtFcHSGlfkxFrEQpCHQq6PbLfHsRrCjnzfeVe04uliFFd5uM+615obhLT+kxiXePpJc
|
||||
itTAXDImHIb6ZbKx/ZkrA==
|
||||
X-UI-Out-Filterresults: notjunk:1;V01:K0:SzTlMsQfrIw=:CfsWr+obS+SWBvm2OG7mgE
|
||||
HaKV29VvbZWHeGysa26FcFnpU/aMj/f1Gy1jD4K8dNbWm7JFhBgARL7w82/dLGaTZym+NfdIf
|
||||
JejZEUwNxdLoJ2pl9V/bfXHUF+NpmE29dvPnKgjRwO9sNfSPkcGWIwbAQm/ZpwBet+X3duzf4
|
||||
3adSNuB6XHBEOognFdCt37nQs+pw397+jTcb4ATjYcbgok5ftyg9PBBRivJdBXxY3nZeZagWL
|
||||
CQgDJv3jE8CEh1BPz/+UOxgAiV4Qmm6pirXi4NJ75cuHyWmhJBlWTNLxv2ocWyMD5c/korqqf
|
||||
D61K0VeaRoL1EfiZ2pzJ9T/Do4lOYybMUWDQmeEMVN8pS9hv14rn98GqoOKydOW3jpPa7pZeu
|
||||
5sc8I2WO6wSk/VOaNclHgKHyeS+zmGMMRMweDF1bkrMKIh+rdxd+zGN54JEEI+/AWWJ5p4nNw
|
||||
0ob2FknCr0jsNWv7JUc3tQkjTxSnXD0gG/bdvnl9BQUPGwz683hyzdM6Gk31NuSk7JU/NOnzr
|
||||
M3s6ysweEdzDS+wPOU9UBk5GcSxcGdlqvBN600TVgpUtaC9dwjVMk3qEot2fSp17KAUsrUaGz
|
||||
YZz7fpiyWVZzj7dgOGvQ+SgjTs/8s4rj++ONlTl2OUtmp9eDw+/bsmML5z4nvQ0oLxKIDKRML
|
||||
RMzjm6bjLc9KE6PagbagQbLHzPLziYIEkpEZmThm3Mm5oyTsh0l+ZD2hVE5yDtWVcz4wnNwbV
|
||||
J1DxWtcAdy8X6WtYT27Eh7LxL2C8YyVtMRL3whClSs0RyGv3s3oe+qwqKa0rjtQDSAjosT651
|
||||
gj54/sr39E84c9qNWL2IQmKZJs8rw==
|
||||
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
|
||||
X-CRM114-CacheID: sfid-20181111_152453_636383_8A225C26
|
||||
X-CRM114-Status: GOOD ( 10.02 )
|
||||
X-BeenThere: linux-arm-kernel@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.21
|
||||
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: Stefan Wahren <stefan.wahren@i2se.com>,
|
||||
Phil Elwell <phil@raspberrypi.org>,
|
||||
linux-mmc@vger.kernel.org, linux-rpi-kernel@lists.infradead.org,
|
||||
Michal Suchanek <msuchanek@suse.de>, linux-arm-kernel@lists.infradead.org
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset="us-ascii"
|
||||
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
|
||||
X-Virus-Scanned: ClamAV using ClamSMTP
|
||||
|
||||
We need to release the slave DMA channel during driver unload.
|
||||
|
||||
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
---
|
||||
drivers/mmc/host/bcm2835.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/drivers/mmc/host/bcm2835.c b/drivers/mmc/host/bcm2835.c
|
||||
index a251be2..45724ef 100644
|
||||
--- a/drivers/mmc/host/bcm2835.c
|
||||
+++ b/drivers/mmc/host/bcm2835.c
|
||||
@@ -1457,6 +1457,9 @@ static int bcm2835_remove(struct platform_device *pdev)
|
||||
cancel_work_sync(&host->dma_work);
|
||||
cancel_delayed_work_sync(&host->timeout_work);
|
||||
|
||||
+ if (host->dma_chan_rxtx)
|
||||
+ dma_release_channel(host->dma_chan_rxtx);
|
||||
+
|
||||
mmc_free_host(host->mmc);
|
||||
platform_set_drvdata(pdev, NULL);
|
||||
|
||||
|
||||
From patchwork Sun Nov 11 20:23:56 2018
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
X-Patchwork-Id: 10677851
|
||||
Return-Path:
|
||||
<linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org>
|
||||
Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
|
||||
[172.30.200.125])
|
||||
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9E68D14BD
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Sun, 11 Nov 2018 20:25:23 +0000 (UTC)
|
||||
Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
|
||||
by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 90CA42969C
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Sun, 11 Nov 2018 20:25:23 +0000 (UTC)
|
||||
Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
|
||||
id 8516B296F9; Sun, 11 Nov 2018 20:25:23 +0000 (UTC)
|
||||
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
|
||||
pdx-wl-mail.web.codeaurora.org
|
||||
X-Spam-Level:
|
||||
X-Spam-Status: No, score=-3.6 required=2.0 tests=BAYES_00,DKIM_SIGNED,
|
||||
DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1
|
||||
Received: from bombadil.infradead.org (bombadil.infradead.org
|
||||
[198.137.202.133])
|
||||
(using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits))
|
||||
(No client certificate requested)
|
||||
by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 3A73F2969C
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Sun, 11 Nov 2018 20:25:23 +0000 (UTC)
|
||||
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:MIME-Version:Cc:List-Subscribe:
|
||||
List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id: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=w/Gzy1FdXFoZZY/Bdgo4ocm33xnvBLknyOEQrYDJjx8=; b=AnOOH/JlAJanb/zGv8Tbhr5LUU
|
||||
zhx/OjHDpTA+1ZN4gwSeeDWVgEHvlQ5b700sWdpjiUYxzkXMAtqOBCK20C8Cz7VIX9OtfFjhm43QL
|
||||
Xn2eIdUXsmnEjJ4vN+c2GJ200/15T1/0eGCESCALXHcN5dVIfQTEXzzhuCLfDTra0py+5hc8tXRiZ
|
||||
VeEkvMwNwmyYOMh7qoN4/GtOx96Y+Swupzns5QIJnWRuyu4kcFPTRiRQI7vOLJb6ahc53c/VWEGn5
|
||||
CQKE7XPssSzcb8TnIRBhX5ChXO5V5J7hV8I6Mo467mbYpK1W7LtEkplA2JhZKcRJ3PkFXIya3Plqp
|
||||
gLf70yzQ==;
|
||||
Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org)
|
||||
by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1gLwIE-0003TU-1P; Sun, 11 Nov 2018 20:25:14 +0000
|
||||
Received: from casper.infradead.org ([2001:8b0:10b:1236::1])
|
||||
by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1gLwHv-0002cV-24; Sun, 11 Nov 2018 20:24:55 +0000
|
||||
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
|
||||
d=infradead.org; s=casper.20170209; h=References:In-Reply-To:Message-Id:Date:
|
||||
Subject:Cc:To:From:Sender:Reply-To:MIME-Version:Content-Type:
|
||||
Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:
|
||||
Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:
|
||||
List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive;
|
||||
bh=zHxxLEQsiHEhh7PVXEVNqUUxYM7wDjcAIJtcwJyNRQo=; b=DOPYo4t1y5vxpvZmFdW6hMyoZ
|
||||
pBOQEji74bYHR5OwkWKuoDPpZlQiQRU21mZwp08MZHufSo0j5CcZapSY9kRCb5KszFqO98vRCYDCW
|
||||
XP8SZxnfZV1eZ8OEGp82f8cQzrGl2FOpjKZNP1KX+0w2ibjMqcqZHppwTME1L96PAqzdexyzWJdGd
|
||||
ofA4EK/v+6FQohG4RSPQX465ZGIiui3r/C1O0WKGVim2eK+cE1wVK88X+rhHk1BoNRP/5MOpaX/v3
|
||||
O51RexHgFZ+0YlkVQTCb/Zfgd93BZb5XL/ewyaDlkmVuqCpSWOgj5jgrSkad88yRtx9A29PIbzWdB
|
||||
JahBPzjOA==;
|
||||
Received: from mout.kundenserver.de ([212.227.126.187])
|
||||
by casper.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1gLwHr-000149-RY; Sun, 11 Nov 2018 20:24:53 +0000
|
||||
Received: from localhost.localdomain ([37.4.249.153]) by
|
||||
mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis)
|
||||
id 1MvsyF-1fX0UR1Q9v-00ssSz; Sun, 11 Nov 2018 21:24:32 +0100
|
||||
From: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
To: Eric Anholt <eric@anholt.net>, Florian Fainelli <f.fainelli@gmail.com>,
|
||||
Ulf Hansson <ulf.hansson@linaro.org>
|
||||
Subject: [PATCH V2 4/7] mmc: bcm2835: Avoid possible races on data requests
|
||||
Date: Sun, 11 Nov 2018 21:23:56 +0100
|
||||
Message-Id: <1541967839-2847-5-git-send-email-stefan.wahren@i2se.com>
|
||||
X-Mailer: git-send-email 2.7.4
|
||||
In-Reply-To: <1541967839-2847-1-git-send-email-stefan.wahren@i2se.com>
|
||||
References: <1541967839-2847-1-git-send-email-stefan.wahren@i2se.com>
|
||||
X-Provags-ID: V03:K1:ZLc6V0DmkpQIP44hYwa3HseRh7CvRoA9oKdzKs8yIsk8165B4Wj
|
||||
xh/v/qDrvpHbc6Mo7+ESlJoA7iV2QBpKIYXkV+l+LxP1hUGn0iO44fmLP2qBvLJtZvx/Ojh
|
||||
06wOufM/u9ZWw0FVd6z87NbwhQC+r0Hdx+GWumlgWYq9lppFAMYe+6pIqLKFwesssADK3OS
|
||||
0MJwlz/he/7bB9DxhEcnw==
|
||||
X-UI-Out-Filterresults: notjunk:1;V01:K0:lLFqbCq1JEc=:4dOYlMJrif5X850MHJ4IKv
|
||||
SsggGIkb+7xoay8mJWO2ixu2r0n0ZJp/p5GCqVWB8a8GEJ5AXj04izOlxindxB0yxAXLfOtEY
|
||||
+MADRnLwkXLIyvJ52YOhbudb4v+KVS8LnZmdnl+7dYi8ILPPI8K1YyOA0Atm0Sc1zKCyzyrb+
|
||||
HXYtIBmpCCeoXAn6iF9KtPShMQN90JkCkhQDCTtvuHKB4+XasgiJQqwLvDbMhUTfAiHKRbT6A
|
||||
Ret67MCTcoBZMJ8Lv5IVe96pGyj6/IftFJwD456d201u/qlGUEcsrQlXoVDZyYQINncWlmCe9
|
||||
nhfpQF8UozqPck8kat7pUYNcoUck660Ob7tS+eW6IQxtgNKjjkiaYgE0VlcnBWXS46anJouuq
|
||||
rFWawTXHFsLU6SVpIIVC5wCmDIOpgnWg2E5Dg6O3JtD4JPpSw9V3hM8L34Ii6DfWsvPAlJ46O
|
||||
kCFiB/zfxUDXTLqed/nM9eufpPmQGlkRVnwoBNh18c7patPv1MzAU94KuN0ciq4QgoPk400rI
|
||||
5AOu/Eb9ck9CqDcZnI9x3PGjBoRgf0O/cvmqP67kgt1u17W9OEGaqHaEkXh+xLTDICpauVWMp
|
||||
kOXBFyQ2SWK4jxt/C1uNgcghWG4r8UDxx9LFHZA0Ut2oGO2bW8qkpXlRBI11lvMuK3P+jSSXu
|
||||
8ZdD0IA/lvl6PXMOo1Zs7F+mho7h8yoB6XvVBOO8Mh8VonIPfeFZAQOrF/WP5SI3te/r5jk8v
|
||||
wI7Eoz+v7SK4TMhwvTrIv+Q6zGYykDWUFqpehDe/ZhMpdl/XnD0H+Z9jGWgv6Wyi6Rmwc2JEJ
|
||||
6Xq84VFzxbb0yps5VJcK6at8C/JGA==
|
||||
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
|
||||
X-CRM114-CacheID: sfid-20181111_202451_956461_704341B1
|
||||
X-CRM114-Status: GOOD ( 11.96 )
|
||||
X-BeenThere: linux-arm-kernel@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.21
|
||||
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: Stefan Wahren <stefan.wahren@i2se.com>,
|
||||
Phil Elwell <phil@raspberrypi.org>,
|
||||
linux-mmc@vger.kernel.org, linux-rpi-kernel@lists.infradead.org,
|
||||
Michal Suchanek <msuchanek@suse.de>, linux-arm-kernel@lists.infradead.org
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset="us-ascii"
|
||||
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
|
||||
X-Virus-Scanned: ClamAV using ClamSMTP
|
||||
|
||||
There are two accesses on the data requests which are not protected by
|
||||
the mutex. So fix this accordingly.
|
||||
|
||||
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
---
|
||||
drivers/mmc/host/bcm2835.c | 10 ++++++----
|
||||
1 file changed, 6 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/mmc/host/bcm2835.c b/drivers/mmc/host/bcm2835.c
|
||||
index 45724ef..1c60798 100644
|
||||
--- a/drivers/mmc/host/bcm2835.c
|
||||
+++ b/drivers/mmc/host/bcm2835.c
|
||||
@@ -1064,10 +1064,12 @@ static void bcm2835_dma_complete_work(struct work_struct *work)
|
||||
{
|
||||
struct bcm2835_host *host =
|
||||
container_of(work, struct bcm2835_host, dma_work);
|
||||
- struct mmc_data *data = host->data;
|
||||
+ struct mmc_data *data;
|
||||
|
||||
mutex_lock(&host->mutex);
|
||||
|
||||
+ data = host->data;
|
||||
+
|
||||
if (host->dma_chan) {
|
||||
dma_unmap_sg(host->dma_chan->device->dev,
|
||||
data->sg, data->sg_len,
|
||||
@@ -1192,9 +1194,6 @@ static void bcm2835_request(struct mmc_host *mmc, struct mmc_request *mrq)
|
||||
return;
|
||||
}
|
||||
|
||||
- if (host->use_dma && mrq->data && (mrq->data->blocks > PIO_THRESHOLD))
|
||||
- bcm2835_prepare_dma(host, mrq->data);
|
||||
-
|
||||
mutex_lock(&host->mutex);
|
||||
|
||||
WARN_ON(host->mrq);
|
||||
@@ -1218,6 +1217,9 @@ static void bcm2835_request(struct mmc_host *mmc, struct mmc_request *mrq)
|
||||
return;
|
||||
}
|
||||
|
||||
+ if (host->use_dma && mrq->data && (mrq->data->blocks > PIO_THRESHOLD))
|
||||
+ bcm2835_prepare_dma(host, mrq->data);
|
||||
+
|
||||
host->use_sbc = !!mrq->sbc && host->mrq->data &&
|
||||
(host->mrq->data->flags & MMC_DATA_READ);
|
||||
if (host->use_sbc) {
|
||||
|
||||
From patchwork Sun Nov 11 20:23:57 2018
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
X-Patchwork-Id: 10677855
|
||||
Return-Path:
|
||||
<linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org>
|
||||
Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
|
||||
[172.30.200.125])
|
||||
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B72A114BD
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Sun, 11 Nov 2018 20:25:55 +0000 (UTC)
|
||||
Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
|
||||
by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A8FBF2969C
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Sun, 11 Nov 2018 20:25:55 +0000 (UTC)
|
||||
Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
|
||||
id 9BA4C296F9; Sun, 11 Nov 2018 20:25:55 +0000 (UTC)
|
||||
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
|
||||
pdx-wl-mail.web.codeaurora.org
|
||||
X-Spam-Level:
|
||||
X-Spam-Status: No, score=-3.6 required=2.0 tests=BAYES_00,DKIM_SIGNED,
|
||||
DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1
|
||||
Received: from bombadil.infradead.org (bombadil.infradead.org
|
||||
[198.137.202.133])
|
||||
(using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits))
|
||||
(No client certificate requested)
|
||||
by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 3E5132969C
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Sun, 11 Nov 2018 20:25:55 +0000 (UTC)
|
||||
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:MIME-Version:Cc:List-Subscribe:
|
||||
List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id: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=MrabV/LatQSzA8nWJUbmpw6Z66+qt6yLE3DwaiTeQME=; b=C6Tp4s3/ByUA6gEAyLZXReuA6C
|
||||
id+fWgoxsQzr2ckrLAgv48ru1ay5ieY89k0dCyY21EmJ+7DdHsVtlf8AU/pp7zc2v8WXZVjGc0Wre
|
||||
YFPO0X47D1Ph+jrOAJ4EldEXPIk7KudaNJMF85Kayhvj4ehjIH10qF4pNR/GnBs5K4TVn0fqm5wkL
|
||||
qXh8X60lZ8wzc/1kwor55UBVg6KsCr9RWAKxqVzvsq18LS5kgCLj32wFbWPdHWqEYYdMktOZnA+TZ
|
||||
3yAKeFvxhZStgwUorKa3+KsbHzV7DRegF+0oVmQTR7IDEwQ7bsAjkCLS8MlMcgIBJbaIm70mraboJ
|
||||
vf7ML3xg==;
|
||||
Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org)
|
||||
by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1gLwIk-0004lM-CU; Sun, 11 Nov 2018 20:25:46 +0000
|
||||
Received: from merlin.infradead.org ([2001:8b0:10b:1231::1])
|
||||
by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1gLwHv-0002cW-I3; Sun, 11 Nov 2018 20:24:55 +0000
|
||||
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
|
||||
d=infradead.org; s=merlin.20170209; h=References:In-Reply-To:Message-Id:Date:
|
||||
Subject:Cc:To:From:Sender:Reply-To:MIME-Version:Content-Type:
|
||||
Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:
|
||||
Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:
|
||||
List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive;
|
||||
bh=Mk5UAGVXcnL2nHBZi5EjPPjTnNXOrWMlTyZHVyM9yOc=; b=b2656ew26XY6iOFE1AUGP51qB
|
||||
FsWiQqitmJrrBacXDcwxx4b77oSYgvwb2wnBa7LE5GPdb48OBeCpb++0pRdU6LH1mLGY75l+SJkTE
|
||||
fuEGG9nI+c7ylMsmuHzyIug+IcRMttr9Rv+lguVfxj+05E3Mug1Yjde0yV4DeeaDQcrcBW+cDxPD+
|
||||
zBUTdh155DbVSr//DRSSJT3w5iirXL6DmNZX9aH6RIz8prxs5PBfYuAKmZD3JkHHBosP2MuOzyfCN
|
||||
UW3Jmr2T/p8nGj4c5ZgHVcwtYTZ8zbEVSNSshLyLCmRvAvbWw9R7i04nOAZFMDwJ+nJrAOzc4JEyR
|
||||
Bd0redZPw==;
|
||||
Received: from mout.kundenserver.de ([212.227.126.133])
|
||||
by merlin.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1gLwHs-0001ej-CS; Sun, 11 Nov 2018 20:24:53 +0000
|
||||
Received: from localhost.localdomain ([37.4.249.153]) by
|
||||
mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis)
|
||||
id 1MMY9X-1g6LF00fdn-00JXiP; Sun, 11 Nov 2018 21:24:33 +0100
|
||||
From: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
To: Eric Anholt <eric@anholt.net>, Florian Fainelli <f.fainelli@gmail.com>,
|
||||
Ulf Hansson <ulf.hansson@linaro.org>
|
||||
Subject: [PATCH V2 5/7] mmc: bcm2835: Terminate timeout work synchronously
|
||||
Date: Sun, 11 Nov 2018 21:23:57 +0100
|
||||
Message-Id: <1541967839-2847-6-git-send-email-stefan.wahren@i2se.com>
|
||||
X-Mailer: git-send-email 2.7.4
|
||||
In-Reply-To: <1541967839-2847-1-git-send-email-stefan.wahren@i2se.com>
|
||||
References: <1541967839-2847-1-git-send-email-stefan.wahren@i2se.com>
|
||||
X-Provags-ID: V03:K1:qNd5m8hilSIHpAhx5FhJUiaXDU7SU8xPGLPlkrJoWXv/UllNu+f
|
||||
Z6MfgrWvjWpqxWfwowcV/8ImoMmyMh4JRxG2YbMxQXqKPs3IgT+uHUy/D8FHMMViil6gbjf
|
||||
tQPTiuVKuzVualYbGsrj61hk9tmirGv3Idxmj6a5LmZWyqtBs+N/8+IESPXYZMMNePlqxh4
|
||||
Dqnr1Ar9jhW2oYDHZeh4A==
|
||||
X-UI-Out-Filterresults: notjunk:1;V01:K0:lvp7zKY2iuQ=:cBGp0NsOhdh4ZLCUkdL5pd
|
||||
uZpSd0EXrWC/HNHCOrfgI5jErdtk8h8bAwHGFF9C12HB/cUTzhg8wPJL9Xy0yp40Hs6nh6qll
|
||||
nIxKPiI2SHgGyMJojMc+SCNU4d0lbz36f5Eh2YngDbtaLgefteqUbZpEuWXdA5NHOoMAYj5GA
|
||||
U7askfAl7jnbS6fpM/9Fr50J+y5g2WFb7g6Fb60eEWTi7qouSNuq/IsrOBhrOT1tgwZD3Tjxc
|
||||
eCiIOvl8/12erXTfgm0ld79P12beE0yt8px7lBlfmStsDN2xbDUTVH8H9zhn34lSWULZ/oYvB
|
||||
3B/areZj3M0dZCZCRghHQ+/H9RLNAbWOai7+H5GS3Uf9RqKrw9aaFmoTuSEbdma2a3I5N+/W0
|
||||
Wm+CxBBaV9fdVveQggOChcuux8o+VuyD1rEAE+25VrkUbsKntB+EVRkUUbnCG84nOx3JxnQ9q
|
||||
aUnhYzwvOZecim21D5c60r/iU304m4B7jNCzfLmW1LWjLRyqJOaR7iwZQq7D+wBFKHiJLLsSj
|
||||
ecNx1ABuG5R7WWdp1fC717kyGF0LrB6D4Z6t+Sv8jJhpQaEXVvti+oeKsNkydEekDki5paUFn
|
||||
d1V91g9p1g4VRyPDDin4g5ZjvBEG5MxJbL84GTRzesrCj0QthiZp6Il75PHRbXdgXXPg7RdzA
|
||||
lnIcwMWrcb7sBYl9phazVWbZu4I2V+FSEMbvxVQ/Bc0K1p3pQ22LpI99JhQ178HMQvbPD6bJC
|
||||
4ZIfHltA0+uOLgTG5XlOf8q+ra/Qfb1BzFhSsTv0nxcqcl1nqMFKGcG1mxVGJxSQhj7SyZkDC
|
||||
ZNz0RUD94sGnsvkbhrtAMV7E/sbeQ==
|
||||
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
|
||||
X-CRM114-CacheID: sfid-20181111_152452_685437_9729AF90
|
||||
X-CRM114-Status: GOOD ( 11.39 )
|
||||
X-BeenThere: linux-arm-kernel@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.21
|
||||
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: Stefan Wahren <stefan.wahren@i2se.com>,
|
||||
Phil Elwell <phil@raspberrypi.org>,
|
||||
linux-mmc@vger.kernel.org, linux-rpi-kernel@lists.infradead.org,
|
||||
Michal Suchanek <msuchanek@suse.de>, linux-arm-kernel@lists.infradead.org
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset="us-ascii"
|
||||
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
|
||||
X-Virus-Scanned: ClamAV using ClamSMTP
|
||||
|
||||
It's better to make sure that the timeout work is really terminated
|
||||
before calling mmc_request_done.
|
||||
|
||||
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
---
|
||||
drivers/mmc/host/bcm2835.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/mmc/host/bcm2835.c b/drivers/mmc/host/bcm2835.c
|
||||
index 1c60798..2c7589f 100644
|
||||
--- a/drivers/mmc/host/bcm2835.c
|
||||
+++ b/drivers/mmc/host/bcm2835.c
|
||||
@@ -608,7 +608,7 @@ static void bcm2835_finish_request(struct bcm2835_host *host)
|
||||
struct dma_chan *terminate_chan = NULL;
|
||||
struct mmc_request *mrq;
|
||||
|
||||
- cancel_delayed_work(&host->timeout_work);
|
||||
+ cancel_delayed_work_sync(&host->timeout_work);
|
||||
|
||||
mrq = host->mrq;
|
||||
|
||||
|
||||
From patchwork Sun Nov 11 20:23:58 2018
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
X-Patchwork-Id: 10677853
|
||||
Return-Path:
|
||||
<linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org>
|
||||
Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
|
||||
[172.30.200.125])
|
||||
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B8F61139B
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Sun, 11 Nov 2018 20:25:31 +0000 (UTC)
|
||||
Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
|
||||
by mail.wl.linuxfoundation.org (Postfix) with ESMTP id ABACE2969C
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Sun, 11 Nov 2018 20:25:31 +0000 (UTC)
|
||||
Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
|
||||
id 9FBC6296F9; Sun, 11 Nov 2018 20:25:31 +0000 (UTC)
|
||||
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
|
||||
pdx-wl-mail.web.codeaurora.org
|
||||
X-Spam-Level:
|
||||
X-Spam-Status: No, score=-3.6 required=2.0 tests=BAYES_00,DKIM_SIGNED,
|
||||
DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1
|
||||
Received: from bombadil.infradead.org (bombadil.infradead.org
|
||||
[198.137.202.133])
|
||||
(using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits))
|
||||
(No client certificate requested)
|
||||
by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 4A58B2969C
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Sun, 11 Nov 2018 20:25:31 +0000 (UTC)
|
||||
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:MIME-Version:Cc:List-Subscribe:
|
||||
List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id: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=hLouXFNypHlFaQAINMwgzkBeirVP1RY0gAHWHAnuLpo=; b=rmTlZsugtWGOssKkbRRBUkkaMC
|
||||
1KnpesZRiXcQ3pdco/0rDLTQmYxTCEUjV4xsBFaLiaoMeezFdRRBXGZeSPhk38338Y976XJ4cVMz2
|
||||
XEbMflV3FhK8eHtirh7evoVdHR93K8s2TnFG5umUjZP9CNK6jB1uaKvNeOQt7ysjNFYI/o6mSAWQ8
|
||||
96SikljKpBqFYT7sfjGMWWxEneZVIcw0uQMa+gaOxVIiXtG4BrxHOs3Fw9RjRuZ5eKEU1p3gCQVbu
|
||||
XbZW1eUFOHav2KoX7nPYCjHgWhH6YwMTgEBBAnxobbfRHrCEpD9qTd5jujkCLDGdlUfcIs0x0gwMY
|
||||
NVzKWO6w==;
|
||||
Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org)
|
||||
by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1gLwIR-0004Ov-6u; Sun, 11 Nov 2018 20:25:27 +0000
|
||||
Received: from merlin.infradead.org ([2001:8b0:10b:1231::1])
|
||||
by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1gLwHv-0002cX-I3; Sun, 11 Nov 2018 20:24:55 +0000
|
||||
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
|
||||
d=infradead.org; s=merlin.20170209; h=References:In-Reply-To:Message-Id:Date:
|
||||
Subject:Cc:To:From:Sender:Reply-To:MIME-Version:Content-Type:
|
||||
Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:
|
||||
Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:
|
||||
List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive;
|
||||
bh=EGvrhwUaJ7ExcJvbLK8/AQ0rd/CXDt+a3em7ick8oO0=; b=hfLWj/nwTsxPLUALv1QKEYerW
|
||||
kjTYzuw+nLWWi3Jmk4P9vRYMn7+DaGgrbi72/tY2ByngSSImu0PrCS8lm9Ptuq6yXd6tYsNVfzM2v
|
||||
rmYwqdSBQg1JTzAY2Z9nFvV3PB1XFF36Lt1oFlkORRtQJSII2YZBaRJeyhjLpTqzBUwi4KgcWj56K
|
||||
R6ymka+uGJPQ+KHwaOaS67glzE2ADOBMchS7gZu6WtPJEtwU5d7FMyWWPFV7PM4wKFS5Mkk59+9ee
|
||||
hj7e7Zi/7YhnCEfVfZf7C6h6ejiW9YdnMadgdZttuh9DdLGUYVyGszdcNAwmEbpJUSvqM0MxYOBG7
|
||||
/ZftqWKLA==;
|
||||
Received: from mout.kundenserver.de ([212.227.126.130])
|
||||
by merlin.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1gLwHs-0001em-CO; Sun, 11 Nov 2018 20:24:53 +0000
|
||||
Received: from localhost.localdomain ([37.4.249.153]) by
|
||||
mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis)
|
||||
id 1MvsyF-1fX0UQ3835-00ssSz; Sun, 11 Nov 2018 21:24:33 +0100
|
||||
From: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
To: Eric Anholt <eric@anholt.net>, Florian Fainelli <f.fainelli@gmail.com>,
|
||||
Ulf Hansson <ulf.hansson@linaro.org>
|
||||
Subject: [PATCH V2 6/7] mmc: bcm2835: Refactor dma_map_sg handling
|
||||
Date: Sun, 11 Nov 2018 21:23:58 +0100
|
||||
Message-Id: <1541967839-2847-7-git-send-email-stefan.wahren@i2se.com>
|
||||
X-Mailer: git-send-email 2.7.4
|
||||
In-Reply-To: <1541967839-2847-1-git-send-email-stefan.wahren@i2se.com>
|
||||
References: <1541967839-2847-1-git-send-email-stefan.wahren@i2se.com>
|
||||
X-Provags-ID: V03:K1:Sla5WKzJYGbilks4eIirHiMlx29aYsbN7KwNBzyZekQFCAy53V8
|
||||
1SG4Lh3Be8yGw2tWhcGIWU4+p6Ui+o/TdYr+msz83Y0Sz252M6RAloy6wfmI9j/ONOhpARN
|
||||
+Df5870IhZ0IcFsZwP4UNPyitLHHEtB7F0h3fH1ljMmy4qfxVgId5TqXkESoEci3lMhK7jI
|
||||
tJt2agPN6ETkDIC1k0S1Q==
|
||||
X-UI-Out-Filterresults: notjunk:1;V01:K0:SUFly36V7h8=:Vbqq6FwnjjUoAgvV8E+dwd
|
||||
bvly0MobT7aTFxA6S7rJV76JrzK5Re4JsOiUl+7WNjHC+DT2hjNquy1oxd711UcXEAOqmPFAy
|
||||
OJDhIHqS7UAkipQ25kMVV+BUFSDtsYwZhfhJUWMjETSgSOajgeWoTywu70K5P4OAAASvrVwUb
|
||||
5TED1Vlj0n4fcrmLZdSEpborCiHk3YNdLhHxo7AG1BES3nZGoIOGVdoJ46ueOSmNZlp0owl9C
|
||||
M6Ojk98PRUoV+3jn1od8MDRUazJRG187IGTG+1VZESWHn7IZveLNLhDzy9+pchAhovgwQnFhL
|
||||
7cEt1VIJEk2QWc/pp3PrNUoQCHOI5lull8+TfBIrkPFQShcmEsXvtJ6xW70m7LKvLB1hQyGue
|
||||
51kaIx86/7KW5bKnONR8GsPRhAaPWpNwJGk0sl8QgnahjcjoSc5V1pcb41Zxsikmxh/zy3bUA
|
||||
93kQOzW2tjR1yw/Ppz+A2pvnad6QRY2pxB6+t2MJdrZTc4LZGCE7kTqYpoV40uPFTb9VNxhJK
|
||||
fhNmDEgLBtlKz7usJIQXHfrsvC/0r0Efs194mqEs0U8S5C/ip+SYxzdNqy7950R3erQQJ4ABy
|
||||
87xgLsDdOxe4m9f0ncvU1pd6Ys03Hw9vN4IKH11GptHYaTkZeCF5YTS6I+rIjI+6s8cB5AUV+
|
||||
ZdjGUkrqxgkOsWgD1WRTl0+ejxE6GWxX+gsLRlzis74GhO5+V2G/x5/A9oPGp5YsT9ZzqWRb4
|
||||
qP502rMnCPihAEgYTtgKeezNgBny3yQT+LvwXEj4gaeiyNOn/d7082ZRkf0TNexaK77RI3zqH
|
||||
C4R9zEnu6vgo7DndG6z+zIAO1Ihxg==
|
||||
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
|
||||
X-CRM114-CacheID: sfid-20181111_152452_682340_CD00EDF2
|
||||
X-CRM114-Status: GOOD ( 12.64 )
|
||||
X-BeenThere: linux-arm-kernel@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.21
|
||||
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: Stefan Wahren <stefan.wahren@i2se.com>,
|
||||
Phil Elwell <phil@raspberrypi.org>,
|
||||
linux-mmc@vger.kernel.org, linux-rpi-kernel@lists.infradead.org,
|
||||
Michal Suchanek <msuchanek@suse.de>, linux-arm-kernel@lists.infradead.org
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset="us-ascii"
|
||||
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
|
||||
X-Virus-Scanned: ClamAV using ClamSMTP
|
||||
|
||||
There are two variables len within bcm2835_prepare_dma. So rename the result
|
||||
of dma_map_sg to sg_len. While we are at this add a bail out to simplify the
|
||||
following change.
|
||||
|
||||
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
---
|
||||
drivers/mmc/host/bcm2835.c | 16 +++++++---------
|
||||
1 file changed, 7 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/drivers/mmc/host/bcm2835.c b/drivers/mmc/host/bcm2835.c
|
||||
index 2c7589f..c42bdaa 100644
|
||||
--- a/drivers/mmc/host/bcm2835.c
|
||||
+++ b/drivers/mmc/host/bcm2835.c
|
||||
@@ -464,7 +464,7 @@ static void bcm2835_transfer_pio(struct bcm2835_host *host)
|
||||
static
|
||||
void bcm2835_prepare_dma(struct bcm2835_host *host, struct mmc_data *data)
|
||||
{
|
||||
- int len, dir_data, dir_slave;
|
||||
+ int sg_len, dir_data, dir_slave;
|
||||
struct dma_async_tx_descriptor *desc = NULL;
|
||||
struct dma_chan *dma_chan;
|
||||
|
||||
@@ -510,15 +510,13 @@ void bcm2835_prepare_dma(struct bcm2835_host *host, struct mmc_data *data)
|
||||
&host->dma_cfg_rx :
|
||||
&host->dma_cfg_tx);
|
||||
|
||||
- len = dma_map_sg(dma_chan->device->dev, data->sg, data->sg_len,
|
||||
- dir_data);
|
||||
+ sg_len = dma_map_sg(dma_chan->device->dev, data->sg, data->sg_len,
|
||||
+ dir_data);
|
||||
+ if (!sg_len)
|
||||
+ return;
|
||||
|
||||
- if (len > 0) {
|
||||
- desc = dmaengine_prep_slave_sg(dma_chan, data->sg,
|
||||
- len, dir_slave,
|
||||
- DMA_PREP_INTERRUPT |
|
||||
- DMA_CTRL_ACK);
|
||||
- }
|
||||
+ desc = dmaengine_prep_slave_sg(dma_chan, data->sg, sg_len, dir_slave,
|
||||
+ DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
|
||||
|
||||
if (desc) {
|
||||
desc->callback = bcm2835_dma_complete;
|
||||
|
||||
From patchwork Sun Nov 11 20:23:59 2018
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
X-Patchwork-Id: 10677863
|
||||
Return-Path:
|
||||
<linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org>
|
||||
Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
|
||||
[172.30.200.125])
|
||||
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3D4A8139B
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Sun, 11 Nov 2018 20:27:08 +0000 (UTC)
|
||||
Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
|
||||
by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2EABA296EB
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Sun, 11 Nov 2018 20:27:08 +0000 (UTC)
|
||||
Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
|
||||
id 1FAB5296FF; Sun, 11 Nov 2018 20:27:08 +0000 (UTC)
|
||||
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
|
||||
pdx-wl-mail.web.codeaurora.org
|
||||
X-Spam-Level:
|
||||
X-Spam-Status: No, score=-3.6 required=2.0 tests=BAYES_00,DKIM_SIGNED,
|
||||
DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1
|
||||
Received: from bombadil.infradead.org (bombadil.infradead.org
|
||||
[198.137.202.133])
|
||||
(using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits))
|
||||
(No client certificate requested)
|
||||
by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id C63FC296EB
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Sun, 11 Nov 2018 20:27:07 +0000 (UTC)
|
||||
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:MIME-Version:Cc:List-Subscribe:
|
||||
List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id: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=w0gGu0RhdppnbHj+KC4eiYbqQi5jIFFj1vOCHvG7izk=; b=tSzVsJXA7bK2/gIIVp574/SFNR
|
||||
BgvzhxZLA/OEkfPjbtzn6g7PhFHNYCY2tQT1NfP01NxDvDzgZB5TEcCqtrdjkJY0i0hpHS4Ex0SKr
|
||||
oIYr7vZFZc3vcWcO/KC3Kmo+a6lT7nBNDddf/cXDJPS/+jOqm/QCf5ho2YvSATxAnxwgnSi60ZaUO
|
||||
pr/6gai+PjYKpQFZOL6myQ0sWfTTlc1l2KdBGjXV/FLp6EVuwbVOO3xUNJ1ZRnY8Ku/4Hq7tVTYWO
|
||||
oO45AJ1T+qe7lz9G/rfVbqXsnK8JZyhgubhZJXPRWAvoOGj1HIYGAwyOM4bKBfJn6LnKp6+bosthz
|
||||
AN9aGK6g==;
|
||||
Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org)
|
||||
by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1gLwK1-00061u-1u; Sun, 11 Nov 2018 20:27:05 +0000
|
||||
Received: from merlin.infradead.org ([2001:8b0:10b:1231::1])
|
||||
by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1gLwHw-0002d9-OE; Sun, 11 Nov 2018 20:24:56 +0000
|
||||
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
|
||||
d=infradead.org; s=merlin.20170209; h=References:In-Reply-To:Message-Id:Date:
|
||||
Subject:Cc:To:From:Sender:Reply-To:MIME-Version:Content-Type:
|
||||
Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:
|
||||
Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:
|
||||
List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive;
|
||||
bh=6Y3NNECHfTEnbE17TZ4lEpf9LD6uJsc6TH5WZfUfuzk=; b=HvhoptR8U2ubhwrWMzaTVnGQy
|
||||
II2zx46KApZRWsxtYONLMA5cwNuCa0IlO7pyZ2xzkmkvg3l9zY9tw0FIFvHHLhMUBT2QfLdXX47QA
|
||||
4IwFzcW0ZPkm1/jCaDHb+fjCb+4AHHBAae4C6MrN7+a6ykIfhqgPkEfTtZGdhAnxrTbMDTMhgqs3I
|
||||
bSMEifAlxhV0ZMu8SNVAZNB1lgRsdsdgdcBY/t248mQgHc6o2D2ibCGnSYHMy8xjLjNIN2UHatXZf
|
||||
O+ebwk3ljy5b6FcEOHgg0bOh3eTwjGlbh9jR06jAx95wa7gOJG7bJO2mLb1Q0TEg4O/jdMmSzmKZf
|
||||
bnQ+8cx4A==;
|
||||
Received: from mout.kundenserver.de ([212.227.126.135])
|
||||
by merlin.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1gLwHt-0001eo-Ny; Sun, 11 Nov 2018 20:24:54 +0000
|
||||
Received: from localhost.localdomain ([37.4.249.153]) by
|
||||
mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis)
|
||||
id 1Mw9oq-1fWB8w1OlA-00s3Fm; Sun, 11 Nov 2018 21:24:34 +0100
|
||||
From: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
To: Eric Anholt <eric@anholt.net>, Florian Fainelli <f.fainelli@gmail.com>,
|
||||
Ulf Hansson <ulf.hansson@linaro.org>
|
||||
Subject: [PATCH V2 7/7] mmc: bcm2835: Properly handle dmaengine_prep_slave_sg
|
||||
Date: Sun, 11 Nov 2018 21:23:59 +0100
|
||||
Message-Id: <1541967839-2847-8-git-send-email-stefan.wahren@i2se.com>
|
||||
X-Mailer: git-send-email 2.7.4
|
||||
In-Reply-To: <1541967839-2847-1-git-send-email-stefan.wahren@i2se.com>
|
||||
References: <1541967839-2847-1-git-send-email-stefan.wahren@i2se.com>
|
||||
X-Provags-ID: V03:K1:YHuOF9ODbnoju/fZ6GEvx8dgsERlCPgAFKTWXLdnneRYXz5Rrwv
|
||||
HmNp+EMMG4LCQ6yrw9geiQ8UMaSlKRlOogmYpjlT6+acj6AvpUhfV/V/QTZoIqWymmOLu00
|
||||
ilWzNp6sUh0G36dYFqNQx/xxoevvSshDkQfngYwW4IylOJ5Ijw4q7mUNQJel0aDdT6VxcCF
|
||||
vNXPaH6x5aju6BnVQQTZw==
|
||||
X-UI-Out-Filterresults: notjunk:1;V01:K0:F8RnfZXOXFg=:/o9BXYY1XlPda36fnQR3pw
|
||||
exiC7Lebj6iLmcKcGV1N+gYxVKa++UCwnlYE52iQ3aEq2FFOYc9MIGfKSXztp6aQJLMEcJ+Nl
|
||||
Y6IvfEO9Wre/kOJHLSbnLgi5rdaSTR4mjKUA8jP7+hgmHvgkSbKeQPPA9NbLPN9j2p/jPQt6j
|
||||
wWducLkOGSbZ5YW28XqMqKiEgyxjt72W7Ulgwt1l9fzu67fxmhDdc3UWHpofqHuJQ3dTz7iyH
|
||||
kgg+rS8NAKZBCtm6dFRPHs5TFa1D75bGQE9WbGv828i+/KNpsIoAbBRLLRmeGAoFn+KRil/PA
|
||||
2NEyeFtr8QO/DsyVQUofQeZgtDmWXquT6il4a9R21nFM8UVN72Lt47MR7dQIKfjtCewO1XhKp
|
||||
aCAhoeqoKuI++NlYUmTAzwHyR1AzSqbz3qFLL669z219gmvjFFlmzCiNNQuixrhw3CvbXxywa
|
||||
F8FFVxEdPJRjt5v5xsfEQ9kWNm/UneKmSuw+sOIM6NjTYMbCxUA8s/SReuQtco4vZ5fMk2a0E
|
||||
H6WbLHlCpPoxm6106p29jhQ1MkQBcRRc/Gnr283sXcshS2idax1s/BXgEYWoqn1IXoSipmSRS
|
||||
uO7fLBnuonw9uYoUm30LeVzea9BSFsXSJQUAXYoj0FC51hOHYQG6yaC1EoGnL13niwbOV1w3V
|
||||
t7MsLAFqvse4jRXAQ2daRMVsoFeXyREOFlyM2u0kJ7SlglZ7O0HJNvOHJsOTEJBUDsCQQskjd
|
||||
UPyZ9p8NHWMKpnE18BgSypX/UwcNIarGvkM8pe6BN+IN6YbM+3leikxVVZ7pD64qCCITVHvjt
|
||||
SkzE3mpbb2hZZ/3vD8VryvQAJ4A0Q==
|
||||
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
|
||||
X-CRM114-CacheID: sfid-20181111_152453_987059_DF242521
|
||||
X-CRM114-Status: GOOD ( 10.37 )
|
||||
X-BeenThere: linux-arm-kernel@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.21
|
||||
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: Stefan Wahren <stefan.wahren@i2se.com>,
|
||||
Phil Elwell <phil@raspberrypi.org>,
|
||||
linux-mmc@vger.kernel.org, linux-rpi-kernel@lists.infradead.org,
|
||||
Michal Suchanek <msuchanek@suse.de>, linux-arm-kernel@lists.infradead.org
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset="us-ascii"
|
||||
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
|
||||
X-Virus-Scanned: ClamAV using ClamSMTP
|
||||
|
||||
In case dmaengine_prep_slave_sg fails we need to call dma_unmap_sg.
|
||||
|
||||
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
Acked-by: Eric Anholt <eric@anholt.net>
|
||||
---
|
||||
drivers/mmc/host/bcm2835.c | 15 +++++++++------
|
||||
1 file changed, 9 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/drivers/mmc/host/bcm2835.c b/drivers/mmc/host/bcm2835.c
|
||||
index c42bdaa..82e4b08 100644
|
||||
--- a/drivers/mmc/host/bcm2835.c
|
||||
+++ b/drivers/mmc/host/bcm2835.c
|
||||
@@ -518,13 +518,16 @@ void bcm2835_prepare_dma(struct bcm2835_host *host, struct mmc_data *data)
|
||||
desc = dmaengine_prep_slave_sg(dma_chan, data->sg, sg_len, dir_slave,
|
||||
DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
|
||||
|
||||
- if (desc) {
|
||||
- desc->callback = bcm2835_dma_complete;
|
||||
- desc->callback_param = host;
|
||||
- host->dma_desc = desc;
|
||||
- host->dma_chan = dma_chan;
|
||||
- host->dma_dir = dir_data;
|
||||
+ if (!desc) {
|
||||
+ dma_unmap_sg(dma_chan->device->dev, data->sg, sg_len, dir_data);
|
||||
+ return;
|
||||
}
|
||||
+
|
||||
+ desc->callback = bcm2835_dma_complete;
|
||||
+ desc->callback_param = host;
|
||||
+ host->dma_desc = desc;
|
||||
+ host->dma_chan = dma_chan;
|
||||
+ host->dma_dir = dir_data;
|
||||
}
|
||||
|
||||
static void bcm2835_start_dma(struct bcm2835_host *host)
|
||||
1761
bcm2835-vc04_services-Improve-driver-load-unload.patch
Normal file
1761
bcm2835-vc04_services-Improve-driver-load-unload.patch
Normal file
File diff suppressed because it is too large
Load diff
630
bcm2836-Improve-VCHIQ-cache-line-size-handling.patch
Normal file
630
bcm2836-Improve-VCHIQ-cache-line-size-handling.patch
Normal file
|
|
@ -0,0 +1,630 @@
|
|||
From patchwork Mon Sep 17 08:22:22 2018
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Phil Elwell <phil@raspberrypi.org>
|
||||
X-Patchwork-Id: 10602175
|
||||
Return-Path:
|
||||
<linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org>
|
||||
Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
|
||||
[172.30.200.125])
|
||||
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 25D5E1508
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Mon, 17 Sep 2018 08:24:30 +0000 (UTC)
|
||||
Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
|
||||
by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 16B1D26256
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Mon, 17 Sep 2018 08:24:30 +0000 (UTC)
|
||||
Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
|
||||
id 0AA1627F86; Mon, 17 Sep 2018 08:24:30 +0000 (UTC)
|
||||
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
|
||||
pdx-wl-mail.web.codeaurora.org
|
||||
X-Spam-Level:
|
||||
X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,DKIM_SIGNED,
|
||||
DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1
|
||||
Received: from bombadil.infradead.org (bombadil.infradead.org
|
||||
[198.137.202.133])
|
||||
(using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits))
|
||||
(No client certificate requested)
|
||||
by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 8457326256
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Mon, 17 Sep 2018 08:24:29 +0000 (UTC)
|
||||
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:MIME-Version:List-Subscribe:List-Help:
|
||||
List-Post:List-Archive:List-Unsubscribe:List-Id:References:In-Reply-To:
|
||||
Message-Id:Date:Subject:To:From:Reply-To:Cc:Content-ID:Content-Description:
|
||||
Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:
|
||||
List-Owner; bh=hI/rkOHYLw6EFdgFyOZP5dMv2/ZTgGadMbPyZJmLpTc=; b=eZHlangjy/aXd9
|
||||
xXj4Z+LS7RpoPK1fkoc37gkSBmRem5J0cSGe991FI/y452vB6mqT7ufhiTvGIeEmWU8A6cLGRABQP
|
||||
fF4tvI39ztdvL2mHtLdNC9JRvYtw4haVuS5/LpkOoRCb5+ASym0RhvhxRCNVHAQLkg63aHTmHxU/P
|
||||
uxSfy8T9cJwM8xXEQf8t6o88URzbsLQpXak2x6RRD5gdMWl2qIRCGuM8aLcVRVWdW2X8Zgom/L8Md
|
||||
DAqYno1/RLlowIplhQvoSfTgoT+If2IZF3aYXp7neKn/ztdpZ+Usk8z3R4LyQvpG/NS8/LNRDkOez
|
||||
MJhH2HBomJzgPwW4yiyw==;
|
||||
Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org)
|
||||
by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1g1opO-0005xT-Iz; Mon, 17 Sep 2018 08:24:18 +0000
|
||||
Received: from merlin.infradead.org ([2001:8b0:10b:1231::1])
|
||||
by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1g1ooJ-0005Wn-90
|
||||
for linux-arm-kernel@bombadil.infradead.org; Mon, 17 Sep 2018 08:23:11 +0000
|
||||
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
|
||||
d=infradead.org; s=merlin.20170209; h=References:In-Reply-To:Message-Id:Date:
|
||||
Subject:To:From:Sender:Reply-To:Cc:MIME-Version:Content-Type:
|
||||
Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:
|
||||
Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:
|
||||
List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive;
|
||||
bh=709kHRsgmnXd9YV1xoNMc1/aV4Xi/GYEdBYatqJnxII=; b=3Fh7sAF30uEjFVIokmsPp9aFa
|
||||
dnvHs47JPnGnrZ6drQ65LjwPaLp7mZWUnnLRsx8NCIJXbG8ja4rz7ubFLekczmXpMp7kx+vp4GLX+
|
||||
MQZ6Fkd8khgYkVyWVZJwvZXyjMJCLU40cSfPH+rwj2aE4Bsjkrm3gyYqTucdIaWGrmIKEddpvvUoj
|
||||
gijSvNPe4wZ6F3B/OxGyQwY68rQ8e16MWFdQvF+m8r6hAzk1PjQfgh1U22DXRea5oDFVVfV8uFGPF
|
||||
Mt87EyYei0srCrhHGpb1PeHXO4n7UkdGrKHItd7RQfQn9B29yw6yQMSMaEo9zTbpf7a9OgKbJ/jMB
|
||||
jVfQIRXhg==;
|
||||
Received: from mx07-00252a01.pphosted.com ([62.209.51.214])
|
||||
by merlin.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1g1ooA-0001aP-0d
|
||||
for linux-arm-kernel@lists.infradead.org; Mon, 17 Sep 2018 08:23:06 +0000
|
||||
Received: from pps.filterd (m0102628.ppops.net [127.0.0.1])
|
||||
by mx07-00252a01.pphosted.com (8.16.0.23/8.16.0.23) with SMTP id
|
||||
w8H8MU0C024133
|
||||
for <linux-arm-kernel@lists.infradead.org>; Mon, 17 Sep 2018 09:22:43 +0100
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.org;
|
||||
h=from : to :
|
||||
subject : date : message-id : in-reply-to : references; s=pp;
|
||||
bh=709kHRsgmnXd9YV1xoNMc1/aV4Xi/GYEdBYatqJnxII=;
|
||||
b=Xy9adKj2YJ9erCG8FVPBExmDtGihy6MDZ/iSf4J3SdOeXy+Tqf4iDg6DBLJrc17+DYOk
|
||||
G7CpjQSLgraxnF1YGiBjgk7pOimnv39woGoyX6fVY97L4t3lDbf4qdMx5siW/3Wfb4BU
|
||||
jZE1OTowh/4aV9sVCdmLLieaS2SnQWrTI5QW6RGOSZzrSdNfSsEi7T0w0PH8jfIpleHP
|
||||
2o/WRY6P/3U12dgkEOk4dEejQTGAopzYJl9ZJkUZoFXMMimrgxn/J86Eh/Cd7hs4AOrb
|
||||
xFl1QVFffBgVvD4oE094vl/C9gV0F3HHfRc5pTHAvAbXOzLJYQMHkX9c/zXfJ3J/Xgha kQ==
|
||||
Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com
|
||||
[209.85.221.72])
|
||||
by mx07-00252a01.pphosted.com with ESMTP id 2mgw8f0va0-1
|
||||
(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=OK)
|
||||
for <linux-arm-kernel@lists.infradead.org>; Mon, 17 Sep 2018 09:22:43 +0100
|
||||
Received: by mail-wr1-f72.google.com with SMTP id g36-v6so22631044wrd.9
|
||||
for <linux-arm-kernel@lists.infradead.org>;
|
||||
Mon, 17 Sep 2018 01:22:43 -0700 (PDT)
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
||||
d=raspberrypi.org; s=google;
|
||||
h=from:to:subject:date:message-id:in-reply-to:references;
|
||||
bh=709kHRsgmnXd9YV1xoNMc1/aV4Xi/GYEdBYatqJnxII=;
|
||||
b=N6MpqvnqTnIPagi/9P59zuTXf0ho+gbFCEE6jfQYmzcdvGoA5THdZKUVyUyOX+BS5t
|
||||
eodxpyGpb7CZ4wOo/o6Gg/rml2t1OQ3McKMh2t8zP26ITR+L61GLqWseLJt4831yEDE0
|
||||
UE9392fae7t3SnVjq5ojbSmGWMRNPc0RYHT3A08TP+lUsupeI0yuw3+oY1DDFKYdC31E
|
||||
FZfnvjUPjwkGYJo6GVCeyMQIhoWxGMmUkqPOq28WK9woffToeS69koX6AVl7azJ7qAWX
|
||||
xuaAHTyYyjDl3Of9y5GaqPjjoQQd1tY4nz9aW6mLh5QsEx834C3Jg9va8kLQ3Y0gCpAD
|
||||
nVSw==
|
||||
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
||||
d=1e100.net; s=20161025;
|
||||
h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to
|
||||
:references;
|
||||
bh=709kHRsgmnXd9YV1xoNMc1/aV4Xi/GYEdBYatqJnxII=;
|
||||
b=UJHCKLVGminvg0HfeF13uwKYBy5wKpeLZSvZL+F/oep/12zVz6wR9ufer+HQRCOsNc
|
||||
siZjpaTDiMgdv9cYcAmrrkxWWpRQzIqAbvhxk73vxddpr0ymwbHKkm6ycri21KEnHCEu
|
||||
Cm9LpGslmcXtDXM2p83EQx73T9M4SM8Qsa9Zly+qHI8BKHKRm/H52GMXGRgPVtmbzs15
|
||||
jPb8LBJJiOuBCjjVdWAX3hCjkNOprR4NSGQRNvXjVn+UEjwMVdLdbZpqng33DHOtt27Z
|
||||
peJhxLbEg0NXj6QAPEpzUL2L6brBxJga2F3oJsn7i/lCqKn3ndxvvcRMRHF7QXcEMw/K
|
||||
H2Vw==
|
||||
X-Gm-Message-State: APzg51BHcGp99CKU3y/yJll0mWOB/Vkm9WUEqJHCnHDNn8NqTqSE+qpp
|
||||
BgRFpPPLsY2z+3zNd1Bo9dcXQ2dwAO3db9d5vWJQOeZIn3UJUznPvSNKIqrOJWogsHoKeiWPzzP
|
||||
ZSwJFaNOx3FkEva8I1tFQde3LPWn6d+1zM3c=
|
||||
X-Received: by 2002:a5d:4512:: with SMTP id
|
||||
s18-v6mr18187206wrq.82.1537172562500;
|
||||
Mon, 17 Sep 2018 01:22:42 -0700 (PDT)
|
||||
X-Google-Smtp-Source:
|
||||
ANB0VdaiFK6VovMmRM+tnynuIhV35l0Bwr9uiQksEgfZzBhqOIqpV+djM4jUW5g+o6bqN2HLKChxyA==
|
||||
X-Received: by 2002:a5d:4512:: with SMTP id
|
||||
s18-v6mr18187191wrq.82.1537172562269;
|
||||
Mon, 17 Sep 2018 01:22:42 -0700 (PDT)
|
||||
Received: from buildbot.pitowers.org ([2a00:2381:fdf7:14:14e2:e2a0:5538:c448])
|
||||
by smtp.gmail.com with ESMTPSA id
|
||||
198-v6sm7938315wmm.0.2018.09.17.01.22.40
|
||||
(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
|
||||
Mon, 17 Sep 2018 01:22:41 -0700 (PDT)
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
To: Rob Herring <robh+dt@kernel.org>, Stefan Wahren <stefan.wahren@i2se.com>,
|
||||
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
|
||||
Phil Elwell <phil@raspberrypi.org>, devicetree@vger.kernel.org,
|
||||
linux-rpi-kernel@lists.infradead.org,
|
||||
Russell King <linux@armlinux.org.uk>, Arnd Bergmann <arnd@arndb.de>,
|
||||
linux-arm-kernel@lists.infradead.org,
|
||||
bcm-kernel-feedback-list@broadcom.com, devel@driverdev.osuosl.org
|
||||
Subject: [PATCH v3 2/4] dt-bindings: soc: Document "brcm,bcm2836-vchiq"
|
||||
Date: Mon, 17 Sep 2018 09:22:22 +0100
|
||||
Message-Id: <1537172544-104852-3-git-send-email-phil@raspberrypi.org>
|
||||
X-Mailer: git-send-email 2.7.4
|
||||
In-Reply-To: <1537172544-104852-1-git-send-email-phil@raspberrypi.org>
|
||||
References: <1537172544-104852-1-git-send-email-phil@raspberrypi.org>
|
||||
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, ,
|
||||
definitions=2018-09-17_04:, , signatures=0
|
||||
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
|
||||
X-CRM114-CacheID: sfid-20180917_042302_769007_3F16157B
|
||||
X-CRM114-Status: GOOD ( 17.25 )
|
||||
X-BeenThere: linux-arm-kernel@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.21
|
||||
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>
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset="us-ascii"
|
||||
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
|
||||
X-Virus-Scanned: ClamAV using ClamSMTP
|
||||
|
||||
"brcm,bcm2836-vchiq" should be used on BCM2836 and BCM2837 to ensure
|
||||
correct operation.
|
||||
|
||||
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
Reviewed-by: Rob Herring <robh@kernel.org>
|
||||
---
|
||||
Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-vchiq.txt | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-vchiq.txt b/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-vchiq.txt
|
||||
index 8dd7b3a..f331316 100644
|
||||
--- a/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-vchiq.txt
|
||||
+++ b/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-vchiq.txt
|
||||
@@ -2,7 +2,8 @@ Broadcom VCHIQ firmware services
|
||||
|
||||
Required properties:
|
||||
|
||||
-- compatible: Should be "brcm,bcm2835-vchiq"
|
||||
+- compatible: Should be "brcm,bcm2835-vchiq" on BCM2835, otherwise
|
||||
+ "brcm,bcm2836-vchiq".
|
||||
- reg: Physical base address and length of the doorbell register pair
|
||||
- interrupts: The interrupt number
|
||||
See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt
|
||||
|
||||
From patchwork Mon Sep 17 08:22:23 2018
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Phil Elwell <phil@raspberrypi.org>
|
||||
X-Patchwork-Id: 10602173
|
||||
Return-Path:
|
||||
<linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org>
|
||||
Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
|
||||
[172.30.200.125])
|
||||
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D23951508
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Mon, 17 Sep 2018 08:23:48 +0000 (UTC)
|
||||
Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
|
||||
by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C0A5E2624C
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Mon, 17 Sep 2018 08:23:48 +0000 (UTC)
|
||||
Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
|
||||
id B494527861; Mon, 17 Sep 2018 08:23:48 +0000 (UTC)
|
||||
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
|
||||
pdx-wl-mail.web.codeaurora.org
|
||||
X-Spam-Level:
|
||||
X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,DKIM_SIGNED,
|
||||
DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1
|
||||
Received: from bombadil.infradead.org (bombadil.infradead.org
|
||||
[198.137.202.133])
|
||||
(using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits))
|
||||
(No client certificate requested)
|
||||
by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 1D12F2624C
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Mon, 17 Sep 2018 08:23:48 +0000 (UTC)
|
||||
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:MIME-Version:List-Subscribe:List-Help:
|
||||
List-Post:List-Archive:List-Unsubscribe:List-Id:References:In-Reply-To:
|
||||
Message-Id:Date:Subject:To:From:Reply-To:Cc:Content-ID:Content-Description:
|
||||
Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:
|
||||
List-Owner; bh=Dwk4nV4syz12H5Joro54dzb4xRRZnm1pVXSS97zokG4=; b=u5ArKClp9m4rAw
|
||||
X79KW+OdEYkjnJvDRiwHiXrIROhy9KqfwhQncB4G5DZxtVfKFiVHnbqXHk8f+WwX2BxPbMEDIZOoc
|
||||
d/sIjVXlkW2RQBS8mgxjJc/92fmYqW9/xgsXF7mDz2uJxYTeH8ilqLG3yTIoPiLE5V/m/0kWlWp3q
|
||||
/KS6alhirFx2v2lPNAF1/anBJRHtfMp2mLjK5fepthSwL2KNN9T+GIoluCeXKH4ikWTtZcT5t+2lt
|
||||
XvOmzLVgOMhD2/Auupmh1bFAMoyLpk2N90IK/Vn5aR+SqwRV4VRriyUdSQbJw2lwXyeAnwHe8ioGW
|
||||
qBY1kd4d9lahXdnwvbzw==;
|
||||
Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org)
|
||||
by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1g1ooi-0005gd-Sz; Mon, 17 Sep 2018 08:23:37 +0000
|
||||
Received: from merlin.infradead.org ([2001:8b0:10b:1231::1])
|
||||
by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1g1ooH-0005Wn-28
|
||||
for linux-arm-kernel@bombadil.infradead.org; Mon, 17 Sep 2018 08:23:09 +0000
|
||||
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
|
||||
d=infradead.org; s=merlin.20170209; h=References:In-Reply-To:Message-Id:Date:
|
||||
Subject:To:From:Sender:Reply-To:Cc:MIME-Version:Content-Type:
|
||||
Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:
|
||||
Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:
|
||||
List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive;
|
||||
bh=ibdA85hf8c1CV6AjnoansL0OLKCQv7xqz6Dd4T0WwYE=; b=kq+r4aiTxCfQb9ANr0fYzAHvh
|
||||
lwPy2MDuD58jFZXIeBlNCsd16UJwPv79X/C3PeK3VurkqtA220rndJ9rlFyuIpW9bLx3VbvMEV66i
|
||||
5rlJCpBanJtL6W4bcOStoNBRts5IAjzWQJTP9xh8kRTZDj94HG4Ud3Y0F4wp5tuZQin9aAmRGN8Ri
|
||||
nmxwqj4K2AedWncDcfJnbYUO+pj83RlLIV83Vc/wjwafr/HmLSJKxO2tbFMlyK8w+GzokVKDQX8Yl
|
||||
VgzPvvpGFN/PEjHxbxhUwTUXoN9OX3veCrdZfeuLeb936VjAEY2dO4qe4n7V+8suIGWPYczcUYmuC
|
||||
QroUCrfeA==;
|
||||
Received: from mx08-00252a01.pphosted.com ([91.207.212.211])
|
||||
by merlin.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1g1ooA-0001aR-1H
|
||||
for linux-arm-kernel@lists.infradead.org; Mon, 17 Sep 2018 08:23:06 +0000
|
||||
Received: from pps.filterd (m0102629.ppops.net [127.0.0.1])
|
||||
by mx08-00252a01.pphosted.com (8.16.0.23/8.16.0.23) with SMTP id
|
||||
w8H8MTQR002592
|
||||
for <linux-arm-kernel@lists.infradead.org>; Mon, 17 Sep 2018 09:22:44 +0100
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.org;
|
||||
h=from : to :
|
||||
subject : date : message-id : in-reply-to : references; s=pp;
|
||||
bh=ibdA85hf8c1CV6AjnoansL0OLKCQv7xqz6Dd4T0WwYE=;
|
||||
b=GtNw2X7QyIdzLVw/dWm9pE7hxGpCS4f3A39/M126HfBvf3b/h8TyqiZ5r1xXNu1o9Wd3
|
||||
a2PR3ZAYL9vJWqRw6GR+hqIrLbBPmuIUnKjv8ZSuL5nSma4EaGZ4SA/pkRVoZxtzYHra
|
||||
rerPDiIpuY/ZJzkrl5gRela6dKKMafJ9WjDHfRBe3MvraBmSmcjNbl1pwZrD9SxlL/QW
|
||||
kekUM8ISQzaZK1yS9nEOJT4jgoDgQjg67qTdqfASV0IxT+hhlwHX/oj97E2XJuVGMchY
|
||||
B2tw7aEpcV+/B3prEEpXPg8I4gulq4au2IOL1G+ZjuMFtB3mnxuhJZTvOTlVOORC1tbY Nw==
|
||||
Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com
|
||||
[209.85.221.71])
|
||||
by mx08-00252a01.pphosted.com with ESMTP id 2mgxu78uf3-1
|
||||
(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=OK)
|
||||
for <linux-arm-kernel@lists.infradead.org>; Mon, 17 Sep 2018 09:22:44 +0100
|
||||
Received: by mail-wr1-f71.google.com with SMTP id u12-v6so22608270wrc.1
|
||||
for <linux-arm-kernel@lists.infradead.org>;
|
||||
Mon, 17 Sep 2018 01:22:44 -0700 (PDT)
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
||||
d=raspberrypi.org; s=google;
|
||||
h=from:to:subject:date:message-id:in-reply-to:references;
|
||||
bh=ibdA85hf8c1CV6AjnoansL0OLKCQv7xqz6Dd4T0WwYE=;
|
||||
b=Ewr6H6F8danbpfF2j56EFM3zyem/V1DjZTwpShb9UOMB0mer0DV08yzmFnZxhT+OOS
|
||||
iqoecQdIpCRdwPKRDBo1CPy9uJQSgSactKa+YAxnGQ3bAn8TvBe1SxqnObHXRrr9Wdex
|
||||
vzH2VGHbyGIW4tRzrTTiy4+lWlzyzezOWUWOdGfvLyt+3olku3ExUQ1UtyJQFXgOIE1R
|
||||
gXVZBPyr7+K/To7iaDyFtqE0HKSZ1zXT2JB5RwTSe7gbppZL/cMQbodQuEeCtTJN2Mk3
|
||||
zfn2WL7jhFw2HMZBcR9hYfm37jh9HUSDndHoMuuAtumDBy6dr9jC/ixxOwJOJIpCgaN+
|
||||
QVgA==
|
||||
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
||||
d=1e100.net; s=20161025;
|
||||
h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to
|
||||
:references;
|
||||
bh=ibdA85hf8c1CV6AjnoansL0OLKCQv7xqz6Dd4T0WwYE=;
|
||||
b=hylNUUSKnRzE949ctU309ZwJfktn+WfvEgLQRIDt5xeqAZoZdx14jr9qf4/8FwGgK1
|
||||
KNXH04/CM9pCLsnsLTBwXsZUKGObYp+zPhwGqPG2Sn4w6GRZLnZfSxqJFtToDvnicem+
|
||||
+WjrwVDTrfO2GxBk7Wd5YepQQner7x41sdIXZwztEYG9PiRaBQu6XTUq/RqreaF4Ep3E
|
||||
n7LHVlGVhd8ddG/cRHR5UmyZS/QMzp39y7R8HoA8pT69lIysf8wjq3n4j+ZILtxBhbz0
|
||||
WC5ke8PdnUvBNBkrS0WiqyW+YFkzjGy9rgJsW1/fW8S5YE98OwM9R1e/8skJk7yeXuj4
|
||||
+XzQ==
|
||||
X-Gm-Message-State: APzg51CndvGPCiDwRG1VW95iu6AVszC736A5IE7L/fnOGMl2pWRj7/Fm
|
||||
1a3HQ+l8htKBn3H5iyJlVsCKEev/tJDKXQKvW0QAq7QzJOvGY65OOWI9FtwM61BlqiwUbZVyRo7
|
||||
8qx9VkB7JEDmE/hFbCckOPQoLp3jICDMdKbU=
|
||||
X-Received: by 2002:adf:d110:: with SMTP id
|
||||
a16-v6mr18039010wri.17.1537172563663;
|
||||
Mon, 17 Sep 2018 01:22:43 -0700 (PDT)
|
||||
X-Google-Smtp-Source:
|
||||
ANB0VdZFtXkQhEgNJzup0M4370Voxs3V0q2pn+S3MhlOPzoOK4M7r4b5z74IaruMtYvv09TFVUAizg==
|
||||
X-Received: by 2002:adf:d110:: with SMTP id
|
||||
a16-v6mr18038988wri.17.1537172563384;
|
||||
Mon, 17 Sep 2018 01:22:43 -0700 (PDT)
|
||||
Received: from buildbot.pitowers.org ([2a00:2381:fdf7:14:14e2:e2a0:5538:c448])
|
||||
by smtp.gmail.com with ESMTPSA id
|
||||
198-v6sm7938315wmm.0.2018.09.17.01.22.42
|
||||
(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
|
||||
Mon, 17 Sep 2018 01:22:42 -0700 (PDT)
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
To: Rob Herring <robh+dt@kernel.org>, Stefan Wahren <stefan.wahren@i2se.com>,
|
||||
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
|
||||
Phil Elwell <phil@raspberrypi.org>, devicetree@vger.kernel.org,
|
||||
linux-rpi-kernel@lists.infradead.org,
|
||||
Russell King <linux@armlinux.org.uk>, Arnd Bergmann <arnd@arndb.de>,
|
||||
linux-arm-kernel@lists.infradead.org,
|
||||
bcm-kernel-feedback-list@broadcom.com, devel@driverdev.osuosl.org
|
||||
Subject: [PATCH v3 3/4] ARM: dts: bcm283x: Correct vchiq compatible string
|
||||
Date: Mon, 17 Sep 2018 09:22:23 +0100
|
||||
Message-Id: <1537172544-104852-4-git-send-email-phil@raspberrypi.org>
|
||||
X-Mailer: git-send-email 2.7.4
|
||||
In-Reply-To: <1537172544-104852-1-git-send-email-phil@raspberrypi.org>
|
||||
References: <1537172544-104852-1-git-send-email-phil@raspberrypi.org>
|
||||
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, ,
|
||||
definitions=2018-09-17_04:, , signatures=0
|
||||
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
|
||||
X-CRM114-CacheID: sfid-20180917_042302_770260_E7C4CFD2
|
||||
X-CRM114-Status: GOOD ( 22.09 )
|
||||
X-BeenThere: linux-arm-kernel@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.21
|
||||
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>
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset="us-ascii"
|
||||
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
|
||||
X-Virus-Scanned: ClamAV using ClamSMTP
|
||||
|
||||
To allow VCHIQ to determine the correct cache line size, use the new
|
||||
"brcm,bcm2836-vchiq" compatible string on BCM2836 and BCM2837.
|
||||
|
||||
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
---
|
||||
arch/arm/boot/dts/bcm2835-rpi.dtsi | 2 +-
|
||||
arch/arm/boot/dts/bcm2836-rpi-2-b.dts | 2 +-
|
||||
arch/arm/boot/dts/bcm2836-rpi.dtsi | 6 ++++++
|
||||
arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts | 2 +-
|
||||
arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 2 +-
|
||||
arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi | 2 +-
|
||||
6 files changed, 11 insertions(+), 5 deletions(-)
|
||||
create mode 100644 arch/arm/boot/dts/bcm2836-rpi.dtsi
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
|
||||
index cb2d6d7..215d8cc 100644
|
||||
--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
|
||||
@@ -30,7 +30,7 @@
|
||||
#power-domain-cells = <1>;
|
||||
};
|
||||
|
||||
- mailbox@7e00b840 {
|
||||
+ vchiq: mailbox@7e00b840 {
|
||||
compatible = "brcm,bcm2835-vchiq";
|
||||
reg = <0x7e00b840 0xf>;
|
||||
interrupts = <0 2>;
|
||||
diff --git a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
|
||||
index 2fef70a..ac4408b 100644
|
||||
--- a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
|
||||
+++ b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/dts-v1/;
|
||||
#include "bcm2836.dtsi"
|
||||
-#include "bcm2835-rpi.dtsi"
|
||||
+#include "bcm2836-rpi.dtsi"
|
||||
#include "bcm283x-rpi-smsc9514.dtsi"
|
||||
#include "bcm283x-rpi-usb-host.dtsi"
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm2836-rpi.dtsi b/arch/arm/boot/dts/bcm2836-rpi.dtsi
|
||||
new file mode 100644
|
||||
index 0000000..c4c858b
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/boot/dts/bcm2836-rpi.dtsi
|
||||
@@ -0,0 +1,6 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0
|
||||
+#include "bcm2835-rpi.dtsi"
|
||||
+
|
||||
+&vchiq {
|
||||
+ compatible = "brcm,bcm2836-vchiq", "brcm,bcm2835-vchiq";
|
||||
+};
|
||||
diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts
|
||||
index 4adb85e..eca36e3 100644
|
||||
--- a/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts
|
||||
+++ b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/dts-v1/;
|
||||
#include "bcm2837.dtsi"
|
||||
-#include "bcm2835-rpi.dtsi"
|
||||
+#include "bcm2836-rpi.dtsi"
|
||||
#include "bcm283x-rpi-lan7515.dtsi"
|
||||
#include "bcm283x-rpi-usb-host.dtsi"
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
|
||||
index c318bcb..a0ba0f6 100644
|
||||
--- a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
|
||||
+++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/dts-v1/;
|
||||
#include "bcm2837.dtsi"
|
||||
-#include "bcm2835-rpi.dtsi"
|
||||
+#include "bcm2836-rpi.dtsi"
|
||||
#include "bcm283x-rpi-smsc9514.dtsi"
|
||||
#include "bcm283x-rpi-usb-host.dtsi"
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi b/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi
|
||||
index 7b7ab6a..4a89a18 100644
|
||||
--- a/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/dts-v1/;
|
||||
#include "bcm2837.dtsi"
|
||||
-#include "bcm2835-rpi.dtsi"
|
||||
+#include "bcm2836-rpi.dtsi"
|
||||
|
||||
/ {
|
||||
memory {
|
||||
|
||||
From patchwork Mon Sep 17 08:22:24 2018
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Phil Elwell <phil@raspberrypi.org>
|
||||
X-Patchwork-Id: 10602203
|
||||
Return-Path:
|
||||
<linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org>
|
||||
Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
|
||||
[172.30.200.125])
|
||||
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8BB93161F
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Mon, 17 Sep 2018 08:42:23 +0000 (UTC)
|
||||
Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
|
||||
by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7A55A29656
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Mon, 17 Sep 2018 08:42:23 +0000 (UTC)
|
||||
Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
|
||||
id 6DE622965F; Mon, 17 Sep 2018 08:42:23 +0000 (UTC)
|
||||
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
|
||||
pdx-wl-mail.web.codeaurora.org
|
||||
X-Spam-Level:
|
||||
X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,DKIM_SIGNED,
|
||||
DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1
|
||||
Received: from bombadil.infradead.org (bombadil.infradead.org
|
||||
[198.137.202.133])
|
||||
(using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits))
|
||||
(No client certificate requested)
|
||||
by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 5FB1B2965B
|
||||
for <patchwork-linux-arm@patchwork.kernel.org>;
|
||||
Mon, 17 Sep 2018 08:42:22 +0000 (UTC)
|
||||
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:MIME-Version:List-Subscribe:List-Help:
|
||||
List-Post:List-Archive:List-Unsubscribe:List-Id:References:In-Reply-To:
|
||||
Message-Id:Date:Subject:To:From:Reply-To:Cc:Content-ID:Content-Description:
|
||||
Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:
|
||||
List-Owner; bh=GuNa2jLaGytz4ltfeP+rSU0xZrseSNcWWmSj86ZTl7w=; b=i1naZIjCR6DgCG
|
||||
1T5cmZMM6Dkok0WN1avKEjHIKv18FXg4nMVuJeEEzdq5Dx4du3mbMHBWS9oC+QHZy9bTpHQRgiS0G
|
||||
Q6fvfZ7PYJUVWOzEgbkdyOL0OMiOVsYTJsMXoeii0MFMvmzFpelJ2KgEqJ/Ly+PRHPmHQ3WP9s7N5
|
||||
xE4orUgiIcIHSbMkCm42twuXZMgaMgQktA+jlnAaslK7PJtzMC1PHx2uCTbZdIVNTJFqkwgjqxmSW
|
||||
RH4f8jSTGWYwOlv5CgspS2YU753VETDvD0LTGDSrn737lsC94uI99f6ciaMZaUcS4SuRzuvjSvKPA
|
||||
pZ2TrSAmQre1Rp/jVeOw==;
|
||||
Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org)
|
||||
by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1g1p6f-00060f-0R; Mon, 17 Sep 2018 08:42:09 +0000
|
||||
Received: from casper.infradead.org ([2001:8b0:10b:1236::1])
|
||||
by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1g1p6b-0005u0-RH
|
||||
for linux-arm-kernel@bombadil.infradead.org; Mon, 17 Sep 2018 08:42:05 +0000
|
||||
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
|
||||
d=infradead.org; s=casper.20170209; h=References:In-Reply-To:Message-Id:Date:
|
||||
Subject:To:From:Sender:Reply-To:Cc:MIME-Version:Content-Type:
|
||||
Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:
|
||||
Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:
|
||||
List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive;
|
||||
bh=QMjgiTHZdBCZgWe6tYJjcntUGfqPQLNuRPhn6Dczv+g=; b=UJ3cMzmNQRhXaXlxWFwla6An2
|
||||
CWzMn1wzzr/CyRZ2G8YLZdvUEGpVRlTqAtk/xGbT7xO80oWONflxUNqlNTxj4v3QZkEMtsr5eg0bD
|
||||
bnEnzF3OS0dexb5Aro0bZajhgrMlaIaa5FBVndBgK1KeW4vEiE4D10APgXJMZ4gzO5PvO3pba7J0g
|
||||
XNDk7JzB7D/dSQXmKkb+EuUwalT2v/YJzFtIc+T3vR4/wvxhXFZmJL2dmzQMduHoVJtsIFvC1HfzF
|
||||
5GnY5y85CTU2Fx2s4JNOHe2vAGXI9lnUPf2szvyFhGQIVH7QC9y4zOsbG0iP36VEcuhbGnA3I5K7S
|
||||
8Kc2knjrQ==;
|
||||
Received: from mx07-00252a01.pphosted.com ([62.209.51.214])
|
||||
by casper.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
|
||||
id 1g1oo4-0004nO-7f
|
||||
for linux-arm-kernel@lists.infradead.org; Mon, 17 Sep 2018 08:22:58 +0000
|
||||
Received: from pps.filterd (m0102628.ppops.net [127.0.0.1])
|
||||
by mx07-00252a01.pphosted.com (8.16.0.23/8.16.0.23) with SMTP id
|
||||
w8H8MUCZ024134
|
||||
for <linux-arm-kernel@lists.infradead.org>; Mon, 17 Sep 2018 09:22:45 +0100
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.org;
|
||||
h=from : to :
|
||||
subject : date : message-id : in-reply-to : references; s=pp;
|
||||
bh=QMjgiTHZdBCZgWe6tYJjcntUGfqPQLNuRPhn6Dczv+g=;
|
||||
b=kZDNcIT02Qz8gHVo/pKHHsMKpNIeLNzW7d/g6n+A4XN0KAnqNvf2mO96pMHKNygRT76b
|
||||
cq81PbSI1ssh2L6Bd86zcSWNDq3UuoZl93qtK6YY8fqevti7XVKKtwh4qQ561BL8oE6W
|
||||
gorwuXGsxEpeer6/+1/r0Ookzhz4EiQkGcd/l3IP+T4XkHJgX6tZ/GTSRbDXzuxZ7WxL
|
||||
7Kh+zMjHW5FAV2xmyYnFEVvI5DFnD34QM4lLrw/v6fLDp1ZvcLH2psBo8wv9fd01ZnMp
|
||||
3gVnEu8QX+NWIq+9qJ6o8MajSNhGWU4WmTD2fiqfmxFBnCTWp5Y2ZfphwVsflhlnThtE Jw==
|
||||
Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com
|
||||
[209.85.221.70])
|
||||
by mx07-00252a01.pphosted.com with ESMTP id 2mgw8f0vac-1
|
||||
(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=OK)
|
||||
for <linux-arm-kernel@lists.infradead.org>; Mon, 17 Sep 2018 09:22:45 +0100
|
||||
Received: by mail-wr1-f70.google.com with SMTP id j22-v6so22020561wre.7
|
||||
for <linux-arm-kernel@lists.infradead.org>;
|
||||
Mon, 17 Sep 2018 01:22:45 -0700 (PDT)
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
||||
d=raspberrypi.org; s=google;
|
||||
h=from:to:subject:date:message-id:in-reply-to:references;
|
||||
bh=QMjgiTHZdBCZgWe6tYJjcntUGfqPQLNuRPhn6Dczv+g=;
|
||||
b=elxMUa+c3RtqQfnv+0aAH+u3stbGHUflCzNxSDLQUfmD/iHnq9vSqSRX+7+TLNBhXc
|
||||
iPDm6AigQoDgevY1qgR0cUf1kufwlFKka3QyyWdEH/eEZHs6b3W+U9NtjyUReMMOZh3Q
|
||||
gFrMrgzwIryQOKgcBg41hFqqv6lUEqVuTx3oC0n7U66JoJ1TRjY8muSPp8KWfB+Tsbtv
|
||||
XVDBeKa5HGzRKlxSI3/RSvmivz+7aUQW6wNy0+gZd3+COdPiyiRhbtT2Xwx98JZY12HT
|
||||
WlWqHTLkcG6jAKJP2dnqgvYGZ/eennHF34Tn37xHLjy4cahYo/ngTwQgPprJIaoIPcL+
|
||||
X/Dg==
|
||||
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
||||
d=1e100.net; s=20161025;
|
||||
h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to
|
||||
:references;
|
||||
bh=QMjgiTHZdBCZgWe6tYJjcntUGfqPQLNuRPhn6Dczv+g=;
|
||||
b=fVU6VgVpx/HstvLa9bPQVfHGZqO1SgQW8pSfbPxol5HYqweh3jT/ykuYXG8BAGW6Ig
|
||||
Mdhu3RzBV4wPReCMEgte6BWd94TWyWKxGq6l6xrOi3LXbUMPtIqox3kv3PfLLVxk3SMv
|
||||
sHWyp/kAkue+K5Ye6FnfgpJzJmCaJAvJ1UQpLPzF+5KG7GFYmuwAe65l68b8xBldLvz+
|
||||
CvnQ71gdsZIZ7CUzPRBN9OZhlZJWZXMPb3LdD6Q482+/PVWLFANU1O5l2/h50Y/dV+a1
|
||||
YalREMpfnz+tsZcpGEfzdxCpboHeDv/G6q+VotAhcrihrAMNK9BJZ16gTRMcwcYgPQWw
|
||||
qRSg==
|
||||
X-Gm-Message-State: APzg51DXrb2imPBCoJ+q/BYRCyqhMqStk08VprXg9IQ1KTzmptp77XVd
|
||||
R/mMPJ35LsOos7CoFmh/yWMJEB3GLYTLSiMzQFz8+7GxMs7H9M8ocW2aOTth0aTDS70XXH/nioS
|
||||
kW34F6tKDeWUp44rQD8ZgUpyJVb2hPfBbovQ=
|
||||
X-Received: by 2002:adf:d20a:: with SMTP id
|
||||
g10-v6mr18280267wri.66.1537172564529;
|
||||
Mon, 17 Sep 2018 01:22:44 -0700 (PDT)
|
||||
X-Google-Smtp-Source:
|
||||
ANB0VdY6Rp3hgeCMs9pw3a4a2+uvxxamVoyGcr3pIn6rx5kgmM+Aufcx5tRocSXQJqw45FaPg01X8g==
|
||||
X-Received: by 2002:adf:d20a:: with SMTP id
|
||||
g10-v6mr18280254wri.66.1537172564348;
|
||||
Mon, 17 Sep 2018 01:22:44 -0700 (PDT)
|
||||
Received: from buildbot.pitowers.org ([2a00:2381:fdf7:14:14e2:e2a0:5538:c448])
|
||||
by smtp.gmail.com with ESMTPSA id
|
||||
198-v6sm7938315wmm.0.2018.09.17.01.22.43
|
||||
(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
|
||||
Mon, 17 Sep 2018 01:22:43 -0700 (PDT)
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
To: Rob Herring <robh+dt@kernel.org>, Stefan Wahren <stefan.wahren@i2se.com>,
|
||||
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
|
||||
Phil Elwell <phil@raspberrypi.org>, devicetree@vger.kernel.org,
|
||||
linux-rpi-kernel@lists.infradead.org,
|
||||
Russell King <linux@armlinux.org.uk>, Arnd Bergmann <arnd@arndb.de>,
|
||||
linux-arm-kernel@lists.infradead.org,
|
||||
bcm-kernel-feedback-list@broadcom.com, devel@driverdev.osuosl.org
|
||||
Subject: [PATCH v3 4/4] ARM: dts: bcm283x: Correct mailbox register sizes
|
||||
Date: Mon, 17 Sep 2018 09:22:24 +0100
|
||||
Message-Id: <1537172544-104852-5-git-send-email-phil@raspberrypi.org>
|
||||
X-Mailer: git-send-email 2.7.4
|
||||
In-Reply-To: <1537172544-104852-1-git-send-email-phil@raspberrypi.org>
|
||||
References: <1537172544-104852-1-git-send-email-phil@raspberrypi.org>
|
||||
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, ,
|
||||
definitions=2018-09-17_04:, , signatures=0
|
||||
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
|
||||
X-CRM114-CacheID: sfid-20180917_092256_305871_71340799
|
||||
X-CRM114-Status: GOOD ( 19.05 )
|
||||
X-BeenThere: linux-arm-kernel@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.21
|
||||
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>
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset="us-ascii"
|
||||
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
|
||||
X-Virus-Scanned: ClamAV using ClamSMTP
|
||||
|
||||
The size field in a Device Tree "reg" property is encoded in bytes, not
|
||||
words.
|
||||
|
||||
Fixes: 614fa22119d6 ("ARM: dts: bcm2835: Add VCHIQ node to the Raspberry Pi boards. (v3)")
|
||||
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
---
|
||||
arch/arm/boot/dts/bcm2835-rpi.dtsi | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
|
||||
index 215d8cc..29f970f 100644
|
||||
--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
vchiq: mailbox@7e00b840 {
|
||||
compatible = "brcm,bcm2835-vchiq";
|
||||
- reg = <0x7e00b840 0xf>;
|
||||
+ reg = <0x7e00b840 0x3c>;
|
||||
interrupts = <0 2>;
|
||||
};
|
||||
};
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
From 26611da3961755795d58595851eec350e75ae0e7 Mon Sep 17 00:00:00 2001
|
||||
From: Eric Anholt <eric@anholt.net>
|
||||
Date: Mon, 21 May 2018 11:39:07 -0700
|
||||
Subject: arm: bcm2835: Add the PMU to the devicetree.
|
||||
|
||||
This only probes on arm64 so far, but hopefully that driver will be
|
||||
generalized soon.
|
||||
|
||||
Signed-off-by: Eric Anholt <eric@anholt.net>
|
||||
Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
---
|
||||
arch/arm/boot/dts/bcm2837.dtsi | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm2837.dtsi b/arch/arm/boot/dts/bcm2837.dtsi
|
||||
index 7704bb0..beb6c50 100644
|
||||
--- a/arch/arm/boot/dts/bcm2837.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm2837.dtsi
|
||||
@@ -17,6 +17,12 @@
|
||||
};
|
||||
};
|
||||
|
||||
+ arm-pmu {
|
||||
+ compatible = "arm,cortex-a53-pmu";
|
||||
+ interrupt-parent = <&local_intc>;
|
||||
+ interrupts = <9 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ };
|
||||
+
|
||||
timer {
|
||||
compatible = "arm,armv7-timer";
|
||||
interrupt-parent = <&local_intc>;
|
||||
--
|
||||
cgit v1.1
|
||||
45
bcm2837-fix-eth-leds.patch
Normal file
45
bcm2837-fix-eth-leds.patch
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
From 6ef5bd6cfd5da9fe67aea031fd0a66ff77d64ad6 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
Date: Sat, 1 Sep 2018 20:16:22 +0200
|
||||
Subject: ARM: dts: bcm283x-rpi-lan7515: Enable Ethernet LEDs
|
||||
|
||||
Since the LAN7515 on Raspberry Pi 3B+ doesn't have an EEPROM and the OTP
|
||||
is empty, we need to enable the Ethernet LEDs via Device Tree.
|
||||
|
||||
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
|
||||
---
|
||||
arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi | 14 ++++++++++++++
|
||||
1 file changed, 14 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi b/arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi
|
||||
index 9403da0990d0..70bece63f9a7 100644
|
||||
--- a/arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi
|
||||
@@ -1,4 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
+#include <dt-bindings/net/microchip-lan78xx.h>
|
||||
+
|
||||
/ {
|
||||
aliases {
|
||||
ethernet0 = ðernet;
|
||||
@@ -21,6 +23,18 @@
|
||||
ethernet: ethernet@1 {
|
||||
compatible = "usb424,7800";
|
||||
reg = <1>;
|
||||
+
|
||||
+ mdio {
|
||||
+ #address-cells = <0x1>;
|
||||
+ #size-cells = <0x0>;
|
||||
+ eth_phy: ethernet-phy@1 {
|
||||
+ reg = <1>;
|
||||
+ microchip,led-modes = <
|
||||
+ LAN78XX_LINK_1000_ACTIVITY
|
||||
+ LAN78XX_LINK_10_100_ACTIVITY
|
||||
+ >;
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
};
|
||||
};
|
||||
--
|
||||
cgit 1.2-0.3.lf.el7
|
||||
43
brcmfmac-Call-brcmf_dmi_probe-before-brcmf_of_probe.patch
Normal file
43
brcmfmac-Call-brcmf_dmi_probe-before-brcmf_of_probe.patch
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
From 554da3868eb1d7174710c18b4ddd6ff01f6d612c Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Fri, 23 Nov 2018 10:11:48 +0100
|
||||
Subject: brcmfmac: Call brcmf_dmi_probe before brcmf_of_probe
|
||||
|
||||
ARM systems with UEFI may have both devicetree (of) and DMI data in this
|
||||
case we end up setting brcmf_mp_device.board_type twice.
|
||||
|
||||
In this case we should prefer the devicetree data, because:
|
||||
1) The devicerree data is more reliable
|
||||
2) Some ARM systems (e.g. the Raspberry Pi 3 models) support both UEFI and
|
||||
classic uboot booting, the devicetree data is always there, so using it
|
||||
makes sure we ask for the same nvram file independent of how we booted.
|
||||
|
||||
This commit moves the brcmf_dmi_probe call to before the brcmf_of_probe
|
||||
call, so that the latter can override the value of the first if both are
|
||||
set.
|
||||
|
||||
Fixes: bd1e82bb420a ("brcmfmac: Set board_type from DMI on x86 based ...")
|
||||
Cc: Peter Robinson <pbrobinson@gmail.com>
|
||||
Tested-and-reported-by: Peter Robinson <pbrobinson@gmail.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
---
|
||||
drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
|
||||
index e738112ed87c..1f1e95a15a17 100644
|
||||
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
|
||||
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
|
||||
@@ -449,8 +449,8 @@ struct brcmf_mp_device *brcmf_get_module_param(struct device *dev,
|
||||
}
|
||||
if (!found) {
|
||||
/* No platform data for this device, try OF and DMI data */
|
||||
- brcmf_of_probe(dev, bus_type, settings);
|
||||
brcmf_dmi_probe(settings, chip, chiprev);
|
||||
+ brcmf_of_probe(dev, bus_type, settings);
|
||||
}
|
||||
return settings;
|
||||
}
|
||||
--
|
||||
cgit 1.2-0.3.lf.el7
|
||||
1028
brcmfmac-Remove-firmware-loading-code-duplication.patch
Normal file
1028
brcmfmac-Remove-firmware-loading-code-duplication.patch
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -79,8 +79,6 @@ function merge_configs()
|
|||
done
|
||||
if [ "x$arch" == "xaarch64" ]; then
|
||||
echo "# arm64" > $name
|
||||
elif [ "x$arch" == "xppc64" ]; then
|
||||
echo "# powerpc" > $name
|
||||
elif [ "x$arch" == "xppc64le" ]; then
|
||||
echo "# powerpc" > $name
|
||||
elif [ "x$arch" == "xs390x" ]; then
|
||||
|
|
|
|||
|
|
@ -15,16 +15,10 @@ x86_64-debug=generic:generic-x86:generic-x86-x86_64:debug:debug-x86:debug-x86-x8
|
|||
# i686
|
||||
i686=generic:generic-x86:generic-x86-i686
|
||||
i686-debug=generic:generic-x86:generic-x86-i686:debug:debug-x86
|
||||
i686-PAE=generic:generic-x86:generic-x86-i686PAE
|
||||
i686-PAEdebug=generic:generic-x86:generic-x86-i686PAE:debug:debug-x86
|
||||
|
||||
# ppc64
|
||||
ppc64=generic:generic-powerpc:generic-powerpc-powerpc64
|
||||
ppc64-debug=generic:generic-powerpc:generic-powerpc-powerpc64:debug
|
||||
|
||||
# ppc64le
|
||||
ppc64le=generic:generic-powerpc:generic-powerpc-powerpc64le
|
||||
ppc64le-debug=generic:generic-powerpc:generic-powerpc-powerpc64le:debug
|
||||
ppc64le=generic:generic-powerpc
|
||||
ppc64le-debug=generic:generic-powerpc:debug
|
||||
|
||||
# s390x
|
||||
s390x=generic:generic-s390x
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
CONFIG_ARM64_PTDUMP=y
|
||||
|
|
@ -1 +0,0 @@
|
|||
CONFIG_ARM_PTDUMP=y
|
||||
|
|
@ -1 +0,0 @@
|
|||
CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
|
||||
|
|
@ -1 +0,0 @@
|
|||
CONFIG_DEBUG_BLK_CGROUP=y
|
||||
1
configs/fedora/debug/CONFIG_DEBUG_MISC
Normal file
1
configs/fedora/debug/CONFIG_DEBUG_MISC
Normal file
|
|
@ -0,0 +1 @@
|
|||
CONFIG_DEBUG_MISC=y
|
||||
|
|
@ -1 +0,0 @@
|
|||
# CONFIG_DEBUG_PAGEALLOC is not set
|
||||
|
|
@ -1 +0,0 @@
|
|||
CONFIG_DEBUG_PI_LIST=y
|
||||
|
|
@ -1 +0,0 @@
|
|||
CONFIG_DEBUG_REFCOUNT=y
|
||||
|
|
@ -1 +0,0 @@
|
|||
CONFIG_DEBUG_SLAB=y
|
||||
|
|
@ -1 +0,0 @@
|
|||
CONFIG_DEBUG_VM=y
|
||||
|
|
@ -1 +1 @@
|
|||
CONFIG_DMADEVICES_DEBUG=y
|
||||
# CONFIG_DMADEVICES_DEBUG is not set
|
||||
|
|
|
|||
1
configs/fedora/debug/CONFIG_IOMMU_DEBUGFS
Normal file
1
configs/fedora/debug/CONFIG_IOMMU_DEBUGFS
Normal file
|
|
@ -0,0 +1 @@
|
|||
CONFIG_IOMMU_DEBUGFS=y
|
||||
1
configs/fedora/debug/CONFIG_LOCK_EVENT_COUNTS
Normal file
1
configs/fedora/debug/CONFIG_LOCK_EVENT_COUNTS
Normal file
|
|
@ -0,0 +1 @@
|
|||
CONFIG_LOCK_EVENT_COUNTS=y
|
||||
|
|
@ -1 +0,0 @@
|
|||
CONFIG_PM_TEST_SUSPEND=y
|
||||
1
configs/fedora/debug/arm/CONFIG_CROS_EC_DEBUGFS
Normal file
1
configs/fedora/debug/arm/CONFIG_CROS_EC_DEBUGFS
Normal file
|
|
@ -0,0 +1 @@
|
|||
CONFIG_CROS_EC_DEBUGFS=m
|
||||
|
|
@ -1 +0,0 @@
|
|||
# CONFIG_DMADEVICES_DEBUG is not set
|
||||
1
configs/fedora/debug/x86/CONFIG_CROS_EC_DEBUGFS
Normal file
1
configs/fedora/debug/x86/CONFIG_CROS_EC_DEBUGFS
Normal file
|
|
@ -0,0 +1 @@
|
|||
CONFIG_CROS_EC_DEBUGFS=m
|
||||
|
|
@ -1 +0,0 @@
|
|||
# CONFIG_8723AU_AP_MODE is not set
|
||||
|
|
@ -1 +0,0 @@
|
|||
# CONFIG_8723AU_BT_COEXIST is not set
|
||||
|
|
@ -1 +0,0 @@
|
|||
# CONFIG_AB3100_CORE is not set
|
||||
|
|
@ -1 +0,0 @@
|
|||
# CONFIG_AB3100_OTP is not set
|
||||
1
configs/fedora/generic/CONFIG_ACPI_HMAT
Normal file
1
configs/fedora/generic/CONFIG_ACPI_HMAT
Normal file
|
|
@ -0,0 +1 @@
|
|||
CONFIG_ACPI_HMAT=y
|
||||
|
|
@ -1 +0,0 @@
|
|||
# CONFIG_AD5686 is not set
|
||||
1
configs/fedora/generic/CONFIG_AD5758
Normal file
1
configs/fedora/generic/CONFIG_AD5758
Normal file
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_AD5758 is not set
|
||||
1
configs/fedora/generic/CONFIG_AD7124
Normal file
1
configs/fedora/generic/CONFIG_AD7124
Normal file
|
|
@ -0,0 +1 @@
|
|||
CONFIG_AD7124=m
|
||||
|
|
@ -1 +0,0 @@
|
|||
# CONFIG_AD7152 is not set
|
||||
1
configs/fedora/generic/CONFIG_AD7606_IFACE_PARALLEL
Normal file
1
configs/fedora/generic/CONFIG_AD7606_IFACE_PARALLEL
Normal file
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_AD7606_IFACE_PARALLEL is not set
|
||||
1
configs/fedora/generic/CONFIG_AD7606_IFACE_SPI
Normal file
1
configs/fedora/generic/CONFIG_AD7606_IFACE_SPI
Normal file
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_AD7606_IFACE_SPI is not set
|
||||
1
configs/fedora/generic/CONFIG_AD7768_1
Normal file
1
configs/fedora/generic/CONFIG_AD7768_1
Normal file
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_AD7768_1 is not set
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue