diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 375f76d87..cdea64a0c 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -6,13 +6,13 @@ ifdef CONFIG_TESTING_KERNEL KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER) endif -LINUX_VERSION-4.9 = .206 -LINUX_VERSION-4.14 = .158 -LINUX_VERSION-4.19 = .88 +LINUX_VERSION-4.9 = .207 +LINUX_VERSION-4.14 = .160 +LINUX_VERSION-4.19 = .91 -LINUX_KERNEL_HASH-4.9.206 = 1df27899a9bc4dd874f3830ab9e7b638f0026dffd67a2e230444e5d2805ccad6 -LINUX_KERNEL_HASH-4.14.158 = 0d49ec72e273f6fc7462ad56849b2285f13fd5f4185e8f932a0074fc2eca1bb3 -LINUX_KERNEL_HASH-4.19.88 = c1923b6bd166e6dd07be860c15f59e8273aaa8692bc2a1fce1d31b826b9b3fbe +LINUX_KERNEL_HASH-4.9.207 = ca86637e7b5bec65eeb7da695824e0e8aca5ba52eb742885f0b7241977400124 +LINUX_KERNEL_HASH-4.14.160 = c60326bad1bcdede514ca8a0bb96843fa7578ef00829cced6218b888b2efa92c +LINUX_KERNEL_HASH-4.19.91 = f403c3dee12ded0af1889c78871abf7a531a978ba423f1ca772de702a92c3447 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1))))))) diff --git a/target/linux/apm821xx/patches-4.14/020-0002-crypto-crypto4xx-remove-unused-definitions-and-write.patch b/target/linux/apm821xx/patches-4.14/020-0002-crypto-crypto4xx-remove-unused-definitions-and-write.patch index b49bcaf88..6cae1eaa3 100644 --- a/target/linux/apm821xx/patches-4.14/020-0002-crypto-crypto4xx-remove-unused-definitions-and-write.patch +++ b/target/linux/apm821xx/patches-4.14/020-0002-crypto-crypto4xx-remove-unused-definitions-and-write.patch @@ -67,7 +67,7 @@ Signed-off-by: Herbert Xu --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c -@@ -973,7 +973,7 @@ u32 crypto4xx_build_pd(struct crypto_asy +@@ -969,7 +969,7 @@ u32 crypto4xx_build_pd(struct crypto_asy sa->sa_command_1.bf.hash_crypto_offset = 0; pd->pd_ctl.w = ctx->pd_ctl; diff --git a/target/linux/apm821xx/patches-4.14/020-0003-crypto-crypto4xx-set-CRYPTO_ALG_KERN_DRIVER_ONLY-fla.patch b/target/linux/apm821xx/patches-4.14/020-0003-crypto-crypto4xx-set-CRYPTO_ALG_KERN_DRIVER_ONLY-fla.patch index ab2e73053..5b0a5df9e 100644 --- a/target/linux/apm821xx/patches-4.14/020-0003-crypto-crypto4xx-set-CRYPTO_ALG_KERN_DRIVER_ONLY-fla.patch +++ b/target/linux/apm821xx/patches-4.14/020-0003-crypto-crypto4xx-set-CRYPTO_ALG_KERN_DRIVER_ONLY-fla.patch @@ -18,7 +18,7 @@ Signed-off-by: Herbert Xu --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c -@@ -1125,7 +1125,9 @@ struct crypto4xx_alg_common crypto4xx_al +@@ -1121,7 +1121,9 @@ struct crypto4xx_alg_common crypto4xx_al .cra_name = "cbc(aes)", .cra_driver_name = "cbc-aes-ppc4xx", .cra_priority = CRYPTO4XX_CRYPTO_PRIORITY, diff --git a/target/linux/apm821xx/patches-4.14/020-0005-crypto-crypto4xx-remove-double-assignment-of-pd_uinf.patch b/target/linux/apm821xx/patches-4.14/020-0005-crypto-crypto4xx-remove-double-assignment-of-pd_uinf.patch index 6f173ea6d..802bef756 100644 --- a/target/linux/apm821xx/patches-4.14/020-0005-crypto-crypto4xx-remove-double-assignment-of-pd_uinf.patch +++ b/target/linux/apm821xx/patches-4.14/020-0005-crypto-crypto4xx-remove-double-assignment-of-pd_uinf.patch @@ -14,7 +14,7 @@ Signed-off-by: Herbert Xu --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c -@@ -1090,7 +1090,6 @@ static void crypto4xx_bh_tasklet_cb(unsi +@@ -1086,7 +1086,6 @@ static void crypto4xx_bh_tasklet_cb(unsi pd->pd_ctl.bf.pe_done = 0; crypto4xx_pd_done(core_dev->dev, tail); crypto4xx_put_pd_to_pdr(core_dev->dev, tail); diff --git a/target/linux/apm821xx/patches-4.14/020-0008-crypto-crypto4xx-enable-AES-RFC3686-ECB-CFB-and-OFB-.patch b/target/linux/apm821xx/patches-4.14/020-0008-crypto-crypto4xx-enable-AES-RFC3686-ECB-CFB-and-OFB-.patch index db1a71882..0a8da95cb 100644 --- a/target/linux/apm821xx/patches-4.14/020-0008-crypto-crypto4xx-enable-AES-RFC3686-ECB-CFB-and-OFB-.patch +++ b/target/linux/apm821xx/patches-4.14/020-0008-crypto-crypto4xx-enable-AES-RFC3686-ECB-CFB-and-OFB-.patch @@ -109,7 +109,7 @@ Signed-off-by: Herbert Xu #include #include "crypto4xx_reg_def.h" #include "crypto4xx_core.h" -@@ -1144,6 +1145,103 @@ struct crypto4xx_alg_common crypto4xx_al +@@ -1140,6 +1141,103 @@ struct crypto4xx_alg_common crypto4xx_al } } }}, diff --git a/target/linux/apm821xx/patches-4.14/020-0009-crypto-crypto4xx-refactor-crypto4xx_copy_pkt_to_dst.patch b/target/linux/apm821xx/patches-4.14/020-0009-crypto-crypto4xx-refactor-crypto4xx_copy_pkt_to_dst.patch index e74ed7f56..829c560be 100644 --- a/target/linux/apm821xx/patches-4.14/020-0009-crypto-crypto4xx-refactor-crypto4xx_copy_pkt_to_dst.patch +++ b/target/linux/apm821xx/patches-4.14/020-0009-crypto-crypto4xx-refactor-crypto4xx_copy_pkt_to_dst.patch @@ -27,7 +27,7 @@ Signed-off-by: Herbert Xu #include "crypto4xx_reg_def.h" #include "crypto4xx_core.h" #include "crypto4xx_sa.h" -@@ -483,111 +484,44 @@ static inline struct ce_sd *crypto4xx_ge +@@ -479,111 +480,44 @@ static inline struct ce_sd *crypto4xx_ge return (struct ce_sd *)(dev->sdr + sizeof(struct ce_sd) * idx); } diff --git a/target/linux/apm821xx/patches-4.14/020-0010-crypto-crypto4xx-replace-crypto4xx_dev-s-scatter_buf.patch b/target/linux/apm821xx/patches-4.14/020-0010-crypto-crypto4xx-replace-crypto4xx_dev-s-scatter_buf.patch index 5ca3faa4d..1a8f9c59e 100644 --- a/target/linux/apm821xx/patches-4.14/020-0010-crypto-crypto4xx-replace-crypto4xx_dev-s-scatter_buf.patch +++ b/target/linux/apm821xx/patches-4.14/020-0010-crypto-crypto4xx-replace-crypto4xx_dev-s-scatter_buf.patch @@ -27,9 +27,9 @@ Signed-off-by: Herbert Xu - dev->scatter_buffer_size * PPC4XX_NUM_SD, + PPC4XX_SD_BUFFER_SIZE * PPC4XX_NUM_SD, &dev->scatter_buffer_pa, GFP_ATOMIC); - if (!dev->scatter_buffer_va) { - dma_free_coherent(dev->core_dev->device, -@@ -412,7 +411,7 @@ static u32 crypto4xx_build_sdr(struct cr + if (!dev->scatter_buffer_va) + return -ENOMEM; +@@ -408,7 +407,7 @@ static u32 crypto4xx_build_sdr(struct cr for (i = 0; i < PPC4XX_NUM_SD; i++) { sd_array[i].ptr = dev->scatter_buffer_pa + @@ -38,7 +38,7 @@ Signed-off-by: Herbert Xu } return 0; -@@ -427,7 +426,7 @@ static void crypto4xx_destroy_sdr(struct +@@ -423,7 +422,7 @@ static void crypto4xx_destroy_sdr(struct if (dev->scatter_buffer_va) dma_free_coherent(dev->core_dev->device, diff --git a/target/linux/apm821xx/patches-4.14/020-0012-crypto-crypto4xx-pointer-arithmetic-overhaul.patch b/target/linux/apm821xx/patches-4.14/020-0012-crypto-crypto4xx-pointer-arithmetic-overhaul.patch index 3d445f537..ff768c2b7 100644 --- a/target/linux/apm821xx/patches-4.14/020-0012-crypto-crypto4xx-pointer-arithmetic-overhaul.patch +++ b/target/linux/apm821xx/patches-4.14/020-0012-crypto-crypto4xx-pointer-arithmetic-overhaul.patch @@ -171,9 +171,9 @@ Signed-off-by: Herbert Xu /* alloc memory for scatter descriptor ring */ dev->sdr = dma_alloc_coherent(dev->core_dev->device, -@@ -407,10 +403,8 @@ static u32 crypto4xx_build_sdr(struct cr +@@ -403,10 +399,8 @@ static u32 crypto4xx_build_sdr(struct cr + if (!dev->scatter_buffer_va) return -ENOMEM; - } - sd_array = dev->sdr; - @@ -183,7 +183,7 @@ Signed-off-by: Herbert Xu PPC4XX_SD_BUFFER_SIZE * i; } -@@ -480,7 +474,7 @@ static inline struct ce_sd *crypto4xx_ge +@@ -476,7 +470,7 @@ static inline struct ce_sd *crypto4xx_ge { *sd_dma = dev->sdr_pa + sizeof(struct ce_sd) * idx; @@ -192,7 +192,7 @@ Signed-off-by: Herbert Xu } static void crypto4xx_copy_pkt_to_dst(struct crypto4xx_device *dev, -@@ -529,11 +523,10 @@ static u32 crypto4xx_copy_digest_to_dst( +@@ -525,11 +519,10 @@ static u32 crypto4xx_copy_digest_to_dst( struct crypto4xx_ctx *ctx) { struct dynamic_sa_ctl *sa = (struct dynamic_sa_ctl *) ctx->sa_in; @@ -206,7 +206,7 @@ Signed-off-by: Herbert Xu SA_HASH_ALG_SHA1_DIGEST_SIZE); } -@@ -616,11 +609,9 @@ static u32 crypto4xx_ahash_done(struct c +@@ -612,11 +605,9 @@ static u32 crypto4xx_ahash_done(struct c static u32 crypto4xx_pd_done(struct crypto4xx_device *dev, u32 idx) { @@ -220,7 +220,7 @@ Signed-off-by: Herbert Xu if (crypto_tfm_alg_type(pd_uinfo->async_req->tfm) == CRYPTO_ALG_TYPE_ABLKCIPHER) return crypto4xx_ablkcipher_done(dev, pd_uinfo, pd); -@@ -721,7 +712,6 @@ u32 crypto4xx_build_pd(struct crypto_asy +@@ -717,7 +708,6 @@ u32 crypto4xx_build_pd(struct crypto_asy unsigned long flags; struct pd_uinfo *pd_uinfo = NULL; unsigned int nbytes = datalen, idx; @@ -228,7 +228,7 @@ Signed-off-by: Herbert Xu u32 gd_idx = 0; /* figure how many gd is needed */ -@@ -780,17 +770,15 @@ u32 crypto4xx_build_pd(struct crypto_asy +@@ -776,17 +766,15 @@ u32 crypto4xx_build_pd(struct crypto_asy } spin_unlock_irqrestore(&dev->core_dev->lock, flags); @@ -248,7 +248,7 @@ Signed-off-by: Herbert Xu if (ctx->direction == DIR_INBOUND) memcpy(sa, ctx->sa_in, ctx->sa_len * 4); else -@@ -800,14 +788,15 @@ u32 crypto4xx_build_pd(struct crypto_asy +@@ -796,14 +784,15 @@ u32 crypto4xx_build_pd(struct crypto_asy &pd_uinfo->sr_pa, 4); if (iv_len) @@ -267,7 +267,7 @@ Signed-off-by: Herbert Xu } } pd->sa_len = ctx->sa_len; -@@ -1015,9 +1004,8 @@ static void crypto4xx_bh_tasklet_cb(unsi +@@ -1011,9 +1000,8 @@ static void crypto4xx_bh_tasklet_cb(unsi while (core_dev->dev->pdr_head != core_dev->dev->pdr_tail) { tail = core_dev->dev->pdr_tail; diff --git a/target/linux/apm821xx/patches-4.14/020-0014-crypto-crypto4xx-fix-off-by-one-AES-OFB.patch b/target/linux/apm821xx/patches-4.14/020-0014-crypto-crypto4xx-fix-off-by-one-AES-OFB.patch index b1786a201..98c584dbc 100644 --- a/target/linux/apm821xx/patches-4.14/020-0014-crypto-crypto4xx-fix-off-by-one-AES-OFB.patch +++ b/target/linux/apm821xx/patches-4.14/020-0014-crypto-crypto4xx-fix-off-by-one-AES-OFB.patch @@ -38,7 +38,7 @@ Signed-off-by: Herbert Xu --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c -@@ -1157,7 +1157,7 @@ struct crypto4xx_alg_common crypto4xx_al +@@ -1153,7 +1153,7 @@ struct crypto4xx_alg_common crypto4xx_al .min_keysize = AES_MIN_KEY_SIZE, .max_keysize = AES_MAX_KEY_SIZE, .ivsize = AES_IV_SIZE, diff --git a/target/linux/apm821xx/patches-4.14/020-0017-crypto-crypto4xx-add-backlog-queue-support.patch b/target/linux/apm821xx/patches-4.14/020-0017-crypto-crypto4xx-add-backlog-queue-support.patch index 4e644cf62..cc88baecb 100644 --- a/target/linux/apm821xx/patches-4.14/020-0017-crypto-crypto4xx-add-backlog-queue-support.patch +++ b/target/linux/apm821xx/patches-4.14/020-0017-crypto-crypto4xx-add-backlog-queue-support.patch @@ -56,7 +56,7 @@ Signed-off-by: Herbert Xu #include "crypto4xx_reg_def.h" #include "crypto4xx_core.h" #include "crypto4xx_sa.h" -@@ -582,8 +583,10 @@ static u32 crypto4xx_ablkcipher_done(str +@@ -578,8 +579,10 @@ static u32 crypto4xx_ablkcipher_done(str } crypto4xx_ret_sg_desc(dev, pd_uinfo); @@ -69,7 +69,7 @@ Signed-off-by: Herbert Xu return 0; } -@@ -600,9 +603,10 @@ static u32 crypto4xx_ahash_done(struct c +@@ -596,9 +599,10 @@ static u32 crypto4xx_ahash_done(struct c crypto4xx_copy_digest_to_dst(pd_uinfo, crypto_tfm_ctx(ahash_req->base.tfm)); crypto4xx_ret_sg_desc(dev, pd_uinfo); @@ -83,7 +83,7 @@ Signed-off-by: Herbert Xu return 0; } -@@ -713,6 +717,7 @@ u32 crypto4xx_build_pd(struct crypto_asy +@@ -709,6 +713,7 @@ u32 crypto4xx_build_pd(struct crypto_asy struct pd_uinfo *pd_uinfo = NULL; unsigned int nbytes = datalen, idx; u32 gd_idx = 0; @@ -91,7 +91,7 @@ Signed-off-by: Herbert Xu /* figure how many gd is needed */ num_gd = sg_nents_for_len(src, datalen); -@@ -743,6 +748,31 @@ u32 crypto4xx_build_pd(struct crypto_asy +@@ -739,6 +744,31 @@ u32 crypto4xx_build_pd(struct crypto_asy * already got must be return the original place. */ spin_lock_irqsave(&dev->core_dev->lock, flags); @@ -123,7 +123,7 @@ Signed-off-by: Herbert Xu if (num_gd) { fst_gd = crypto4xx_get_n_gd(dev, num_gd); if (fst_gd == ERING_WAS_FULL) { -@@ -897,11 +927,12 @@ u32 crypto4xx_build_pd(struct crypto_asy +@@ -893,11 +923,12 @@ u32 crypto4xx_build_pd(struct crypto_asy sa->sa_command_1.bf.hash_crypto_offset = 0; pd->pd_ctl.w = ctx->pd_ctl; pd->pd_ctl_len.w = 0x00400000 | datalen; @@ -138,7 +138,7 @@ Signed-off-by: Herbert Xu } /** -@@ -1006,7 +1037,7 @@ static void crypto4xx_bh_tasklet_cb(unsi +@@ -1002,7 +1033,7 @@ static void crypto4xx_bh_tasklet_cb(unsi tail = core_dev->dev->pdr_tail; pd_uinfo = &core_dev->dev->pdr_uinfo[tail]; pd = &core_dev->dev->pdr[tail]; diff --git a/target/linux/apm821xx/patches-4.14/020-0018-crypto-crypto4xx-use-the-correct-LE32-format-for-IV-.patch b/target/linux/apm821xx/patches-4.14/020-0018-crypto-crypto4xx-use-the-correct-LE32-format-for-IV-.patch index 347cea501..c3b58f78b 100644 --- a/target/linux/apm821xx/patches-4.14/020-0018-crypto-crypto4xx-use-the-correct-LE32-format-for-IV-.patch +++ b/target/linux/apm821xx/patches-4.14/020-0018-crypto-crypto4xx-use-the-correct-LE32-format-for-IV-.patch @@ -45,7 +45,7 @@ Signed-off-by: Herbert Xu ctx->is_hash = 0; --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c -@@ -623,42 +623,6 @@ static u32 crypto4xx_pd_done(struct cryp +@@ -619,42 +619,6 @@ static u32 crypto4xx_pd_done(struct cryp return crypto4xx_ahash_done(dev, pd_uinfo); } @@ -88,7 +88,7 @@ Signed-off-by: Herbert Xu static void crypto4xx_stop_all(struct crypto4xx_core_device *core_dev) { crypto4xx_destroy_pdr(core_dev->dev); -@@ -818,8 +782,8 @@ u32 crypto4xx_build_pd(struct crypto_asy +@@ -814,8 +778,8 @@ u32 crypto4xx_build_pd(struct crypto_asy &pd_uinfo->sr_pa, 4); if (iv_len) diff --git a/target/linux/apm821xx/patches-4.14/020-0019-crypto-crypto4xx-overhaul-crypto4xx_build_pd.patch b/target/linux/apm821xx/patches-4.14/020-0019-crypto-crypto4xx-overhaul-crypto4xx_build_pd.patch index 023f63638..7efb0e699 100644 --- a/target/linux/apm821xx/patches-4.14/020-0019-crypto-crypto4xx-overhaul-crypto4xx_build_pd.patch +++ b/target/linux/apm821xx/patches-4.14/020-0019-crypto-crypto4xx-overhaul-crypto4xx_build_pd.patch @@ -263,7 +263,7 @@ Signed-off-by: Herbert Xu /** * alloc memory for the gather ring * no need to alloc buf for the ring -@@ -520,18 +514,16 @@ static void crypto4xx_copy_pkt_to_dst(st +@@ -516,18 +510,16 @@ static void crypto4xx_copy_pkt_to_dst(st } } @@ -285,7 +285,7 @@ Signed-off-by: Herbert Xu } static void crypto4xx_ret_sg_desc(struct crypto4xx_device *dev, -@@ -600,7 +592,7 @@ static u32 crypto4xx_ahash_done(struct c +@@ -596,7 +588,7 @@ static u32 crypto4xx_ahash_done(struct c ahash_req = ahash_request_cast(pd_uinfo->async_req); ctx = crypto_tfm_ctx(ahash_req->base.tfm); @@ -294,7 +294,7 @@ Signed-off-by: Herbert Xu crypto_tfm_ctx(ahash_req->base.tfm)); crypto4xx_ret_sg_desc(dev, pd_uinfo); -@@ -660,17 +652,17 @@ static u32 get_next_sd(u32 current) +@@ -656,17 +648,17 @@ static u32 get_next_sd(u32 current) return 0; } @@ -317,7 +317,7 @@ Signed-off-by: Herbert Xu struct ce_gd *gd; struct ce_pd *pd; u32 num_gd, num_sd; -@@ -678,8 +670,9 @@ u32 crypto4xx_build_pd(struct crypto_asy +@@ -674,8 +666,9 @@ u32 crypto4xx_build_pd(struct crypto_asy u32 fst_sd = 0xffffffff; u32 pd_entry; unsigned long flags; @@ -329,7 +329,7 @@ Signed-off-by: Herbert Xu u32 gd_idx = 0; bool is_busy; -@@ -693,7 +686,7 @@ u32 crypto4xx_build_pd(struct crypto_asy +@@ -689,7 +682,7 @@ u32 crypto4xx_build_pd(struct crypto_asy num_gd = 0; /* figure how many sd is needed */ @@ -338,7 +338,7 @@ Signed-off-by: Herbert Xu num_sd = 0; } else { if (datalen > PPC4XX_SD_BUFFER_SIZE) { -@@ -764,37 +757,27 @@ u32 crypto4xx_build_pd(struct crypto_asy +@@ -760,37 +753,27 @@ u32 crypto4xx_build_pd(struct crypto_asy } spin_unlock_irqrestore(&dev->core_dev->lock, flags); @@ -389,7 +389,7 @@ Signed-off-by: Herbert Xu /* get first gd we are going to use */ gd_idx = fst_gd; pd_uinfo->first_gd = fst_gd; -@@ -803,27 +786,30 @@ u32 crypto4xx_build_pd(struct crypto_asy +@@ -799,27 +782,30 @@ u32 crypto4xx_build_pd(struct crypto_asy pd->src = gd_dma; /* enable gather */ sa->sa_command_0.bf.gather = 1; @@ -430,7 +430,7 @@ Signed-off-by: Herbert Xu /* * Disable gather in sa command */ -@@ -834,25 +820,24 @@ u32 crypto4xx_build_pd(struct crypto_asy +@@ -830,25 +816,24 @@ u32 crypto4xx_build_pd(struct crypto_asy pd_uinfo->first_gd = 0xffffffff; pd_uinfo->num_gd = 0; } @@ -463,7 +463,7 @@ Signed-off-by: Herbert Xu u32 sd_idx = fst_sd; nbytes = datalen; sa->sa_command_0.bf.scatter = 1; -@@ -866,7 +851,6 @@ u32 crypto4xx_build_pd(struct crypto_asy +@@ -862,7 +847,6 @@ u32 crypto4xx_build_pd(struct crypto_asy sd->ctl.done = 0; sd->ctl.rdy = 1; /* sd->ptr should be setup by sd_init routine*/ @@ -471,7 +471,7 @@ Signed-off-by: Herbert Xu if (nbytes >= PPC4XX_SD_BUFFER_SIZE) nbytes -= PPC4XX_SD_BUFFER_SIZE; else -@@ -877,19 +861,23 @@ u32 crypto4xx_build_pd(struct crypto_asy +@@ -873,19 +857,23 @@ u32 crypto4xx_build_pd(struct crypto_asy /* setup scatter descriptor */ sd->ctl.done = 0; sd->ctl.rdy = 1; diff --git a/target/linux/apm821xx/patches-4.14/020-0020-crypto-crypto4xx-fix-various-warnings.patch b/target/linux/apm821xx/patches-4.14/020-0020-crypto-crypto4xx-fix-various-warnings.patch index c58026d32..b37438d06 100644 --- a/target/linux/apm821xx/patches-4.14/020-0020-crypto-crypto4xx-fix-various-warnings.patch +++ b/target/linux/apm821xx/patches-4.14/020-0020-crypto-crypto4xx-fix-various-warnings.patch @@ -42,7 +42,7 @@ Signed-off-by: Herbert Xu if (n >= PPC4XX_NUM_GD) return ERING_WAS_FULL; -@@ -625,17 +626,6 @@ static void crypto4xx_stop_all(struct cr +@@ -621,17 +622,6 @@ static void crypto4xx_stop_all(struct cr kfree(core_dev); } diff --git a/target/linux/apm821xx/patches-4.14/020-0021-crypto-crypto4xx-fix-stalls-under-heavy-load.patch b/target/linux/apm821xx/patches-4.14/020-0021-crypto-crypto4xx-fix-stalls-under-heavy-load.patch index 5e8ac96e1..a9d6ddced 100644 --- a/target/linux/apm821xx/patches-4.14/020-0021-crypto-crypto4xx-fix-stalls-under-heavy-load.patch +++ b/target/linux/apm821xx/patches-4.14/020-0021-crypto-crypto4xx-fix-stalls-under-heavy-load.patch @@ -44,7 +44,7 @@ Signed-off-by: Herbert Xu } /** -@@ -863,16 +866,16 @@ int crypto4xx_build_pd(struct crypto_asy +@@ -859,16 +862,16 @@ int crypto4xx_build_pd(struct crypto_asy } } @@ -66,7 +66,7 @@ Signed-off-by: Herbert Xu writel(1, dev->ce_base + CRYPTO4XX_INT_DESCR_RD); return is_busy ? -EBUSY : -EINPROGRESS; } -@@ -973,23 +976,23 @@ static void crypto4xx_bh_tasklet_cb(unsi +@@ -969,23 +972,23 @@ static void crypto4xx_bh_tasklet_cb(unsi struct crypto4xx_core_device *core_dev = dev_get_drvdata(dev); struct pd_uinfo *pd_uinfo; struct ce_pd *pd; diff --git a/target/linux/apm821xx/patches-4.14/020-0022-crypto-crypto4xx-simplify-sa-and-state-context-acqui.patch b/target/linux/apm821xx/patches-4.14/020-0022-crypto-crypto4xx-simplify-sa-and-state-context-acqui.patch index 55c85005a..2ac1e5a1d 100644 --- a/target/linux/apm821xx/patches-4.14/020-0022-crypto-crypto4xx-simplify-sa-and-state-context-acqui.patch +++ b/target/linux/apm821xx/patches-4.14/020-0022-crypto-crypto4xx-simplify-sa-and-state-context-acqui.patch @@ -167,7 +167,7 @@ Signed-off-by: Herbert Xu /** * alloc memory for the gather ring * no need to alloc buf for the ring -@@ -892,8 +861,6 @@ static int crypto4xx_alg_init(struct cry +@@ -888,8 +857,6 @@ static int crypto4xx_alg_init(struct cry ctx->dev = amcc_alg->dev; ctx->sa_in = NULL; ctx->sa_out = NULL; @@ -176,7 +176,7 @@ Signed-off-by: Herbert Xu ctx->sa_len = 0; switch (alg->cra_flags & CRYPTO_ALG_TYPE_MASK) { -@@ -914,7 +881,6 @@ static void crypto4xx_alg_exit(struct cr +@@ -910,7 +877,6 @@ static void crypto4xx_alg_exit(struct cr struct crypto4xx_ctx *ctx = crypto_tfm_ctx(tfm); crypto4xx_free_sa(ctx); diff --git a/target/linux/apm821xx/patches-4.14/020-0023-crypto-crypto4xx-prepare-for-AEAD-support.patch b/target/linux/apm821xx/patches-4.14/020-0023-crypto-crypto4xx-prepare-for-AEAD-support.patch index f883e5a99..aa99b1780 100644 --- a/target/linux/apm821xx/patches-4.14/020-0023-crypto-crypto4xx-prepare-for-AEAD-support.patch +++ b/target/linux/apm821xx/patches-4.14/020-0023-crypto-crypto4xx-prepare-for-AEAD-support.patch @@ -116,7 +116,7 @@ Signed-off-by: Herbert Xu #include #include "crypto4xx_reg_def.h" #include "crypto4xx_core.h" -@@ -518,7 +520,7 @@ static void crypto4xx_ret_sg_desc(struct +@@ -514,7 +516,7 @@ static void crypto4xx_ret_sg_desc(struct } } @@ -125,7 +125,7 @@ Signed-off-by: Herbert Xu struct pd_uinfo *pd_uinfo, struct ce_pd *pd) { -@@ -552,11 +554,9 @@ static u32 crypto4xx_ablkcipher_done(str +@@ -548,11 +550,9 @@ static u32 crypto4xx_ablkcipher_done(str if (pd_uinfo->state & PD_ENTRY_BUSY) ablkcipher_request_complete(ablk_req, -EINPROGRESS); ablkcipher_request_complete(ablk_req, 0); @@ -138,7 +138,7 @@ Signed-off-by: Herbert Xu struct pd_uinfo *pd_uinfo) { struct crypto4xx_ctx *ctx; -@@ -572,20 +572,88 @@ static u32 crypto4xx_ahash_done(struct c +@@ -568,20 +568,88 @@ static u32 crypto4xx_ahash_done(struct c if (pd_uinfo->state & PD_ENTRY_BUSY) ahash_request_complete(ahash_req, -EINPROGRESS); ahash_request_complete(ahash_req, 0); @@ -234,7 +234,7 @@ Signed-off-by: Herbert Xu } static void crypto4xx_stop_all(struct crypto4xx_core_device *core_dev) -@@ -621,8 +689,10 @@ int crypto4xx_build_pd(struct crypto_asy +@@ -617,8 +685,10 @@ int crypto4xx_build_pd(struct crypto_asy const unsigned int datalen, const __le32 *iv, const u32 iv_len, const struct dynamic_sa_ctl *req_sa, @@ -246,7 +246,7 @@ Signed-off-by: Herbert Xu struct crypto4xx_device *dev = ctx->dev; struct dynamic_sa_ctl *sa; struct ce_gd *gd; -@@ -636,18 +706,25 @@ int crypto4xx_build_pd(struct crypto_asy +@@ -632,18 +702,25 @@ int crypto4xx_build_pd(struct crypto_asy unsigned int nbytes = datalen; size_t offset_to_sr_ptr; u32 gd_idx = 0; @@ -279,7 +279,7 @@ Signed-off-by: Herbert Xu if (sg_is_last(dst)) { num_sd = 0; } else { -@@ -733,6 +810,7 @@ int crypto4xx_build_pd(struct crypto_asy +@@ -729,6 +806,7 @@ int crypto4xx_build_pd(struct crypto_asy sa = pd_uinfo->sa_va; memcpy(sa, req_sa, sa_len * 4); @@ -287,7 +287,7 @@ Signed-off-by: Herbert Xu offset_to_sr_ptr = get_dynamic_sa_offset_state_ptr_field(sa); *(u32 *)((unsigned long)sa + offset_to_sr_ptr) = pd_uinfo->sr_pa; -@@ -839,7 +917,7 @@ int crypto4xx_build_pd(struct crypto_asy +@@ -835,7 +913,7 @@ int crypto4xx_build_pd(struct crypto_asy ((crypto_tfm_alg_type(req->tfm) == CRYPTO_ALG_TYPE_AHASH) | (crypto_tfm_alg_type(req->tfm) == CRYPTO_ALG_TYPE_AEAD) ? PD_CTL_HASH_FINAL : 0); @@ -296,7 +296,7 @@ Signed-off-by: Herbert Xu pd_uinfo->state = PD_ENTRY_INUSE | (is_busy ? PD_ENTRY_BUSY : 0); wmb(); -@@ -852,40 +930,68 @@ int crypto4xx_build_pd(struct crypto_asy +@@ -848,40 +926,68 @@ int crypto4xx_build_pd(struct crypto_asy /** * Algorithm Registration Functions */ @@ -385,7 +385,7 @@ Signed-off-by: Herbert Xu { struct crypto4xx_alg *alg; int i; -@@ -900,6 +1006,10 @@ int crypto4xx_register_alg(struct crypto +@@ -896,6 +1002,10 @@ int crypto4xx_register_alg(struct crypto alg->dev = sec_dev; switch (alg->alg.type) { @@ -396,7 +396,7 @@ Signed-off-by: Herbert Xu case CRYPTO_ALG_TYPE_AHASH: rc = crypto_register_ahash(&alg->alg.u.hash); break; -@@ -929,6 +1039,10 @@ static void crypto4xx_unregister_alg(str +@@ -925,6 +1035,10 @@ static void crypto4xx_unregister_alg(str crypto_unregister_ahash(&alg->alg.u.hash); break; @@ -407,7 +407,7 @@ Signed-off-by: Herbert Xu default: crypto_unregister_alg(&alg->alg.u.cipher); } -@@ -982,7 +1096,7 @@ static irqreturn_t crypto4xx_ce_interrup +@@ -978,7 +1092,7 @@ static irqreturn_t crypto4xx_ce_interrup /** * Supported Crypto Algorithms */ @@ -416,7 +416,7 @@ Signed-off-by: Herbert Xu /* Crypto AES modes */ { .type = CRYPTO_ALG_TYPE_ABLKCIPHER, .u.cipher = { .cra_name = "cbc(aes)", -@@ -994,8 +1108,8 @@ struct crypto4xx_alg_common crypto4xx_al +@@ -990,8 +1104,8 @@ struct crypto4xx_alg_common crypto4xx_al .cra_blocksize = AES_BLOCK_SIZE, .cra_ctxsize = sizeof(struct crypto4xx_ctx), .cra_type = &crypto_ablkcipher_type, @@ -427,7 +427,7 @@ Signed-off-by: Herbert Xu .cra_module = THIS_MODULE, .cra_u = { .ablkcipher = { -@@ -1018,8 +1132,8 @@ struct crypto4xx_alg_common crypto4xx_al +@@ -1014,8 +1128,8 @@ struct crypto4xx_alg_common crypto4xx_al .cra_blocksize = AES_BLOCK_SIZE, .cra_ctxsize = sizeof(struct crypto4xx_ctx), .cra_type = &crypto_ablkcipher_type, @@ -438,7 +438,7 @@ Signed-off-by: Herbert Xu .cra_module = THIS_MODULE, .cra_u = { .ablkcipher = { -@@ -1042,8 +1156,8 @@ struct crypto4xx_alg_common crypto4xx_al +@@ -1038,8 +1152,8 @@ struct crypto4xx_alg_common crypto4xx_al .cra_blocksize = AES_BLOCK_SIZE, .cra_ctxsize = sizeof(struct crypto4xx_ctx), .cra_type = &crypto_ablkcipher_type, @@ -449,7 +449,7 @@ Signed-off-by: Herbert Xu .cra_module = THIS_MODULE, .cra_u = { .ablkcipher = { -@@ -1068,8 +1182,8 @@ struct crypto4xx_alg_common crypto4xx_al +@@ -1064,8 +1178,8 @@ struct crypto4xx_alg_common crypto4xx_al .cra_blocksize = AES_BLOCK_SIZE, .cra_ctxsize = sizeof(struct crypto4xx_ctx), .cra_type = &crypto_ablkcipher_type, @@ -460,7 +460,7 @@ Signed-off-by: Herbert Xu .cra_module = THIS_MODULE, .cra_u = { .ablkcipher = { -@@ -1091,8 +1205,8 @@ struct crypto4xx_alg_common crypto4xx_al +@@ -1087,8 +1201,8 @@ struct crypto4xx_alg_common crypto4xx_al .cra_blocksize = AES_BLOCK_SIZE, .cra_ctxsize = sizeof(struct crypto4xx_ctx), .cra_type = &crypto_ablkcipher_type, @@ -471,7 +471,7 @@ Signed-off-by: Herbert Xu .cra_module = THIS_MODULE, .cra_u = { .ablkcipher = { -@@ -1158,6 +1272,7 @@ static int crypto4xx_probe(struct platfo +@@ -1154,6 +1268,7 @@ static int crypto4xx_probe(struct platfo core_dev->device = dev; spin_lock_init(&core_dev->lock); INIT_LIST_HEAD(&core_dev->dev->alg_list); diff --git a/target/linux/apm821xx/patches-4.14/020-0024-crypto-crypto4xx-add-aes-ccm-support.patch b/target/linux/apm821xx/patches-4.14/020-0024-crypto-crypto4xx-add-aes-ccm-support.patch index 8f78f51cd..c3d4a07a8 100644 --- a/target/linux/apm821xx/patches-4.14/020-0024-crypto-crypto4xx-add-aes-ccm-support.patch +++ b/target/linux/apm821xx/patches-4.14/020-0024-crypto-crypto4xx-add-aes-ccm-support.patch @@ -209,7 +209,7 @@ Signed-off-by: Herbert Xu */ --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c -@@ -1219,6 +1219,29 @@ static struct crypto4xx_alg_common crypt +@@ -1215,6 +1215,29 @@ static struct crypto4xx_alg_common crypt } } } }, diff --git a/target/linux/apm821xx/patches-4.14/020-0025-crypto-crypto4xx-add-aes-gcm-support.patch b/target/linux/apm821xx/patches-4.14/020-0025-crypto-crypto4xx-add-aes-gcm-support.patch index 888f7b68d..d56f83826 100644 --- a/target/linux/apm821xx/patches-4.14/020-0025-crypto-crypto4xx-add-aes-gcm-support.patch +++ b/target/linux/apm821xx/patches-4.14/020-0025-crypto-crypto4xx-add-aes-gcm-support.patch @@ -178,7 +178,7 @@ Signed-off-by: Herbert Xu #include #include #include -@@ -1236,6 +1237,27 @@ static struct crypto4xx_alg_common crypt +@@ -1232,6 +1233,27 @@ static struct crypto4xx_alg_common crypt .cra_priority = CRYPTO4XX_CRYPTO_PRIORITY, .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK | diff --git a/target/linux/apm821xx/patches-4.14/021-0001-crypto-crypto4xx-shuffle-iomap-in-front-of-request_i.patch b/target/linux/apm821xx/patches-4.14/021-0001-crypto-crypto4xx-shuffle-iomap-in-front-of-request_i.patch index 1b13c345c..9c3b9fe70 100644 --- a/target/linux/apm821xx/patches-4.14/021-0001-crypto-crypto4xx-shuffle-iomap-in-front-of-request_i.patch +++ b/target/linux/apm821xx/patches-4.14/021-0001-crypto-crypto4xx-shuffle-iomap-in-front-of-request_i.patch @@ -17,7 +17,7 @@ Signed-off-by: Christian Lamparter --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c -@@ -1084,9 +1084,6 @@ static irqreturn_t crypto4xx_ce_interrup +@@ -1080,9 +1080,6 @@ static irqreturn_t crypto4xx_ce_interrup struct device *dev = (struct device *)data; struct crypto4xx_core_device *core_dev = dev_get_drvdata(dev); @@ -27,7 +27,7 @@ Signed-off-by: Christian Lamparter writel(PPC4XX_INTERRUPT_CLR, core_dev->dev->ce_base + CRYPTO4XX_INT_CLR); tasklet_schedule(&core_dev->tasklet); -@@ -1334,13 +1331,6 @@ static int crypto4xx_probe(struct platfo +@@ -1330,13 +1327,6 @@ static int crypto4xx_probe(struct platfo tasklet_init(&core_dev->tasklet, crypto4xx_bh_tasklet_cb, (unsigned long) dev); @@ -41,7 +41,7 @@ Signed-off-by: Christian Lamparter core_dev->dev->ce_base = of_iomap(ofdev->dev.of_node, 0); if (!core_dev->dev->ce_base) { dev_err(dev, "failed to of_iomap\n"); -@@ -1348,6 +1338,13 @@ static int crypto4xx_probe(struct platfo +@@ -1344,6 +1334,13 @@ static int crypto4xx_probe(struct platfo goto err_iomap; } @@ -55,7 +55,7 @@ Signed-off-by: Christian Lamparter /* need to setup pdr, rdr, gdr and sdr before this */ crypto4xx_hw_init(core_dev->dev); -@@ -1361,11 +1358,11 @@ static int crypto4xx_probe(struct platfo +@@ -1357,11 +1354,11 @@ static int crypto4xx_probe(struct platfo return 0; err_start_dev: diff --git a/target/linux/apm821xx/patches-4.14/021-0002-crypto-crypto4xx-support-Revision-B-parts.patch b/target/linux/apm821xx/patches-4.14/021-0002-crypto-crypto4xx-support-Revision-B-parts.patch index 453602a5a..1aaf7920b 100644 --- a/target/linux/apm821xx/patches-4.14/021-0002-crypto-crypto4xx-support-Revision-B-parts.patch +++ b/target/linux/apm821xx/patches-4.14/021-0002-crypto-crypto4xx-support-Revision-B-parts.patch @@ -35,7 +35,7 @@ Signed-off-by: Christian Lamparter } int crypto4xx_alloc_sa(struct crypto4xx_ctx *ctx, u32 size) -@@ -1079,18 +1086,29 @@ static void crypto4xx_bh_tasklet_cb(unsi +@@ -1075,18 +1082,29 @@ static void crypto4xx_bh_tasklet_cb(unsi /** * Top Half of isr. */ @@ -68,7 +68,7 @@ Signed-off-by: Christian Lamparter /** * Supported Crypto Algorithms */ -@@ -1272,6 +1290,8 @@ static int crypto4xx_probe(struct platfo +@@ -1268,6 +1286,8 @@ static int crypto4xx_probe(struct platfo struct resource res; struct device *dev = &ofdev->dev; struct crypto4xx_core_device *core_dev; @@ -77,7 +77,7 @@ Signed-off-by: Christian Lamparter rc = of_address_to_resource(ofdev->dev.of_node, 0, &res); if (rc) -@@ -1288,6 +1308,7 @@ static int crypto4xx_probe(struct platfo +@@ -1284,6 +1304,7 @@ static int crypto4xx_probe(struct platfo mfdcri(SDR0, PPC405EX_SDR0_SRST) | PPC405EX_CE_RESET); mtdcri(SDR0, PPC405EX_SDR0_SRST, mfdcri(SDR0, PPC405EX_SDR0_SRST) & ~PPC405EX_CE_RESET); @@ -85,7 +85,7 @@ Signed-off-by: Christian Lamparter } else if (of_find_compatible_node(NULL, NULL, "amcc,ppc460sx-crypto")) { mtdcri(SDR0, PPC460SX_SDR0_SRST, -@@ -1310,7 +1331,22 @@ static int crypto4xx_probe(struct platfo +@@ -1306,7 +1327,22 @@ static int crypto4xx_probe(struct platfo if (!core_dev->dev) goto err_alloc_dev; @@ -108,7 +108,7 @@ Signed-off-by: Christian Lamparter core_dev->device = dev; spin_lock_init(&core_dev->lock); INIT_LIST_HEAD(&core_dev->dev->alg_list); -@@ -1340,7 +1376,9 @@ static int crypto4xx_probe(struct platfo +@@ -1336,7 +1372,9 @@ static int crypto4xx_probe(struct platfo /* Register for Crypto isr, Crypto Engine IRQ */ core_dev->irq = irq_of_parse_and_map(ofdev->dev.of_node, 0); diff --git a/target/linux/apm821xx/patches-4.14/021-0003-crypto-crypto4xx-fix-missing-irq-devname.patch b/target/linux/apm821xx/patches-4.14/021-0003-crypto-crypto4xx-fix-missing-irq-devname.patch index ae82acc74..0b1652820 100644 --- a/target/linux/apm821xx/patches-4.14/021-0003-crypto-crypto4xx-fix-missing-irq-devname.patch +++ b/target/linux/apm821xx/patches-4.14/021-0003-crypto-crypto4xx-fix-missing-irq-devname.patch @@ -16,7 +16,7 @@ Signed-off-by: Christian Lamparter --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c -@@ -1379,7 +1379,7 @@ static int crypto4xx_probe(struct platfo +@@ -1375,7 +1375,7 @@ static int crypto4xx_probe(struct platfo rc = request_irq(core_dev->irq, is_revb ? crypto4xx_ce_interrupt_handler_revb : crypto4xx_ce_interrupt_handler, 0, diff --git a/target/linux/apm821xx/patches-4.14/021-0004-crypto-crypto4xx-kill-MODULE_NAME.patch b/target/linux/apm821xx/patches-4.14/021-0004-crypto-crypto4xx-kill-MODULE_NAME.patch index d5e1a056e..3dd35ba97 100644 --- a/target/linux/apm821xx/patches-4.14/021-0004-crypto-crypto4xx-kill-MODULE_NAME.patch +++ b/target/linux/apm821xx/patches-4.14/021-0004-crypto-crypto4xx-kill-MODULE_NAME.patch @@ -14,7 +14,7 @@ Signed-off-by: Christian Lamparter --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c -@@ -1441,7 +1441,7 @@ MODULE_DEVICE_TABLE(of, crypto4xx_match) +@@ -1437,7 +1437,7 @@ MODULE_DEVICE_TABLE(of, crypto4xx_match) static struct platform_driver crypto4xx_driver = { .driver = { diff --git a/target/linux/apm821xx/patches-4.14/021-0005-crypto-crypto4xx-perform-aead-icv-check-in-the-drive.patch b/target/linux/apm821xx/patches-4.14/021-0005-crypto-crypto4xx-perform-aead-icv-check-in-the-drive.patch index 5470602bb..2107f2dc5 100644 --- a/target/linux/apm821xx/patches-4.14/021-0005-crypto-crypto4xx-perform-aead-icv-check-in-the-drive.patch +++ b/target/linux/apm821xx/patches-4.14/021-0005-crypto-crypto4xx-perform-aead-icv-check-in-the-drive.patch @@ -62,7 +62,7 @@ Signed-off-by: Christian Lamparter SA_CIPHER_ALG_AES, --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c -@@ -586,15 +586,14 @@ static void crypto4xx_aead_done(struct c +@@ -582,15 +582,14 @@ static void crypto4xx_aead_done(struct c struct pd_uinfo *pd_uinfo, struct ce_pd *pd) { @@ -83,7 +83,7 @@ Signed-off-by: Christian Lamparter if (pd_uinfo->using_sd) { crypto4xx_copy_pkt_to_dst(dev, pd, pd_uinfo, pd->pd_ctl_len.bf.pkt_len, -@@ -606,38 +605,39 @@ static void crypto4xx_aead_done(struct c +@@ -602,38 +601,39 @@ static void crypto4xx_aead_done(struct c if (pd_uinfo->sa_va->sa_command_0.bf.dir == DIR_OUTBOUND) { /* append icv at the end */ diff --git a/target/linux/apm821xx/patches-4.14/022-0002-crypto-crypto4xx-performance-optimizations.patch b/target/linux/apm821xx/patches-4.14/022-0002-crypto-crypto4xx-performance-optimizations.patch index 74d5ab2f6..4872f44d1 100644 --- a/target/linux/apm821xx/patches-4.14/022-0002-crypto-crypto4xx-performance-optimizations.patch +++ b/target/linux/apm821xx/patches-4.14/022-0002-crypto-crypto4xx-performance-optimizations.patch @@ -71,7 +71,7 @@ Signed-off-by: Herbert Xu /** --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c -@@ -589,7 +589,7 @@ static void crypto4xx_aead_done(struct c +@@ -585,7 +585,7 @@ static void crypto4xx_aead_done(struct c struct scatterlist *dst = pd_uinfo->dest_va; size_t cp_len = crypto_aead_authsize( crypto_aead_reqtfm(aead_req)); @@ -80,7 +80,7 @@ Signed-off-by: Herbert Xu int err = 0; if (pd_uinfo->using_sd) { -@@ -604,7 +604,7 @@ static void crypto4xx_aead_done(struct c +@@ -600,7 +600,7 @@ static void crypto4xx_aead_done(struct c if (pd_uinfo->sa_va->sa_command_0.bf.dir == DIR_OUTBOUND) { /* append icv at the end */ crypto4xx_memcpy_from_le32(icv, pd_uinfo->sr_va->save_digest, @@ -89,7 +89,7 @@ Signed-off-by: Herbert Xu scatterwalk_map_and_copy(icv, dst, aead_req->cryptlen, cp_len, 1); -@@ -614,7 +614,7 @@ static void crypto4xx_aead_done(struct c +@@ -610,7 +610,7 @@ static void crypto4xx_aead_done(struct c aead_req->assoclen + aead_req->cryptlen - cp_len, cp_len, 0); @@ -98,7 +98,7 @@ Signed-off-by: Herbert Xu if (crypto_memneq(icv, pd_uinfo->sr_va->save_digest, cp_len)) err = -EBADMSG; -@@ -1131,8 +1131,8 @@ static struct crypto4xx_alg_common crypt +@@ -1127,8 +1127,8 @@ static struct crypto4xx_alg_common crypt .max_keysize = AES_MAX_KEY_SIZE, .ivsize = AES_IV_SIZE, .setkey = crypto4xx_setkey_aes_cbc, @@ -109,7 +109,7 @@ Signed-off-by: Herbert Xu } } }}, -@@ -1155,8 +1155,8 @@ static struct crypto4xx_alg_common crypt +@@ -1151,8 +1151,8 @@ static struct crypto4xx_alg_common crypt .max_keysize = AES_MAX_KEY_SIZE, .ivsize = AES_IV_SIZE, .setkey = crypto4xx_setkey_aes_cfb, @@ -120,7 +120,7 @@ Signed-off-by: Herbert Xu } } } }, -@@ -1204,8 +1204,8 @@ static struct crypto4xx_alg_common crypt +@@ -1200,8 +1200,8 @@ static struct crypto4xx_alg_common crypt .min_keysize = AES_MIN_KEY_SIZE, .max_keysize = AES_MAX_KEY_SIZE, .setkey = crypto4xx_setkey_aes_ecb, @@ -131,7 +131,7 @@ Signed-off-by: Herbert Xu } } } }, -@@ -1228,8 +1228,8 @@ static struct crypto4xx_alg_common crypt +@@ -1224,8 +1224,8 @@ static struct crypto4xx_alg_common crypt .max_keysize = AES_MAX_KEY_SIZE, .ivsize = AES_IV_SIZE, .setkey = crypto4xx_setkey_aes_ofb, diff --git a/target/linux/apm821xx/patches-4.14/022-0003-crypto-crypto4xx-convert-to-skcipher.patch b/target/linux/apm821xx/patches-4.14/022-0003-crypto-crypto4xx-convert-to-skcipher.patch index 64c07d712..439f78ae5 100644 --- a/target/linux/apm821xx/patches-4.14/022-0003-crypto-crypto4xx-convert-to-skcipher.patch +++ b/target/linux/apm821xx/patches-4.14/022-0003-crypto-crypto4xx-convert-to-skcipher.patch @@ -196,7 +196,7 @@ Signed-off-by: Herbert Xu #include #include #include "crypto4xx_reg_def.h" -@@ -526,21 +527,19 @@ static void crypto4xx_ret_sg_desc(struct +@@ -522,21 +523,19 @@ static void crypto4xx_ret_sg_desc(struct } } @@ -223,7 +223,7 @@ Signed-off-by: Herbert Xu } else { dst = pd_uinfo->dest_va; addr = dma_map_page(dev->core_dev->device, sg_page(dst), -@@ -558,8 +557,8 @@ static void crypto4xx_ablkcipher_done(st +@@ -554,8 +553,8 @@ static void crypto4xx_ablkcipher_done(st crypto4xx_ret_sg_desc(dev, pd_uinfo); if (pd_uinfo->state & PD_ENTRY_BUSY) @@ -234,7 +234,7 @@ Signed-off-by: Herbert Xu } static void crypto4xx_ahash_done(struct crypto4xx_device *dev, -@@ -650,8 +649,8 @@ static void crypto4xx_pd_done(struct cry +@@ -646,8 +645,8 @@ static void crypto4xx_pd_done(struct cry struct pd_uinfo *pd_uinfo = &dev->pdr_uinfo[idx]; switch (crypto_tfm_alg_type(pd_uinfo->async_req->tfm)) { @@ -245,7 +245,7 @@ Signed-off-by: Herbert Xu break; case CRYPTO_ALG_TYPE_AEAD: crypto4xx_aead_done(dev, pd_uinfo, pd); -@@ -945,15 +944,14 @@ static void crypto4xx_ctx_init(struct cr +@@ -941,15 +940,14 @@ static void crypto4xx_ctx_init(struct cr ctx->sa_len = 0; } @@ -264,7 +264,7 @@ Signed-off-by: Herbert Xu return 0; } -@@ -962,9 +960,11 @@ static void crypto4xx_common_exit(struct +@@ -958,9 +956,11 @@ static void crypto4xx_common_exit(struct crypto4xx_free_sa(ctx); } @@ -278,7 +278,7 @@ Signed-off-by: Herbert Xu } static int crypto4xx_aead_init(struct crypto_aead *tfm) -@@ -1021,7 +1021,7 @@ static int crypto4xx_register_alg(struct +@@ -1017,7 +1017,7 @@ static int crypto4xx_register_alg(struct break; default: @@ -287,7 +287,7 @@ Signed-off-by: Herbert Xu break; } -@@ -1050,7 +1050,7 @@ static void crypto4xx_unregister_alg(str +@@ -1046,7 +1046,7 @@ static void crypto4xx_unregister_alg(str break; default: @@ -296,7 +296,7 @@ Signed-off-by: Herbert Xu } kfree(alg); } -@@ -1112,126 +1112,109 @@ static irqreturn_t crypto4xx_ce_interrup +@@ -1108,126 +1108,109 @@ static irqreturn_t crypto4xx_ce_interrup */ static struct crypto4xx_alg_common crypto4xx_alg[] = { /* Crypto AES modes */ diff --git a/target/linux/apm821xx/patches-4.14/022-0005-crypto-crypto4xx-add-aes-ctr-support.patch b/target/linux/apm821xx/patches-4.14/022-0005-crypto-crypto4xx-add-aes-ctr-support.patch index c916d5a21..7f4220feb 100644 --- a/target/linux/apm821xx/patches-4.14/022-0005-crypto-crypto4xx-add-aes-ctr-support.patch +++ b/target/linux/apm821xx/patches-4.14/022-0005-crypto-crypto4xx-add-aes-ctr-support.patch @@ -160,7 +160,7 @@ Signed-off-by: Herbert Xu --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c -@@ -950,6 +950,19 @@ static int crypto4xx_sk_init(struct cryp +@@ -946,6 +946,19 @@ static int crypto4xx_sk_init(struct cryp struct crypto4xx_alg *amcc_alg; struct crypto4xx_ctx *ctx = crypto_skcipher_ctx(sk); @@ -180,7 +180,7 @@ Signed-off-by: Herbert Xu amcc_alg = container_of(alg, struct crypto4xx_alg, alg.u.cipher); crypto4xx_ctx_init(amcc_alg, ctx); return 0; -@@ -965,6 +978,8 @@ static void crypto4xx_sk_exit(struct cry +@@ -961,6 +974,8 @@ static void crypto4xx_sk_exit(struct cry struct crypto4xx_ctx *ctx = crypto_skcipher_ctx(sk); crypto4xx_common_exit(ctx); @@ -189,7 +189,7 @@ Signed-off-by: Herbert Xu } static int crypto4xx_aead_init(struct crypto_aead *tfm) -@@ -1154,6 +1169,28 @@ static struct crypto4xx_alg_common crypt +@@ -1150,6 +1165,28 @@ static struct crypto4xx_alg_common crypt .init = crypto4xx_sk_init, .exit = crypto4xx_sk_exit, } }, diff --git a/target/linux/apm821xx/patches-4.14/022-0008-crypto-crypto4xx-put-temporary-dst-sg-into-request-c.patch b/target/linux/apm821xx/patches-4.14/022-0008-crypto-crypto4xx-put-temporary-dst-sg-into-request-c.patch index b83cacc98..30ff1a3d9 100644 --- a/target/linux/apm821xx/patches-4.14/022-0008-crypto-crypto4xx-put-temporary-dst-sg-into-request-c.patch +++ b/target/linux/apm821xx/patches-4.14/022-0008-crypto-crypto4xx-put-temporary-dst-sg-into-request-c.patch @@ -107,7 +107,7 @@ Signed-off-by: Herbert Xu /** --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c -@@ -695,9 +695,9 @@ int crypto4xx_build_pd(struct crypto_asy +@@ -691,9 +691,9 @@ int crypto4xx_build_pd(struct crypto_asy const __le32 *iv, const u32 iv_len, const struct dynamic_sa_ctl *req_sa, const unsigned int sa_len, @@ -119,7 +119,7 @@ Signed-off-by: Herbert Xu struct crypto4xx_device *dev = ctx->dev; struct dynamic_sa_ctl *sa; struct ce_gd *gd; -@@ -996,9 +996,9 @@ static int crypto4xx_aead_init(struct cr +@@ -992,9 +992,9 @@ static int crypto4xx_aead_init(struct cr amcc_alg = container_of(alg, struct crypto4xx_alg, alg.u.aead); crypto4xx_ctx_init(amcc_alg, ctx); diff --git a/target/linux/apm821xx/patches-4.14/023-0002-crypto-skcipher-remove-useless-setting-of-type-flags.patch b/target/linux/apm821xx/patches-4.14/023-0002-crypto-skcipher-remove-useless-setting-of-type-flags.patch index 75f0db239..25542c80b 100644 --- a/target/linux/apm821xx/patches-4.14/023-0002-crypto-skcipher-remove-useless-setting-of-type-flags.patch +++ b/target/linux/apm821xx/patches-4.14/023-0002-crypto-skcipher-remove-useless-setting-of-type-flags.patch @@ -22,7 +22,7 @@ Signed-off-by: Herbert Xu --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c -@@ -1132,8 +1132,7 @@ static struct crypto4xx_alg_common crypt +@@ -1128,8 +1128,7 @@ static struct crypto4xx_alg_common crypt .cra_name = "cbc(aes)", .cra_driver_name = "cbc-aes-ppc4xx", .cra_priority = CRYPTO4XX_CRYPTO_PRIORITY, @@ -32,7 +32,7 @@ Signed-off-by: Herbert Xu CRYPTO_ALG_KERN_DRIVER_ONLY, .cra_blocksize = AES_BLOCK_SIZE, .cra_ctxsize = sizeof(struct crypto4xx_ctx), -@@ -1153,8 +1152,7 @@ static struct crypto4xx_alg_common crypt +@@ -1149,8 +1148,7 @@ static struct crypto4xx_alg_common crypt .cra_name = "cfb(aes)", .cra_driver_name = "cfb-aes-ppc4xx", .cra_priority = CRYPTO4XX_CRYPTO_PRIORITY, @@ -42,7 +42,7 @@ Signed-off-by: Herbert Xu CRYPTO_ALG_KERN_DRIVER_ONLY, .cra_blocksize = AES_BLOCK_SIZE, .cra_ctxsize = sizeof(struct crypto4xx_ctx), -@@ -1174,8 +1172,7 @@ static struct crypto4xx_alg_common crypt +@@ -1170,8 +1168,7 @@ static struct crypto4xx_alg_common crypt .cra_name = "ctr(aes)", .cra_driver_name = "ctr-aes-ppc4xx", .cra_priority = CRYPTO4XX_CRYPTO_PRIORITY, @@ -52,7 +52,7 @@ Signed-off-by: Herbert Xu CRYPTO_ALG_ASYNC | CRYPTO_ALG_KERN_DRIVER_ONLY, .cra_blocksize = AES_BLOCK_SIZE, -@@ -1196,8 +1193,7 @@ static struct crypto4xx_alg_common crypt +@@ -1192,8 +1189,7 @@ static struct crypto4xx_alg_common crypt .cra_name = "rfc3686(ctr(aes))", .cra_driver_name = "rfc3686-ctr-aes-ppc4xx", .cra_priority = CRYPTO4XX_CRYPTO_PRIORITY, @@ -62,7 +62,7 @@ Signed-off-by: Herbert Xu CRYPTO_ALG_KERN_DRIVER_ONLY, .cra_blocksize = AES_BLOCK_SIZE, .cra_ctxsize = sizeof(struct crypto4xx_ctx), -@@ -1217,8 +1213,7 @@ static struct crypto4xx_alg_common crypt +@@ -1213,8 +1209,7 @@ static struct crypto4xx_alg_common crypt .cra_name = "ecb(aes)", .cra_driver_name = "ecb-aes-ppc4xx", .cra_priority = CRYPTO4XX_CRYPTO_PRIORITY, @@ -72,7 +72,7 @@ Signed-off-by: Herbert Xu CRYPTO_ALG_KERN_DRIVER_ONLY, .cra_blocksize = AES_BLOCK_SIZE, .cra_ctxsize = sizeof(struct crypto4xx_ctx), -@@ -1237,8 +1232,7 @@ static struct crypto4xx_alg_common crypt +@@ -1233,8 +1228,7 @@ static struct crypto4xx_alg_common crypt .cra_name = "ofb(aes)", .cra_driver_name = "ofb-aes-ppc4xx", .cra_priority = CRYPTO4XX_CRYPTO_PRIORITY, diff --git a/target/linux/apm821xx/patches-4.14/023-0004-crypto4xx_core-don-t-abuse-__dma_sync_page.patch b/target/linux/apm821xx/patches-4.14/023-0004-crypto4xx_core-don-t-abuse-__dma_sync_page.patch index 635ab0037..d1849aefb 100644 --- a/target/linux/apm821xx/patches-4.14/023-0004-crypto4xx_core-don-t-abuse-__dma_sync_page.patch +++ b/target/linux/apm821xx/patches-4.14/023-0004-crypto4xx_core-don-t-abuse-__dma_sync_page.patch @@ -19,7 +19,7 @@ Signed-off-by: Michael Ellerman --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c -@@ -596,7 +596,7 @@ static void crypto4xx_aead_done(struct c +@@ -592,7 +592,7 @@ static void crypto4xx_aead_done(struct c pd->pd_ctl_len.bf.pkt_len, dst); } else { diff --git a/target/linux/apm821xx/patches-4.14/023-0006-crypto-crypto4xx-add-prng-crypto-support.patch b/target/linux/apm821xx/patches-4.14/023-0006-crypto-crypto4xx-add-prng-crypto-support.patch index b20049c83..b06a8f989 100644 --- a/target/linux/apm821xx/patches-4.14/023-0006-crypto-crypto4xx-add-prng-crypto-support.patch +++ b/target/linux/apm821xx/patches-4.14/023-0006-crypto-crypto4xx-add-prng-crypto-support.patch @@ -31,7 +31,7 @@ Signed-off-by: Herbert Xu #include #include "crypto4xx_reg_def.h" #include "crypto4xx_core.h" -@@ -1035,6 +1037,10 @@ static int crypto4xx_register_alg(struct +@@ -1031,6 +1033,10 @@ static int crypto4xx_register_alg(struct rc = crypto_register_ahash(&alg->alg.u.hash); break; @@ -42,7 +42,7 @@ Signed-off-by: Herbert Xu default: rc = crypto_register_skcipher(&alg->alg.u.cipher); break; -@@ -1064,6 +1070,10 @@ static void crypto4xx_unregister_alg(str +@@ -1060,6 +1066,10 @@ static void crypto4xx_unregister_alg(str crypto_unregister_aead(&alg->alg.u.aead); break; @@ -53,7 +53,7 @@ Signed-off-by: Herbert Xu default: crypto_unregister_skcipher(&alg->alg.u.cipher); } -@@ -1122,6 +1132,69 @@ static irqreturn_t crypto4xx_ce_interrup +@@ -1118,6 +1128,69 @@ static irqreturn_t crypto4xx_ce_interrup PPC4XX_TMO_ERR_INT); } @@ -123,7 +123,7 @@ Signed-off-by: Herbert Xu /** * Supported Crypto Algorithms */ -@@ -1291,6 +1364,18 @@ static struct crypto4xx_alg_common crypt +@@ -1287,6 +1360,18 @@ static struct crypto4xx_alg_common crypt .cra_module = THIS_MODULE, }, } }, @@ -142,7 +142,7 @@ Signed-off-by: Herbert Xu }; /** -@@ -1360,6 +1445,7 @@ static int crypto4xx_probe(struct platfo +@@ -1356,6 +1441,7 @@ static int crypto4xx_probe(struct platfo core_dev->dev->core_dev = core_dev; core_dev->dev->is_revb = is_revb; core_dev->device = dev; @@ -150,7 +150,7 @@ Signed-off-by: Herbert Xu spin_lock_init(&core_dev->lock); INIT_LIST_HEAD(&core_dev->dev->alg_list); ratelimit_default_init(&core_dev->dev->aead_ratelimit); -@@ -1439,6 +1525,7 @@ static int crypto4xx_remove(struct platf +@@ -1435,6 +1521,7 @@ static int crypto4xx_remove(struct platf tasklet_kill(&core_dev->tasklet); /* Un-register with Linux CryptoAPI */ crypto4xx_unregister_alg(core_dev->dev); diff --git a/target/linux/apm821xx/patches-4.14/023-0013-crypto-crypto4xx-fix-AES-CTR-blocksize-value.patch b/target/linux/apm821xx/patches-4.14/023-0013-crypto-crypto4xx-fix-AES-CTR-blocksize-value.patch index eebcd0067..9c78fd060 100644 --- a/target/linux/apm821xx/patches-4.14/023-0013-crypto-crypto4xx-fix-AES-CTR-blocksize-value.patch +++ b/target/linux/apm821xx/patches-4.14/023-0013-crypto-crypto4xx-fix-AES-CTR-blocksize-value.patch @@ -40,7 +40,7 @@ Signed-off-by: Herbert Xu --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c -@@ -1248,7 +1248,7 @@ static struct crypto4xx_alg_common crypt +@@ -1244,7 +1244,7 @@ static struct crypto4xx_alg_common crypt .cra_flags = CRYPTO_ALG_NEED_FALLBACK | CRYPTO_ALG_ASYNC | CRYPTO_ALG_KERN_DRIVER_ONLY, @@ -49,7 +49,7 @@ Signed-off-by: Herbert Xu .cra_ctxsize = sizeof(struct crypto4xx_ctx), .cra_module = THIS_MODULE, }, -@@ -1268,7 +1268,7 @@ static struct crypto4xx_alg_common crypt +@@ -1264,7 +1264,7 @@ static struct crypto4xx_alg_common crypt .cra_priority = CRYPTO4XX_CRYPTO_PRIORITY, .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_KERN_DRIVER_ONLY, diff --git a/target/linux/apm821xx/patches-4.14/023-0014-crypto-crypto4xx-fix-blocksize-for-cfb-and-ofb.patch b/target/linux/apm821xx/patches-4.14/023-0014-crypto-crypto4xx-fix-blocksize-for-cfb-and-ofb.patch index 046fa6702..ac280b90b 100644 --- a/target/linux/apm821xx/patches-4.14/023-0014-crypto-crypto4xx-fix-blocksize-for-cfb-and-ofb.patch +++ b/target/linux/apm821xx/patches-4.14/023-0014-crypto-crypto4xx-fix-blocksize-for-cfb-and-ofb.patch @@ -24,7 +24,7 @@ Signed-off-by: Herbert Xu --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c -@@ -1227,7 +1227,7 @@ static struct crypto4xx_alg_common crypt +@@ -1223,7 +1223,7 @@ static struct crypto4xx_alg_common crypt .cra_priority = CRYPTO4XX_CRYPTO_PRIORITY, .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_KERN_DRIVER_ONLY, @@ -33,7 +33,7 @@ Signed-off-by: Herbert Xu .cra_ctxsize = sizeof(struct crypto4xx_ctx), .cra_module = THIS_MODULE, }, -@@ -1307,7 +1307,7 @@ static struct crypto4xx_alg_common crypt +@@ -1303,7 +1303,7 @@ static struct crypto4xx_alg_common crypt .cra_priority = CRYPTO4XX_CRYPTO_PRIORITY, .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_KERN_DRIVER_ONLY, diff --git a/target/linux/apm821xx/patches-4.14/023-0015-crypto-crypto4xx-block-ciphers-should-only-accept-co.patch b/target/linux/apm821xx/patches-4.14/023-0015-crypto-crypto4xx-block-ciphers-should-only-accept-co.patch index 2bb4741ef..324a7406b 100644 --- a/target/linux/apm821xx/patches-4.14/023-0015-crypto-crypto4xx-block-ciphers-should-only-accept-co.patch +++ b/target/linux/apm821xx/patches-4.14/023-0015-crypto-crypto4xx-block-ciphers-should-only-accept-co.patch @@ -107,7 +107,7 @@ Signed-off-by: Herbert Xu static int crypto4xx_sk_setup_fallback(struct crypto4xx_ctx *ctx, --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c -@@ -1215,8 +1215,8 @@ static struct crypto4xx_alg_common crypt +@@ -1211,8 +1211,8 @@ static struct crypto4xx_alg_common crypt .max_keysize = AES_MAX_KEY_SIZE, .ivsize = AES_IV_SIZE, .setkey = crypto4xx_setkey_aes_cbc, @@ -118,7 +118,7 @@ Signed-off-by: Herbert Xu .init = crypto4xx_sk_init, .exit = crypto4xx_sk_exit, } }, -@@ -1235,8 +1235,8 @@ static struct crypto4xx_alg_common crypt +@@ -1231,8 +1231,8 @@ static struct crypto4xx_alg_common crypt .max_keysize = AES_MAX_KEY_SIZE, .ivsize = AES_IV_SIZE, .setkey = crypto4xx_setkey_aes_cfb, @@ -129,7 +129,7 @@ Signed-off-by: Herbert Xu .init = crypto4xx_sk_init, .exit = crypto4xx_sk_exit, } }, -@@ -1295,8 +1295,8 @@ static struct crypto4xx_alg_common crypt +@@ -1291,8 +1291,8 @@ static struct crypto4xx_alg_common crypt .min_keysize = AES_MIN_KEY_SIZE, .max_keysize = AES_MAX_KEY_SIZE, .setkey = crypto4xx_setkey_aes_ecb, @@ -140,7 +140,7 @@ Signed-off-by: Herbert Xu .init = crypto4xx_sk_init, .exit = crypto4xx_sk_exit, } }, -@@ -1315,8 +1315,8 @@ static struct crypto4xx_alg_common crypt +@@ -1311,8 +1311,8 @@ static struct crypto4xx_alg_common crypt .max_keysize = AES_MAX_KEY_SIZE, .ivsize = AES_IV_SIZE, .setkey = crypto4xx_setkey_aes_ofb, diff --git a/target/linux/apm821xx/patches-4.14/302-0002-dmaengine-dw-implement-per-channel-protection-contro.patch b/target/linux/apm821xx/patches-4.14/302-0002-dmaengine-dw-implement-per-channel-protection-contro.patch deleted file mode 100644 index b7e282cbb..000000000 --- a/target/linux/apm821xx/patches-4.14/302-0002-dmaengine-dw-implement-per-channel-protection-contro.patch +++ /dev/null @@ -1,128 +0,0 @@ -From 2aad36357bbc73bc88ebab35a59a70a8f4ae6ecb Mon Sep 17 00:00:00 2001 -From: Christian Lamparter -Date: Wed, 31 Oct 2018 22:27:27 +0100 -Subject: [PATCH 2/2] dmaengine: dw: implement per-channel protection control - setting - -This patch adds a new device-tree property that allows to -specify the protection control bits for each DMA channel -individually. - -Setting the "correct" bits can have a huge impact on the -PPC460EX and APM82181 that use this DMA engine in combination -with a DesignWare' SATA-II core (sata_dwc_460ex driver). - -In the OpenWrt Forum, the user takimata reported that: -|It seems your patch unleashed the full power of the SATA port. -|Where I was previously hitting a really hard limit at around -|82 MB/s for reading and 27 MB/s for writing, I am now getting this: -| -|root@OpenWrt:/mnt# time dd if=/dev/zero of=tempfile bs=1M count=1024 -|1024+0 records in -|1024+0 records out -|real 0m 13.65s -|user 0m 0.01s -|sys 0m 11.89s -| -|root@OpenWrt:/mnt# time dd if=tempfile of=/dev/null bs=1M count=1024 -|1024+0 records in -|1024+0 records out -|real 0m 8.41s -|user 0m 0.01s -|sys 0m 4.70s -| -|This means: 121 MB/s reading and 75 MB/s writing! -| -|The drive is a WD Green WD10EARX taken from an older MBL Single. -|I repeated the test a few times with even larger files to rule out -|any caching, I'm still seeing the same great performance. OpenWrt is -|now completely on par with the original MBL firmware's performance. - -Another user And.short reported: -|I can report that your fix worked! Boots up fine with two -|drives even with more partitions, and no more reboot on -|concurrent disk access! - -A closer look into the sata_dwc_460ex code revealed that -the driver did initally set the correct protection control -bits. However, this feature was lost when the sata_dwc_460ex -driver was converted to the generic DMA driver framework. - -BugLink: https://forum.openwrt.org/t/wd-mybook-live-duo-two-disks/16195/55 -BugLink: https://forum.openwrt.org/t/wd-mybook-live-duo-two-disks/16195/50 -Fixes: 8b3444852a2b ("sata_dwc_460ex: move to generic DMA driver") -Signed-off-by: Christian Lamparter ---- - drivers/dma/dw/core.c | 2 ++ - drivers/dma/dw/platform.c | 12 +++++++++--- - drivers/dma/dw/regs.h | 4 ++++ - include/linux/platform_data/dma-dw.h | 6 ++++++ - 4 files changed, 21 insertions(+), 3 deletions(-) - ---- a/drivers/dma/dw/core.c -+++ b/drivers/dma/dw/core.c -@@ -160,12 +160,14 @@ static void dwc_initialize_chan_idma32(s - - static void dwc_initialize_chan_dw(struct dw_dma_chan *dwc) - { -+ struct dw_dma *dw = to_dw_dma(dwc->chan.device); - u32 cfghi = DWC_CFGH_FIFO_MODE; - u32 cfglo = DWC_CFGL_CH_PRIOR(dwc->priority); - bool hs_polarity = dwc->dws.hs_polarity; - - cfghi |= DWC_CFGH_DST_PER(dwc->dws.dst_id); - cfghi |= DWC_CFGH_SRC_PER(dwc->dws.src_id); -+ cfghi |= DWC_CFGH_PROTCTL(dw->pdata->protctl); - - /* Set polarity of handshake interface */ - cfglo |= hs_polarity ? DWC_CFGL_HS_DST_POL | DWC_CFGL_HS_SRC_POL : 0; ---- a/drivers/dma/dw/platform.c -+++ b/drivers/dma/dw/platform.c -@@ -162,6 +162,12 @@ dw_dma_parse_dt(struct platform_device * - pdata->multi_block[tmp] = 1; - } - -+ if (!of_property_read_u32(np, "snps,dma-protection-control", &tmp)) { -+ if (tmp > CHAN_PROTCTL_MASK) -+ return NULL; -+ pdata->protctl = tmp; -+ } -+ - return pdata; - } - #else ---- a/drivers/dma/dw/regs.h -+++ b/drivers/dma/dw/regs.h -@@ -200,6 +200,10 @@ enum dw_dma_msize { - #define DWC_CFGH_FCMODE (1 << 0) - #define DWC_CFGH_FIFO_MODE (1 << 1) - #define DWC_CFGH_PROTCTL(x) ((x) << 2) -+#define DWC_CFGH_PROTCTL_DATA (0 << 2) /* data access - always set */ -+#define DWC_CFGH_PROTCTL_PRIV (1 << 2) /* privileged -> AHB HPROT[1] */ -+#define DWC_CFGH_PROTCTL_BUFFER (2 << 2) /* bufferable -> AHB HPROT[2] */ -+#define DWC_CFGH_PROTCTL_CACHE (4 << 2) /* cacheable -> AHB HPROT[3] */ - #define DWC_CFGH_DS_UPD_EN (1 << 5) - #define DWC_CFGH_SS_UPD_EN (1 << 6) - #define DWC_CFGH_SRC_PER(x) ((x) << 7) ---- a/include/linux/platform_data/dma-dw.h -+++ b/include/linux/platform_data/dma-dw.h -@@ -49,6 +49,7 @@ struct dw_dma_slave { - * @data_width: Maximum data width supported by hardware per AHB master - * (in bytes, power of 2) - * @multi_block: Multi block transfers supported by hardware per channel. -+ * @protctl: Protection control signals setting per channel. - */ - struct dw_dma_platform_data { - unsigned int nr_channels; -@@ -65,6 +66,11 @@ struct dw_dma_platform_data { - unsigned char nr_masters; - unsigned char data_width[DW_DMA_MAX_NR_MASTERS]; - unsigned char multi_block[DW_DMA_MAX_NR_CHANNELS]; -+#define CHAN_PROTCTL_PRIVILEGED BIT(0) -+#define CHAN_PROTCTL_BUFFERABLE BIT(1) -+#define CHAN_PROTCTL_CACHEABLE BIT(2) -+#define CHAN_PROTCTL_MASK GENMASK(2, 0) -+ unsigned char protctl; - }; - - #endif /* _PLATFORM_DATA_DMA_DW_H */ diff --git a/target/linux/apm821xx/patches-4.19/010-dmaengine-dw-dmac-implement-dma-prot.patch b/target/linux/apm821xx/patches-4.19/010-dmaengine-dw-dmac-implement-dma-prot.patch deleted file mode 100644 index 86da6fcd8..000000000 --- a/target/linux/apm821xx/patches-4.19/010-dmaengine-dw-dmac-implement-dma-prot.patch +++ /dev/null @@ -1,141 +0,0 @@ -From 7b0c03ecc42fb223baf015877fee9d517c2c8af1 Mon Sep 17 00:00:00 2001 -From: Christian Lamparter -Date: Sat, 17 Nov 2018 17:17:21 +0100 -Subject: dmaengine: dw-dmac: implement dma protection control setting - -This patch adds a new device-tree property that allows to -specify the dma protection control bits for the all of the -DMA controller's channel uniformly. - -Setting the "correct" bits can have a huge impact on the -PPC460EX and APM82181 that use this DMA engine in combination -with a DesignWare' SATA-II core (sata_dwc_460ex driver). - -In the OpenWrt Forum, the user takimata reported that: -|It seems your patch unleashed the full power of the SATA port. -|Where I was previously hitting a really hard limit at around -|82 MB/s for reading and 27 MB/s for writing, I am now getting this: -| -|root@OpenWrt:/mnt# time dd if=/dev/zero of=tempfile bs=1M count=1024 -|1024+0 records in -|1024+0 records out -|real 0m 13.65s -|user 0m 0.01s -|sys 0m 11.89s -| -|root@OpenWrt:/mnt# time dd if=tempfile of=/dev/null bs=1M count=1024 -|1024+0 records in -|1024+0 records out -|real 0m 8.41s -|user 0m 0.01s -|sys 0m 4.70s -| -|This means: 121 MB/s reading and 75 MB/s writing! -| -|The drive is a WD Green WD10EARX taken from an older MBL Single. -|I repeated the test a few times with even larger files to rule out -|any caching, I'm still seeing the same great performance. OpenWrt is -|now completely on par with the original MBL firmware's performance. - -Another user And.short reported: -|I can report that your fix worked! Boots up fine with two -|drives even with more partitions, and no more reboot on -|concurrent disk access! - -A closer look into the sata_dwc_460ex code revealed that -the driver did initally set the correct protection control -bits. However, this feature was lost when the sata_dwc_460ex -driver was converted to the generic DMA driver framework. - -BugLink: https://forum.openwrt.org/t/wd-mybook-live-duo-two-disks/16195/55 -BugLink: https://forum.openwrt.org/t/wd-mybook-live-duo-two-disks/16195/50 -Fixes: 8b3444852a2b ("sata_dwc_460ex: move to generic DMA driver") -Reviewed-by: Andy Shevchenko -Signed-off-by: Christian Lamparter -Signed-off-by: Vinod Koul ---- - ---- a/drivers/dma/dw/core.c -+++ b/drivers/dma/dw/core.c -@@ -160,12 +160,14 @@ static void dwc_initialize_chan_idma32(s - - static void dwc_initialize_chan_dw(struct dw_dma_chan *dwc) - { -+ struct dw_dma *dw = to_dw_dma(dwc->chan.device); - u32 cfghi = DWC_CFGH_FIFO_MODE; - u32 cfglo = DWC_CFGL_CH_PRIOR(dwc->priority); - bool hs_polarity = dwc->dws.hs_polarity; - - cfghi |= DWC_CFGH_DST_PER(dwc->dws.dst_id); - cfghi |= DWC_CFGH_SRC_PER(dwc->dws.src_id); -+ cfghi |= DWC_CFGH_PROTCTL(dw->pdata->protctl); - - /* Set polarity of handshake interface */ - cfglo |= hs_polarity ? DWC_CFGL_HS_DST_POL | DWC_CFGL_HS_SRC_POL : 0; ---- a/drivers/dma/dw/platform.c -+++ b/drivers/dma/dw/platform.c -@@ -162,6 +162,12 @@ dw_dma_parse_dt(struct platform_device * - pdata->multi_block[tmp] = 1; - } - -+ if (!of_property_read_u32(np, "snps,dma-protection-control", &tmp)) { -+ if (tmp > CHAN_PROTCTL_MASK) -+ return NULL; -+ pdata->protctl = tmp; -+ } -+ - return pdata; - } - #else ---- a/drivers/dma/dw/regs.h -+++ b/drivers/dma/dw/regs.h -@@ -200,6 +200,10 @@ enum dw_dma_msize { - #define DWC_CFGH_FCMODE (1 << 0) - #define DWC_CFGH_FIFO_MODE (1 << 1) - #define DWC_CFGH_PROTCTL(x) ((x) << 2) -+#define DWC_CFGH_PROTCTL_DATA (0 << 2) /* data access - always set */ -+#define DWC_CFGH_PROTCTL_PRIV (1 << 2) /* privileged -> AHB HPROT[1] */ -+#define DWC_CFGH_PROTCTL_BUFFER (2 << 2) /* bufferable -> AHB HPROT[2] */ -+#define DWC_CFGH_PROTCTL_CACHE (4 << 2) /* cacheable -> AHB HPROT[3] */ - #define DWC_CFGH_DS_UPD_EN (1 << 5) - #define DWC_CFGH_SS_UPD_EN (1 << 6) - #define DWC_CFGH_SRC_PER(x) ((x) << 7) ---- a/include/linux/platform_data/dma-dw.h -+++ b/include/linux/platform_data/dma-dw.h -@@ -49,6 +49,7 @@ struct dw_dma_slave { - * @data_width: Maximum data width supported by hardware per AHB master - * (in bytes, power of 2) - * @multi_block: Multi block transfers supported by hardware per channel. -+ * @protctl: Protection control signals setting per channel. - */ - struct dw_dma_platform_data { - unsigned int nr_channels; -@@ -65,6 +66,11 @@ struct dw_dma_platform_data { - unsigned char nr_masters; - unsigned char data_width[DW_DMA_MAX_NR_MASTERS]; - unsigned char multi_block[DW_DMA_MAX_NR_CHANNELS]; -+#define CHAN_PROTCTL_PRIVILEGED BIT(0) -+#define CHAN_PROTCTL_BUFFERABLE BIT(1) -+#define CHAN_PROTCTL_CACHEABLE BIT(2) -+#define CHAN_PROTCTL_MASK GENMASK(2, 0) -+ unsigned char protctl; - }; - - #endif /* _PLATFORM_DATA_DMA_DW_H */ ---- /dev/null -+++ b/include/dt-bindings/dma/dw-dmac.h -@@ -0,0 +1,14 @@ -+/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */ -+ -+#ifndef __DT_BINDINGS_DMA_DW_DMAC_H__ -+#define __DT_BINDINGS_DMA_DW_DMAC_H__ -+ -+/* -+ * Protection Control bits provide protection against illegal transactions. -+ * The protection bits[0:2] are one-to-one mapped to AHB HPROT[3:1] signals. -+ */ -+#define DW_DMAC_HPROT1_PRIVILEGED_MODE (1 << 0) /* Privileged Mode */ -+#define DW_DMAC_HPROT2_BUFFERABLE (1 << 1) /* DMA is bufferable */ -+#define DW_DMAC_HPROT3_CACHEABLE (1 << 2) /* DMA is cacheable */ -+ -+#endif /* __DT_BINDINGS_DMA_DW_DMAC_H__ */ diff --git a/target/linux/apm821xx/patches-4.19/010-dt-bindings-dmaengine-dw-dmac-add-protection-control.patch b/target/linux/apm821xx/patches-4.19/010-dt-bindings-dmaengine-dw-dmac-add-protection-control.patch new file mode 100644 index 000000000..572b8b652 --- /dev/null +++ b/target/linux/apm821xx/patches-4.19/010-dt-bindings-dmaengine-dw-dmac-add-protection-control.patch @@ -0,0 +1,74 @@ +From 538098281ce884a51d2aa4ab445056a41741c6ad Mon Sep 17 00:00:00 2001 +From: Christian Lamparter +Date: Sat, 17 Nov 2018 17:17:20 +0100 +Subject: [PATCH] dt-bindings: dmaengine: dw-dmac: add protection control + property + +This patch for the DesignWare AHB Central +Direct Memory Access Controller adds the dma +protection control property: + "snps,dma-protection-control" + +as well as the properties specific values defines into +a new include file: include/dt-bindings/dma/dw-dmac.h + +Note: The protection control signals are one-to-one +mapped to the AHB HPROT[1:3] signals for this controller. +The HPROT0 (Data Access) is always hardwired to 1. + +Reviewed-by: Andy Shevchenko +Reviewed-by: Rob Herring +Signed-off-by: Christian Lamparter +Signed-off-by: Vinod Koul +--- + Documentation/devicetree/bindings/dma/snps-dma.txt | 4 ++++ + MAINTAINERS | 4 +++- + include/dt-bindings/dma/dw-dmac.h | 14 ++++++++++++++ + 3 files changed, 21 insertions(+), 1 deletion(-) + create mode 100644 include/dt-bindings/dma/dw-dmac.h + +--- a/Documentation/devicetree/bindings/dma/snps-dma.txt ++++ b/Documentation/devicetree/bindings/dma/snps-dma.txt +@@ -27,6 +27,10 @@ Optional properties: + general purpose DMA channel allocator. False if not passed. + - multi-block: Multi block transfers supported by hardware. Array property with + one cell per channel. 0: not supported, 1 (default): supported. ++- snps,dma-protection-control: AHB HPROT[3:1] protection setting. ++ The default value is 0 (for non-cacheable, non-buffered, ++ unprivileged data access). ++ Refer to include/dt-bindings/dma/dw-dmac.h for possible values. + + Example: + +--- a/MAINTAINERS ++++ b/MAINTAINERS +@@ -14075,9 +14075,11 @@ SYNOPSYS DESIGNWARE DMAC DRIVER + M: Viresh Kumar + R: Andy Shevchenko + S: Maintained ++F: Documentation/devicetree/bindings/dma/snps-dma.txt ++F: drivers/dma/dw/ ++F: include/dt-bindings/dma/dw-dmac.h + F: include/linux/dma/dw.h + F: include/linux/platform_data/dma-dw.h +-F: drivers/dma/dw/ + + SYNOPSYS DESIGNWARE ENTERPRISE ETHERNET DRIVER + M: Jose Abreu +--- /dev/null ++++ b/include/dt-bindings/dma/dw-dmac.h +@@ -0,0 +1,14 @@ ++/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */ ++ ++#ifndef __DT_BINDINGS_DMA_DW_DMAC_H__ ++#define __DT_BINDINGS_DMA_DW_DMAC_H__ ++ ++/* ++ * Protection Control bits provide protection against illegal transactions. ++ * The protection bits[0:2] are one-to-one mapped to AHB HPROT[3:1] signals. ++ */ ++#define DW_DMAC_HPROT1_PRIVILEGED_MODE (1 << 0) /* Privileged Mode */ ++#define DW_DMAC_HPROT2_BUFFERABLE (1 << 1) /* DMA is bufferable */ ++#define DW_DMAC_HPROT3_CACHEABLE (1 << 2) /* DMA is cacheable */ ++ ++#endif /* __DT_BINDINGS_DMA_DW_DMAC_H__ */ diff --git a/target/linux/apm821xx/patches-4.19/023-0004-crypto4xx_core-don-t-abuse-__dma_sync_page.patch b/target/linux/apm821xx/patches-4.19/023-0004-crypto4xx_core-don-t-abuse-__dma_sync_page.patch index 635ab0037..d1849aefb 100644 --- a/target/linux/apm821xx/patches-4.19/023-0004-crypto4xx_core-don-t-abuse-__dma_sync_page.patch +++ b/target/linux/apm821xx/patches-4.19/023-0004-crypto4xx_core-don-t-abuse-__dma_sync_page.patch @@ -19,7 +19,7 @@ Signed-off-by: Michael Ellerman --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c -@@ -596,7 +596,7 @@ static void crypto4xx_aead_done(struct c +@@ -592,7 +592,7 @@ static void crypto4xx_aead_done(struct c pd->pd_ctl_len.bf.pkt_len, dst); } else { diff --git a/target/linux/apm821xx/patches-4.19/023-0006-crypto-crypto4xx-add-prng-crypto-support.patch b/target/linux/apm821xx/patches-4.19/023-0006-crypto-crypto4xx-add-prng-crypto-support.patch index ba4419787..cf7f92c2d 100644 --- a/target/linux/apm821xx/patches-4.19/023-0006-crypto-crypto4xx-add-prng-crypto-support.patch +++ b/target/linux/apm821xx/patches-4.19/023-0006-crypto-crypto4xx-add-prng-crypto-support.patch @@ -31,7 +31,7 @@ Signed-off-by: Herbert Xu #include #include "crypto4xx_reg_def.h" #include "crypto4xx_core.h" -@@ -1046,6 +1048,10 @@ static int crypto4xx_register_alg(struct +@@ -1042,6 +1044,10 @@ static int crypto4xx_register_alg(struct rc = crypto_register_ahash(&alg->alg.u.hash); break; @@ -42,7 +42,7 @@ Signed-off-by: Herbert Xu default: rc = crypto_register_skcipher(&alg->alg.u.cipher); break; -@@ -1075,6 +1081,10 @@ static void crypto4xx_unregister_alg(str +@@ -1071,6 +1077,10 @@ static void crypto4xx_unregister_alg(str crypto_unregister_aead(&alg->alg.u.aead); break; @@ -53,7 +53,7 @@ Signed-off-by: Herbert Xu default: crypto_unregister_skcipher(&alg->alg.u.cipher); } -@@ -1133,6 +1143,69 @@ static irqreturn_t crypto4xx_ce_interrup +@@ -1129,6 +1139,69 @@ static irqreturn_t crypto4xx_ce_interrup PPC4XX_TMO_ERR_INT); } @@ -123,7 +123,7 @@ Signed-off-by: Herbert Xu /** * Supported Crypto Algorithms */ -@@ -1302,6 +1375,18 @@ static struct crypto4xx_alg_common crypt +@@ -1298,6 +1371,18 @@ static struct crypto4xx_alg_common crypt .cra_module = THIS_MODULE, }, } }, @@ -142,7 +142,7 @@ Signed-off-by: Herbert Xu }; /** -@@ -1371,6 +1456,7 @@ static int crypto4xx_probe(struct platfo +@@ -1367,6 +1452,7 @@ static int crypto4xx_probe(struct platfo core_dev->dev->core_dev = core_dev; core_dev->dev->is_revb = is_revb; core_dev->device = dev; @@ -150,7 +150,7 @@ Signed-off-by: Herbert Xu spin_lock_init(&core_dev->lock); INIT_LIST_HEAD(&core_dev->dev->alg_list); ratelimit_default_init(&core_dev->dev->aead_ratelimit); -@@ -1450,6 +1536,7 @@ static int crypto4xx_remove(struct platf +@@ -1446,6 +1532,7 @@ static int crypto4xx_remove(struct platf tasklet_kill(&core_dev->tasklet); /* Un-register with Linux CryptoAPI */ crypto4xx_unregister_alg(core_dev->dev); diff --git a/target/linux/apm821xx/patches-4.19/023-0012-crypto-crypto4xx-get-rid-of-redundant-using_sd-varia.patch b/target/linux/apm821xx/patches-4.19/023-0012-crypto-crypto4xx-get-rid-of-redundant-using_sd-varia.patch index 4b246a793..24e34edd5 100644 --- a/target/linux/apm821xx/patches-4.19/023-0012-crypto-crypto4xx-get-rid-of-redundant-using_sd-varia.patch +++ b/target/linux/apm821xx/patches-4.19/023-0012-crypto-crypto4xx-get-rid-of-redundant-using_sd-varia.patch @@ -17,7 +17,7 @@ Signed-off-by: Herbert Xu --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c -@@ -539,7 +539,7 @@ static void crypto4xx_cipher_done(struct +@@ -535,7 +535,7 @@ static void crypto4xx_cipher_done(struct req = skcipher_request_cast(pd_uinfo->async_req); @@ -26,7 +26,7 @@ Signed-off-by: Herbert Xu crypto4xx_copy_pkt_to_dst(dev, pd, pd_uinfo, req->cryptlen, req->dst); } else { -@@ -593,7 +593,7 @@ static void crypto4xx_aead_done(struct c +@@ -589,7 +589,7 @@ static void crypto4xx_aead_done(struct c u32 icv[AES_BLOCK_SIZE]; int err = 0; @@ -35,7 +35,7 @@ Signed-off-by: Herbert Xu crypto4xx_copy_pkt_to_dst(dev, pd, pd_uinfo, pd->pd_ctl_len.bf.pkt_len, dst); -@@ -887,7 +887,6 @@ int crypto4xx_build_pd(struct crypto_asy +@@ -883,7 +883,6 @@ int crypto4xx_build_pd(struct crypto_asy * we know application give us dst a whole piece of memory * no need to use scatter ring. */ @@ -43,7 +43,7 @@ Signed-off-by: Herbert Xu pd_uinfo->first_sd = 0xffffffff; sa->sa_command_0.bf.scatter = 0; pd->dest = (u32)dma_map_page(dev->core_dev->device, -@@ -901,7 +900,6 @@ int crypto4xx_build_pd(struct crypto_asy +@@ -897,7 +896,6 @@ int crypto4xx_build_pd(struct crypto_asy u32 sd_idx = fst_sd; nbytes = datalen; sa->sa_command_0.bf.scatter = 1; diff --git a/target/linux/ar7/patches-4.9/300-add-ac49x-platform.patch b/target/linux/ar7/patches-4.9/300-add-ac49x-platform.patch index 8773ef98b..49c2cfbe6 100644 --- a/target/linux/ar7/patches-4.9/300-add-ac49x-platform.patch +++ b/target/linux/ar7/patches-4.9/300-add-ac49x-platform.patch @@ -46,7 +46,7 @@ config ATH25 bool "Atheros AR231x/AR531x SoC support" -@@ -1006,6 +1006,7 @@ config MIPS_PARAVIRT +@@ -1007,6 +1007,7 @@ config MIPS_PARAVIRT endchoice source "arch/mips/alchemy/Kconfig" diff --git a/target/linux/ar71xx/patches-4.14/500-MIPS-fw-myloader.patch b/target/linux/ar71xx/patches-4.14/500-MIPS-fw-myloader.patch index 866dc5e86..1fdd05a4d 100644 --- a/target/linux/ar71xx/patches-4.14/500-MIPS-fw-myloader.patch +++ b/target/linux/ar71xx/patches-4.14/500-MIPS-fw-myloader.patch @@ -10,7 +10,7 @@ --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -1152,6 +1152,9 @@ config MIPS_MSC +@@ -1153,6 +1153,9 @@ config MIPS_MSC config MIPS_NILE4 bool diff --git a/target/linux/brcm2708/patches-4.19/950-0034-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch b/target/linux/brcm2708/patches-4.19/950-0034-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch index 8b70d80e1..61ab7095f 100644 --- a/target/linux/brcm2708/patches-4.19/950-0034-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch +++ b/target/linux/brcm2708/patches-4.19/950-0034-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch @@ -14,7 +14,7 @@ use the same logic. --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c -@@ -2578,7 +2578,12 @@ static int pl011_setup_port(struct devic +@@ -2576,7 +2576,12 @@ static int pl011_setup_port(struct devic if (IS_ERR(base)) return PTR_ERR(base); diff --git a/target/linux/brcm2708/patches-4.19/950-0035-amba_pl011-Round-input-clock-up.patch b/target/linux/brcm2708/patches-4.19/950-0035-amba_pl011-Round-input-clock-up.patch index 82ef72b28..d5e9f3174 100644 --- a/target/linux/brcm2708/patches-4.19/950-0035-amba_pl011-Round-input-clock-up.patch +++ b/target/linux/brcm2708/patches-4.19/950-0035-amba_pl011-Round-input-clock-up.patch @@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c -@@ -1652,6 +1652,23 @@ static void pl011_put_poll_char(struct u +@@ -1650,6 +1650,23 @@ static void pl011_put_poll_char(struct u #endif /* CONFIG_CONSOLE_POLL */ @@ -50,7 +50,7 @@ Signed-off-by: Phil Elwell static int pl011_hwinit(struct uart_port *port) { struct uart_amba_port *uap = -@@ -1668,7 +1685,7 @@ static int pl011_hwinit(struct uart_port +@@ -1666,7 +1683,7 @@ static int pl011_hwinit(struct uart_port if (retval) return retval; @@ -59,7 +59,7 @@ Signed-off-by: Phil Elwell /* Clear pending error and receive interrupts */ pl011_write(UART011_OEIS | UART011_BEIS | UART011_PEIS | -@@ -2324,7 +2341,7 @@ static int __init pl011_console_setup(st +@@ -2322,7 +2339,7 @@ static int __init pl011_console_setup(st plat->init(); } @@ -68,7 +68,7 @@ Signed-off-by: Phil Elwell if (uap->vendor->fixed_options) { baud = uap->fixed_baud; -@@ -2509,6 +2526,7 @@ static struct uart_driver amba_reg = { +@@ -2507,6 +2524,7 @@ static struct uart_driver amba_reg = { .cons = AMBA_CONSOLE, }; @@ -76,7 +76,7 @@ Signed-off-by: Phil Elwell static int pl011_probe_dt_alias(int index, struct device *dev) { struct device_node *np; -@@ -2540,6 +2558,7 @@ static int pl011_probe_dt_alias(int inde +@@ -2538,6 +2556,7 @@ static int pl011_probe_dt_alias(int inde return ret; } diff --git a/target/linux/brcm2708/patches-4.19/950-0036-amba_pl011-Insert-mb-for-correct-FIFO-handling.patch b/target/linux/brcm2708/patches-4.19/950-0036-amba_pl011-Insert-mb-for-correct-FIFO-handling.patch index 7fdedd2bf..eef29187a 100644 --- a/target/linux/brcm2708/patches-4.19/950-0036-amba_pl011-Insert-mb-for-correct-FIFO-handling.patch +++ b/target/linux/brcm2708/patches-4.19/950-0036-amba_pl011-Insert-mb-for-correct-FIFO-handling.patch @@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c -@@ -1385,6 +1385,7 @@ static bool pl011_tx_char(struct uart_am +@@ -1383,6 +1383,7 @@ static bool pl011_tx_char(struct uart_am return false; /* unable to transmit character */ pl011_write(c, uap, REG_DR); diff --git a/target/linux/brcm2708/patches-4.19/950-0037-amba_pl011-Add-cts-event-workaround-DT-property.patch b/target/linux/brcm2708/patches-4.19/950-0037-amba_pl011-Add-cts-event-workaround-DT-property.patch index c23f6dd6c..e5a3c39b3 100644 --- a/target/linux/brcm2708/patches-4.19/950-0037-amba_pl011-Add-cts-event-workaround-DT-property.patch +++ b/target/linux/brcm2708/patches-4.19/950-0037-amba_pl011-Add-cts-event-workaround-DT-property.patch @@ -33,7 +33,7 @@ Signed-off-by: Phil Elwell --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c -@@ -2661,6 +2661,11 @@ static int pl011_probe(struct amba_devic +@@ -2659,6 +2659,11 @@ static int pl011_probe(struct amba_devic if (IS_ERR(uap->clk)) return PTR_ERR(uap->clk); diff --git a/target/linux/brcm2708/patches-4.19/950-0044-MMC-added-alternative-MMC-driver.patch b/target/linux/brcm2708/patches-4.19/950-0044-MMC-added-alternative-MMC-driver.patch index 25f587b2d..3caebb894 100644 --- a/target/linux/brcm2708/patches-4.19/950-0044-MMC-added-alternative-MMC-driver.patch +++ b/target/linux/brcm2708/patches-4.19/950-0044-MMC-added-alternative-MMC-driver.patch @@ -125,7 +125,7 @@ Signed-off-by: Phil Elwell static inline int mmc_blk_part_switch(struct mmc_card *card, unsigned int part_type); -@@ -2913,6 +2920,7 @@ static int mmc_blk_probe(struct mmc_card +@@ -2876,6 +2883,7 @@ static int mmc_blk_probe(struct mmc_card { struct mmc_blk_data *md, *part_md; char cap_str[10]; @@ -133,7 +133,7 @@ Signed-off-by: Phil Elwell /* * Check that the card supports the command class(es) we need. -@@ -2920,7 +2928,16 @@ static int mmc_blk_probe(struct mmc_card +@@ -2883,7 +2891,16 @@ static int mmc_blk_probe(struct mmc_card if (!(card->csd.cmdclass & CCC_BLOCK_READ)) return -ENODEV; @@ -151,7 +151,7 @@ Signed-off-by: Phil Elwell card->complete_wq = alloc_workqueue("mmc_complete", WQ_MEM_RECLAIM | WQ_HIGHPRI, 0); -@@ -2935,9 +2952,14 @@ static int mmc_blk_probe(struct mmc_card +@@ -2898,9 +2915,14 @@ static int mmc_blk_probe(struct mmc_card string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2, cap_str, sizeof(cap_str)); diff --git a/target/linux/brcm2708/patches-4.19/950-0055-firmware-bcm2835-Support-ARCH_BCM270x.patch b/target/linux/brcm2708/patches-4.19/950-0055-firmware-bcm2835-Support-ARCH_BCM270x.patch index 3cba92983..a47be248a 100644 --- a/target/linux/brcm2708/patches-4.19/950-0055-firmware-bcm2835-Support-ARCH_BCM270x.patch +++ b/target/linux/brcm2708/patches-4.19/950-0055-firmware-bcm2835-Support-ARCH_BCM270x.patch @@ -27,7 +27,7 @@ Signed-off-by: Noralf Trønnes --- a/drivers/firmware/raspberrypi.c +++ b/drivers/firmware/raspberrypi.c -@@ -32,6 +32,8 @@ struct rpi_firmware { +@@ -31,6 +31,8 @@ struct rpi_firmware { u32 enabled; }; @@ -36,7 +36,7 @@ Signed-off-by: Noralf Trønnes static DEFINE_MUTEX(transaction_lock); static void response_callback(struct mbox_client *cl, void *msg) -@@ -229,6 +231,7 @@ static int rpi_firmware_probe(struct pla +@@ -230,6 +232,7 @@ static int rpi_firmware_probe(struct pla init_completion(&fw->c); platform_set_drvdata(pdev, fw); @@ -44,7 +44,7 @@ Signed-off-by: Noralf Trønnes rpi_firmware_print_firmware_revision(fw); rpi_register_hwmon_driver(dev, fw); -@@ -243,6 +246,7 @@ static int rpi_firmware_remove(struct pl +@@ -244,6 +247,7 @@ static int rpi_firmware_remove(struct pl platform_device_unregister(rpi_hwmon); rpi_hwmon = NULL; mbox_free_channel(fw->chan); @@ -52,7 +52,7 @@ Signed-off-by: Noralf Trønnes return 0; } -@@ -255,7 +259,7 @@ static int rpi_firmware_remove(struct pl +@@ -256,7 +260,7 @@ static int rpi_firmware_remove(struct pl */ struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node) { @@ -61,7 +61,7 @@ Signed-off-by: Noralf Trønnes if (!pdev) return NULL; -@@ -278,7 +282,18 @@ static struct platform_driver rpi_firmwa +@@ -279,7 +283,18 @@ static struct platform_driver rpi_firmwa .probe = rpi_firmware_probe, .remove = rpi_firmware_remove, }; diff --git a/target/linux/brcm2708/patches-4.19/950-0057-BCM2708-Add-core-Device-Tree-support.patch b/target/linux/brcm2708/patches-4.19/950-0057-BCM2708-Add-core-Device-Tree-support.patch index fd251d6f8..f2ad9710f 100644 --- a/target/linux/brcm2708/patches-4.19/950-0057-BCM2708-Add-core-Device-Tree-support.patch +++ b/target/linux/brcm2708/patches-4.19/950-0057-BCM2708-Add-core-Device-Tree-support.patch @@ -15890,7 +15890,7 @@ Signed-off-by: Phil Elwell -Wno-avoid_unnecessary_addr_size \ -Wno-alias_paths \ -Wno-graph_child_address \ -@@ -292,6 +293,18 @@ cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \ +@@ -293,6 +294,18 @@ cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \ $(obj)/%.dtb: $(src)/%.dts $(DTC) FORCE $(call if_changed_dep,dtc) diff --git a/target/linux/brcm2708/patches-4.19/950-0062-Improve-__copy_to_user-and-__copy_from_user-performa.patch b/target/linux/brcm2708/patches-4.19/950-0062-Improve-__copy_to_user-and-__copy_from_user-performa.patch index 0c3634d0c..4335ff956 100644 --- a/target/linux/brcm2708/patches-4.19/950-0062-Improve-__copy_to_user-and-__copy_from_user-performa.patch +++ b/target/linux/brcm2708/patches-4.19/950-0062-Improve-__copy_to_user-and-__copy_from_user-performa.patch @@ -56,7 +56,7 @@ Signed-off-by: Phil Elwell #endif --- a/arch/arm/include/asm/uaccess.h +++ b/arch/arm/include/asm/uaccess.h -@@ -496,6 +496,9 @@ do { \ +@@ -514,6 +514,9 @@ do { \ extern unsigned long __must_check arm_copy_from_user(void *to, const void __user *from, unsigned long n); diff --git a/target/linux/brcm2708/patches-4.19/950-0110-raspberrypi-firmware-Export-the-general-transaction-.patch b/target/linux/brcm2708/patches-4.19/950-0110-raspberrypi-firmware-Export-the-general-transaction-.patch index 9f5405334..945ba536e 100644 --- a/target/linux/brcm2708/patches-4.19/950-0110-raspberrypi-firmware-Export-the-general-transaction-.patch +++ b/target/linux/brcm2708/patches-4.19/950-0110-raspberrypi-firmware-Export-the-general-transaction-.patch @@ -13,7 +13,7 @@ Signed-off-by: Eric Anholt --- a/drivers/firmware/raspberrypi.c +++ b/drivers/firmware/raspberrypi.c -@@ -46,7 +46,7 @@ static void response_callback(struct mbo +@@ -45,7 +45,7 @@ static void response_callback(struct mbo * Sends a request to the firmware through the BCM2835 mailbox driver, * and synchronously waits for the reply. */ @@ -22,7 +22,7 @@ Signed-off-by: Eric Anholt rpi_firmware_transaction(struct rpi_firmware *fw, u32 chan, u32 data) { u32 message = MBOX_MSG(chan, data); -@@ -67,6 +67,7 @@ rpi_firmware_transaction(struct rpi_firm +@@ -66,6 +66,7 @@ rpi_firmware_transaction(struct rpi_firm return ret; } diff --git a/target/linux/brcm2708/patches-4.19/950-0131-firmware-raspberrypi-Notify-firmware-of-a-reboot.patch b/target/linux/brcm2708/patches-4.19/950-0131-firmware-raspberrypi-Notify-firmware-of-a-reboot.patch index 34d2a8a24..f74f75e76 100644 --- a/target/linux/brcm2708/patches-4.19/950-0131-firmware-raspberrypi-Notify-firmware-of-a-reboot.patch +++ b/target/linux/brcm2708/patches-4.19/950-0131-firmware-raspberrypi-Notify-firmware-of-a-reboot.patch @@ -13,15 +13,15 @@ Signed-off-by: Phil Elwell --- a/drivers/firmware/raspberrypi.c +++ b/drivers/firmware/raspberrypi.c -@@ -14,6 +14,7 @@ - #include +@@ -15,6 +15,7 @@ #include #include + #include +#include + #include #include - #define MBOX_MSG(chan, data28) (((data28) & ~0xf) | ((chan) & 0xf)) -@@ -174,6 +175,26 @@ int rpi_firmware_property(struct rpi_fir +@@ -175,6 +176,26 @@ int rpi_firmware_property(struct rpi_fir } EXPORT_SYMBOL_GPL(rpi_firmware_property); @@ -48,7 +48,7 @@ Signed-off-by: Phil Elwell static void rpi_firmware_print_firmware_revision(struct rpi_firmware *fw) { -@@ -284,15 +305,32 @@ static struct platform_driver rpi_firmwa +@@ -285,15 +306,32 @@ static struct platform_driver rpi_firmwa .remove = rpi_firmware_remove, }; diff --git a/target/linux/brcm2708/patches-4.19/950-0147-firmware-raspberrypi-Add-backward-compatible-get_thr.patch b/target/linux/brcm2708/patches-4.19/950-0147-firmware-raspberrypi-Add-backward-compatible-get_thr.patch index dea72e690..1a74f9c1f 100644 --- a/target/linux/brcm2708/patches-4.19/950-0147-firmware-raspberrypi-Add-backward-compatible-get_thr.patch +++ b/target/linux/brcm2708/patches-4.19/950-0147-firmware-raspberrypi-Add-backward-compatible-get_thr.patch @@ -16,7 +16,7 @@ Signed-off-by: Stefan Wahren --- a/drivers/firmware/raspberrypi.c +++ b/drivers/firmware/raspberrypi.c -@@ -31,6 +31,7 @@ struct rpi_firmware { +@@ -30,6 +30,7 @@ struct rpi_firmware { struct mbox_chan *chan; /* The property channel. */ struct completion c; u32 enabled; @@ -24,9 +24,9 @@ Signed-off-by: Stefan Wahren }; static struct platform_device *g_pdev; -@@ -171,6 +172,12 @@ int rpi_firmware_property(struct rpi_fir - data + sizeof(struct rpi_firmware_property_tag_header), - buf_size); +@@ -172,6 +173,12 @@ int rpi_firmware_property(struct rpi_fir + + kfree(data); + if ((tag == RPI_FIRMWARE_GET_THROTTLED) && + memcmp(&fw->get_throttled, tag_data, sizeof(fw->get_throttled))) { @@ -37,7 +37,7 @@ Signed-off-by: Stefan Wahren return ret; } EXPORT_SYMBOL_GPL(rpi_firmware_property); -@@ -195,6 +202,27 @@ static int rpi_firmware_notify_reboot(st +@@ -196,6 +203,27 @@ static int rpi_firmware_notify_reboot(st return 0; } @@ -65,7 +65,7 @@ Signed-off-by: Stefan Wahren static void rpi_firmware_print_firmware_revision(struct rpi_firmware *fw) { -@@ -227,6 +255,11 @@ rpi_register_hwmon_driver(struct device +@@ -228,6 +256,11 @@ rpi_register_hwmon_driver(struct device rpi_hwmon = platform_device_register_data(dev, "raspberrypi-hwmon", -1, NULL, 0); diff --git a/target/linux/brcm2708/patches-4.19/950-0148-Increase-firmware-call-buffer-size-to-48-bytes.patch b/target/linux/brcm2708/patches-4.19/950-0148-Increase-firmware-call-buffer-size-to-48-bytes.patch deleted file mode 100644 index 99e1679cd..000000000 --- a/target/linux/brcm2708/patches-4.19/950-0148-Increase-firmware-call-buffer-size-to-48-bytes.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 3118f1a2f29ae802a334963c2aded87d60bddd56 Mon Sep 17 00:00:00 2001 -From: James Hughes -Date: Wed, 31 Oct 2018 13:00:46 +0000 -Subject: [PATCH 148/806] Increase firmware call buffer size to 48 bytes - -An assumption was made in commit a1547e0bc that 32 bytes -would be enough data buffer size for all firmware calls. However, -the axi performance monitor driver uses a call with 44 bytes -(RPI_FIRMWARE_GET_PERIPH_REG) to get the VC registers values. - -Increase value to 48 to take this in to account. - -Signed-off-by: James Hughes ---- - drivers/firmware/raspberrypi.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/firmware/raspberrypi.c -+++ b/drivers/firmware/raspberrypi.c -@@ -22,7 +22,7 @@ - #define MBOX_DATA28(msg) ((msg) & ~0xf) - #define MBOX_CHAN_PROPERTY 8 - --#define MAX_RPI_FW_PROP_BUF_SIZE 32 -+#define MAX_RPI_FW_PROP_BUF_SIZE 48 - - static struct platform_device *rpi_hwmon; - diff --git a/target/linux/brcm2708/patches-4.19/950-0206-Mailbox-firmware-calls-now-use-kmalloc-2749.patch b/target/linux/brcm2708/patches-4.19/950-0206-Mailbox-firmware-calls-now-use-kmalloc-2749.patch deleted file mode 100644 index aeb74b074..000000000 --- a/target/linux/brcm2708/patches-4.19/950-0206-Mailbox-firmware-calls-now-use-kmalloc-2749.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 01995961823e4185f687c02cf326d78ba1b6b7bf Mon Sep 17 00:00:00 2001 -From: James Hughes -Date: Tue, 13 Nov 2018 17:27:00 +0000 -Subject: [PATCH 206/806] Mailbox firmware calls now use kmalloc (#2749) - -A previous change moved away from variable stack -allocation of a data buffer to a fixed maximum size. -However, some mailbox calls use larger data buffers -than the maximum allowed. This change moves from -stack storage to kmalloc to ensure all sizes are -catered for. - -Signed-off-by: James Hughes ---- - drivers/firmware/raspberrypi.c | 35 +++++++++++++++++----------------- - 1 file changed, 18 insertions(+), 17 deletions(-) - ---- a/drivers/firmware/raspberrypi.c -+++ b/drivers/firmware/raspberrypi.c -@@ -15,6 +15,7 @@ - #include - #include - #include -+#include - #include - - #define MBOX_MSG(chan, data28) (((data28) & ~0xf) | ((chan) & 0xf)) -@@ -22,8 +23,6 @@ - #define MBOX_DATA28(msg) ((msg) & ~0xf) - #define MBOX_CHAN_PROPERTY 8 - --#define MAX_RPI_FW_PROP_BUF_SIZE 48 -- - static struct platform_device *rpi_hwmon; - - struct rpi_firmware { -@@ -149,28 +148,28 @@ EXPORT_SYMBOL_GPL(rpi_firmware_property_ - int rpi_firmware_property(struct rpi_firmware *fw, - u32 tag, void *tag_data, size_t buf_size) - { -- /* Single tags are very small (generally 8 bytes), so the -- * stack should be safe. -- */ -- u8 data[sizeof(struct rpi_firmware_property_tag_header) + -- MAX_RPI_FW_PROP_BUF_SIZE]; -- struct rpi_firmware_property_tag_header *header = -- (struct rpi_firmware_property_tag_header *)data; - int ret; -+ struct rpi_firmware_property_tag_header *header; - -- if (WARN_ON(buf_size > sizeof(data) - sizeof(*header))) -- return -EINVAL; -+ /* Some mailboxes can use over 1k bytes. Rather than checking -+ * size and using stack or kmalloc depending on requirements, -+ * just use kmalloc. Mailboxes don't get called enough to worry -+ * too much about the time taken in the allocation. -+ */ -+ void *data = kmalloc(sizeof(*header) + buf_size, GFP_KERNEL); - -+ if (!data) -+ return -ENOMEM; -+ -+ header = data; - header->tag = tag; - header->buf_size = buf_size; - header->req_resp_size = 0; -- memcpy(data + sizeof(struct rpi_firmware_property_tag_header), -- tag_data, buf_size); -+ memcpy(data + sizeof(*header), tag_data, buf_size); - -- ret = rpi_firmware_property_list(fw, &data, buf_size + sizeof(*header)); -- memcpy(tag_data, -- data + sizeof(struct rpi_firmware_property_tag_header), -- buf_size); -+ ret = rpi_firmware_property_list(fw, data, buf_size + sizeof(*header)); -+ -+ memcpy(tag_data, data + sizeof(*header), buf_size); - - if ((tag == RPI_FIRMWARE_GET_THROTTLED) && - memcmp(&fw->get_throttled, tag_data, sizeof(fw->get_throttled))) { -@@ -178,6 +177,8 @@ int rpi_firmware_property(struct rpi_fir - sysfs_notify(&fw->cl.dev->kobj, NULL, "get_throttled"); - } - -+ kfree(data); -+ - return ret; - } - EXPORT_SYMBOL_GPL(rpi_firmware_property); diff --git a/target/linux/brcm2708/patches-4.19/950-0519-tty-amba-pl011-allow-shared-interrupt.patch b/target/linux/brcm2708/patches-4.19/950-0519-tty-amba-pl011-allow-shared-interrupt.patch index ae9036755..7d79ed0f0 100644 --- a/target/linux/brcm2708/patches-4.19/950-0519-tty-amba-pl011-allow-shared-interrupt.patch +++ b/target/linux/brcm2708/patches-4.19/950-0519-tty-amba-pl011-allow-shared-interrupt.patch @@ -16,7 +16,7 @@ Signed-off-by: Florian Fainelli --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c -@@ -1735,7 +1735,8 @@ static int pl011_allocate_irq(struct uar +@@ -1733,7 +1733,8 @@ static int pl011_allocate_irq(struct uar { pl011_write(uap->im, uap, REG_IMSC); diff --git a/target/linux/brcm2708/patches-4.19/950-0548-usb-xhci-hack-xhci_urb_enqueue-to-support-hid.mousep.patch b/target/linux/brcm2708/patches-4.19/950-0548-usb-xhci-hack-xhci_urb_enqueue-to-support-hid.mousep.patch index d5e37d87d..bd332715f 100644 --- a/target/linux/brcm2708/patches-4.19/950-0548-usb-xhci-hack-xhci_urb_enqueue-to-support-hid.mousep.patch +++ b/target/linux/brcm2708/patches-4.19/950-0548-usb-xhci-hack-xhci_urb_enqueue-to-support-hid.mousep.patch @@ -20,7 +20,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -1428,6 +1428,87 @@ command_cleanup: +@@ -1425,6 +1425,87 @@ command_cleanup: } /* @@ -108,7 +108,7 @@ Signed-off-by: Jonathan Bell * non-error returns are a promise to giveback() the urb later * we drop ownership so next owner (or urb unlink) can get it */ -@@ -1495,6 +1576,11 @@ static int xhci_urb_enqueue(struct usb_h +@@ -1492,6 +1573,11 @@ static int xhci_urb_enqueue(struct usb_h } } diff --git a/target/linux/brcm2708/patches-4.19/950-0652-Revert-usb-xhci-hack-xhci_urb_enqueue-to-support-hid.patch b/target/linux/brcm2708/patches-4.19/950-0652-Revert-usb-xhci-hack-xhci_urb_enqueue-to-support-hid.patch index 10b0a5b92..6ea178b5b 100644 --- a/target/linux/brcm2708/patches-4.19/950-0652-Revert-usb-xhci-hack-xhci_urb_enqueue-to-support-hid.patch +++ b/target/linux/brcm2708/patches-4.19/950-0652-Revert-usb-xhci-hack-xhci_urb_enqueue-to-support-hid.patch @@ -11,7 +11,7 @@ This reverts commit 1cf1071a79f320bc4497a3ade77431f04442eb17. --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -1428,87 +1428,6 @@ command_cleanup: +@@ -1425,87 +1425,6 @@ command_cleanup: } /* @@ -99,7 +99,7 @@ This reverts commit 1cf1071a79f320bc4497a3ade77431f04442eb17. * non-error returns are a promise to giveback() the urb later * we drop ownership so next owner (or urb unlink) can get it */ -@@ -1576,11 +1495,6 @@ static int xhci_urb_enqueue(struct usb_h +@@ -1573,11 +1492,6 @@ static int xhci_urb_enqueue(struct usb_h } } diff --git a/target/linux/brcm2708/patches-4.19/950-0654-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch b/target/linux/brcm2708/patches-4.19/950-0654-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch index 48b556735..ffcb9ba41 100644 --- a/target/linux/brcm2708/patches-4.19/950-0654-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch +++ b/target/linux/brcm2708/patches-4.19/950-0654-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch @@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -1428,6 +1428,103 @@ command_cleanup: +@@ -1425,6 +1425,103 @@ command_cleanup: } /* @@ -119,7 +119,7 @@ Signed-off-by: Jonathan Bell * non-error returns are a promise to giveback() the urb later * we drop ownership so next owner (or urb unlink) can get it */ -@@ -5220,6 +5317,7 @@ static const struct hc_driver xhci_hc_dr +@@ -5217,6 +5314,7 @@ static const struct hc_driver xhci_hc_dr .endpoint_reset = xhci_endpoint_reset, .check_bandwidth = xhci_check_bandwidth, .reset_bandwidth = xhci_reset_bandwidth, diff --git a/target/linux/brcm2708/patches-4.19/950-0698-tty-amba-pl011-Make-TX-optimisation-conditional.patch b/target/linux/brcm2708/patches-4.19/950-0698-tty-amba-pl011-Make-TX-optimisation-conditional.patch index d6a9cdde3..6b7ab5685 100644 --- a/target/linux/brcm2708/patches-4.19/950-0698-tty-amba-pl011-Make-TX-optimisation-conditional.patch +++ b/target/linux/brcm2708/patches-4.19/950-0698-tty-amba-pl011-Make-TX-optimisation-conditional.patch @@ -42,15 +42,15 @@ Signed-off-by: Phil Elwell #ifdef CONFIG_DMA_ENGINE /* DMA stuff */ bool using_tx_dma; -@@ -814,6 +815,7 @@ __acquires(&uap->port.lock) +@@ -813,6 +814,7 @@ __acquires(&uap->port.lock) + if (!uap->using_tx_dma) return; - /* Avoid deadlock with the DMA engine callback */ + uap->irq_locked = 0; - spin_unlock(&uap->port.lock); - dmaengine_terminate_all(uap->dmatx.chan); - spin_lock(&uap->port.lock); -@@ -941,6 +943,7 @@ static void pl011_dma_rx_chars(struct ua + dmaengine_terminate_async(uap->dmatx.chan); + + if (uap->dmatx.queued) { +@@ -939,6 +941,7 @@ static void pl011_dma_rx_chars(struct ua fifotaken = pl011_fifo_to_tty(uap); } @@ -58,7 +58,7 @@ Signed-off-by: Phil Elwell spin_unlock(&uap->port.lock); dev_vdbg(uap->port.dev, "Took %d chars from DMA buffer and %d chars from the FIFO\n", -@@ -1349,6 +1352,7 @@ __acquires(&uap->port.lock) +@@ -1347,6 +1350,7 @@ __acquires(&uap->port.lock) { pl011_fifo_to_tty(uap); @@ -66,7 +66,7 @@ Signed-off-by: Phil Elwell spin_unlock(&uap->port.lock); tty_flip_buffer_push(&uap->port.state->port); /* -@@ -1484,6 +1488,7 @@ static irqreturn_t pl011_int(int irq, vo +@@ -1482,6 +1486,7 @@ static irqreturn_t pl011_int(int irq, vo int handled = 0; spin_lock_irqsave(&uap->port.lock, flags); @@ -74,7 +74,7 @@ Signed-off-by: Phil Elwell status = pl011_read(uap, REG_RIS) & uap->im; if (status) { do { -@@ -1503,7 +1508,7 @@ static irqreturn_t pl011_int(int irq, vo +@@ -1501,7 +1506,7 @@ static irqreturn_t pl011_int(int irq, vo UART011_CTSMIS|UART011_RIMIS)) pl011_modem_status(uap); if (status & UART011_TXIS) diff --git a/target/linux/brcm2708/patches-4.19/950-0765-xhci-Use-more-event-ring-segment-table-entries.patch b/target/linux/brcm2708/patches-4.19/950-0765-xhci-Use-more-event-ring-segment-table-entries.patch index ef1349153..e2bc7469f 100644 --- a/target/linux/brcm2708/patches-4.19/950-0765-xhci-Use-more-event-ring-segment-table-entries.patch +++ b/target/linux/brcm2708/patches-4.19/950-0765-xhci-Use-more-event-ring-segment-table-entries.patch @@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c -@@ -2491,9 +2491,11 @@ int xhci_mem_init(struct xhci_hcd *xhci, +@@ -2495,9 +2495,11 @@ int xhci_mem_init(struct xhci_hcd *xhci, * Event ring setup: Allocate a normal ring, but also setup * the event ring segment table (ERST). Section 4.9.3. */ @@ -36,7 +36,7 @@ Signed-off-by: Jonathan Bell if (!xhci->event_ring) goto fail; if (xhci_check_trb_in_td_math(xhci) < 0) -@@ -2506,7 +2508,7 @@ int xhci_mem_init(struct xhci_hcd *xhci, +@@ -2510,7 +2512,7 @@ int xhci_mem_init(struct xhci_hcd *xhci, /* set ERST count with the number of entries in the segment table */ val = readl(&xhci->ir_set->erst_size); val &= ERST_SIZE_MASK; diff --git a/target/linux/generic/backport-4.14/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch b/target/linux/generic/backport-4.14/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch index 484093d55..b85179982 100644 --- a/target/linux/generic/backport-4.14/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch +++ b/target/linux/generic/backport-4.14/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch @@ -65,7 +65,7 @@ Cc: Kir Kolyshkin * Before updating sk_refcnt, we must commit prior changes to memory --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -1696,7 +1696,7 @@ u32 tcp_tso_autosize(const struct sock * +@@ -1697,7 +1697,7 @@ u32 tcp_tso_autosize(const struct sock * { u32 bytes, segs; @@ -74,7 +74,7 @@ Cc: Kir Kolyshkin sk->sk_gso_max_size - 1 - MAX_TCP_HEADER); /* Goal is to send at least one packet per ms, -@@ -2214,7 +2214,7 @@ static bool tcp_small_queue_check(struct +@@ -2215,7 +2215,7 @@ static bool tcp_small_queue_check(struct { unsigned int limit; diff --git a/target/linux/generic/backport-4.14/274-flow_dissector-Parse-batman-adv-unicast-headers.patch b/target/linux/generic/backport-4.14/274-flow_dissector-Parse-batman-adv-unicast-headers.patch index b0b2823cc..a9b2fc40a 100644 --- a/target/linux/generic/backport-4.14/274-flow_dissector-Parse-batman-adv-unicast-headers.patch +++ b/target/linux/generic/backport-4.14/274-flow_dissector-Parse-batman-adv-unicast-headers.patch @@ -94,7 +94,7 @@ Signed-off-by: David S. Miller static void __skb_flow_dissect_tcp(const struct sk_buff *skb, struct flow_dissector *flow_dissector, -@@ -717,6 +769,11 @@ proto_again: +@@ -718,6 +770,11 @@ proto_again: nhoff, hlen); break; diff --git a/target/linux/generic/backport-4.19/402-leds-trigger-netdev-fix-handling-on-interface-rename.patch b/target/linux/generic/backport-4.19/402-leds-trigger-netdev-fix-handling-on-interface-rename.patch deleted file mode 100644 index c40ca4247..000000000 --- a/target/linux/generic/backport-4.19/402-leds-trigger-netdev-fix-handling-on-interface-rename.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 0ff035231edca3713c3d0839c44e64a4ac41ef38 Mon Sep 17 00:00:00 2001 -From: Martin Schiller -Date: Thu, 24 Oct 2019 15:09:23 +0200 -Subject: [PATCH] leds: trigger: netdev: fix handling on interface rename - -The NETDEV_CHANGENAME code is not "unneeded" like it is stated in commit -4cb6560514fa ("leds: trigger: netdev: fix refcnt leak on interface -rename"). - -The event was accidentally misinterpreted equivalent to -NETDEV_UNREGISTER, but should be equivalent to NETDEV_REGISTER. - -This was the case in the original code from the openwrt project. - -Otherwise, you are unable to set netdev led triggers for (non-existent) -netdevices, which has to be renamed. This is the case, for example, for -ppp interfaces in openwrt. - -Fixes: 06f502f57d0d ("leds: trigger: Introduce a NETDEV trigger") -Fixes: 4cb6560514fa ("leds: trigger: netdev: fix refcnt leak on interface rename") -Signed-off-by: Martin Schiller ---- - drivers/leds/trigger/ledtrig-netdev.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - ---- a/drivers/leds/trigger/ledtrig-netdev.c -+++ b/drivers/leds/trigger/ledtrig-netdev.c -@@ -302,10 +302,12 @@ static int netdev_trig_notify(struct not - container_of(nb, struct led_netdev_data, notifier); - - if (evt != NETDEV_UP && evt != NETDEV_DOWN && evt != NETDEV_CHANGE -- && evt != NETDEV_REGISTER && evt != NETDEV_UNREGISTER) -+ && evt != NETDEV_REGISTER && evt != NETDEV_UNREGISTER -+ && evt != NETDEV_CHANGENAME) - return NOTIFY_DONE; - - if (!(dev == trigger_data->net_dev || -+ (evt == NETDEV_CHANGENAME && !strcmp(dev->name, trigger_data->device_name)) || - (evt == NETDEV_REGISTER && !strcmp(dev->name, trigger_data->device_name)))) - return NOTIFY_DONE; - -@@ -315,6 +317,7 @@ static int netdev_trig_notify(struct not - - clear_bit(NETDEV_LED_MODE_LINKUP, &trigger_data->mode); - switch (evt) { -+ case NETDEV_CHANGENAME: - case NETDEV_REGISTER: - if (trigger_data->net_dev) - dev_put(trigger_data->net_dev); diff --git a/target/linux/generic/backport-4.9/024-1-tcp-tsq-add-tsq_flags-tsq_enum.patch b/target/linux/generic/backport-4.9/024-1-tcp-tsq-add-tsq_flags-tsq_enum.patch index 172e714c5..853b7d6cc 100644 --- a/target/linux/generic/backport-4.9/024-1-tcp-tsq-add-tsq_flags-tsq_enum.patch +++ b/target/linux/generic/backport-4.9/024-1-tcp-tsq-add-tsq_flags-tsq_enum.patch @@ -45,7 +45,7 @@ Signed-off-by: David S. Miller return (struct tcp_sock *)sk; --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -789,10 +789,10 @@ static void tcp_tasklet_func(unsigned lo +@@ -790,10 +790,10 @@ static void tcp_tasklet_func(unsigned lo } } @@ -60,7 +60,7 @@ Signed-off-by: David S. Miller /** * tcp_release_cb - tcp release_sock() callback * @sk: socket -@@ -813,7 +813,7 @@ void tcp_release_cb(struct sock *sk) +@@ -814,7 +814,7 @@ void tcp_release_cb(struct sock *sk) nflags = flags & ~TCP_DEFERRED_ALL; } while (cmpxchg(&tp->tsq_flags, flags, nflags) != flags); @@ -69,7 +69,7 @@ Signed-off-by: David S. Miller tcp_tsq_handler(sk); /* Here begins the tricky part : -@@ -827,15 +827,15 @@ void tcp_release_cb(struct sock *sk) +@@ -828,15 +828,15 @@ void tcp_release_cb(struct sock *sk) */ sock_release_ownership(sk); diff --git a/target/linux/generic/backport-4.9/024-2-tcp-tsq-remove-one-locked-operation-in-tcp_wfree.patch b/target/linux/generic/backport-4.9/024-2-tcp-tsq-remove-one-locked-operation-in-tcp_wfree.patch index af194b2be..dfd9abf94 100644 --- a/target/linux/generic/backport-4.9/024-2-tcp-tsq-remove-one-locked-operation-in-tcp_wfree.patch +++ b/target/linux/generic/backport-4.9/024-2-tcp-tsq-remove-one-locked-operation-in-tcp_wfree.patch @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -865,6 +865,7 @@ void tcp_wfree(struct sk_buff *skb) +@@ -866,6 +866,7 @@ void tcp_wfree(struct sk_buff *skb) { struct sock *sk = skb->sk; struct tcp_sock *tp = tcp_sk(sk); @@ -25,7 +25,7 @@ Signed-off-by: David S. Miller int wmem; /* Keep one reference on sk_wmem_alloc. -@@ -882,11 +883,17 @@ void tcp_wfree(struct sk_buff *skb) +@@ -883,11 +884,17 @@ void tcp_wfree(struct sk_buff *skb) if (wmem >= SKB_TRUESIZE(1) && this_cpu_ksoftirqd() == current) goto out; diff --git a/target/linux/generic/backport-4.9/024-3-tcp-tsq-add-shortcut-in-tcp_tasklet_func.patch b/target/linux/generic/backport-4.9/024-3-tcp-tsq-add-shortcut-in-tcp_tasklet_func.patch index 80b2c3db1..90979c48b 100644 --- a/target/linux/generic/backport-4.9/024-3-tcp-tsq-add-shortcut-in-tcp_tasklet_func.patch +++ b/target/linux/generic/backport-4.9/024-3-tcp-tsq-add-shortcut-in-tcp_tasklet_func.patch @@ -22,7 +22,7 @@ Signed-off-by: David S. Miller --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -772,19 +772,19 @@ static void tcp_tasklet_func(unsigned lo +@@ -773,19 +773,19 @@ static void tcp_tasklet_func(unsigned lo list_for_each_safe(q, n, &list) { tp = list_entry(q, struct tcp_sock, tsq_node); list_del(&tp->tsq_node); @@ -51,7 +51,7 @@ Signed-off-by: David S. Miller sk_free(sk); } } -@@ -889,7 +889,7 @@ void tcp_wfree(struct sk_buff *skb) +@@ -890,7 +890,7 @@ void tcp_wfree(struct sk_buff *skb) if (!(oval & TSQF_THROTTLED) || (oval & TSQF_QUEUED)) goto out; @@ -60,7 +60,7 @@ Signed-off-by: David S. Miller nval = cmpxchg(&tp->tsq_flags, oval, nval); if (nval != oval) continue; -@@ -2236,6 +2236,8 @@ static bool tcp_write_xmit(struct sock * +@@ -2237,6 +2237,8 @@ static bool tcp_write_xmit(struct sock * unlikely(tso_fragment(sk, skb, limit, mss_now, gfp))) break; diff --git a/target/linux/generic/backport-4.9/024-4-tcp-tsq-avoid-one-atomic-in-tcp_wfree.patch b/target/linux/generic/backport-4.9/024-4-tcp-tsq-avoid-one-atomic-in-tcp_wfree.patch index 87452ac85..2b5ef932d 100644 --- a/target/linux/generic/backport-4.9/024-4-tcp-tsq-avoid-one-atomic-in-tcp_wfree.patch +++ b/target/linux/generic/backport-4.9/024-4-tcp-tsq-avoid-one-atomic-in-tcp_wfree.patch @@ -16,7 +16,7 @@ Signed-off-by: David S. Miller --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -885,6 +885,7 @@ void tcp_wfree(struct sk_buff *skb) +@@ -886,6 +886,7 @@ void tcp_wfree(struct sk_buff *skb) for (oval = READ_ONCE(tp->tsq_flags);; oval = nval) { struct tsq_tasklet *tsq; @@ -24,7 +24,7 @@ Signed-off-by: David S. Miller if (!(oval & TSQF_THROTTLED) || (oval & TSQF_QUEUED)) goto out; -@@ -897,8 +898,10 @@ void tcp_wfree(struct sk_buff *skb) +@@ -898,8 +899,10 @@ void tcp_wfree(struct sk_buff *skb) /* queue this socket to tasklet queue */ local_irq_save(flags); tsq = this_cpu_ptr(&tsq_tasklet); diff --git a/target/linux/generic/backport-4.9/024-5-tcp-tsq-add-a-shortcut-in-tcp_small_queue_check.patch b/target/linux/generic/backport-4.9/024-5-tcp-tsq-add-a-shortcut-in-tcp_small_queue_check.patch index 7cfc819ec..0156efa65 100644 --- a/target/linux/generic/backport-4.9/024-5-tcp-tsq-add-a-shortcut-in-tcp_small_queue_check.patch +++ b/target/linux/generic/backport-4.9/024-5-tcp-tsq-add-a-shortcut-in-tcp_small_queue_check.patch @@ -19,7 +19,7 @@ Signed-off-by: David S. Miller --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -2141,6 +2141,15 @@ static bool tcp_small_queue_check(struct +@@ -2142,6 +2142,15 @@ static bool tcp_small_queue_check(struct limit <<= factor; if (atomic_read(&sk->sk_wmem_alloc) > limit) { diff --git a/target/linux/generic/backport-4.9/024-6-tcp-tcp_mtu_probe-is-likely-to-exit-early.patch b/target/linux/generic/backport-4.9/024-6-tcp-tcp_mtu_probe-is-likely-to-exit-early.patch index f74556912..5669b897e 100644 --- a/target/linux/generic/backport-4.9/024-6-tcp-tcp_mtu_probe-is-likely-to-exit-early.patch +++ b/target/linux/generic/backport-4.9/024-6-tcp-tcp_mtu_probe-is-likely-to-exit-early.patch @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -1973,26 +1973,26 @@ static bool tcp_can_coalesce_send_queue_ +@@ -1974,26 +1974,26 @@ static bool tcp_can_coalesce_send_queue_ */ static int tcp_mtu_probe(struct sock *sk) { diff --git a/target/linux/generic/backport-4.9/024-8-tcp-tsq-move-tsq_flags-close-to-sk_wmem_alloc.patch b/target/linux/generic/backport-4.9/024-8-tcp-tsq-move-tsq_flags-close-to-sk_wmem_alloc.patch index eef1a1cc8..8beceff0f 100644 --- a/target/linux/generic/backport-4.9/024-8-tcp-tsq-move-tsq_flags-close-to-sk_wmem_alloc.patch +++ b/target/linux/generic/backport-4.9/024-8-tcp-tsq-move-tsq_flags-close-to-sk_wmem_alloc.patch @@ -58,7 +58,7 @@ Signed-off-by: David S. Miller goto out; --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -772,14 +772,15 @@ static void tcp_tasklet_func(unsigned lo +@@ -773,14 +773,15 @@ static void tcp_tasklet_func(unsigned lo list_for_each_safe(q, n, &list) { tp = list_entry(q, struct tcp_sock, tsq_node); list_del(&tp->tsq_node); @@ -77,7 +77,7 @@ Signed-off-by: David S. Miller tcp_tsq_handler(sk); } bh_unlock_sock(sk); -@@ -802,16 +803,15 @@ static void tcp_tasklet_func(unsigned lo +@@ -803,16 +804,15 @@ static void tcp_tasklet_func(unsigned lo */ void tcp_release_cb(struct sock *sk) { @@ -96,7 +96,7 @@ Signed-off-by: David S. Miller if (flags & TCPF_TSQ_DEFERRED) tcp_tsq_handler(sk); -@@ -883,7 +883,7 @@ void tcp_wfree(struct sk_buff *skb) +@@ -884,7 +884,7 @@ void tcp_wfree(struct sk_buff *skb) if (wmem >= SKB_TRUESIZE(1) && this_cpu_ksoftirqd() == current) goto out; @@ -105,7 +105,7 @@ Signed-off-by: David S. Miller struct tsq_tasklet *tsq; bool empty; -@@ -891,7 +891,7 @@ void tcp_wfree(struct sk_buff *skb) +@@ -892,7 +892,7 @@ void tcp_wfree(struct sk_buff *skb) goto out; nval = (oval & ~TSQF_THROTTLED) | TSQF_QUEUED | TCPF_TSQ_DEFERRED; @@ -114,7 +114,7 @@ Signed-off-by: David S. Miller if (nval != oval) continue; -@@ -2150,7 +2150,7 @@ static bool tcp_small_queue_check(struct +@@ -2151,7 +2151,7 @@ static bool tcp_small_queue_check(struct skb->prev == sk->sk_write_queue.next) return false; @@ -123,7 +123,7 @@ Signed-off-by: David S. Miller /* It is possible TX completion already happened * before we set TSQ_THROTTLED, so we must * test again the condition. -@@ -2248,8 +2248,8 @@ static bool tcp_write_xmit(struct sock * +@@ -2249,8 +2249,8 @@ static bool tcp_write_xmit(struct sock * unlikely(tso_fragment(sk, skb, limit, mss_now, gfp))) break; @@ -134,7 +134,7 @@ Signed-off-by: David S. Miller if (tcp_small_queue_check(sk, skb, 0)) break; -@@ -3560,8 +3560,6 @@ void __tcp_send_ack(struct sock *sk, u32 +@@ -3561,8 +3561,6 @@ void __tcp_send_ack(struct sock *sk, u32 /* We do not want pure acks influencing TCP Small Queues or fq/pacing * too much. * SKB_TRUESIZE(max(1 .. 66, MAX_TCP_HEADER)) is unfortunately ~784 diff --git a/target/linux/generic/backport-4.9/024-9-tcp-add-a-missing-barrier-in-tcp_tasklet_func.patch b/target/linux/generic/backport-4.9/024-9-tcp-add-a-missing-barrier-in-tcp_tasklet_func.patch index bd7430326..bcdbe8ce3 100644 --- a/target/linux/generic/backport-4.9/024-9-tcp-add-a-missing-barrier-in-tcp_tasklet_func.patch +++ b/target/linux/generic/backport-4.9/024-9-tcp-add-a-missing-barrier-in-tcp_tasklet_func.patch @@ -30,7 +30,7 @@ Signed-off-by: David S. Miller --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -774,6 +774,7 @@ static void tcp_tasklet_func(unsigned lo +@@ -775,6 +775,7 @@ static void tcp_tasklet_func(unsigned lo list_del(&tp->tsq_node); sk = (struct sock *)tp; diff --git a/target/linux/generic/backport-4.9/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch b/target/linux/generic/backport-4.9/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch index 8eef72c9c..11f1cd565 100644 --- a/target/linux/generic/backport-4.9/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch +++ b/target/linux/generic/backport-4.9/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch @@ -65,7 +65,7 @@ Cc: Kir Kolyshkin * Before updating sk_refcnt, we must commit prior changes to memory --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -1606,7 +1606,7 @@ u32 tcp_tso_autosize(const struct sock * +@@ -1607,7 +1607,7 @@ u32 tcp_tso_autosize(const struct sock * { u32 bytes, segs; @@ -74,7 +74,7 @@ Cc: Kir Kolyshkin sk->sk_gso_max_size - 1 - MAX_TCP_HEADER); /* Goal is to send at least one packet per ms, -@@ -2137,7 +2137,7 @@ static bool tcp_small_queue_check(struct +@@ -2138,7 +2138,7 @@ static bool tcp_small_queue_check(struct { unsigned int limit; diff --git a/target/linux/generic/backport-4.9/063-v4.11-0002-mtd-introduce-function-max_bad_blocks.patch b/target/linux/generic/backport-4.9/063-v4.11-0002-mtd-introduce-function-max_bad_blocks.patch index d2e582ef5..b2549ca3c 100644 --- a/target/linux/generic/backport-4.9/063-v4.11-0002-mtd-introduce-function-max_bad_blocks.patch +++ b/target/linux/generic/backport-4.9/063-v4.11-0002-mtd-introduce-function-max_bad_blocks.patch @@ -52,7 +52,7 @@ Signed-off-by: Brian Norris int (*_suspend) (struct mtd_info *mtd); void (*_resume) (struct mtd_info *mtd); void (*_reboot) (struct mtd_info *mtd); -@@ -397,6 +398,18 @@ static inline int mtd_oobavail(struct mt +@@ -397,6 +398,18 @@ static inline u32 mtd_oobavail(struct mt return ops->mode == MTD_OPS_AUTO_OOB ? mtd->oobavail : mtd->oobsize; } diff --git a/target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch b/target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch index d8d8ad5ea..308dd0f19 100644 --- a/target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch +++ b/target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch @@ -1346,7 +1346,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/wireless/ath/ath10k/pci.c +++ b/drivers/net/wireless/ath/ath10k/pci.c -@@ -2803,7 +2803,7 @@ static int ath10k_pci_napi_poll(struct n +@@ -2804,7 +2804,7 @@ static int ath10k_pci_napi_poll(struct n done = ath10k_htt_txrx_compl_task(ar, budget); if (done < budget) { diff --git a/target/linux/generic/hack-4.14/204-module_strip.patch b/target/linux/generic/hack-4.14/204-module_strip.patch index d847adf05..81a672b0f 100644 --- a/target/linux/generic/hack-4.14/204-module_strip.patch +++ b/target/linux/generic/hack-4.14/204-module_strip.patch @@ -114,7 +114,7 @@ Signed-off-by: Felix Fietkau config MODULES_TREE_LOOKUP --- a/kernel/module.c +++ b/kernel/module.c -@@ -3020,9 +3020,11 @@ static struct module *setup_load_info(st +@@ -3022,9 +3022,11 @@ static struct module *setup_load_info(st static int check_modinfo(struct module *mod, struct load_info *info, int flags) { @@ -127,7 +127,7 @@ Signed-off-by: Felix Fietkau if (flags & MODULE_INIT_IGNORE_VERMAGIC) modmagic = NULL; -@@ -3043,6 +3045,7 @@ static int check_modinfo(struct module * +@@ -3045,6 +3047,7 @@ static int check_modinfo(struct module * mod->name); add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK); } @@ -137,7 +137,7 @@ Signed-off-by: Felix Fietkau --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c -@@ -1984,7 +1984,9 @@ static void read_symbols(char *modname) +@@ -1996,7 +1996,9 @@ static void read_symbols(char *modname) symname = remove_dot(info.strtab + sym->st_name); handle_modversions(mod, &info, sym, symname); @@ -147,7 +147,7 @@ Signed-off-by: Felix Fietkau } if (!is_vmlinux(modname) || (is_vmlinux(modname) && vmlinux_section_warnings)) -@@ -2145,8 +2147,10 @@ static void add_header(struct buffer *b, +@@ -2157,8 +2159,10 @@ static void add_header(struct buffer *b, buf_printf(b, "#include \n"); buf_printf(b, "#include \n"); buf_printf(b, "\n"); @@ -158,7 +158,7 @@ Signed-off-by: Felix Fietkau buf_printf(b, "\n"); buf_printf(b, "__visible struct module __this_module\n"); buf_printf(b, "__attribute__((section(\".gnu.linkonce.this_module\"))) = {\n"); -@@ -2163,8 +2167,10 @@ static void add_header(struct buffer *b, +@@ -2175,8 +2179,10 @@ static void add_header(struct buffer *b, static void add_intree_flag(struct buffer *b, int is_intree) { @@ -169,7 +169,7 @@ Signed-off-by: Felix Fietkau } /* Cannot check for assembler */ -@@ -2177,10 +2183,12 @@ static void add_retpoline(struct buffer +@@ -2189,10 +2195,12 @@ static void add_retpoline(struct buffer static void add_staging_flag(struct buffer *b, const char *name) { @@ -182,7 +182,7 @@ Signed-off-by: Felix Fietkau } /** -@@ -2279,11 +2287,13 @@ static void add_depends(struct buffer *b +@@ -2291,11 +2299,13 @@ static void add_depends(struct buffer *b static void add_srcversion(struct buffer *b, struct module *mod) { @@ -196,7 +196,7 @@ Signed-off-by: Felix Fietkau } static void write_if_changed(struct buffer *b, const char *fname) -@@ -2520,7 +2530,9 @@ int main(int argc, char **argv) +@@ -2532,7 +2542,9 @@ int main(int argc, char **argv) add_staging_flag(&buf, mod->name); err |= add_versions(&buf, mod); add_depends(&buf, mod, modules); diff --git a/target/linux/generic/hack-4.14/301-mips_image_cmdline_hack.patch b/target/linux/generic/hack-4.14/301-mips_image_cmdline_hack.patch index eb6011e81..9bcd2a440 100644 --- a/target/linux/generic/hack-4.14/301-mips_image_cmdline_hack.patch +++ b/target/linux/generic/hack-4.14/301-mips_image_cmdline_hack.patch @@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -1158,6 +1158,10 @@ config SYNC_R4K +@@ -1159,6 +1159,10 @@ config SYNC_R4K config MIPS_MACHINE def_bool n diff --git a/target/linux/generic/hack-4.14/721-phy_packets.patch b/target/linux/generic/hack-4.14/721-phy_packets.patch index 9e1c57d92..2c59e837a 100644 --- a/target/linux/generic/hack-4.14/721-phy_packets.patch +++ b/target/linux/generic/hack-4.14/721-phy_packets.patch @@ -43,7 +43,7 @@ Signed-off-by: Felix Fietkau const struct header_ops *header_ops; unsigned int flags; -@@ -1797,6 +1804,10 @@ struct net_device { +@@ -1802,6 +1809,10 @@ struct net_device { struct mpls_dev __rcu *mpls_ptr; #endif diff --git a/target/linux/generic/hack-4.14/902-debloat_proc.patch b/target/linux/generic/hack-4.14/902-debloat_proc.patch index a776997fa..1c5e93d73 100644 --- a/target/linux/generic/hack-4.14/902-debloat_proc.patch +++ b/target/linux/generic/hack-4.14/902-debloat_proc.patch @@ -243,7 +243,7 @@ Signed-off-by: Felix Fietkau } --- a/mm/vmstat.c +++ b/mm/vmstat.c -@@ -1950,10 +1950,12 @@ void __init init_mm_internals(void) +@@ -1951,10 +1951,12 @@ void __init init_mm_internals(void) start_shepherd_timer(); #endif #ifdef CONFIG_PROC_FS diff --git a/target/linux/generic/hack-4.19/204-module_strip.patch b/target/linux/generic/hack-4.19/204-module_strip.patch index b218e3b6a..b9d7c886a 100644 --- a/target/linux/generic/hack-4.19/204-module_strip.patch +++ b/target/linux/generic/hack-4.19/204-module_strip.patch @@ -114,7 +114,7 @@ Signed-off-by: Felix Fietkau config MODULES_TREE_LOOKUP --- a/kernel/module.c +++ b/kernel/module.c -@@ -3025,9 +3025,11 @@ static int setup_load_info(struct load_i +@@ -3027,9 +3027,11 @@ static int setup_load_info(struct load_i static int check_modinfo(struct module *mod, struct load_info *info, int flags) { @@ -127,7 +127,7 @@ Signed-off-by: Felix Fietkau if (flags & MODULE_INIT_IGNORE_VERMAGIC) modmagic = NULL; -@@ -3048,6 +3050,7 @@ static int check_modinfo(struct module * +@@ -3050,6 +3052,7 @@ static int check_modinfo(struct module * mod->name); add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK); } @@ -137,7 +137,7 @@ Signed-off-by: Felix Fietkau --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c -@@ -1971,7 +1971,9 @@ static void read_symbols(const char *mod +@@ -1983,7 +1983,9 @@ static void read_symbols(const char *mod symname = remove_dot(info.strtab + sym->st_name); handle_modversions(mod, &info, sym, symname); @@ -147,7 +147,7 @@ Signed-off-by: Felix Fietkau } if (!is_vmlinux(modname) || vmlinux_section_warnings) check_sec_ref(mod, modname, &info); -@@ -2134,8 +2136,10 @@ static void add_header(struct buffer *b, +@@ -2146,8 +2148,10 @@ static void add_header(struct buffer *b, buf_printf(b, "\n"); buf_printf(b, "BUILD_SALT;\n"); buf_printf(b, "\n"); @@ -158,7 +158,7 @@ Signed-off-by: Felix Fietkau buf_printf(b, "\n"); buf_printf(b, "__visible struct module __this_module\n"); buf_printf(b, "__attribute__((section(\".gnu.linkonce.this_module\"))) = {\n"); -@@ -2152,8 +2156,10 @@ static void add_header(struct buffer *b, +@@ -2164,8 +2168,10 @@ static void add_header(struct buffer *b, static void add_intree_flag(struct buffer *b, int is_intree) { @@ -169,7 +169,7 @@ Signed-off-by: Felix Fietkau } /* Cannot check for assembler */ -@@ -2166,8 +2172,10 @@ static void add_retpoline(struct buffer +@@ -2178,8 +2184,10 @@ static void add_retpoline(struct buffer static void add_staging_flag(struct buffer *b, const char *name) { @@ -180,7 +180,7 @@ Signed-off-by: Felix Fietkau } /** -@@ -2266,11 +2274,13 @@ static void add_depends(struct buffer *b +@@ -2278,11 +2286,13 @@ static void add_depends(struct buffer *b static void add_srcversion(struct buffer *b, struct module *mod) { @@ -194,7 +194,7 @@ Signed-off-by: Felix Fietkau } static void write_if_changed(struct buffer *b, const char *fname) -@@ -2507,7 +2517,9 @@ int main(int argc, char **argv) +@@ -2519,7 +2529,9 @@ int main(int argc, char **argv) add_staging_flag(&buf, mod->name); err |= add_versions(&buf, mod); add_depends(&buf, mod, modules); diff --git a/target/linux/generic/hack-4.19/230-openwrt_lzma_options.patch b/target/linux/generic/hack-4.19/230-openwrt_lzma_options.patch index b45ed1184..1e945cd4c 100644 --- a/target/linux/generic/hack-4.19/230-openwrt_lzma_options.patch +++ b/target/linux/generic/hack-4.19/230-openwrt_lzma_options.patch @@ -23,7 +23,7 @@ Signed-off-by: Imre Kaloz { {0x02, 0x21}, "lz4", unlz4 }, --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib -@@ -324,7 +324,7 @@ cmd_bzip2 = (cat $(filter-out FORCE,$^) +@@ -325,7 +325,7 @@ cmd_bzip2 = (cat $(filter-out FORCE,$^) quiet_cmd_lzma = LZMA $@ cmd_lzma = (cat $(filter-out FORCE,$^) | \ diff --git a/target/linux/generic/hack-4.19/301-mips_image_cmdline_hack.patch b/target/linux/generic/hack-4.19/301-mips_image_cmdline_hack.patch index 7a6948d48..da7d1fdbe 100644 --- a/target/linux/generic/hack-4.19/301-mips_image_cmdline_hack.patch +++ b/target/linux/generic/hack-4.19/301-mips_image_cmdline_hack.patch @@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -1143,6 +1143,10 @@ config SYNC_R4K +@@ -1144,6 +1144,10 @@ config SYNC_R4K config MIPS_MACHINE def_bool n diff --git a/target/linux/generic/hack-4.19/721-phy_packets.patch b/target/linux/generic/hack-4.19/721-phy_packets.patch index 39bb364d0..e9c09302e 100644 --- a/target/linux/generic/hack-4.19/721-phy_packets.patch +++ b/target/linux/generic/hack-4.19/721-phy_packets.patch @@ -43,7 +43,7 @@ Signed-off-by: Felix Fietkau const struct header_ops *header_ops; unsigned int flags; -@@ -1919,6 +1926,10 @@ struct net_device { +@@ -1924,6 +1931,10 @@ struct net_device { struct mpls_dev __rcu *mpls_ptr; #endif diff --git a/target/linux/generic/hack-4.19/902-debloat_proc.patch b/target/linux/generic/hack-4.19/902-debloat_proc.patch index 4bd4d2216..f562c9f2e 100644 --- a/target/linux/generic/hack-4.19/902-debloat_proc.patch +++ b/target/linux/generic/hack-4.19/902-debloat_proc.patch @@ -243,7 +243,7 @@ Signed-off-by: Felix Fietkau &vmalloc_op, --- a/mm/vmstat.c +++ b/mm/vmstat.c -@@ -1971,10 +1971,12 @@ void __init init_mm_internals(void) +@@ -1972,10 +1972,12 @@ void __init init_mm_internals(void) start_shepherd_timer(); #endif #ifdef CONFIG_PROC_FS diff --git a/target/linux/generic/hack-4.9/204-module_strip.patch b/target/linux/generic/hack-4.9/204-module_strip.patch index fcca6bd02..2f34791cd 100644 --- a/target/linux/generic/hack-4.9/204-module_strip.patch +++ b/target/linux/generic/hack-4.9/204-module_strip.patch @@ -114,7 +114,7 @@ Signed-off-by: Felix Fietkau config MODULES_TREE_LOOKUP --- a/kernel/module.c +++ b/kernel/module.c -@@ -2968,9 +2968,11 @@ static struct module *setup_load_info(st +@@ -2970,9 +2970,11 @@ static struct module *setup_load_info(st static int check_modinfo(struct module *mod, struct load_info *info, int flags) { @@ -127,7 +127,7 @@ Signed-off-by: Felix Fietkau if (flags & MODULE_INIT_IGNORE_VERMAGIC) modmagic = NULL; -@@ -2991,6 +2993,7 @@ static int check_modinfo(struct module * +@@ -2993,6 +2995,7 @@ static int check_modinfo(struct module * mod->name); add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK); } @@ -137,7 +137,7 @@ Signed-off-by: Felix Fietkau --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c -@@ -1967,7 +1967,9 @@ static void read_symbols(char *modname) +@@ -1979,7 +1979,9 @@ static void read_symbols(char *modname) symname = remove_dot(info.strtab + sym->st_name); handle_modversions(mod, &info, sym, symname); @@ -147,7 +147,7 @@ Signed-off-by: Felix Fietkau } if (!is_vmlinux(modname) || (is_vmlinux(modname) && vmlinux_section_warnings)) -@@ -2111,7 +2113,9 @@ static void add_header(struct buffer *b, +@@ -2123,7 +2125,9 @@ static void add_header(struct buffer *b, buf_printf(b, "#include \n"); buf_printf(b, "#include \n"); buf_printf(b, "\n"); @@ -157,7 +157,7 @@ Signed-off-by: Felix Fietkau buf_printf(b, "\n"); buf_printf(b, "__visible struct module __this_module\n"); buf_printf(b, "__attribute__((section(\".gnu.linkonce.this_module\"))) = {\n"); -@@ -2128,24 +2132,30 @@ static void add_header(struct buffer *b, +@@ -2140,24 +2144,30 @@ static void add_header(struct buffer *b, static void add_intree_flag(struct buffer *b, int is_intree) { @@ -188,7 +188,7 @@ Signed-off-by: Felix Fietkau } /* In kernel, this size is defined in linux/module.h; -@@ -2249,11 +2259,13 @@ static void add_depends(struct buffer *b +@@ -2261,11 +2271,13 @@ static void add_depends(struct buffer *b static void add_srcversion(struct buffer *b, struct module *mod) { @@ -202,7 +202,7 @@ Signed-off-by: Felix Fietkau } static void write_if_changed(struct buffer *b, const char *fname) -@@ -2488,7 +2500,9 @@ int main(int argc, char **argv) +@@ -2500,7 +2512,9 @@ int main(int argc, char **argv) add_staging_flag(&buf, mod->name); err |= add_versions(&buf, mod); add_depends(&buf, mod, modules); diff --git a/target/linux/generic/hack-4.9/301-mips_image_cmdline_hack.patch b/target/linux/generic/hack-4.9/301-mips_image_cmdline_hack.patch index 01caff5b8..eb6011e81 100644 --- a/target/linux/generic/hack-4.9/301-mips_image_cmdline_hack.patch +++ b/target/linux/generic/hack-4.9/301-mips_image_cmdline_hack.patch @@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -1157,6 +1157,10 @@ config SYNC_R4K +@@ -1158,6 +1158,10 @@ config SYNC_R4K config MIPS_MACHINE def_bool n diff --git a/target/linux/generic/hack-4.9/721-phy_packets.patch b/target/linux/generic/hack-4.9/721-phy_packets.patch index feb3569f0..e1ad675a7 100644 --- a/target/linux/generic/hack-4.9/721-phy_packets.patch +++ b/target/linux/generic/hack-4.9/721-phy_packets.patch @@ -43,7 +43,7 @@ Signed-off-by: Felix Fietkau const struct header_ops *header_ops; unsigned int flags; -@@ -1783,6 +1790,10 @@ struct net_device { +@@ -1788,6 +1795,10 @@ struct net_device { struct mpls_dev __rcu *mpls_ptr; #endif diff --git a/target/linux/generic/pending-4.14/300-mips_expose_boot_raw.patch b/target/linux/generic/pending-4.14/300-mips_expose_boot_raw.patch index 5384be15c..71dff9b93 100644 --- a/target/linux/generic/pending-4.14/300-mips_expose_boot_raw.patch +++ b/target/linux/generic/pending-4.14/300-mips_expose_boot_raw.patch @@ -9,7 +9,7 @@ Acked-by: Rob Landley --- --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -1067,9 +1067,6 @@ config FW_ARC +@@ -1068,9 +1068,6 @@ config FW_ARC config ARCH_MAY_HAVE_PC_FDC bool @@ -19,7 +19,7 @@ Acked-by: Rob Landley config CEVT_BCM1480 bool -@@ -2967,6 +2964,18 @@ choice +@@ -2968,6 +2965,18 @@ choice bool "Extend builtin kernel arguments with bootloader arguments" endchoice diff --git a/target/linux/generic/pending-4.14/304-mips_disable_fpu.patch b/target/linux/generic/pending-4.14/304-mips_disable_fpu.patch index 22e2e8620..0b5852dff 100644 --- a/target/linux/generic/pending-4.14/304-mips_disable_fpu.patch +++ b/target/linux/generic/pending-4.14/304-mips_disable_fpu.patch @@ -24,7 +24,7 @@ v2: incorporated changes suggested by Jonas Gorski --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -2891,6 +2891,20 @@ config MIPS_O32_FP64_SUPPORT +@@ -2892,6 +2892,20 @@ config MIPS_O32_FP64_SUPPORT If unsure, say N. diff --git a/target/linux/generic/pending-4.14/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch b/target/linux/generic/pending-4.14/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch index de2dd65b1..6f5f11350 100644 --- a/target/linux/generic/pending-4.14/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch +++ b/target/linux/generic/pending-4.14/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch @@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau select HAVE_PCSPKR_PLATFORM select IRQ_MIPS_CPU select I8253 -@@ -1128,6 +1130,9 @@ config DMA_NONCOHERENT +@@ -1129,6 +1131,9 @@ config DMA_NONCOHERENT bool select NEED_DMA_MAP_STATE @@ -40,7 +40,7 @@ Signed-off-by: Felix Fietkau config NEED_DMA_MAP_STATE bool -@@ -1652,6 +1657,7 @@ config CPU_R10000 +@@ -1653,6 +1658,7 @@ config CPU_R10000 select CPU_SUPPORTS_64BIT_KERNEL select CPU_SUPPORTS_HIGHMEM select CPU_SUPPORTS_HUGEPAGES @@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau help MIPS Technologies R10000-series processors. -@@ -1900,9 +1906,11 @@ config SYS_HAS_CPU_MIPS32_R3_5 +@@ -1901,9 +1907,11 @@ config SYS_HAS_CPU_MIPS32_R3_5 bool config SYS_HAS_CPU_MIPS32_R5 @@ -60,7 +60,7 @@ Signed-off-by: Felix Fietkau bool config SYS_HAS_CPU_MIPS64_R1 -@@ -1912,6 +1920,7 @@ config SYS_HAS_CPU_MIPS64_R2 +@@ -1913,6 +1921,7 @@ config SYS_HAS_CPU_MIPS64_R2 bool config SYS_HAS_CPU_MIPS64_R6 diff --git a/target/linux/generic/pending-4.14/643-net-bridge-support-hardware-flow-table-offload.patch b/target/linux/generic/pending-4.14/643-net-bridge-support-hardware-flow-table-offload.patch index a070fe163..b54d3cb48 100644 --- a/target/linux/generic/pending-4.14/643-net-bridge-support-hardware-flow-table-offload.patch +++ b/target/linux/generic/pending-4.14/643-net-bridge-support-hardware-flow-table-offload.patch @@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau #include #include "br_private.h" -@@ -340,6 +344,28 @@ static const struct ethtool_ops br_ethto +@@ -346,6 +350,28 @@ static const struct ethtool_ops br_ethto .get_link = ethtool_op_get_link, }; @@ -49,7 +49,7 @@ Signed-off-by: Felix Fietkau static const struct net_device_ops br_netdev_ops = { .ndo_open = br_dev_open, .ndo_stop = br_dev_stop, -@@ -367,6 +393,9 @@ static const struct net_device_ops br_ne +@@ -373,6 +399,9 @@ static const struct net_device_ops br_ne .ndo_bridge_setlink = br_setlink, .ndo_bridge_dellink = br_dellink, .ndo_features_check = passthru_features_check, diff --git a/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index f76c39ac1..8919ea34e 100644 --- a/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h -@@ -1766,6 +1766,8 @@ struct net_device { +@@ -1771,6 +1771,8 @@ struct net_device { struct netdev_hw_addr_list mc; struct netdev_hw_addr_list dev_addrs; @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev, &changeupper_info.info); } -@@ -6969,6 +7016,7 @@ int dev_set_mac_address(struct net_devic +@@ -6970,6 +7017,7 @@ int dev_set_mac_address(struct net_devic if (err) return err; dev->addr_assign_type = NET_ADDR_SET; diff --git a/target/linux/generic/pending-4.19/300-mips_expose_boot_raw.patch b/target/linux/generic/pending-4.19/300-mips_expose_boot_raw.patch index 5d10cae86..e19cec140 100644 --- a/target/linux/generic/pending-4.19/300-mips_expose_boot_raw.patch +++ b/target/linux/generic/pending-4.19/300-mips_expose_boot_raw.patch @@ -9,7 +9,7 @@ Acked-by: Rob Landley --- --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -1062,9 +1062,6 @@ config FW_ARC +@@ -1063,9 +1063,6 @@ config FW_ARC config ARCH_MAY_HAVE_PC_FDC bool @@ -19,7 +19,7 @@ Acked-by: Rob Landley config CEVT_BCM1480 bool -@@ -2968,6 +2965,18 @@ choice +@@ -2969,6 +2966,18 @@ choice bool "Extend builtin kernel arguments with bootloader arguments" endchoice diff --git a/target/linux/generic/pending-4.19/304-mips_disable_fpu.patch b/target/linux/generic/pending-4.19/304-mips_disable_fpu.patch index 2278576d2..332bb71e2 100644 --- a/target/linux/generic/pending-4.19/304-mips_disable_fpu.patch +++ b/target/linux/generic/pending-4.19/304-mips_disable_fpu.patch @@ -24,7 +24,7 @@ v2: incorporated changes suggested by Jonas Gorski --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -2892,6 +2892,20 @@ config MIPS_O32_FP64_SUPPORT +@@ -2893,6 +2893,20 @@ config MIPS_O32_FP64_SUPPORT If unsure, say N. diff --git a/target/linux/generic/pending-4.19/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch b/target/linux/generic/pending-4.19/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch index d28bc7ba9..07a6da453 100644 --- a/target/linux/generic/pending-4.19/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch +++ b/target/linux/generic/pending-4.19/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch @@ -19,7 +19,7 @@ Signed-off-by: Hauke Mehrtens --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -1116,7 +1116,6 @@ config DMA_PERDEV_COHERENT +@@ -1117,7 +1117,6 @@ config DMA_PERDEV_COHERENT config DMA_NONCOHERENT bool select ARCH_HAS_SYNC_DMA_FOR_DEVICE @@ -27,7 +27,7 @@ Signed-off-by: Hauke Mehrtens select NEED_DMA_MAP_STATE select DMA_NONCOHERENT_MMAP select DMA_NONCOHERENT_CACHE_SYNC -@@ -1897,9 +1896,11 @@ config SYS_HAS_CPU_MIPS32_R3_5 +@@ -1898,9 +1897,11 @@ config SYS_HAS_CPU_MIPS32_R3_5 config SYS_HAS_CPU_MIPS32_R5 bool @@ -39,7 +39,7 @@ Signed-off-by: Hauke Mehrtens config SYS_HAS_CPU_MIPS64_R1 bool -@@ -1909,6 +1910,7 @@ config SYS_HAS_CPU_MIPS64_R2 +@@ -1910,6 +1911,7 @@ config SYS_HAS_CPU_MIPS64_R2 config SYS_HAS_CPU_MIPS64_R6 bool @@ -47,7 +47,7 @@ Signed-off-by: Hauke Mehrtens config SYS_HAS_CPU_R3000 bool -@@ -1945,6 +1947,7 @@ config SYS_HAS_CPU_R8000 +@@ -1946,6 +1948,7 @@ config SYS_HAS_CPU_R8000 config SYS_HAS_CPU_R10000 bool @@ -55,7 +55,7 @@ Signed-off-by: Hauke Mehrtens config SYS_HAS_CPU_RM7000 bool -@@ -1973,6 +1976,7 @@ config SYS_HAS_CPU_BMIPS4380 +@@ -1974,6 +1977,7 @@ config SYS_HAS_CPU_BMIPS4380 config SYS_HAS_CPU_BMIPS5000 bool select SYS_HAS_CPU_BMIPS diff --git a/target/linux/generic/pending-4.19/640-netfilter-nf_flow_table-add-hardware-offload-support.patch b/target/linux/generic/pending-4.19/640-netfilter-nf_flow_table-add-hardware-offload-support.patch index dcd9b187c..0a1e017f8 100644 --- a/target/linux/generic/pending-4.19/640-netfilter-nf_flow_table-add-hardware-offload-support.patch +++ b/target/linux/generic/pending-4.19/640-netfilter-nf_flow_table-add-hardware-offload-support.patch @@ -506,7 +506,7 @@ Signed-off-by: Pablo Neira Ayuso +MODULE_ALIAS("nf-flow-table-hw"); --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c -@@ -5473,6 +5473,13 @@ static int nf_tables_flowtable_parse_hoo +@@ -5470,6 +5470,13 @@ static int nf_tables_flowtable_parse_hoo if (err < 0) return err; @@ -520,7 +520,7 @@ Signed-off-by: Pablo Neira Ayuso ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL); if (!ops) return -ENOMEM; -@@ -5604,10 +5611,19 @@ static int nf_tables_newflowtable(struct +@@ -5601,10 +5608,19 @@ static int nf_tables_newflowtable(struct } flowtable->data.type = type; @@ -540,7 +540,7 @@ Signed-off-by: Pablo Neira Ayuso err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK], flowtable); if (err < 0) -@@ -5733,7 +5749,8 @@ static int nf_tables_fill_flowtable_info +@@ -5730,7 +5746,8 @@ static int nf_tables_fill_flowtable_info nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) || nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) || nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle), diff --git a/target/linux/generic/pending-4.19/643-net-bridge-support-hardware-flow-table-offload.patch b/target/linux/generic/pending-4.19/643-net-bridge-support-hardware-flow-table-offload.patch index 7d9c8abe9..8b09fabf1 100644 --- a/target/linux/generic/pending-4.19/643-net-bridge-support-hardware-flow-table-offload.patch +++ b/target/linux/generic/pending-4.19/643-net-bridge-support-hardware-flow-table-offload.patch @@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau #include #include "br_private.h" -@@ -370,6 +374,28 @@ static const struct ethtool_ops br_ethto +@@ -376,6 +380,28 @@ static const struct ethtool_ops br_ethto .get_link = ethtool_op_get_link, }; @@ -49,7 +49,7 @@ Signed-off-by: Felix Fietkau static const struct net_device_ops br_netdev_ops = { .ndo_open = br_dev_open, .ndo_stop = br_dev_stop, -@@ -397,6 +423,9 @@ static const struct net_device_ops br_ne +@@ -403,6 +429,9 @@ static const struct net_device_ops br_ne .ndo_bridge_setlink = br_setlink, .ndo_bridge_dellink = br_dellink, .ndo_features_check = passthru_features_check, diff --git a/target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index 5ce652ba5..1e52d2f2a 100644 --- a/target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h -@@ -1882,6 +1882,8 @@ struct net_device { +@@ -1887,6 +1887,8 @@ struct net_device { struct netdev_hw_addr_list mc; struct netdev_hw_addr_list dev_addrs; @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, &changeupper_info.info); } -@@ -7732,6 +7779,7 @@ int dev_set_mac_address(struct net_devic +@@ -7733,6 +7780,7 @@ int dev_set_mac_address(struct net_devic if (err) return err; dev->addr_assign_type = NET_ADDR_SET; diff --git a/target/linux/generic/pending-4.9/300-mips_expose_boot_raw.patch b/target/linux/generic/pending-4.9/300-mips_expose_boot_raw.patch index f826bf557..b52b4cd66 100644 --- a/target/linux/generic/pending-4.9/300-mips_expose_boot_raw.patch +++ b/target/linux/generic/pending-4.9/300-mips_expose_boot_raw.patch @@ -9,7 +9,7 @@ Acked-by: Rob Landley --- --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -1066,9 +1066,6 @@ config FW_ARC +@@ -1067,9 +1067,6 @@ config FW_ARC config ARCH_MAY_HAVE_PC_FDC bool @@ -19,7 +19,7 @@ Acked-by: Rob Landley config CEVT_BCM1480 bool -@@ -2965,6 +2962,18 @@ choice +@@ -2966,6 +2963,18 @@ choice bool "Extend builtin kernel arguments with bootloader arguments" endchoice diff --git a/target/linux/generic/pending-4.9/304-mips_disable_fpu.patch b/target/linux/generic/pending-4.9/304-mips_disable_fpu.patch index 4765da72d..b59b9feee 100644 --- a/target/linux/generic/pending-4.9/304-mips_disable_fpu.patch +++ b/target/linux/generic/pending-4.9/304-mips_disable_fpu.patch @@ -24,7 +24,7 @@ v2: incorporated changes suggested by Jonas Gorski --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -2889,6 +2889,20 @@ config MIPS_O32_FP64_SUPPORT +@@ -2890,6 +2890,20 @@ config MIPS_O32_FP64_SUPPORT If unsure, say N. diff --git a/target/linux/generic/pending-4.9/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch b/target/linux/generic/pending-4.9/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch index 19f5d294c..0f47f79c6 100644 --- a/target/linux/generic/pending-4.9/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch +++ b/target/linux/generic/pending-4.9/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch @@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau select HAVE_PCSPKR_PLATFORM select IRQ_MIPS_CPU select I8253 -@@ -1127,6 +1129,9 @@ config DMA_NONCOHERENT +@@ -1128,6 +1130,9 @@ config DMA_NONCOHERENT bool select NEED_DMA_MAP_STATE @@ -40,7 +40,7 @@ Signed-off-by: Felix Fietkau config NEED_DMA_MAP_STATE bool -@@ -1651,6 +1656,7 @@ config CPU_R10000 +@@ -1652,6 +1657,7 @@ config CPU_R10000 select CPU_SUPPORTS_64BIT_KERNEL select CPU_SUPPORTS_HIGHMEM select CPU_SUPPORTS_HUGEPAGES @@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau help MIPS Technologies R10000-series processors. -@@ -1896,9 +1902,11 @@ config SYS_HAS_CPU_MIPS32_R3_5 +@@ -1897,9 +1903,11 @@ config SYS_HAS_CPU_MIPS32_R3_5 bool config SYS_HAS_CPU_MIPS32_R5 @@ -60,7 +60,7 @@ Signed-off-by: Felix Fietkau bool config SYS_HAS_CPU_MIPS64_R1 -@@ -1908,6 +1916,7 @@ config SYS_HAS_CPU_MIPS64_R2 +@@ -1909,6 +1917,7 @@ config SYS_HAS_CPU_MIPS64_R2 bool config SYS_HAS_CPU_MIPS64_R6 diff --git a/target/linux/generic/pending-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index cccd364f6..e7e1a3a3b 100644 --- a/target/linux/generic/pending-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/pending-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h -@@ -1752,6 +1752,8 @@ struct net_device { +@@ -1757,6 +1757,8 @@ struct net_device { struct netdev_hw_addr_list mc; struct netdev_hw_addr_list dev_addrs; @@ -109,7 +109,7 @@ Signed-off-by: Felix Fietkau call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev, &changeupper_info.info); } -@@ -6667,6 +6714,7 @@ int dev_set_mac_address(struct net_devic +@@ -6668,6 +6715,7 @@ int dev_set_mac_address(struct net_devic if (err) return err; dev->addr_assign_type = NET_ADDR_SET; diff --git a/target/linux/generic/pending-4.9/821-usb-Remove-annoying-warning-about-bogus-URB.patch b/target/linux/generic/pending-4.9/821-usb-Remove-annoying-warning-about-bogus-URB.patch index dc60557f4..5fac5e0e4 100644 --- a/target/linux/generic/pending-4.9/821-usb-Remove-annoying-warning-about-bogus-URB.patch +++ b/target/linux/generic/pending-4.9/821-usb-Remove-annoying-warning-about-bogus-URB.patch @@ -52,7 +52,7 @@ Signed-off-by: Alexey Brodkin --- a/drivers/usb/core/urb.c +++ b/drivers/usb/core/urb.c -@@ -321,9 +321,6 @@ EXPORT_SYMBOL_GPL(usb_unanchor_urb); +@@ -322,9 +322,6 @@ EXPORT_SYMBOL_GPL(usb_unanchor_urb); */ int usb_submit_urb(struct urb *urb, gfp_t mem_flags) { @@ -62,7 +62,7 @@ Signed-off-by: Alexey Brodkin int xfertype, max; struct usb_device *dev; struct usb_host_endpoint *ep; -@@ -441,11 +438,6 @@ int usb_submit_urb(struct urb *urb, gfp_ +@@ -442,11 +439,6 @@ int usb_submit_urb(struct urb *urb, gfp_ * cause problems in HCDs if they get it wrong. */ diff --git a/target/linux/generic/pending-4.9/890-uart_optional_sysrq.patch b/target/linux/generic/pending-4.9/890-uart_optional_sysrq.patch index d80246db9..894157132 100644 --- a/target/linux/generic/pending-4.9/890-uart_optional_sysrq.patch +++ b/target/linux/generic/pending-4.9/890-uart_optional_sysrq.patch @@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h -@@ -456,7 +456,7 @@ extern void uart_handle_cts_change(struc +@@ -457,7 +457,7 @@ extern void uart_handle_cts_change(struc extern void uart_insert_char(struct uart_port *port, unsigned int status, unsigned int overrun, unsigned int ch, unsigned int flag); diff --git a/target/linux/ipq806x/Makefile b/target/linux/ipq806x/Makefile index cd44f76e2..24409d671 100644 --- a/target/linux/ipq806x/Makefile +++ b/target/linux/ipq806x/Makefile @@ -9,22 +9,19 @@ FEATURES:=squashfs nand fpu ramdisk CPU_TYPE:=cortex-a15 CPU_SUBTYPE:=neon-vfpv4 MAINTAINER:=John Crispin +SUBTARGETS:=generic -KERNEL_PATCHVER:=4.14 +KERNEL_PATCHVER:=4.19 KERNELNAME:=zImage Image dtbs include $(INCLUDE_DIR)/target.mk - -# TODO: 4.19 drops kmod-usb-dwc3-of-simple which is replaced by_kmod-usb-dwc3-qcom -# 4.19 also integrates kmod-usb-phy-qcom-dwc3 DEFAULT_PACKAGES += \ kmod-leds-gpio kmod-gpio-button-hotplug swconfig \ kmod-ata-core kmod-ata-ahci kmod-ata-ahci-platform \ - kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport \ - kmod-usb3 kmod-usb-dwc3-of-simple kmod-usb-phy-qcom-dwc3 \ - kmod-ath10k wpad \ - uboot-envtools \ - automount autosamba luci-app-ipsec-vpnd luci-app-xlnetacc v2ray shadowsocks-libev-ss-redir shadowsocksr-libev-server + kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport \ + kmod-usb-phy-qcom-dwc3 kmod-usb3 kmod-usb-dwc3-qcom \ + kmod-ath10k-ct wpad-basic \ + uboot-envtools $(eval $(call BuildTarget)) diff --git a/target/linux/ipq806x/base-files/etc/board.d/01_leds b/target/linux/ipq806x/base-files/etc/board.d/01_leds index 509d334c4..f8b6c3235 100755 --- a/target/linux/ipq806x/base-files/etc/board.d/01_leds +++ b/target/linux/ipq806x/base-files/etc/board.d/01_leds @@ -22,7 +22,7 @@ compex,wpq864) nec,wg2600hp) ucidef_set_led_wlan "wlan2g" "WLAN2G" "${boardname}:green:wlan2g" "phy1tpt" ucidef_set_led_wlan "wlan5g" "WLAN5G" "${boardname}:green:wlan5g" "phy0tpt" - ucidef_set_led_switch "wan" "WAN" "${boardname}:green:active" "switch0" "0x1e" + ucidef_set_led_switch "wan" "WAN" "${boardname}:green:active" "switch0" "0x2" ;; netgear,d7800 |\ netgear,r7500 |\ @@ -30,7 +30,7 @@ netgear,r7500v2 |\ netgear,r7800) ucidef_set_led_usbport "usb1" "USB 1" "${boardname}:white:usb1" "usb1-port1" "usb2-port1" ucidef_set_led_usbport "usb2" "USB 2" "${boardname}:white:usb2" "usb3-port1" "usb4-port1" - ucidef_set_led_netdev "wan" "WAN" "${boardname}:white:wan" "eth0" + ucidef_set_led_switch "wan" "WAN" "${boardname}:white:wan" "switch0" "0x20" ucidef_set_led_ide "esata" "eSATA" "${boardname}:white:esata" ;; tplink,c2600) diff --git a/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index e05f2b2c7..6013bb100 100644 --- a/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -1,78 +1,8 @@ #!/bin/sh -# xor multiple hex values of the same length -xor() { - local val - local ret="0x$1" - local retlen=${#1} - - shift - while [ -n "$1" ]; do - val="0x$1" - ret=$((ret ^ val)) - shift - done - - printf "%0${retlen}x" "$ret" -} - -ath10kcal_die() { - echo "ath10cal: " "$*" - exit 1 -} - -ath10kcal_from_file() { - local source=$1 - local offset=$2 - local count=$3 - - dd if=$source of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \ - ath10kcal_die "failed to extract calibration data from $source" -} - -ath10kcal_extract() { - local part=$1 - local offset=$2 - local count=$3 - local mtd - - mtd=$(find_mtd_chardev $part) - [ -n "$mtd" ] || \ - ath10kcal_die "no mtd device found for partition $part" - - dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \ - ath10kcal_die "failed to extract calibration data from $mtd" -} - -ath10kcal_patch_mac_crc() { - local mac=$1 - local mac_offset=6 - local chksum_offset=2 - local xor_mac - local xor_fw_mac - local xor_fw_chksum - - [ -z "$mac" ] && return - - xor_fw_mac=$(hexdump -v -n 6 -s $mac_offset -e '/1 "%02x"' /lib/firmware/$FIRMWARE) - xor_fw_mac="${xor_fw_mac:0:4} ${xor_fw_mac:4:4} ${xor_fw_mac:8:4}" - - macaddr_2bin $mac | dd of=/lib/firmware/$FIRMWARE conv=notrunc bs=1 seek=6 count=6 - - xor_mac=${mac//:/} - xor_mac="${xor_mac:0:4} ${xor_mac:4:4} ${xor_mac:8:4}" - - xor_fw_chksum=$(hexdump -v -n 2 -s $chksum_offset -e '/1 "%02x"' /lib/firmware/$FIRMWARE) - xor_fw_chksum=$(xor $xor_fw_chksum $xor_fw_mac $xor_mac) - - printf "%b" "\x${xor_fw_chksum:0:2}\x${xor_fw_chksum:2:2}" | \ - dd of=/lib/firmware/$FIRMWARE conv=notrunc bs=1 seek=$chksum_offset count=2 -} - [ -e /lib/firmware/$FIRMWARE ] && exit 0 -. /lib/functions.sh -. /lib/functions/system.sh +. /lib/functions/caldata.sh board=$(board_name) @@ -80,68 +10,68 @@ case "$FIRMWARE" in "ath10k/pre-cal-pci-0000:01:00.0.bin") case $board in buffalo,wxr-2533dhp) - ath10kcal_extract "ART" 4096 12064 - ath10kcal_patch_mac_crc $(mtd_get_mac_binary ART 30) + caldata_extract "ART" 0x1000 0x2f20 + ath10k_patch_mac $(mtd_get_mac_binary ART 0x1e) ;; linksys,ea8500) - ath10kcal_extract "art" 4096 12064 - ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_ascii devinfo hw_mac_addr) +1) + caldata_extract "art" 0x1000 0x2f20 + ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii devinfo hw_mac_addr) +1) ;; nec,wg2600hp) - ath10kcal_extract "ART" 4096 12064 - ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary PRODUCTDATA 12) +1) + caldata_extract "ART" 0x1000 0x2f20 + ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary PRODUCTDATA 0xc) +1) ;; netgear,d7800 |\ netgear,r7500v2 |\ netgear,r7800) - ath10kcal_extract "art" 4096 12064 - ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary art 6) +1) + caldata_extract "art" 0x1000 0x2f20 + ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary art 0x6) +1) ;; tplink,c2600) - ath10kcal_extract "radio" 4096 12064 - ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary default-mac 8) -1) + caldata_extract "radio" 0x1000 0x2f20 + ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary default-mac 0x8) -1) ;; tplink,vr2600v) - ath10kcal_extract "ART" 4096 12064 - ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary default-mac 0) -1) + caldata_extract "ART" 0x1000 0x2f20 + ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary default-mac 0x0) -1) ;; zyxel,nbg6817) - ath10kcal_extract "0:ART" 4096 12064 - ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_ascii 0:APPSBLENV ethaddr) +1) + caldata_extract "0:ART" 0x1000 0x2f20 + ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii 0:APPSBLENV ethaddr) +1) ;; esac ;; "ath10k/pre-cal-pci-0001:01:00.0.bin") case $board in buffalo,wxr-2533dhp) - ath10kcal_extract "ART" 20480 12064 - ath10kcal_patch_mac_crc $(mtd_get_mac_binary ART 24) + caldata_extract "ART" 0x5000 0x2f20 + ath10k_patch_mac $(mtd_get_mac_binary ART 0x18) ;; linksys,ea8500) - ath10kcal_extract "art" 20480 12064 - ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_ascii devinfo hw_mac_addr) +2) + caldata_extract "art" 0x5000 0x2f20 + ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii devinfo hw_mac_addr) +2) ;; nec,wg2600hp) - ath10kcal_extract "ART" 20480 12064 - ath10kcal_patch_mac_crc $(mtd_get_mac_binary PRODUCTDATA 12) + caldata_extract "ART" 0x5000 0x2f20 + ath10k_patch_mac $(mtd_get_mac_binary PRODUCTDATA 0xc) ;; netgear,d7800 |\ netgear,r7500v2 |\ netgear,r7800) - ath10kcal_extract "art" 20480 12064 - ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary art 6) +2) + caldata_extract "art" 0x5000 0x2f20 + ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary art 0x6) +2) ;; tplink,c2600) - ath10kcal_extract "radio" 20480 12064 - ath10kcal_patch_mac_crc $(mtd_get_mac_binary default-mac 8) + caldata_extract "radio" 0x5000 0x2f20 + ath10k_patch_mac $(mtd_get_mac_binary default-mac 0x8) ;; tplink,vr2600v) - ath10kcal_extract "ART" 20480 12064 - ath10kcal_patch_mac_crc $(mtd_get_mac_binary default-mac 0) + caldata_extract "ART" 0x5000 0x2f20 + ath10k_patch_mac $(mtd_get_mac_binary default-mac 0x0) ;; zyxel,nbg6817) - ath10kcal_extract "0:ART" 20480 12064 - ath10kcal_patch_mac_crc $(mtd_get_mac_ascii 0:APPSBLENV ethaddr) + caldata_extract "0:ART" 0x5000 0x2f20 + ath10k_patch_mac $(mtd_get_mac_ascii 0:APPSBLENV ethaddr) ;; esac ;; diff --git a/target/linux/ipq806x/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac b/target/linux/ipq806x/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac index 4b476e56a..f0256fd25 100644 --- a/target/linux/ipq806x/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac +++ b/target/linux/ipq806x/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac @@ -13,13 +13,13 @@ OPATH=${DEVPATH##/devices/platform/} OPATH=${OPATH%%/ieee*} # 10 radios is enough for anyone! -for i in `seq 0 9`; +for i in $(seq 0 9); do - BUS=`uci get wireless.@wifi-device[$i].path` + BUS=$(uci get wireless.@wifi-device[$i].path) if [ "$BUS " == "$OPATH " ] then PHYNAME=${DEVPATH##*ieee80211/} - NPHYNAME=`uci get wireless.@wifi-device[$i].phyname` + NPHYNAME=$(uci get wireless.@wifi-device[$i].phyname) if [ "$NPHYNAME " != " " ] then if [ "$PHYNAME " != "$NPHYNAME " ] diff --git a/target/linux/ipq806x/base-files/etc/init.d/bootcount b/target/linux/ipq806x/base-files/etc/init.d/bootcount new file mode 100755 index 000000000..d0bf708e6 --- /dev/null +++ b/target/linux/ipq806x/base-files/etc/init.d/bootcount @@ -0,0 +1,11 @@ +#!/bin/sh /etc/rc.common + +START=99 + +boot() { + case $(board_name) in + linksys,ea8500) + mtd resetbc s_env || true + ;; + esac +} diff --git a/target/linux/ipq806x/base-files/etc/init.d/linksys_recovery b/target/linux/ipq806x/base-files/etc/init.d/linksys_recovery deleted file mode 100755 index 45e73a75d..000000000 --- a/target/linux/ipq806x/base-files/etc/init.d/linksys_recovery +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh /etc/rc.common -# Copyright (C) 2015 OpenWrt.org - -START=97 -boot() { -. /lib/functions.sh - -case $(board_name) in - linksys,ea8500) - # make sure auto_recovery in uboot is always on - AUTO_RECOVERY_ENA="`fw_printenv -n auto_recovery`" - if [ "$AUTO_RECOVERY_ENA" != "yes" ] ; then - fw_setenv auto_recovery yes - fi - # reset the boot counter - mtd resetbc s_env - ;; -esac - -echo 35 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold -echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor -} - diff --git a/target/linux/ipq806x/base-files/lib/upgrade/linksys.sh b/target/linux/ipq806x/base-files/lib/upgrade/linksys.sh index 0234ce0a5..a957bf114 100644 --- a/target/linux/ipq806x/base-files/lib/upgrade/linksys.sh +++ b/target/linux/ipq806x/base-files/lib/upgrade/linksys.sh @@ -3,28 +3,47 @@ # linksys_get_target_firmware() { - cur_boot_part=`/usr/sbin/fw_printenv -n boot_part` - target_firmware="" - if [ "$cur_boot_part" = "1" ] - then - # current primary boot - update alt boot - target_firmware="kernel2" - fw_setenv boot_part 2 - #In EA8500 bootcmd is always "bootipq", so don't change - #fw_setenv bootcmd "run altnandboot" - elif [ "$cur_boot_part" = "2" ] - then - # current alt boot - update primary boot - target_firmware="kernel1" - fw_setenv boot_part 1 - #In EA8500 bootcmd is always "bootipq", so don't change - #fw_setenv bootcmd "run nandboot" + + local cur_boot_part mtd_ubi0 + + cur_boot_part=$(/usr/sbin/fw_printenv -n boot_part) + if [ -z "${cur_boot_part}" ] ; then + mtd_ubi0=$(cat /sys/devices/virtual/ubi/ubi0/mtd_num) + case $(egrep ^mtd${mtd_ubi0}: /proc/mtd | cut -d '"' -f 2) in + kernel1|rootfs1) + cur_boot_part=1 + ;; + kernel2|rootfs2) + cur_boot_part=2 + ;; + esac + >&2 printf "Current boot_part='%s' selected from ubi0/mtd_num='%s'" \ + "${cur_boot_part}" "${mtd_ubi0}" fi - # re-enable recovery so we get back if the new firmware is broken - fw_setenv auto_recovery yes + cur_boot_part=$(/usr/sbin/fw_printenv -n boot_part) - echo "$target_firmware" + case $cur_boot_part in + 1) + fw_setenv -s - <<-EOF + boot_part 2 + auto_recovery yes + EOF + printf "kernel2" + return + ;; + 2) + fw_setenv -s - <<-EOF + boot_part 1 + auto_recovery yes + EOF + printf "kernel1" + return + ;; + *) + return + ;; + esac } linksys_get_root_magic() { diff --git a/target/linux/ipq806x/base-files/lib/upgrade/platform.sh b/target/linux/ipq806x/base-files/lib/upgrade/platform.sh index 2f0190629..b61047ff7 100644 --- a/target/linux/ipq806x/base-files/lib/upgrade/platform.sh +++ b/target/linux/ipq806x/base-files/lib/upgrade/platform.sh @@ -13,7 +13,7 @@ platform_do_upgrade() { buffalo,wxr-2533dhp) buffalo_upgrade_prepare_ubi CI_ROOTPART="ubi_rootfs" - nand_do_upgrade "$ARGV" + nand_do_upgrade "$1" ;; compex,wpq864|\ netgear,d7800 |\ @@ -21,34 +21,28 @@ platform_do_upgrade() { netgear,r7500v2 |\ netgear,r7800 |\ qcom,ipq8064-ap148 |\ - qcom,ipq8064-ap161 |\ + qcom,ipq8064-ap161) + nand_do_upgrade "$1" + ;; zyxel,nbg6817) - nand_do_upgrade "$ARGV" + zyxel_do_upgrade "$1" ;; linksys,ea8500) - platform_do_upgrade_linksys "$ARGV" + platform_do_upgrade_linksys "$1" ;; tplink,c2600) PART_NAME="os-image:rootfs" MTD_CONFIG_ARGS="-s 0x200000" - default_do_upgrade "$ARGV" + default_do_upgrade "$1" ;; tplink,vr2600v) PART_NAME="kernel:rootfs" MTD_CONFIG_ARGS="-s 0x200000" - default_do_upgrade "$ARGV" + default_do_upgrade "$1" ;; nec,wg2600hp |\ *) - default_do_upgrade "$ARGV" - ;; - esac -} - -platform_nand_pre_upgrade() { - case "$(board_name)" in - zyxel,nbg6817) - zyxel_do_upgrade "$1" + default_do_upgrade "$1" ;; esac } diff --git a/target/linux/ipq806x/base-files/lib/upgrade/zyxel.sh b/target/linux/ipq806x/base-files/lib/upgrade/zyxel.sh index ba8e82595..cece018b3 100644 --- a/target/linux/ipq806x/base-files/lib/upgrade/zyxel.sh +++ b/target/linux/ipq806x/base-files/lib/upgrade/zyxel.sh @@ -60,7 +60,7 @@ zyxel_do_flash() { mkdir /tmp/new_root mount -t ext4 $loopdev /tmp/new_root && { echo "Saving config to rootfs_data at position ${offset}." - cp -v /tmp/sysupgrade.tgz /tmp/new_root/ + cp -v "$UPGRADE_BACKUP" "/tmp/new_root/$BACKUP_FILE" umount /tmp/new_root } @@ -118,5 +118,7 @@ zyxel_do_upgrade() { zyxel_do_flash $tar_file $kernel $rootfs $dualflagmtd + nand_do_upgrade "$1" + return 0 } diff --git a/target/linux/ipq806x/config-4.14 b/target/linux/ipq806x/config-4.14 index 30736ae14..38f5c9450 100644 --- a/target/linux/ipq806x/config-4.14 +++ b/target/linux/ipq806x/config-4.14 @@ -112,16 +112,10 @@ CONFIG_CRC16=y CONFIG_CRC32_SLICEBY8=y CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_CBC=y -CONFIG_CRYPTO_CTR=y CONFIG_CRYPTO_DEFLATE=y -CONFIG_CRYPTO_DES=y -CONFIG_CRYPTO_DEV_QCE=y CONFIG_CRYPTO_DRBG=y CONFIG_CRYPTO_DRBG_HMAC=y CONFIG_CRYPTO_DRBG_MENU=y -CONFIG_CRYPTO_ECB=y -CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_HMAC=y @@ -130,15 +124,12 @@ CONFIG_CRYPTO_JITTERENTROPY=y CONFIG_CRYPTO_LZO=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y -CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_RNG_DEFAULT=y -CONFIG_CRYPTO_SEQIV=y CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_WORKQUEUE=y -CONFIG_CRYPTO_XTS=y CONFIG_DCACHE_WORD_ACCESS=y CONFIG_DEBUG_GPIO=y # CONFIG_DEBUG_UART_8250 is not set diff --git a/target/linux/ipq806x/config-4.19 b/target/linux/ipq806x/config-4.19 index e85be2076..7a06ab908 100644 --- a/target/linux/ipq806x/config-4.19 +++ b/target/linux/ipq806x/config-4.19 @@ -64,6 +64,7 @@ CONFIG_ARM_THUMB=y # CONFIG_ARM_THUMBEE is not set CONFIG_ARM_UNWIND=y CONFIG_ARM_VIRT_EXT=y +CONFIG_ARM_MODULE_PLTS=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_MQ_PCI=y CONFIG_BOUNCE=y @@ -116,17 +117,11 @@ CONFIG_CRC32_SLICEBY8=y CONFIG_CRYPTO_ACOMP2=y CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_CBC=y -CONFIG_CRYPTO_CTR=y CONFIG_CRYPTO_DEFLATE=y -CONFIG_CRYPTO_DES=y -CONFIG_CRYPTO_DEV_QCE=y CONFIG_CRYPTO_DEV_QCOM_RNG=y CONFIG_CRYPTO_DRBG=y CONFIG_CRYPTO_DRBG_HMAC=y CONFIG_CRYPTO_DRBG_MENU=y -CONFIG_CRYPTO_ECB=y -CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_HMAC=y @@ -135,15 +130,12 @@ CONFIG_CRYPTO_JITTERENTROPY=y CONFIG_CRYPTO_LZO=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y -CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_RNG_DEFAULT=y -CONFIG_CRYPTO_SEQIV=y CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_WORKQUEUE=y -CONFIG_CRYPTO_XTS=y CONFIG_DCACHE_WORD_ACCESS=y CONFIG_DEBUG_GPIO=y CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" @@ -276,6 +268,7 @@ CONFIG_MDIO_BITBANG=y CONFIG_MDIO_BUS=y CONFIG_MDIO_DEVICE=y CONFIG_MDIO_GPIO=y +# CONFIG_MDIO_IPQ8064 is not set # CONFIG_MDM_GCC_9615 is not set # CONFIG_MDM_LCC_9615 is not set CONFIG_MEMFD_CREATE=y @@ -330,9 +323,8 @@ CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEON=y CONFIG_NET_DSA=y -# CONFIG_NET_DSA_LEGACY is not set +CONFIG_NET_DSA_HWMON=y CONFIG_NET_DSA_QCA8K=y -# CONFIG_NET_DSA_REALTEK_SMI is not set CONFIG_NET_DSA_TAG_QCA=y # CONFIG_NET_DSA_VITESSE_VSC73XX is not set CONFIG_NET_FLOW_LIMIT=y @@ -360,6 +352,7 @@ CONFIG_OLD_SIGSUSPEND3=y CONFIG_PADATA=y CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_PCI=y +# CONFIG_PCI_V3_SEMI is not set CONFIG_PCIEAER=y CONFIG_PCIEPORTBUS=y CONFIG_PCIE_DW=y @@ -376,7 +369,7 @@ CONFIG_PGTABLE_LEVELS=2 CONFIG_PHYLIB=y CONFIG_PHYLINK=y # CONFIG_PHY_QCOM_APQ8064_SATA is not set -CONFIG_PHY_QCOM_DWC3=y +# CONFIG_PHY_QCOM_DWC3 is not set CONFIG_PHY_QCOM_IPQ806X_SATA=y # CONFIG_PHY_QCOM_QMP is not set # CONFIG_PHY_QCOM_QUSB2 is not set @@ -461,7 +454,6 @@ CONFIG_SERIAL_8250_FSL=y # CONFIG_SERIAL_AMBA_PL011 is not set CONFIG_SERIAL_MSM=y CONFIG_SERIAL_MSM_CONSOLE=y -# CONFIG_SFP is not set CONFIG_SGL_ALLOC=y CONFIG_SMP=y CONFIG_SMP_ON_UP=y diff --git a/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-c2600.dts b/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-c2600.dts index 0db451958..c4fb2524c 100644 --- a/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-c2600.dts +++ b/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-c2600.dts @@ -29,6 +29,7 @@ led-failsafe = &general; led-running = &power; led-upgrade = &general; + label-mac-device = &gmac2; }; chosen { @@ -410,7 +411,7 @@ }; }; - gpio-keys { + keys { compatible = "gpio-keys"; pinctrl-0 = <&button_pins>; pinctrl-names = "default"; @@ -440,7 +441,7 @@ }; }; - gpio-leds { + leds { compatible = "gpio-leds"; pinctrl-0 = <&led_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-d7800.dts b/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-d7800.dts index 14ed6fb2f..1760b1968 100644 --- a/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-d7800.dts +++ b/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-d7800.dts @@ -326,7 +326,7 @@ }; }; - gpio-keys { + keys { compatible = "gpio-keys"; pinctrl-0 = <&button_pins>; pinctrl-names = "default"; @@ -350,7 +350,7 @@ }; }; - gpio-leds { + leds { compatible = "gpio-leds"; pinctrl-0 = <&led_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-ea8500.dts b/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-ea8500.dts index 900d602ed..ca8376afd 100644 --- a/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-ea8500.dts +++ b/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-ea8500.dts @@ -39,10 +39,6 @@ soc { pinmux@800000 { - - pinctrl-0 = <&switch_reset>; - pinctrl-names = "default"; - button_pins: button_pins { mux { pins = "gpio65", "gpio67", "gpio68"; @@ -70,16 +66,6 @@ }; }; - switch_reset: switch_reset_pins { - mux { - pins = "gpio63"; - function = "gpio"; - drive-strength = <2>; - bias-disable; - output-low; - }; - }; - mdio0_pins: mdio0_pins { mux { pins = "gpio0", "gpio1"; @@ -178,6 +164,10 @@ status = "ok"; }; + pcie2: pci@1b900000 { + status = "ok"; + }; + nand@1ac00000 { status = "ok"; @@ -361,7 +351,7 @@ }; }; - gpio-keys { + keys { compatible = "gpio-keys"; pinctrl-0 = <&button_pins>; pinctrl-names = "default"; @@ -385,7 +375,7 @@ }; }; - gpio-leds { + leds { compatible = "gpio-leds"; pinctrl-0 = <&led_pins>; pinctrl-names = "default"; @@ -408,5 +398,3 @@ }; }; -/delete-node/ &pcie2_pins; -/delete-node/ &pcie2; diff --git a/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-r7500.dts b/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-r7500.dts index 5a3056807..b6505dd54 100644 --- a/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-r7500.dts +++ b/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-r7500.dts @@ -295,7 +295,7 @@ }; }; - gpio-keys { + keys { compatible = "gpio-keys"; pinctrl-0 = <&button_pins>; pinctrl-names = "default"; @@ -319,7 +319,7 @@ }; }; - gpio-leds { + leds { compatible = "gpio-leds"; pinctrl-0 = <&led_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts b/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts index 1005ea137..faec8b35a 100644 --- a/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts +++ b/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts @@ -257,13 +257,7 @@ ubi@1880000 { label = "ubi"; - reg = <0x1880000 0x1C00000>; - }; - - netgear@3480000 { - label = "netgear"; - reg = <0x3480000 0x4480000>; - read-only; + reg = <0x1880000 0x6080000>; }; reserve@7900000 { @@ -331,7 +325,7 @@ }; }; - gpio-keys { + keys { compatible = "gpio-keys"; pinctrl-0 = <&button_pins>; pinctrl-names = "default"; @@ -355,7 +349,7 @@ }; }; - gpio-leds { + leds { compatible = "gpio-leds"; pinctrl-0 = <&led_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts b/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts index 56421b25e..2c224016b 100644 --- a/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts +++ b/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts @@ -323,7 +323,7 @@ }; }; - gpio-keys { + keys { compatible = "gpio-keys"; pinctrl-0 = <&button_pins>; pinctrl-names = "default"; @@ -359,7 +359,7 @@ }; }; - gpio-leds { + leds { compatible = "gpio-leds"; pinctrl-0 = <&led_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-wg2600hp.dts b/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-wg2600hp.dts index 881b54220..e2a481723 100644 --- a/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-wg2600hp.dts +++ b/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-wg2600hp.dts @@ -62,7 +62,7 @@ }; }; - gpio-keys { + keys { compatible = "gpio-keys"; pinctrl-0 = <&button_pins>; pinctrl-names = "default"; @@ -94,7 +94,7 @@ }; }; - gpio-leds { + leds { compatible = "gpio-leds"; pinctrl-0 = <&led_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-wpq864.dts b/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-wpq864.dts index 591f3539f..14258d594 100644 --- a/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-wpq864.dts +++ b/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064-wpq864.dts @@ -151,7 +151,7 @@ reg = <0x1340000 0x4000000>; }; - BOOTCONFIG@1340000 { + BOOTCONFIG@5340000 { label = "BOOTCONFIG"; reg = <0x5340000 0x0060000>; }; @@ -246,7 +246,7 @@ }; }; - gpio-leds { + leds { compatible = "gpio-leds"; pinctrl-0 = <&led_pins>; @@ -294,7 +294,7 @@ }; }; - gpio-keys { + keys { compatible = "gpio-keys"; pinctrl-0 = <&button_pins>; diff --git a/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064.dtsi b/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064.dtsi index df09b9970..8387460d2 100644 --- a/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064.dtsi +++ b/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8064.dtsi @@ -860,6 +860,8 @@ compatible = "qcom,ipq806x-ahci", "generic-ahci"; reg = <0x29000000 0x180>; + ports-implemented = <0x1>; + interrupts = <0 209 0x0>; clocks = <&gcc SFAB_SATA_S_H_CLK>, @@ -959,7 +961,7 @@ }; usb3_0: usb30@0 { - compatible = "qcom,dwc3-ipq8064", "qcom,dwc3"; + compatible = "qcom,dwc3"; #address-cells = <1>; #size-cells = <1>; clocks = <&gcc USB30_0_MASTER_CLK>; @@ -984,7 +986,7 @@ }; usb3_1: usb30@1 { - compatible = "qcom,dwc3-ipq8064", "qcom,dwc3"; + compatible = "qcom,dwc3"; #address-cells = <1>; #size-cells = <1>; clocks = <&gcc USB30_1_MASTER_CLK>; diff --git a/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts b/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts index dd06fccd1..7cd1c7b56 100644 --- a/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts +++ b/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts @@ -324,7 +324,7 @@ }; }; - gpio-keys { + keys { compatible = "gpio-keys"; pinctrl-0 = <&button_pins>; pinctrl-names = "default"; @@ -349,7 +349,7 @@ }; }; - gpio-leds { + leds { compatible = "gpio-leds"; pinctrl-0 = <&led_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8065-r7800.dts b/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8065-r7800.dts index c4c928794..447c0da69 100644 --- a/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8065-r7800.dts +++ b/target/linux/ipq806x/files-4.14/arch/arm/boot/dts/qcom-ipq8065-r7800.dts @@ -34,6 +34,7 @@ led-failsafe = &power_amber; led-running = &power_white; led-upgrade = &power_amber; + label-mac-device = &gmac2; }; chosen { @@ -424,7 +425,7 @@ }; }; - gpio-keys { + keys { compatible = "gpio-keys"; pinctrl-0 = <&button_pins>; pinctrl-names = "default"; @@ -454,7 +455,7 @@ }; }; - gpio-leds { + leds { compatible = "gpio-leds"; pinctrl-0 = <&led_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-ap148.dts b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-ap148.dts index c8f188473..8ef5b92b5 100644 --- a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-ap148.dts +++ b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-ap148.dts @@ -2,7 +2,7 @@ / { model = "Qualcomm Technologies, Inc. IPQ8064/AP-148"; - compatible = "qcom,ipq8064-ap148"; + compatible = "qcom,ipq8064-ap148", "qcom,ipq8064"; memory@0 { reg = <0x42000000 0x1e000000>; diff --git a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-ap161.dts b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-ap161.dts index f1f50f0e0..6a16167e1 100644 --- a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-ap161.dts +++ b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-ap161.dts @@ -2,7 +2,7 @@ / { model = "Qualcomm IPQ8064/AP161"; - compatible = "qcom,ipq8064-ap161"; + compatible = "qcom,ipq8064-ap161", "qcom,ipq8064"; memory@0 { reg = <0x42000000 0x1e000000>; @@ -140,11 +140,11 @@ status = "okay"; }; - usb30@0 { + usb3_0: usb3@110f8800 { status = "okay"; }; - usb30@1 { + usb3_1: usb3@100f8800 { status = "okay"; }; diff --git a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-c2600.dts b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-c2600.dts index 6e3b5f0cc..d90518bf2 100644 --- a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-c2600.dts +++ b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-c2600.dts @@ -4,7 +4,7 @@ / { model = "TP-Link Archer C2600"; - compatible = "tplink,c2600"; + compatible = "tplink,c2600", "qcom,ipq8064"; memory@0 { reg = <0x42000000 0x1e000000>; @@ -29,6 +29,7 @@ led-failsafe = &general; led-running = &power; led-upgrade = &general; + label-mac-device = &gmac2; }; chosen { @@ -314,14 +315,14 @@ }; }; - usb30@0 { + usb3_0: usb3@110f8800 { status = "okay"; pinctrl-0 = <&usb0_pwr_en_pin>; pinctrl-names = "default"; }; - usb30@1 { + usb3_1: usb3@100f8800 { status = "okay"; pinctrl-0 = <&usb1_pwr_en_pin>; @@ -341,7 +342,8 @@ compatible = "virtual,mdio-gpio"; #address-cells = <1>; #size-cells = <0>; - gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH &qcom_pinmux 0 GPIO_ACTIVE_HIGH>; + gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH>, + <&qcom_pinmux 0 GPIO_ACTIVE_HIGH>; pinctrl-0 = <&mdio0_pins>; pinctrl-names = "default"; @@ -475,4 +477,3 @@ &adm_dma { status = "okay"; }; - diff --git a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-d7800.dts b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-d7800.dts index e187c3e42..ac1a96589 100644 --- a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-d7800.dts +++ b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-d7800.dts @@ -4,7 +4,7 @@ / { model = "Netgear Nighthawk X4 D7800"; - compatible = "netgear,d7800"; + compatible = "netgear,d7800", "qcom,ipq8064"; memory@0 { reg = <0x42000000 0xe000000>; @@ -152,14 +152,14 @@ status = "okay"; }; - usb30@0 { + usb3_0: usb3@110f8800 { status = "okay"; pinctrl-0 = <&usb0_pwr_en_pins>; pinctrl-names = "default"; }; - usb30@1 { + usb3_1: usb3@100f8800 { status = "okay"; pinctrl-0 = <&usb1_pwr_en_pins>; @@ -190,7 +190,7 @@ #address-cells = <1>; #size-cells = <0>; - flash@0 { + cs0 { reg = <0>; compatible = "qcom,nandcs"; @@ -262,7 +262,8 @@ compatible = "virtual,mdio-gpio"; #address-cells = <1>; #size-cells = <0>; - gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH &qcom_pinmux 0 GPIO_ACTIVE_HIGH>; + gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH>, + <&qcom_pinmux 0 GPIO_ACTIVE_HIGH>; pinctrl-0 = <&mdio0_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-db149.dts b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-db149.dts index 491c37cf2..5da523a72 100644 --- a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-db149.dts +++ b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-db149.dts @@ -2,7 +2,7 @@ / { model = "Qualcomm IPQ8064/DB149"; - compatible = "qcom,ipq8064-db149"; + compatible = "qcom,ipq8064-db149", "qcom,ipq8064"; reserved-memory { #address-cells = <1>; @@ -123,11 +123,11 @@ status = "okay"; }; - usb30@0 { + usb3_0: usb3@110f8800 { status = "okay"; }; - usb30@1 { + usb3_1: usb3@100f8800 { status = "okay"; }; diff --git a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-ea8500.dts b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-ea8500.dts index e5f95ab85..6f54e19da 100644 --- a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-ea8500.dts +++ b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-ea8500.dts @@ -4,7 +4,7 @@ / { model = "Linksys EA8500 WiFi Router"; - compatible = "linksys,ea8500"; + compatible = "linksys,ea8500", "qcom,ipq8064"; memory@0 { reg = <0x42000000 0x1e000000>; @@ -39,10 +39,6 @@ soc { pinmux@800000 { - - pinctrl-0 = <&switch_reset>; - pinctrl-names = "default"; - button_pins: button_pins { mux { pins = "gpio65", "gpio67", "gpio68"; @@ -70,16 +66,6 @@ }; }; - switch_reset: switch_reset_pins { - mux { - pins = "gpio63"; - function = "gpio"; - drive-strength = <2>; - bias-disable; - output-low; - }; - }; - mdio0_pins: mdio0_pins { mux { pins = "gpio0", "gpio1"; @@ -145,11 +131,11 @@ status = "okay"; }; - usb30@0 { + usb3_0: usb3@110f8800 { status = "okay"; }; - usb30@1 { + usb3_1: usb3@100f8800 { status = "okay"; }; @@ -162,6 +148,10 @@ status = "okay"; }; + pcie2: pci@1b900000 { + status = "okay"; + }; + nand@1ac00000 { status = "okay"; @@ -288,7 +278,8 @@ compatible = "virtual,mdio-gpio"; #address-cells = <1>; #size-cells = <0>; - gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH &qcom_pinmux 0 GPIO_ACTIVE_HIGH>; + gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH>, + <&qcom_pinmux 0 GPIO_ACTIVE_HIGH>; pinctrl-0 = <&mdio0_pins>; pinctrl-names = "default"; @@ -392,5 +383,3 @@ }; }; -/delete-node/ &pcie2_pins; -/delete-node/ &pcie2; diff --git a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-r7500.dts b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-r7500.dts index c21abb90c..8130b583d 100644 --- a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-r7500.dts +++ b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-r7500.dts @@ -5,7 +5,7 @@ / { model = "Netgear Nighthawk X4 R7500"; - compatible = "netgear,r7500"; + compatible = "netgear,r7500", "qcom,ipq8064"; memory@0 { reg = <0x42000000 0xe000000>; @@ -132,12 +132,12 @@ status = "okay"; }; - usb30@0 { + usb3_0: usb3@110f8800 { clocks = <&gcc USB30_1_MASTER_CLK>; status = "okay"; }; - usb30@1 { + usb3_1: usb3@100f8800 { clocks = <&gcc USB30_0_MASTER_CLK>; status = "okay"; }; @@ -223,7 +223,8 @@ compatible = "virtual,mdio-gpio"; #address-cells = <1>; #size-cells = <0>; - gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH &qcom_pinmux 0 GPIO_ACTIVE_HIGH>; + gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH>, + <&qcom_pinmux 0 GPIO_ACTIVE_HIGH>; pinctrl-0 = <&mdio0_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts index b02f86404..21287ef9d 100644 --- a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts +++ b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts @@ -4,7 +4,7 @@ / { model = "Netgear Nighthawk X4 R7500v2"; - compatible = "netgear,r7500v2"; + compatible = "netgear,r7500v2", "qcom,ipq8064"; memory@0 { reg = <0x42000000 0x1e000000>; @@ -156,14 +156,14 @@ status = "okay"; }; - usb30@0 { + usb3_0: usb3@110f8800 { status = "okay"; pinctrl-0 = <&usb0_pwr_en_pins>; pinctrl-names = "default"; }; - usb30@1 { + usb3_1: usb3@100f8800 { status = "okay"; pinctrl-0 = <&usb1_pwr_en_pins>; @@ -241,13 +241,7 @@ ubi@1880000 { label = "ubi"; - reg = <0x1880000 0x1C00000>; - }; - - netgear@3480000 { - label = "netgear"; - reg = <0x3480000 0x4480000>; - read-only; + reg = <0x1880000 0x6080000>; }; reserve@7900000 { @@ -263,7 +257,8 @@ compatible = "virtual,mdio-gpio"; #address-cells = <1>; #size-cells = <0>; - gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH &qcom_pinmux 0 GPIO_ACTIVE_HIGH>; + gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH>, + <&qcom_pinmux 0 GPIO_ACTIVE_HIGH>; pinctrl-0 = <&mdio0_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts index 989d0c3c0..bdcd30280 100644 --- a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts +++ b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts @@ -4,7 +4,7 @@ / { model = "TP-Link Archer VR2600v"; - compatible = "tplink,vr2600v"; + compatible = "tplink,vr2600v", "qcom,ipq8064"; memory@0 { reg = <0x42000000 0x1e000000>; @@ -233,11 +233,11 @@ }; }; - usb30@0 { + usb3_0: usb3@110f8800 { status = "okay"; }; - usb30@1 { + usb3_1: usb3@100f8800 { status = "okay"; }; @@ -254,7 +254,8 @@ compatible = "virtual,mdio-gpio"; #address-cells = <1>; #size-cells = <0>; - gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH &qcom_pinmux 0 GPIO_ACTIVE_HIGH>; + gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH>, + <&qcom_pinmux 0 GPIO_ACTIVE_HIGH>; pinctrl-0 = <&mdio0_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-wg2600hp.dts b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-wg2600hp.dts index c7bbea2d2..6667b1f47 100644 --- a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-wg2600hp.dts +++ b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-wg2600hp.dts @@ -4,7 +4,7 @@ / { model = "NEC Aterm WG2600HP"; - compatible = "nec,wg2600hp"; + compatible = "nec,wg2600hp", "qcom,ipq8064"; memory@0 { reg = <0x42000000 0x1e000000>; @@ -40,7 +40,8 @@ compatible = "virtual,mdio-gpio"; #address-cells = <1>; #size-cells = <0>; - gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH &qcom_pinmux 0 GPIO_ACTIVE_HIGH>; + gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH>, + <&qcom_pinmux 0 GPIO_ACTIVE_HIGH>; pinctrl-0 = <&mdio0_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-wpq864.dts b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-wpq864.dts index 95f51939d..280dc8856 100644 --- a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-wpq864.dts +++ b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-wpq864.dts @@ -1,4 +1,3 @@ -// SPDX-License-Identifier: BSD-3-Clause /* * BSD LICENSE * @@ -38,7 +37,7 @@ #include / { - compatible = "compex,wpq864"; + compatible = "compex,wpq864", "qcom,ipq8064"; model = "Compex WPQ864"; aliases { @@ -62,6 +61,160 @@ pinctrl-0 = <&rpm_pins>; pinctrl-names = "default"; }; + + nand@1ac00000 { + status = "okay"; + + pinctrl-0 = <&nand_pins>; + pinctrl-names = "default"; + + mt29f2g08abbeah4@0 { + compatible = "qcom,nandcs"; + + reg = <0>; + + nand-ecc-strength = <4>; + nand-bus-width = <8>; + nand-ecc-step-size = <512>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + SBL1@0 { + label = "SBL1"; + reg = <0x0000000 0x0040000>; + read-only; + }; + + MIBIB@40000 { + label = "MIBIB"; + reg = <0x0040000 0x0140000>; + read-only; + }; + + SBL2@180000 { + label = "SBL2"; + reg = <0x0180000 0x0140000>; + read-only; + }; + + SBL3@2c0000 { + label = "SBL3"; + reg = <0x02c0000 0x0280000>; + read-only; + }; + + DDRCONFIG@540000 { + label = "DDRCONFIG"; + reg = <0x0540000 0x0120000>; + read-only; + }; + + SSD@660000 { + label = "SSD"; + reg = <0x0660000 0x0120000>; + read-only; + }; + + TZ@780000 { + label = "TZ"; + reg = <0x0780000 0x0280000>; + read-only; + }; + + RPM@a00000 { + label = "RPM"; + reg = <0x0a00000 0x0280000>; + read-only; + }; + + APPSBL@c80000 { + label = "APPSBL"; + reg = <0x0c80000 0x0500000>; + read-only; + }; + + APPSBLENV@1180000 { + label = "APPSBLENV"; + reg = <0x1180000 0x0080000>; + }; + + ART@1200000 { + label = "ART"; + reg = <0x1200000 0x0140000>; + }; + + ubi@1340000 { + label = "ubi"; + reg = <0x1340000 0x4000000>; + }; + + BOOTCONFIG@5340000 { + label = "BOOTCONFIG"; + reg = <0x5340000 0x0060000>; + }; + + SBL2-1@53a0000- { + label = "SBL2_1"; + reg = <0x53a0000 0x0140000>; + read-only; + }; + + SBL3-1@54e0000 { + label = "SBL3_1"; + reg = <0x54e0000 0x0280000>; + read-only; + }; + + DDRCONFIG-1@5760000 { + label = "DDRCONFIG_1"; + reg = <0x5760000 0x0120000>; + read-only; + }; + + SSD-1@5880000 { + label = "SSD_1"; + reg = <0x5880000 0x0120000>; + read-only; + }; + + TZ-1@59a0000 { + label = "TZ_1"; + reg = <0x59a0000 0x0280000>; + read-only; + }; + + RPM-1@5c20000 { + label = "RPM_1"; + reg = <0x5c20000 0x0280000>; + read-only; + }; + + BOOTCONFIG1@5ea0000 { + label = "BOOTCONFIG1"; + reg = <0x5ea0000 0x0060000>; + }; + + APPSBL-1@5f00000 { + label = "APPSBL_1"; + reg = <0x5f00000 0x0500000>; + read-only; + }; + + ubi-1@6400000 { + label = "ubi_1"; + reg = <0x6400000 0x4000000>; + }; + + unused@a400000 { + label = "unused"; + reg = <0xa400000 0x5c00000>; + }; + }; + }; + }; }; mdio0: mdio { @@ -231,6 +384,22 @@ }; }; +&ss_phy_0 { /* USB3 port 0 SS phy */ + status = "okay"; + + rx_eq = <2>; + tx_deamp_3_5db = <32>; + mpll = <160>; +}; + +&ss_phy_1 { /* USB3 port 1 SS phy */ + status = "okay"; + + rx_eq = <2>; + tx_deamp_3_5db = <32>; + mpll = <160>; +}; + &pcie0 { status = "okay"; @@ -390,156 +559,3 @@ &tcsr { qcom,usb-ctrl-select = ; }; - -&nand { - status = "okay"; - - pinctrl-0 = <&nand_pins>; - pinctrl-names = "default"; - - flash@0 { - compatible = "qcom,nandcs"; - reg = <0>; - - nand-ecc-strength = <4>; - nand-bus-width = <8>; - nand-ecc-step-size = <512>; - - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - SBL1@0 { - label = "SBL1"; - reg = <0x0000000 0x0040000>; - read-only; - }; - - MIBIB@40000 { - label = "MIBIB"; - reg = <0x0040000 0x0140000>; - read-only; - }; - - SBL2@180000 { - label = "SBL2"; - reg = <0x0180000 0x0140000>; - read-only; - }; - - SBL3@2c0000 { - label = "SBL3"; - reg = <0x02c0000 0x0280000>; - read-only; - }; - - DDRCONFIG@540000 { - label = "DDRCONFIG"; - reg = <0x0540000 0x0120000>; - read-only; - }; - - SSD@660000 { - label = "SSD"; - reg = <0x0660000 0x0120000>; - read-only; - }; - - TZ@780000 { - label = "TZ"; - reg = <0x0780000 0x0280000>; - read-only; - }; - - RPM@a00000 { - label = "RPM"; - reg = <0x0a00000 0x0280000>; - read-only; - }; - - APPSBL@c80000 { - label = "APPSBL"; - reg = <0x0c80000 0x0500000>; - read-only; - }; - - APPSBLENV@1180000 { - label = "APPSBLENV"; - reg = <0x1180000 0x0080000>; - }; - - ART@1200000 { - label = "ART"; - reg = <0x1200000 0x0140000>; - }; - - ubi@1340000 { - label = "ubi"; - reg = <0x1340000 0x4000000>; - }; - - BOOTCONFIG@1340000 { - label = "BOOTCONFIG"; - reg = <0x5340000 0x0060000>; - }; - - SBL2-1@53a0000- { - label = "SBL2_1"; - reg = <0x53a0000 0x0140000>; - read-only; - }; - - SBL3-1@54e0000 { - label = "SBL3_1"; - reg = <0x54e0000 0x0280000>; - read-only; - }; - - DDRCONFIG-1@5760000 { - label = "DDRCONFIG_1"; - reg = <0x5760000 0x0120000>; - read-only; - }; - - SSD-1@5880000 { - label = "SSD_1"; - reg = <0x5880000 0x0120000>; - read-only; - }; - - TZ-1@59a0000 { - label = "TZ_1"; - reg = <0x59a0000 0x0280000>; - read-only; - }; - - RPM-1@5c20000 { - label = "RPM_1"; - reg = <0x5c20000 0x0280000>; - read-only; - }; - - BOOTCONFIG1@5ea0000 { - label = "BOOTCONFIG1"; - reg = <0x5ea0000 0x0060000>; - }; - - APPSBL-1@5f00000 { - label = "APPSBL_1"; - reg = <0x5f00000 0x0500000>; - read-only; - }; - - ubi-1@6400000 { - label = "ubi_1"; - reg = <0x6400000 0x4000000>; - }; - - unused@a400000 { - label = "unused"; - reg = <0xa400000 0x5c00000>; - }; - }; - }; -}; diff --git a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-wxr-2533dhp.dts b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-wxr-2533dhp.dts index 6aa32b1bd..12cfa3b0f 100644 --- a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-wxr-2533dhp.dts +++ b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064-wxr-2533dhp.dts @@ -5,7 +5,7 @@ / { model = "Buffalo WXR-2533DHP"; - compatible = "buffalo,wxr-2533dhp"; + compatible = "buffalo,wxr-2533dhp", "qcom,ipq8064"; memory@42000000 { reg = <0x42000000 0x1e000000>; @@ -516,4 +516,4 @@ output-high; }; }; -}; +}; \ No newline at end of file diff --git a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064.dtsi b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064.dtsi index 2a6bd2521..5cb4a5e78 100644 --- a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064.dtsi +++ b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8064.dtsi @@ -1,4 +1,3 @@ -// SPDX-License-Identifier: GPL-2.0 /dts-v1/; #include "skeleton.dtsi" @@ -51,6 +50,7 @@ clock-names = "cpu", "l2"; clock-latency = <100000>; cpu-supply = <&smb208_s2b>; + voltage-tolerance = <5>; cooling-min-state = <0>; cooling-max-state = <10>; #cooling-cells = <2>; @@ -71,6 +71,7 @@ CPU_SPC: spc { compatible = "qcom,idle-state-spc", "arm,idle-state"; + status = "okay"; entry-latency-us = <400>; exit-latency-us = <900>; min-residency-us = <3000>; @@ -696,7 +697,7 @@ timer@200a000 { compatible = "qcom,kpss-timer", - "qcom,kpss-wdt-ipq8064", "qcom,msm-timer"; + "qcom,kpss-wdt-ipq8064", "qcom,msm-timer"; interrupts = , , <0x02009000 0x1000>; regulator; }; saw1: regulator@2099000 { - compatible = "qcom,saw2", "syscon"; + compatible = "qcom,saw2", "qcom,apq8064-saw2-v1.1-cpu", "syscon"; reg = <0x02099000 0x1000>, <0x02009000 0x1000>; regulator; }; @@ -919,6 +920,8 @@ compatible = "qcom,ipq806x-ahci", "generic-ahci"; reg = <0x29000000 0x180>; + ports-implemented = <0x1>; + interrupts = ; clocks = <&gcc SFAB_SATA_S_H_CLK>, @@ -977,6 +980,22 @@ reg = <0x01200600 0x100>; }; + hs_phy_0: hs_phy_0 { + compatible = "qcom,dwc3-hs-usb-phy"; + regmap = <&usb3_0>; + clocks = <&gcc USB30_0_UTMI_CLK>; + clock-names = "ref"; + #phy-cells = <0>; + }; + + ss_phy_0: ss_phy_0 { + compatible = "qcom,dwc3-ss-usb-phy"; + regmap = <&usb3_0>; + clocks = <&gcc USB30_0_MASTER_CLK>; + clock-names = "ref"; + #phy-cells = <0>; + }; + usb3_0: usb3@110f8800 { compatible = "qcom,dwc3", "syscon"; #address-cells = <1>; @@ -992,22 +1011,6 @@ status = "disabled"; - hs_phy_0: hs_phy { - compatible = "qcom,dwc3-hs-usb-phy"; - regmap = <&usb3_0>; - clocks = <&gcc USB30_0_UTMI_CLK>; - clock-names = "ref"; - #phy-cells = <0>; - }; - - ss_phy_0: ss_phy { - compatible = "qcom,dwc3-ss-usb-phy"; - regmap = <&usb3_0>; - clocks = <&gcc USB30_0_MASTER_CLK>; - clock-names = "ref"; - #phy-cells = <0>; - }; - dwc3_0: dwc3@11000000 { compatible = "snps,dwc3"; reg = <0x11000000 0xcd00>; @@ -1019,6 +1022,22 @@ }; }; + hs_phy_1: hs_phy_1 { + compatible = "qcom,dwc3-hs-usb-phy"; + regmap = <&usb3_1>; + clocks = <&gcc USB30_1_UTMI_CLK>; + clock-names = "ref"; + #phy-cells = <0>; + }; + + ss_phy_1: ss_phy_1 { + compatible = "qcom,dwc3-ss-usb-phy"; + regmap = <&usb3_1>; + clocks = <&gcc USB30_1_MASTER_CLK>; + clock-names = "ref"; + #phy-cells = <0>; + }; + usb3_1: usb3@100f8800 { compatible = "qcom,dwc3", "syscon"; #address-cells = <1>; @@ -1034,22 +1053,6 @@ status = "disabled"; - hs_phy_1: hs_phy { - compatible = "qcom,dwc3-hs-usb-phy"; - regmap = <&usb3_1>; - clocks = <&gcc USB30_1_UTMI_CLK>; - clock-names = "ref"; - #phy-cells = <0>; - }; - - ss_phy_1: ss_phy { - compatible = "qcom,dwc3-ss-usb-phy"; - regmap = <&usb3_1>; - clocks = <&gcc USB30_1_MASTER_CLK>; - clock-names = "ref"; - #phy-cells = <0>; - }; - dwc3_1: dwc3@10000000 { compatible = "snps,dwc3"; reg = <0x10000000 0xcd00>; @@ -1279,6 +1282,7 @@ }; gmac0: ethernet@37000000 { + device_type = "network"; compatible = "qcom,ipq806x-gmac"; reg = <0x37000000 0x200000>; interrupts = ; @@ -1301,6 +1305,7 @@ }; gmac1: ethernet@37200000 { + device_type = "network"; compatible = "qcom,ipq806x-gmac"; reg = <0x37200000 0x200000>; interrupts = ; @@ -1323,6 +1328,7 @@ }; gmac2: ethernet@37400000 { + device_type = "network"; compatible = "qcom,ipq806x-gmac"; reg = <0x37400000 0x200000>; interrupts = ; @@ -1345,6 +1351,7 @@ }; gmac3: ethernet@37600000 { + device_type = "network"; compatible = "qcom,ipq806x-gmac"; reg = <0x37600000 0x200000>; interrupts = ; @@ -1396,11 +1403,10 @@ }; amba { - compatible = "simple-bus"; + compatible = "arm,amba-bus"; #address-cells = <1>; #size-cells = <1>; ranges; - sdcc1: sdcc@12400000 { status = "disabled"; compatible = "arm,pl18x", "arm,primecell"; diff --git a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts index 2a9f82ff1..378ea775b 100644 --- a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts +++ b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts @@ -4,7 +4,7 @@ / { model = "ZyXEL NBG6817"; - compatible = "zyxel,nbg6817"; + compatible = "zyxel,nbg6817", "qcom,ipq8065", "qcom,ipq8064"; memory@0 { reg = <0x42000000 0x1e000000>; @@ -189,14 +189,14 @@ }; }; - usb30@0 { + usb3_0: usb3@110f8800 { status = "okay"; pinctrl-0 = <&usb0_pwr_en_pins>; pinctrl-names = "default"; }; - usb30@1 { + usb3_1: usb3@100f8800 { status = "okay"; pinctrl-0 = <&usb1_pwr_en_pins>; @@ -222,7 +222,8 @@ compatible = "virtual,mdio-gpio"; #address-cells = <1>; #size-cells = <0>; - gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH &qcom_pinmux 0 GPIO_ACTIVE_HIGH>; + gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH>, + <&qcom_pinmux 0 GPIO_ACTIVE_HIGH>; pinctrl-0 = <&mdio0_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8065-r7800.dts b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8065-r7800.dts index 0bc6853ac..6a1d016f7 100644 --- a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8065-r7800.dts +++ b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8065-r7800.dts @@ -4,7 +4,7 @@ / { model = "Netgear Nighthawk X4S R7800"; - compatible = "netgear,r7800"; + compatible = "netgear,r7800", "qcom,ipq8065", "qcom,ipq8064"; memory@0 { reg = <0x42000000 0x1e000000>; @@ -34,6 +34,7 @@ led-failsafe = &power_amber; led-running = &power_white; led-upgrade = &power_amber; + label-mac-device = &gmac2; }; chosen { @@ -224,14 +225,14 @@ status = "okay"; }; - usb30@0 { + usb3_0: usb3@110f8800 { status = "okay"; pinctrl-0 = <&usb0_pwr_en_pins>; pinctrl-names = "default"; }; - usb30@1 { + usb3_1: usb3@100f8800 { status = "okay"; pinctrl-0 = <&usb1_pwr_en_pins>; @@ -349,7 +350,8 @@ compatible = "virtual,mdio-gpio"; #address-cells = <1>; #size-cells = <0>; - gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH &qcom_pinmux 0 GPIO_ACTIVE_HIGH>; + gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH>, + <&qcom_pinmux 0 GPIO_ACTIVE_HIGH>; pinctrl-0 = <&mdio0_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8065.dtsi b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8065.dtsi index 86de2bd8b..d18aea4c5 100644 --- a/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8065.dtsi +++ b/target/linux/ipq806x/files-4.19/arch/arm/boot/dts/qcom-ipq8065.dtsi @@ -75,4 +75,12 @@ }; }; }; + + cpus { + idle-states { + CPU_SPC: spc { + status = "disabled"; + }; + }; + }; }; diff --git a/target/linux/ipq806x/generic/target.mk b/target/linux/ipq806x/generic/target.mk new file mode 100644 index 000000000..f5cb1fb19 --- /dev/null +++ b/target/linux/ipq806x/generic/target.mk @@ -0,0 +1 @@ +BOARDNAME:=Generic diff --git a/target/linux/ipq806x/image/Makefile b/target/linux/ipq806x/image/Makefile index b3f4ca76f..81f14b475 100644 --- a/target/linux/ipq806x/image/Makefile +++ b/target/linux/ipq806x/image/Makefile @@ -82,7 +82,8 @@ endef define Device/buffalo_wxr-2533dhp $(call Device/LegacyImage) DEVICE_DTS := qcom-ipq8064-wxr-2533dhp - DEVICE_TITLE := Buffalo WXR-2533DHP + DEVICE_VENDOR := Buffalo + DEVICE_MODEL := WXR-2533DHP BLOCKSIZE := 128k PAGESIZE := 2048 IMAGE_SIZE := 65536k @@ -90,23 +91,26 @@ define Device/buffalo_wxr-2533dhp IMAGES := sysupgrade.bin IMAGE/sysupgrade.bin := append-rootfs | buffalo-rootfs-cksum | \ sysupgrade-tar rootfs=$$$$@ | append-metadata - DEVICE_PACKAGES := ath10k-firmware-qca99x0 + DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct endef TARGET_DEVICES += buffalo_wxr-2533dhp define Device/compex_wpq864 $(call Device/FitImage) $(call Device/UbiFit) + DEVICE_VENDOR := Compex + DEVICE_MODEL := WPQ864 BLOCKSIZE := 128k PAGESIZE := 2048 DEVICE_DTS := qcom-ipq8064-wpq864 - DEVICE_TITLE := Compex WPQ864 DEVICE_PACKAGES := kmod-gpio-beeper endef TARGET_DEVICES += compex_wpq864 define Device/linksys_ea8500 $(call Device/LegacyImage) + DEVICE_VENDOR := Linksys + DEVICE_MODEL := EA8500 DEVICE_DTS := qcom-ipq8064-ea8500 PAGESIZE := 2048 BLOCKSIZE := 128k @@ -117,25 +121,27 @@ define Device/linksys_ea8500 UBINIZE_OPTS := -E 5 IMAGES := factory.bin sysupgrade.bin IMAGE/factory.bin := append-kernel | pad-to $$$${KERNEL_SIZE} | append-ubi - DEVICE_TITLE := Linksys EA8500 - DEVICE_PACKAGES := ath10k-firmware-qca99x0 + DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct endef TARGET_DEVICES += linksys_ea8500 define Device/nec_wg2600hp $(call Device/LegacyImage) + DEVICE_VENDOR := NEC + DEVICE_MODEL := Aterm WG2600HP DEVICE_DTS := qcom-ipq8064-wg2600hp BLOCKSIZE := 64k BOARD_NAME := wg2600hp - DEVICE_TITLE := NEC Aterm WG2600HP IMAGES := sysupgrade.bin IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata - DEVICE_PACKAGES := ath10k-firmware-qca99x0 + DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct endef TARGET_DEVICES += nec_wg2600hp define Device/netgear_d7800 $(call Device/DniImage) + DEVICE_VENDOR := NETGEAR + DEVICE_MODEL := Nighthawk X4 D7800 DEVICE_DTS := qcom-ipq8064-d7800 KERNEL_SIZE := 4096k NETGEAR_BOARD_ID := D7800 @@ -144,13 +150,15 @@ define Device/netgear_d7800 PAGESIZE := 2048 BOARD_NAME := d7800 SUPPORTED_DEVICES += d7800 - DEVICE_TITLE := Netgear Nighthawk X4 D7800 - DEVICE_PACKAGES := ath10k-firmware-qca99x0 + DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct endef TARGET_DEVICES += netgear_d7800 define Device/netgear_r7500 $(call Device/DniImage) + DEVICE_VENDOR := NETGEAR + DEVICE_MODEL := Nighthawk X4 R7500 + DEVICE_VARIANT := v1 DEVICE_DTS := qcom-ipq8064-r7500 KERNEL_SIZE := 4096k NETGEAR_BOARD_ID := R7500 @@ -159,13 +167,15 @@ define Device/netgear_r7500 PAGESIZE := 2048 BOARD_NAME := r7500 SUPPORTED_DEVICES += r7500 - DEVICE_TITLE := Netgear Nighthawk X4 R7500 - DEVICE_PACKAGES := ath10k-firmware-qca988x + DEVICE_PACKAGES := ath10k-firmware-qca988x-ct endef TARGET_DEVICES += netgear_r7500 define Device/netgear_r7500v2 $(call Device/DniImage) + DEVICE_VENDOR := NETGEAR + DEVICE_MODEL := Nighthawk X4 R7500 + DEVICE_VARIANT := v2 DEVICE_DTS := qcom-ipq8064-r7500v2 KERNEL_SIZE := 4096k NETGEAR_BOARD_ID := R7500v2 @@ -174,13 +184,14 @@ define Device/netgear_r7500v2 PAGESIZE := 2048 BOARD_NAME := r7500v2 SUPPORTED_DEVICES += r7500v2 - DEVICE_TITLE := Netgear Nighthawk X4 R7500v2 - DEVICE_PACKAGES := ath10k-firmware-qca99x0 ath10k-firmware-qca988x + DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct ath10k-firmware-qca988x-ct endef TARGET_DEVICES += netgear_r7500v2 define Device/netgear_r7800 $(call Device/DniImage) + DEVICE_VENDOR := NETGEAR + DEVICE_MODEL := Nighthawk X4S R7800 DEVICE_DTS := qcom-ipq8065-r7800 KERNEL_SIZE := 4096k NETGEAR_BOARD_ID := R7800 @@ -189,75 +200,85 @@ define Device/netgear_r7800 PAGESIZE := 2048 BOARD_NAME := r7800 SUPPORTED_DEVICES += r7800 - DEVICE_TITLE := Netgear Nighthawk X4S R7800 - DEVICE_PACKAGES := ath10k-firmware-qca9984 + DEVICE_PACKAGES := ath10k-firmware-qca9984-ct endef TARGET_DEVICES += netgear_r7800 define Device/qcom_ipq8064-ap148 $(call Device/FitImage) $(call Device/UbiFit) + DEVICE_VENDOR := Qualcomm + DEVICE_MODEL := AP148 + DEVICE_VARIANT := standard DEVICE_DTS := qcom-ipq8064-ap148 KERNEL_INSTALL := 1 BLOCKSIZE := 128k PAGESIZE := 2048 BOARD_NAME := ap148 SUPPORTED_DEVICES += ap148 - DEVICE_TITLE := Qualcomm AP148 - DEVICE_PACKAGES := ath10k-firmware-qca99x0 + DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct endef TARGET_DEVICES += qcom_ipq8064-ap148 define Device/qcom_ipq8064-ap148-legacy $(call Device/LegacyImage) $(call Device/UbiFit) + DEVICE_VENDOR := Qualcomm + DEVICE_MODEL := AP148 + DEVICE_VARIANT := legacy DEVICE_DTS := qcom-ipq8064-ap148 BLOCKSIZE := 128k PAGESIZE := 2048 BOARD_NAME := ap148 SUPPORTED_DEVICES := qcom,ipq8064-ap148 ap148 - DEVICE_TITLE := Qualcomm AP148 (legacy) - DEVICE_PACKAGES := ath10k-firmware-qca99x0 + DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct endef TARGET_DEVICES += qcom_ipq8064-ap148-legacy define Device/qcom_ipq8064-ap161 $(call Device/FitImage) $(call Device/UbiFit) + DEVICE_VENDOR := Qualcomm + DEVICE_MODEL := AP161 DEVICE_DTS := qcom-ipq8064-ap161 KERNEL_INSTALL := 1 BLOCKSIZE := 128k PAGESIZE := 2048 BOARD_NAME := ap161 - DEVICE_TITLE := Qualcomm AP161 - DEVICE_PACKAGES := ath10k-firmware-qca99x0 + DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct endef TARGET_DEVICES += qcom_ipq8064-ap161 define Device/qcom_ipq8064-db149 $(call Device/FitImage) + DEVICE_VENDOR := Qualcomm + DEVICE_MODEL := DB149 DEVICE_DTS := qcom-ipq8064-db149 KERNEL_INSTALL := 1 BOARD_NAME := db149 - DEVICE_TITLE := Qualcomm DB149 - DEVICE_PACKAGES := ath10k-firmware-qca99x0 + DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct endef TARGET_DEVICES += qcom_ipq8064-db149 define Device/tplink_c2600 $(call Device/TpSafeImage) + DEVICE_VENDOR := TP-Link + DEVICE_MODEL := Archer C2600 + DEVICE_VARIANT := v1 DEVICE_DTS := qcom-ipq8064-c2600 BLOCKSIZE := 128k PAGESIZE := 2048 BOARD_NAME := c2600 SUPPORTED_DEVICES += c2600 TPLINK_BOARD_ID := C2600 - DEVICE_TITLE := TP-Link Archer C2600 - DEVICE_PACKAGES := ath10k-firmware-qca99x0 + DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct endef TARGET_DEVICES += tplink_c2600 define Device/tplink_vr2600v + DEVICE_VENDOR := TP-Link + DEVICE_MODEL := Archer VR2600v + DEVICE_VARIANT := v1 KERNEL_SUFFIX := -uImage KERNEL = kernel-bin | append-dtb | uImage none KERNEL_NAME := zImage @@ -267,14 +288,15 @@ define Device/tplink_vr2600v PAGESIZE := 2048 BOARD_NAME := vr2600v SUPPORTED_DEVICES += vr2600v - DEVICE_TITLE := TP-Link Archer VR2600v - DEVICE_PACKAGES := ath10k-firmware-qca99x0 + DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct IMAGES := sysupgrade.bin IMAGE/sysupgrade.bin := pad-extra 512 | append-kernel | pad-to $$$${KERNEL_SIZE} | append-rootfs | pad-rootfs | append-metadata endef TARGET_DEVICES += tplink_vr2600v define Device/zyxel_nbg6817 + DEVICE_VENDOR := ZyXEL + DEVICE_MODEL := NBG6817 DEVICE_DTS := qcom-ipq8065-nbg6817 KERNEL_SIZE := 4096k BLOCKSIZE := 64k @@ -283,8 +305,7 @@ define Device/zyxel_nbg6817 RAS_ROOTFS_SIZE := 20934k RAS_VERSION := "V1.99(OWRT.9999)C0" SUPPORTED_DEVICES += nbg6817 - DEVICE_TITLE := ZyXEL NBG6817 - DEVICE_PACKAGES := ath10k-firmware-qca9984 e2fsprogs kmod-fs-ext4 losetup + DEVICE_PACKAGES := ath10k-firmware-qca9984-ct e2fsprogs kmod-fs-ext4 losetup $(call Device/ZyXELImage) endef TARGET_DEVICES += zyxel_nbg6817 diff --git a/target/linux/ipq806x/patches-4.14/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch b/target/linux/ipq806x/patches-4.14/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch index 150768645..f57773ef4 100644 --- a/target/linux/ipq806x/patches-4.14/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch +++ b/target/linux/ipq806x/patches-4.14/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch @@ -171,9 +171,9 @@ Signed-off-by: Ajay Kishore +extern s32 qcom_scm_pinmux_read(u32 arg1); +extern s32 qcom_scm_pinmux_write(u32 arg1, u32 arg2); #else - static inline - int qcom_scm_set_cold_boot_addr(void *entry, const cpumask_t *cpus) -@@ -73,5 +75,7 @@ qcom_scm_set_remote_state(u32 state,u32 + + #include +@@ -76,5 +78,7 @@ qcom_scm_set_remote_state(u32 state,u32 static inline int qcom_scm_restore_sec_cfg(u32 device_id, u32 spare) { return -ENODEV; } static inline int qcom_scm_iommu_secure_ptbl_size(u32 spare, size_t *size) { return -ENODEV; } static inline int qcom_scm_iommu_secure_ptbl_init(u64 addr, u32 size, u32 spare) { return -ENODEV; } diff --git a/target/linux/ipq806x/patches-4.19/0031-mtd-add-SMEM-parser-for-QCOM-platforms.patch b/target/linux/ipq806x/patches-4.19/0031-mtd-add-SMEM-parser-for-QCOM-platforms.patch index a7cfac544..a7e95513f 100644 --- a/target/linux/ipq806x/patches-4.19/0031-mtd-add-SMEM-parser-for-QCOM-platforms.patch +++ b/target/linux/ipq806x/patches-4.19/0031-mtd-add-SMEM-parser-for-QCOM-platforms.patch @@ -18,7 +18,7 @@ Signed-off-by: Ram Chandra Jangir --- a/drivers/mtd/Kconfig +++ b/drivers/mtd/Kconfig -@@ -194,6 +194,13 @@ config MTD_MYLOADER_PARTS +@@ -193,6 +193,13 @@ config MTD_MYLOADER_PARTS You will still need the parsing functions to be called by the driver for your particular device. It won't happen automatically. diff --git a/target/linux/ipq806x/patches-4.19/0032-phy-add-qcom-dwc3-phy.patch b/target/linux/ipq806x/patches-4.19/0032-phy-add-qcom-dwc3-phy.patch index 397054d4c..0de0878f8 100644 --- a/target/linux/ipq806x/patches-4.19/0032-phy-add-qcom-dwc3-phy.patch +++ b/target/linux/ipq806x/patches-4.19/0032-phy-add-qcom-dwc3-phy.patch @@ -8,7 +8,7 @@ Signed-off-by: Andy Gross --- a/drivers/phy/qualcomm/Kconfig +++ b/drivers/phy/qualcomm/Kconfig -@@ -56,3 +56,15 @@ config PHY_QCOM_USB_HSIC +@@ -65,3 +65,15 @@ config PHY_QCOM_USB_HSIC select GENERIC_PHY help Support for the USB HSIC ULPI compliant PHY on QCOM chipsets. @@ -26,7 +26,7 @@ Signed-off-by: Andy Gross + --- a/drivers/phy/qualcomm/Makefile +++ b/drivers/phy/qualcomm/Makefile -@@ -8,3 +8,4 @@ obj-$(CONFIG_PHY_QCOM_UFS) += phy-qcom- +@@ -9,3 +9,4 @@ obj-$(CONFIG_PHY_QCOM_UFS) += phy-qcom- obj-$(CONFIG_PHY_QCOM_UFS) += phy-qcom-ufs-qmp-20nm.o obj-$(CONFIG_PHY_QCOM_USB_HS) += phy-qcom-usb-hs.o obj-$(CONFIG_PHY_QCOM_USB_HSIC) += phy-qcom-usb-hsic.o diff --git a/target/linux/ipq806x/patches-4.19/0034-0001-ARM-Add-Krait-L2-register-accessor-functions.patch b/target/linux/ipq806x/patches-4.19/0034-0001-ARM-Add-Krait-L2-register-accessor-functions.patch index 0a6fa0660..68acbeeec 100644 --- a/target/linux/ipq806x/patches-4.19/0034-0001-ARM-Add-Krait-L2-register-accessor-functions.patch +++ b/target/linux/ipq806x/patches-4.19/0034-0001-ARM-Add-Krait-L2-register-accessor-functions.patch @@ -28,8 +28,6 @@ Signed-off-by: Stephen Boyd create mode 100644 arch/arm/common/krait-l2-accessors.c create mode 100644 arch/arm/include/asm/krait-l2-accessors.h -diff --git a/arch/arm/common/Kconfig b/arch/arm/common/Kconfig -index e5ad0708849a..c8e198631d41 100644 --- a/arch/arm/common/Kconfig +++ b/arch/arm/common/Kconfig @@ -7,6 +7,9 @@ config DMABOUNCE @@ -42,8 +40,6 @@ index e5ad0708849a..c8e198631d41 100644 config SHARP_LOCOMO bool -diff --git a/arch/arm/common/Makefile b/arch/arm/common/Makefile -index 3157be413297..219a260bbe5f 100644 --- a/arch/arm/common/Makefile +++ b/arch/arm/common/Makefile @@ -7,6 +7,7 @@ obj-y += firmware.o @@ -54,9 +50,6 @@ index 3157be413297..219a260bbe5f 100644 obj-$(CONFIG_SHARP_LOCOMO) += locomo.o obj-$(CONFIG_SHARP_PARAM) += sharpsl_param.o obj-$(CONFIG_SHARP_SCOOP) += scoop.o -diff --git a/arch/arm/common/krait-l2-accessors.c b/arch/arm/common/krait-l2-accessors.c -new file mode 100644 -index 000000000000..9a97ddadecd6 --- /dev/null +++ b/arch/arm/common/krait-l2-accessors.c @@ -0,0 +1,48 @@ @@ -108,9 +101,6 @@ index 000000000000..9a97ddadecd6 + return val; +} +EXPORT_SYMBOL(krait_get_l2_indirect_reg); -diff --git a/arch/arm/include/asm/krait-l2-accessors.h b/arch/arm/include/asm/krait-l2-accessors.h -new file mode 100644 -index 000000000000..a5f2cdd6445f --- /dev/null +++ b/arch/arm/include/asm/krait-l2-accessors.h @@ -0,0 +1,9 @@ @@ -123,6 +113,3 @@ index 000000000000..a5f2cdd6445f +extern u32 krait_get_l2_indirect_reg(u32 addr); + +#endif --- -2.20.1 - diff --git a/target/linux/ipq806x/patches-4.19/0034-0002-clk-qcom-Add-support-for-High-Frequency-PLLs-HFPLLs.patch b/target/linux/ipq806x/patches-4.19/0034-0002-clk-qcom-Add-support-for-High-Frequency-PLLs-HFPLLs.patch index b4a7411a9..d43d0c89b 100644 --- a/target/linux/ipq806x/patches-4.19/0034-0002-clk-qcom-Add-support-for-High-Frequency-PLLs-HFPLLs.patch +++ b/target/linux/ipq806x/patches-4.19/0034-0002-clk-qcom-Add-support-for-High-Frequency-PLLs-HFPLLs.patch @@ -18,8 +18,6 @@ Signed-off-by: Stephen Boyd create mode 100644 drivers/clk/qcom/clk-hfpll.c create mode 100644 drivers/clk/qcom/clk-hfpll.h -diff --git a/drivers/clk/qcom/Makefile b/drivers/clk/qcom/Makefile -index 21a45035930d..7818e6c78413 100644 --- a/drivers/clk/qcom/Makefile +++ b/drivers/clk/qcom/Makefile @@ -11,6 +11,7 @@ clk-qcom-y += clk-branch.o @@ -30,9 +28,6 @@ index 21a45035930d..7818e6c78413 100644 clk-qcom-y += reset.o clk-qcom-$(CONFIG_QCOM_GDSC) += gdsc.o -diff --git a/drivers/clk/qcom/clk-hfpll.c b/drivers/clk/qcom/clk-hfpll.c -new file mode 100644 -index 000000000000..3c04805f2a55 --- /dev/null +++ b/drivers/clk/qcom/clk-hfpll.c @@ -0,0 +1,244 @@ @@ -280,9 +275,6 @@ index 000000000000..3c04805f2a55 + .init = clk_hfpll_init, +}; +EXPORT_SYMBOL_GPL(clk_ops_hfpll); -diff --git a/drivers/clk/qcom/clk-hfpll.h b/drivers/clk/qcom/clk-hfpll.h -new file mode 100644 -index 000000000000..2a57b2fb2f2f --- /dev/null +++ b/drivers/clk/qcom/clk-hfpll.h @@ -0,0 +1,44 @@ @@ -330,6 +322,3 @@ index 000000000000..2a57b2fb2f2f +extern const struct clk_ops clk_ops_hfpll; + +#endif --- -2.20.1 - diff --git a/target/linux/ipq806x/patches-4.19/0034-0003-clk-qcom-Add-HFPLL-driver.patch b/target/linux/ipq806x/patches-4.19/0034-0003-clk-qcom-Add-HFPLL-driver.patch index 24b61b083..292eb66d6 100644 --- a/target/linux/ipq806x/patches-4.19/0034-0003-clk-qcom-Add-HFPLL-driver.patch +++ b/target/linux/ipq806x/patches-4.19/0034-0003-clk-qcom-Add-HFPLL-driver.patch @@ -20,8 +20,6 @@ Signed-off-by: Stephen Boyd 3 files changed, 105 insertions(+) create mode 100644 drivers/clk/qcom/hfpll.c -diff --git a/drivers/clk/qcom/Kconfig b/drivers/clk/qcom/Kconfig -index 064768699fe7..21aec1048225 100644 --- a/drivers/clk/qcom/Kconfig +++ b/drivers/clk/qcom/Kconfig @@ -272,3 +272,11 @@ config SPMI_PMIC_CLKDIV @@ -36,18 +34,13 @@ index 064768699fe7..21aec1048225 100644 + Support for the high-frequency PLLs present on Qualcomm devices. + Say Y if you want to support CPU frequency scaling on devices + such as MSM8974, APQ8084, etc. -diff --git a/drivers/clk/qcom/Makefile b/drivers/clk/qcom/Makefile -index 7818e6c78413..f82eeaca278e 100644 --- a/drivers/clk/qcom/Makefile +++ b/drivers/clk/qcom/Makefile -@@ -44,3 +44,4 @@ obj-$(CONFIG_SDM_DISPCC_845) += dispcc-sdm845.o +@@ -44,3 +44,4 @@ obj-$(CONFIG_SDM_DISPCC_845) += dispcc-s obj-$(CONFIG_SDM_GCC_845) += gcc-sdm845.o obj-$(CONFIG_SDM_VIDEOCC_845) += videocc-sdm845.o obj-$(CONFIG_SPMI_PMIC_CLKDIV) += clk-spmi-pmic-div.o +obj-$(CONFIG_QCOM_HFPLL) += hfpll.o -diff --git a/drivers/clk/qcom/hfpll.c b/drivers/clk/qcom/hfpll.c -new file mode 100644 -index 000000000000..a6de7101430c --- /dev/null +++ b/drivers/clk/qcom/hfpll.c @@ -0,0 +1,96 @@ @@ -147,6 +140,3 @@ index 000000000000..a6de7101430c +MODULE_DESCRIPTION("QCOM HFPLL Clock Driver"); +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:qcom-hfpll"); --- -2.20.1 - diff --git a/target/linux/ipq806x/patches-4.19/0034-0004-dt-bindings-clock-Document-qcom-hfpll.patch b/target/linux/ipq806x/patches-4.19/0034-0004-dt-bindings-clock-Document-qcom-hfpll.patch index 559e5f5a5..1db989f6d 100644 --- a/target/linux/ipq806x/patches-4.19/0034-0004-dt-bindings-clock-Document-qcom-hfpll.patch +++ b/target/linux/ipq806x/patches-4.19/0034-0004-dt-bindings-clock-Document-qcom-hfpll.patch @@ -16,9 +16,6 @@ Signed-off-by: Stephen Boyd 1 file changed, 60 insertions(+) create mode 100644 Documentation/devicetree/bindings/clock/qcom,hfpll.txt -diff --git a/Documentation/devicetree/bindings/clock/qcom,hfpll.txt b/Documentation/devicetree/bindings/clock/qcom,hfpll.txt -new file mode 100644 -index 000000000000..ec02a024424c --- /dev/null +++ b/Documentation/devicetree/bindings/clock/qcom,hfpll.txt @@ -0,0 +1,60 @@ @@ -82,6 +79,3 @@ index 000000000000..ec02a024424c + clock-names = "xo"; + clock-output-names = "hfpll0"; + }; --- -2.20.1 - diff --git a/target/linux/ipq806x/patches-4.19/0034-0005-clk-qcom-Add-MSM8960-APQ8064-s-HFPLLs.patch b/target/linux/ipq806x/patches-4.19/0034-0005-clk-qcom-Add-MSM8960-APQ8064-s-HFPLLs.patch index 3bc256fa5..5ed5625f2 100644 --- a/target/linux/ipq806x/patches-4.19/0034-0005-clk-qcom-Add-MSM8960-APQ8064-s-HFPLLs.patch +++ b/target/linux/ipq806x/patches-4.19/0034-0005-clk-qcom-Add-MSM8960-APQ8064-s-HFPLLs.patch @@ -15,8 +15,6 @@ Signed-off-by: Stephen Boyd include/dt-bindings/clock/qcom,gcc-msm8960.h | 2 + 2 files changed, 174 insertions(+) -diff --git a/drivers/clk/qcom/gcc-msm8960.c b/drivers/clk/qcom/gcc-msm8960.c -index fd495e0471bb..399474755654 100644 --- a/drivers/clk/qcom/gcc-msm8960.c +++ b/drivers/clk/qcom/gcc-msm8960.c @@ -30,6 +30,7 @@ @@ -192,7 +190,7 @@ index fd495e0471bb..399474755654 100644 static struct clk_pll pll14 = { .l_reg = 0x31c4, .m_reg = 0x31c8, -@@ -3107,6 +3266,9 @@ static struct clk_regmap *gcc_msm8960_clks[] = { +@@ -3107,6 +3266,9 @@ static struct clk_regmap *gcc_msm8960_cl [PMIC_ARB1_H_CLK] = &pmic_arb1_h_clk.clkr, [PMIC_SSBI2_CLK] = &pmic_ssbi2_clk.clkr, [RPM_MSG_RAM_H_CLK] = &rpm_msg_ram_h_clk.clkr, @@ -202,7 +200,7 @@ index fd495e0471bb..399474755654 100644 }; static const struct qcom_reset_map gcc_msm8960_resets[] = { -@@ -3318,6 +3480,11 @@ static struct clk_regmap *gcc_apq8064_clks[] = { +@@ -3318,6 +3480,11 @@ static struct clk_regmap *gcc_apq8064_cl [PMIC_ARB1_H_CLK] = &pmic_arb1_h_clk.clkr, [PMIC_SSBI2_CLK] = &pmic_ssbi2_clk.clkr, [RPM_MSG_RAM_H_CLK] = &rpm_msg_ram_h_clk.clkr, @@ -214,7 +212,7 @@ index fd495e0471bb..399474755654 100644 }; static const struct qcom_reset_map gcc_apq8064_resets[] = { -@@ -3477,6 +3644,11 @@ static int gcc_msm8960_probe(struct platform_device *pdev) +@@ -3477,6 +3644,11 @@ static int gcc_msm8960_probe(struct plat if (ret) return ret; @@ -226,8 +224,6 @@ index fd495e0471bb..399474755654 100644 tsens = platform_device_register_data(&pdev->dev, "qcom-tsens", -1, NULL, 0); if (IS_ERR(tsens)) -diff --git a/include/dt-bindings/clock/qcom,gcc-msm8960.h b/include/dt-bindings/clock/qcom,gcc-msm8960.h -index 7d20eedfee98..e02742fc81cc 100644 --- a/include/dt-bindings/clock/qcom,gcc-msm8960.h +++ b/include/dt-bindings/clock/qcom,gcc-msm8960.h @@ -319,5 +319,7 @@ @@ -238,6 +234,3 @@ index 7d20eedfee98..e02742fc81cc 100644 +#define PLL17 307 #endif --- -2.20.1 - diff --git a/target/linux/ipq806x/patches-4.19/0034-0006-clk-qcom-Add-IPQ806X-s-HFPLLs.patch b/target/linux/ipq806x/patches-4.19/0034-0006-clk-qcom-Add-IPQ806X-s-HFPLLs.patch index 33911c671..74c66178a 100644 --- a/target/linux/ipq806x/patches-4.19/0034-0006-clk-qcom-Add-IPQ806X-s-HFPLLs.patch +++ b/target/linux/ipq806x/patches-4.19/0034-0006-clk-qcom-Add-IPQ806X-s-HFPLLs.patch @@ -13,8 +13,6 @@ Signed-off-by: Stephen Boyd drivers/clk/qcom/gcc-ipq806x.c | 82 ++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) -diff --git a/drivers/clk/qcom/gcc-ipq806x.c b/drivers/clk/qcom/gcc-ipq806x.c -index 5f61225657ab..33d1bc5c6a46 100644 --- a/drivers/clk/qcom/gcc-ipq806x.c +++ b/drivers/clk/qcom/gcc-ipq806x.c @@ -30,6 +30,7 @@ @@ -110,7 +108,7 @@ index 5f61225657ab..33d1bc5c6a46 100644 static struct clk_pll pll14 = { .l_reg = 0x31c4, .m_reg = 0x31c8, -@@ -2797,6 +2876,9 @@ static struct clk_regmap *gcc_ipq806x_clks[] = { +@@ -2798,6 +2877,9 @@ static struct clk_regmap *gcc_ipq806x_cl [UBI32_CORE2_CLK_SRC] = &ubi32_core2_src_clk.clkr, [NSSTCM_CLK_SRC] = &nss_tcm_src.clkr, [NSSTCM_CLK] = &nss_tcm_clk.clkr, @@ -120,6 +118,3 @@ index 5f61225657ab..33d1bc5c6a46 100644 }; static const struct qcom_reset_map gcc_ipq806x_resets[] = { --- -2.20.1 - diff --git a/target/linux/ipq806x/patches-4.19/0034-0007-clk-qcom-Add-support-for-Krait-clocks.patch b/target/linux/ipq806x/patches-4.19/0034-0007-clk-qcom-Add-support-for-Krait-clocks.patch index bfca13dde..181b91f6e 100644 --- a/target/linux/ipq806x/patches-4.19/0034-0007-clk-qcom-Add-support-for-Krait-clocks.patch +++ b/target/linux/ipq806x/patches-4.19/0034-0007-clk-qcom-Add-support-for-Krait-clocks.patch @@ -24,8 +24,6 @@ Signed-off-by: Stephen Boyd create mode 100644 drivers/clk/qcom/clk-krait.c create mode 100644 drivers/clk/qcom/clk-krait.h -diff --git a/drivers/clk/qcom/Kconfig b/drivers/clk/qcom/Kconfig -index 21aec1048225..93f1342f1949 100644 --- a/drivers/clk/qcom/Kconfig +++ b/drivers/clk/qcom/Kconfig @@ -1,3 +1,7 @@ @@ -36,8 +34,6 @@ index 21aec1048225..93f1342f1949 100644 config QCOM_GDSC bool select PM_GENERIC_DOMAINS if PM -diff --git a/drivers/clk/qcom/Makefile b/drivers/clk/qcom/Makefile -index f82eeaca278e..506c4cfd775f 100644 --- a/drivers/clk/qcom/Makefile +++ b/drivers/clk/qcom/Makefile @@ -11,6 +11,7 @@ clk-qcom-y += clk-branch.o @@ -48,9 +44,6 @@ index f82eeaca278e..506c4cfd775f 100644 clk-qcom-y += clk-hfpll.o clk-qcom-y += reset.o clk-qcom-$(CONFIG_QCOM_GDSC) += gdsc.o -diff --git a/drivers/clk/qcom/clk-krait.c b/drivers/clk/qcom/clk-krait.c -new file mode 100644 -index 000000000000..2e417678029f --- /dev/null +++ b/drivers/clk/qcom/clk-krait.c @@ -0,0 +1,124 @@ @@ -178,9 +171,6 @@ index 000000000000..2e417678029f + .recalc_rate = krait_div2_recalc_rate, +}; +EXPORT_SYMBOL_GPL(krait_div2_clk_ops); -diff --git a/drivers/clk/qcom/clk-krait.h b/drivers/clk/qcom/clk-krait.h -new file mode 100644 -index 000000000000..441ba1e18b81 --- /dev/null +++ b/drivers/clk/qcom/clk-krait.h @@ -0,0 +1,37 @@ @@ -221,6 +211,3 @@ index 000000000000..441ba1e18b81 +extern const struct clk_ops krait_div2_clk_ops; + +#endif --- -2.20.1 - diff --git a/target/linux/ipq806x/patches-4.19/0034-0008-clk-qcom-Add-KPSS-ACC-GCC-driver.patch b/target/linux/ipq806x/patches-4.19/0034-0008-clk-qcom-Add-KPSS-ACC-GCC-driver.patch index 9ce63d2de..aa19ea2e3 100644 --- a/target/linux/ipq806x/patches-4.19/0034-0008-clk-qcom-Add-KPSS-ACC-GCC-driver.patch +++ b/target/linux/ipq806x/patches-4.19/0034-0008-clk-qcom-Add-KPSS-ACC-GCC-driver.patch @@ -20,8 +20,6 @@ Signed-off-by: Stephen Boyd 3 files changed, 96 insertions(+) create mode 100644 drivers/clk/qcom/kpss-xcc.c -diff --git a/drivers/clk/qcom/Kconfig b/drivers/clk/qcom/Kconfig -index 93f1342f1949..bed7ef4f51a2 100644 --- a/drivers/clk/qcom/Kconfig +++ b/drivers/clk/qcom/Kconfig @@ -284,3 +284,11 @@ config QCOM_HFPLL @@ -36,19 +34,14 @@ index 93f1342f1949..bed7ef4f51a2 100644 + Support for the Krait ACC and GCC clock controllers. Say Y + if you want to support CPU frequency scaling on devices such + as MSM8960, APQ8064, etc. -diff --git a/drivers/clk/qcom/Makefile b/drivers/clk/qcom/Makefile -index 506c4cfd775f..92310ee33e9e 100644 --- a/drivers/clk/qcom/Makefile +++ b/drivers/clk/qcom/Makefile -@@ -45,4 +45,5 @@ obj-$(CONFIG_SDM_DISPCC_845) += dispcc-sdm845.o +@@ -45,4 +45,5 @@ obj-$(CONFIG_SDM_DISPCC_845) += dispcc-s obj-$(CONFIG_SDM_GCC_845) += gcc-sdm845.o obj-$(CONFIG_SDM_VIDEOCC_845) += videocc-sdm845.o obj-$(CONFIG_SPMI_PMIC_CLKDIV) += clk-spmi-pmic-div.o +obj-$(CONFIG_KPSS_XCC) += kpss-xcc.o obj-$(CONFIG_QCOM_HFPLL) += hfpll.o -diff --git a/drivers/clk/qcom/kpss-xcc.c b/drivers/clk/qcom/kpss-xcc.c -new file mode 100644 -index 000000000000..8590b5edd19d --- /dev/null +++ b/drivers/clk/qcom/kpss-xcc.c @@ -0,0 +1,87 @@ @@ -139,6 +132,3 @@ index 000000000000..8590b5edd19d +MODULE_DESCRIPTION("Krait Processor Sub System (KPSS) Clock Driver"); +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:kpss-xcc"); --- -2.20.1 - diff --git a/target/linux/ipq806x/patches-4.19/0034-0009-dt-bindings-arm-Document-qcom-kpss-gcc.patch b/target/linux/ipq806x/patches-4.19/0034-0009-dt-bindings-arm-Document-qcom-kpss-gcc.patch index 804b67efd..6af40895b 100644 --- a/target/linux/ipq806x/patches-4.19/0034-0009-dt-bindings-arm-Document-qcom-kpss-gcc.patch +++ b/target/linux/ipq806x/patches-4.19/0034-0009-dt-bindings-arm-Document-qcom-kpss-gcc.patch @@ -18,8 +18,6 @@ Signed-off-by: Stephen Boyd 2 files changed, 63 insertions(+) create mode 100644 Documentation/devicetree/bindings/arm/msm/qcom,kpss-gcc.txt -diff --git a/Documentation/devicetree/bindings/arm/msm/qcom,kpss-acc.txt b/Documentation/devicetree/bindings/arm/msm/qcom,kpss-acc.txt -index 1333db9acfee..7f696362a4a1 100644 --- a/Documentation/devicetree/bindings/arm/msm/qcom,kpss-acc.txt +++ b/Documentation/devicetree/bindings/arm/msm/qcom,kpss-acc.txt @@ -21,10 +21,29 @@ PROPERTIES @@ -52,9 +50,6 @@ index 1333db9acfee..7f696362a4a1 100644 + clock-names = "pll8_vote", "pxo"; + clock-output-names = "acpu0_aux"; }; -diff --git a/Documentation/devicetree/bindings/arm/msm/qcom,kpss-gcc.txt b/Documentation/devicetree/bindings/arm/msm/qcom,kpss-gcc.txt -new file mode 100644 -index 000000000000..e628758950e1 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/msm/qcom,kpss-gcc.txt @@ -0,0 +1,44 @@ @@ -102,6 +97,3 @@ index 000000000000..e628758950e1 + clock-names = "pll8_vote", "pxo"; + clock-output-names = "acpu_l2_aux"; + }; --- -2.20.1 - diff --git a/target/linux/ipq806x/patches-4.19/0034-0010-clk-qcom-Add-Krait-clock-controller-driver.patch b/target/linux/ipq806x/patches-4.19/0034-0010-clk-qcom-Add-Krait-clock-controller-driver.patch index 06738b649..7ee1f50f4 100644 --- a/target/linux/ipq806x/patches-4.19/0034-0010-clk-qcom-Add-Krait-clock-controller-driver.patch +++ b/target/linux/ipq806x/patches-4.19/0034-0010-clk-qcom-Add-Krait-clock-controller-driver.patch @@ -22,8 +22,6 @@ Signed-off-by: Stephen Boyd 4 files changed, 352 insertions(+), 2 deletions(-) create mode 100644 drivers/clk/qcom/krait-cc.c -diff --git a/drivers/clk/qcom/Kconfig b/drivers/clk/qcom/Kconfig -index bed7ef4f51a2..646bc38d2993 100644 --- a/drivers/clk/qcom/Kconfig +++ b/drivers/clk/qcom/Kconfig @@ -292,3 +292,11 @@ config KPSS_XCC @@ -38,20 +36,16 @@ index bed7ef4f51a2..646bc38d2993 100644 + help + Support for the Krait CPU clocks on Qualcomm devices. + Say Y if you want to support CPU frequency scaling. -diff --git a/drivers/clk/qcom/Makefile b/drivers/clk/qcom/Makefile -index 92310ee33e9e..949829b18813 100644 --- a/drivers/clk/qcom/Makefile +++ b/drivers/clk/qcom/Makefile -@@ -47,3 +47,4 @@ obj-$(CONFIG_SDM_VIDEOCC_845) += videocc-sdm845.o +@@ -47,3 +47,4 @@ obj-$(CONFIG_SDM_VIDEOCC_845) += videocc obj-$(CONFIG_SPMI_PMIC_CLKDIV) += clk-spmi-pmic-div.o obj-$(CONFIG_KPSS_XCC) += kpss-xcc.o obj-$(CONFIG_QCOM_HFPLL) += hfpll.o +obj-$(CONFIG_KRAITCC) += krait-cc.o -diff --git a/drivers/clk/qcom/clk-krait.c b/drivers/clk/qcom/clk-krait.c -index 2e417678029f..7ede744c6a14 100644 --- a/drivers/clk/qcom/clk-krait.c +++ b/drivers/clk/qcom/clk-krait.c -@@ -44,7 +44,7 @@ static int krait_mux_set_parent(struct clk_hw *hw, u8 index) +@@ -44,7 +44,7 @@ static int krait_mux_set_parent(struct c struct krait_mux_clk *mux = to_krait_mux_clk(hw); u32 sel; @@ -60,7 +54,7 @@ index 2e417678029f..7ede744c6a14 100644 mux->en_mask = sel; /* Don't touch mux if CPU is off as it won't work */ if (__clk_is_enabled(hw->clk)) -@@ -63,7 +63,7 @@ static u8 krait_mux_get_parent(struct clk_hw *hw) +@@ -63,7 +63,7 @@ static u8 krait_mux_get_parent(struct cl sel &= mux->mask; mux->en_mask = sel; @@ -69,9 +63,6 @@ index 2e417678029f..7ede744c6a14 100644 } const struct clk_ops krait_mux_clk_ops = { -diff --git a/drivers/clk/qcom/krait-cc.c b/drivers/clk/qcom/krait-cc.c -new file mode 100644 -index 000000000000..7c9dfb032065 --- /dev/null +++ b/drivers/clk/qcom/krait-cc.c @@ -0,0 +1,341 @@ @@ -416,6 +407,3 @@ index 000000000000..7c9dfb032065 +MODULE_DESCRIPTION("Krait CPU Clock Driver"); +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:krait-cc"); --- -2.20.1 - diff --git a/target/linux/ipq806x/patches-4.19/0034-0011-dt-bindings-clock-Document-qcom-krait-cc.patch b/target/linux/ipq806x/patches-4.19/0034-0011-dt-bindings-clock-Document-qcom-krait-cc.patch index efbe91bd0..13e05c425 100644 --- a/target/linux/ipq806x/patches-4.19/0034-0011-dt-bindings-clock-Document-qcom-krait-cc.patch +++ b/target/linux/ipq806x/patches-4.19/0034-0011-dt-bindings-clock-Document-qcom-krait-cc.patch @@ -16,9 +16,6 @@ Signed-off-by: Stephen Boyd 1 file changed, 34 insertions(+) create mode 100644 Documentation/devicetree/bindings/clock/qcom,krait-cc.txt -diff --git a/Documentation/devicetree/bindings/clock/qcom,krait-cc.txt b/Documentation/devicetree/bindings/clock/qcom,krait-cc.txt -new file mode 100644 -index 000000000000..030ba60dab08 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/qcom,krait-cc.txt @@ -0,0 +1,34 @@ @@ -56,6 +53,3 @@ index 000000000000..030ba60dab08 + clock-names = "hfpll0", "hfpll1", "acpu0_aux", "acpu1_aux", "qsb"; + #clock-cells = <1>; + }; --- -2.20.1 - diff --git a/target/linux/ipq806x/patches-4.19/0034-0012-clk-qcom-Add-safe-switch-hook-for-krait-mux-clocks.patch b/target/linux/ipq806x/patches-4.19/0034-0012-clk-qcom-Add-safe-switch-hook-for-krait-mux-clocks.patch index 7456d14fe..847b4809a 100644 --- a/target/linux/ipq806x/patches-4.19/0034-0012-clk-qcom-Add-safe-switch-hook-for-krait-mux-clocks.patch +++ b/target/linux/ipq806x/patches-4.19/0034-0012-clk-qcom-Add-safe-switch-hook-for-krait-mux-clocks.patch @@ -20,11 +20,9 @@ Signed-off-by: Stephen Boyd drivers/clk/qcom/krait-cc.c | 56 ++++++++++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+) -diff --git a/drivers/clk/qcom/clk-krait.c b/drivers/clk/qcom/clk-krait.c -index 7ede744c6a14..59f1af415b58 100644 --- a/drivers/clk/qcom/clk-krait.c +++ b/drivers/clk/qcom/clk-krait.c -@@ -50,6 +50,8 @@ static int krait_mux_set_parent(struct clk_hw *hw, u8 index) +@@ -50,6 +50,8 @@ static int krait_mux_set_parent(struct c if (__clk_is_enabled(hw->clk)) __krait_mux_set_sel(mux, sel); @@ -33,8 +31,6 @@ index 7ede744c6a14..59f1af415b58 100644 return 0; } -diff --git a/drivers/clk/qcom/clk-krait.h b/drivers/clk/qcom/clk-krait.h -index 441ba1e18b81..9120bd2f5297 100644 --- a/drivers/clk/qcom/clk-krait.h +++ b/drivers/clk/qcom/clk-krait.h @@ -12,6 +12,9 @@ struct krait_mux_clk { @@ -47,8 +43,6 @@ index 441ba1e18b81..9120bd2f5297 100644 struct clk_hw hw; struct notifier_block clk_nb; -diff --git a/drivers/clk/qcom/krait-cc.c b/drivers/clk/qcom/krait-cc.c -index 7c9dfb032065..4d4b657d33c3 100644 --- a/drivers/clk/qcom/krait-cc.c +++ b/drivers/clk/qcom/krait-cc.c @@ -26,6 +26,49 @@ static unsigned int pri_mux_map[] = { @@ -109,7 +103,7 @@ index 7c9dfb032065..4d4b657d33c3 100644 struct krait_mux_clk *mux; static const char *sec_mux_list[] = { "acpu_aux", -@@ -93,6 +137,7 @@ krait_add_sec_mux(struct device *dev, int id, const char *s, +@@ -93,6 +137,7 @@ krait_add_sec_mux(struct device *dev, in mux->shift = 2; mux->parent_map = sec_mux_map; mux->hw.init = &init; @@ -117,7 +111,7 @@ index 7c9dfb032065..4d4b657d33c3 100644 init.name = kasprintf(GFP_KERNEL, "krait%s_sec_mux", s); if (!init.name) -@@ -108,6 +153,11 @@ krait_add_sec_mux(struct device *dev, int id, const char *s, +@@ -108,6 +153,11 @@ krait_add_sec_mux(struct device *dev, in clk = devm_clk_register(dev, &mux->hw); @@ -137,7 +131,7 @@ index 7c9dfb032065..4d4b657d33c3 100644 struct krait_mux_clk *mux; const char *p_names[3]; struct clk_init_data init = { -@@ -139,6 +190,7 @@ krait_add_pri_mux(struct device *dev, int id, const char *s, +@@ -139,6 +190,7 @@ krait_add_pri_mux(struct device *dev, in mux->lpl = id >= 0; mux->parent_map = pri_mux_map; mux->hw.init = &init; @@ -145,7 +139,7 @@ index 7c9dfb032065..4d4b657d33c3 100644 init.name = kasprintf(GFP_KERNEL, "krait%s_pri_mux", s); if (!init.name) -@@ -164,6 +216,10 @@ krait_add_pri_mux(struct device *dev, int id, const char *s, +@@ -164,6 +216,10 @@ krait_add_pri_mux(struct device *dev, in clk = devm_clk_register(dev, &mux->hw); @@ -156,6 +150,3 @@ index 7c9dfb032065..4d4b657d33c3 100644 kfree(p_names[2]); err_p2: kfree(p_names[1]); --- -2.20.1 - diff --git a/target/linux/ipq806x/patches-4.19/0045-cpufreq-Add-module-to-register-cpufreq-on-Krait-CPUs.patch b/target/linux/ipq806x/patches-4.19/0045-cpufreq-Add-module-to-register-cpufreq-on-Krait-CPUs.patch index d07ea5c59..5b081feac 100644 --- a/target/linux/ipq806x/patches-4.19/0045-cpufreq-Add-module-to-register-cpufreq-on-Krait-CPUs.patch +++ b/target/linux/ipq806x/patches-4.19/0045-cpufreq-Add-module-to-register-cpufreq-on-Krait-CPUs.patch @@ -72,9 +72,9 @@ Signed-off-by: Stephen Boyd + }; --- a/drivers/cpufreq/Kconfig.arm +++ b/drivers/cpufreq/Kconfig.arm -@@ -100,6 +100,15 @@ config ARM_OMAP2PLUS_CPUFREQ - depends on ARCH_OMAP2PLUS - default ARCH_OMAP2PLUS +@@ -121,6 +121,15 @@ config ARM_QCOM_CPUFREQ_KRYO + + If in doubt, say N. +config ARM_QCOM_CPUFREQ + tristate "Qualcomm based" @@ -90,14 +90,14 @@ Signed-off-by: Stephen Boyd help --- a/drivers/cpufreq/Makefile +++ b/drivers/cpufreq/Makefile -@@ -62,6 +62,7 @@ obj-$(CONFIG_ARM_MEDIATEK_CPUFREQ) += me +@@ -64,6 +64,7 @@ obj-$(CONFIG_MACH_MVEBU_V7) += mvebu-cp obj-$(CONFIG_ARM_OMAP2PLUS_CPUFREQ) += omap-cpufreq.o obj-$(CONFIG_ARM_PXA2xx_CPUFREQ) += pxa2xx-cpufreq.o obj-$(CONFIG_PXA3xx) += pxa3xx-cpufreq.o +obj-$(CONFIG_ARM_QCOM_CPUFREQ) += qcom-cpufreq.o obj-$(CONFIG_ARM_QCOM_CPUFREQ_KRYO) += qcom-cpufreq-kryo.o obj-$(CONFIG_ARM_S3C2410_CPUFREQ) += s3c2410-cpufreq.o - obj-$(CONFIG_ARM_S3C2412_CPUFREQ) += s3c2412-cpufreq-debugfs.o + obj-$(CONFIG_ARM_S3C2412_CPUFREQ) += s3c2412-cpufreq.o --- /dev/null +++ b/drivers/cpufreq/qcom-cpufreq.c @@ -0,0 +1,204 @@ diff --git a/target/linux/ipq806x/patches-4.19/0046-cpufreq-qcom-independent-core-clocks.patch b/target/linux/ipq806x/patches-4.19/0046-cpufreq-qcom-independent-core-clocks.patch index b3b3072bc..7743dd1c4 100644 --- a/target/linux/ipq806x/patches-4.19/0046-cpufreq-qcom-independent-core-clocks.patch +++ b/target/linux/ipq806x/patches-4.19/0046-cpufreq-qcom-independent-core-clocks.patch @@ -28,7 +28,7 @@ Signed-off-by: Sricharan R --- a/drivers/cpufreq/cpufreq-dt.c +++ b/drivers/cpufreq/cpufreq-dt.c -@@ -231,7 +231,10 @@ static int cpufreq_init(struct cpufreq_p +@@ -239,7 +239,10 @@ static int cpufreq_init(struct cpufreq_p } if (fallback) { @@ -40,9 +40,9 @@ Signed-off-by: Sricharan R /* * OPP tables are initialized only for policy->cpu, do it for -@@ -376,6 +379,8 @@ static int dt_cpufreq_probe(struct platf - if (data && data->have_governor_per_policy) - dt_cpufreq_driver.flags |= CPUFREQ_HAVE_GOVERNOR_PER_POLICY; +@@ -359,6 +362,8 @@ static int dt_cpufreq_probe(struct platf + dt_cpufreq_driver.suspend = data->suspend; + } + dt_cpufreq_driver.driver_data = data; + @@ -51,8 +51,8 @@ Signed-off-by: Sricharan R dev_err(&pdev->dev, "failed register driver: %d\n", ret); --- a/drivers/cpufreq/cpufreq-dt.h +++ b/drivers/cpufreq/cpufreq-dt.h -@@ -13,6 +13,12 @@ - #include +@@ -15,6 +15,12 @@ + struct cpufreq_policy; struct cpufreq_dt_platform_data { + /* @@ -62,5 +62,5 @@ Signed-off-by: Sricharan R + */ + bool independent_clocks; bool have_governor_per_policy; - }; + int (*suspend)(struct cpufreq_policy *policy); diff --git a/target/linux/ipq806x/patches-4.19/0048-PM-OPP-HACK-Allow-to-set-regulator-without-opp_list.patch b/target/linux/ipq806x/patches-4.19/0048-PM-OPP-HACK-Allow-to-set-regulator-without-opp_list.patch index 24e74b069..d415f7b74 100644 --- a/target/linux/ipq806x/patches-4.19/0048-PM-OPP-HACK-Allow-to-set-regulator-without-opp_list.patch +++ b/target/linux/ipq806x/patches-4.19/0048-PM-OPP-HACK-Allow-to-set-regulator-without-opp_list.patch @@ -10,7 +10,7 @@ Signed-off-by: Georgi Djakov --- a/drivers/opp/core.c +++ b/drivers/opp/core.c -@@ -1277,11 +1277,13 @@ struct opp_table *dev_pm_opp_set_regulat +@@ -1317,11 +1317,13 @@ struct opp_table *dev_pm_opp_set_regulat if (!opp_table) return ERR_PTR(-ENOMEM); @@ -22,5 +22,5 @@ Signed-off-by: Georgi Djakov } +#endif - /* Already have regulators set */ - if (opp_table->regulators) { + /* Another CPU that shares the OPP table has set the regulators ? */ + if (opp_table->regulators) diff --git a/target/linux/ipq806x/patches-4.19/0049-PM-OPP-Support-adjusting-OPP-voltages-at-runtime.patch b/target/linux/ipq806x/patches-4.19/0049-PM-OPP-Support-adjusting-OPP-voltages-at-runtime.patch index 929dbc444..1a0e50d3d 100644 --- a/target/linux/ipq806x/patches-4.19/0049-PM-OPP-Support-adjusting-OPP-voltages-at-runtime.patch +++ b/target/linux/ipq806x/patches-4.19/0049-PM-OPP-Support-adjusting-OPP-voltages-at-runtime.patch @@ -27,7 +27,7 @@ Signed-off-by: Georgi Djakov --- a/drivers/opp/core.c +++ b/drivers/opp/core.c -@@ -1605,6 +1605,83 @@ put_table: +@@ -1625,6 +1625,83 @@ put_table: } /** diff --git a/target/linux/ipq806x/patches-4.19/0051-PM-OPP-Add-a-helper-to-get-an-opp-regulator-for-devi.patch b/target/linux/ipq806x/patches-4.19/0051-PM-OPP-Add-a-helper-to-get-an-opp-regulator-for-devi.patch index 0edc6ac75..4312db905 100644 --- a/target/linux/ipq806x/patches-4.19/0051-PM-OPP-Add-a-helper-to-get-an-opp-regulator-for-devi.patch +++ b/target/linux/ipq806x/patches-4.19/0051-PM-OPP-Add-a-helper-to-get-an-opp-regulator-for-devi.patch @@ -12,7 +12,7 @@ Signed-off-by: Georgi Djakov --- a/drivers/opp/core.c +++ b/drivers/opp/core.c -@@ -126,6 +126,27 @@ unsigned long dev_pm_opp_get_freq(struct +@@ -125,6 +125,27 @@ unsigned long dev_pm_opp_get_freq(struct } EXPORT_SYMBOL_GPL(dev_pm_opp_get_freq); diff --git a/target/linux/ipq806x/patches-4.19/0052-PM-OPP-Update-the-voltage-tolerance-when-adjusting-t.patch b/target/linux/ipq806x/patches-4.19/0052-PM-OPP-Update-the-voltage-tolerance-when-adjusting-t.patch index 059e332e5..2882f505d 100644 --- a/target/linux/ipq806x/patches-4.19/0052-PM-OPP-Update-the-voltage-tolerance-when-adjusting-t.patch +++ b/target/linux/ipq806x/patches-4.19/0052-PM-OPP-Update-the-voltage-tolerance-when-adjusting-t.patch @@ -17,7 +17,7 @@ Signed-off-by: Georgi Djakov --- a/drivers/opp/core.c +++ b/drivers/opp/core.c -@@ -1649,6 +1649,7 @@ int dev_pm_opp_adjust_voltage(struct dev +@@ -1669,6 +1669,7 @@ int dev_pm_opp_adjust_voltage(struct dev struct opp_table *opp_table; struct dev_pm_opp *new_opp, *tmp_opp, *opp = ERR_PTR(-ENODEV); int r = 0; @@ -25,7 +25,7 @@ Signed-off-by: Georgi Djakov /* keep the node allocated */ new_opp = kmalloc(sizeof(*new_opp), GFP_KERNEL); -@@ -1685,6 +1686,10 @@ int dev_pm_opp_adjust_voltage(struct dev +@@ -1705,6 +1706,10 @@ int dev_pm_opp_adjust_voltage(struct dev /* plug in new node */ new_opp->supplies[0].u_volt = u_volt; diff --git a/target/linux/ipq806x/patches-4.19/0054-cpufreq-dt-Handle-OPP-voltage-adjust-events.patch b/target/linux/ipq806x/patches-4.19/0054-cpufreq-dt-Handle-OPP-voltage-adjust-events.patch index e85b8c593..5a4232ded 100644 --- a/target/linux/ipq806x/patches-4.19/0054-cpufreq-dt-Handle-OPP-voltage-adjust-events.patch +++ b/target/linux/ipq806x/patches-4.19/0054-cpufreq-dt-Handle-OPP-voltage-adjust-events.patch @@ -35,7 +35,7 @@ Signed-off-by: Georgi Djakov bool have_static_opps; }; -@@ -47,12 +47,15 @@ static int set_target(struct cpufreq_pol +@@ -47,12 +50,15 @@ static int set_target(struct cpufreq_pol unsigned long freq = policy->freq_table[index].frequency; int ret; @@ -51,7 +51,7 @@ Signed-off-by: Georgi Djakov return ret; } -@@ -87,6 +97,39 @@ node_put: +@@ -95,6 +101,39 @@ node_put: return name; } @@ -91,7 +91,7 @@ Signed-off-by: Georgi Djakov static int resources_available(void) { struct device *cpu_dev; -@@ -153,6 +196,7 @@ static int cpufreq_init(struct cpufreq_p +@@ -161,6 +200,7 @@ static int cpufreq_init(struct cpufreq_p bool fallback = false; const char *name; int ret; @@ -99,7 +99,7 @@ Signed-off-by: Georgi Djakov cpu_dev = get_cpu_device(policy->cpu); if (!cpu_dev) { -@@ -246,10 +290,13 @@ static int cpufreq_init(struct cpufreq_p +@@ -254,10 +294,13 @@ static int cpufreq_init(struct cpufreq_p __func__, ret); } @@ -114,7 +114,7 @@ Signed-off-by: Georgi Djakov } priv->cpu_dev = cpu_dev; -@@ -285,6 +332,8 @@ static int cpufreq_init(struct cpufreq_p +@@ -287,6 +330,8 @@ static int cpufreq_init(struct cpufreq_p out_free_cpufreq_table: dev_pm_opp_free_cpufreq_table(cpu_dev, &freq_table); diff --git a/target/linux/ipq806x/patches-4.19/0056-cpufreq-dt-Add-missing-rcu-locks.patch b/target/linux/ipq806x/patches-4.19/0056-cpufreq-dt-Add-missing-rcu-locks.patch index d9d76e409..4925efabe 100644 --- a/target/linux/ipq806x/patches-4.19/0056-cpufreq-dt-Add-missing-rcu-locks.patch +++ b/target/linux/ipq806x/patches-4.19/0056-cpufreq-dt-Add-missing-rcu-locks.patch @@ -10,7 +10,7 @@ Signed-off-by: Georgi Djakov --- a/drivers/cpufreq/cpufreq-dt.c +++ b/drivers/cpufreq/cpufreq-dt.c -@@ -144,8 +144,10 @@ static int opp_notifier(struct notifier_ +@@ -146,8 +146,10 @@ static int opp_notifier(struct notifier_ ret = PTR_ERR(cpu_reg); goto out; } diff --git a/target/linux/ipq806x/patches-4.19/0060-HACK-arch-arm-force-ZRELADDR-on-arch-qcom.patch b/target/linux/ipq806x/patches-4.19/0060-HACK-arch-arm-force-ZRELADDR-on-arch-qcom.patch index f810f6ac4..543f18ce4 100644 --- a/target/linux/ipq806x/patches-4.19/0060-HACK-arch-arm-force-ZRELADDR-on-arch-qcom.patch +++ b/target/linux/ipq806x/patches-4.19/0060-HACK-arch-arm-force-ZRELADDR-on-arch-qcom.patch @@ -33,7 +33,7 @@ Signed-off-by: Mathieu Olivari --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig -@@ -341,7 +341,7 @@ config ARCH_MULTIPLATFORM +@@ -331,7 +331,7 @@ config ARCH_MULTIPLATFORM depends on MMU select ARM_HAS_SG_CHAIN select ARM_PATCH_PHYS_VIRT diff --git a/target/linux/ipq806x/patches-4.19/0063-1-ipq806x-tsens-driver.patch b/target/linux/ipq806x/patches-4.19/0063-1-ipq806x-tsens-driver.patch index 89d9ba8d5..9ee88533a 100644 --- a/target/linux/ipq806x/patches-4.19/0063-1-ipq806x-tsens-driver.patch +++ b/target/linux/ipq806x/patches-4.19/0063-1-ipq806x-tsens-driver.patch @@ -612,4 +612,3 @@ Signed-off-by: Rajith Cherian /* TSENS v2 targets */ extern const struct tsens_data data_8996, data_tsens_v2; - diff --git a/target/linux/ipq806x/patches-4.19/0063-2-tsens-support-configurable-interrupts.patch b/target/linux/ipq806x/patches-4.19/0063-2-tsens-support-configurable-interrupts.patch index af21e4fb3..62e26cbee 100644 --- a/target/linux/ipq806x/patches-4.19/0063-2-tsens-support-configurable-interrupts.patch +++ b/target/linux/ipq806x/patches-4.19/0063-2-tsens-support-configurable-interrupts.patch @@ -23,7 +23,7 @@ Signed-off-by: Rajith Cherian --- a/drivers/thermal/of-thermal.c +++ b/drivers/thermal/of-thermal.c -@@ -95,7 +95,7 @@ static int of_thermal_get_temp(struct th +@@ -77,7 +77,7 @@ static int of_thermal_get_temp(struct th { struct __thermal_zone *data = tz->devdata; @@ -32,7 +32,7 @@ Signed-off-by: Rajith Cherian return -EINVAL; return data->ops->get_temp(data->sensor_data, temp); -@@ -106,7 +106,8 @@ static int of_thermal_set_trips(struct t +@@ -88,7 +88,8 @@ static int of_thermal_set_trips(struct t { struct __thermal_zone *data = tz->devdata; @@ -42,7 +42,7 @@ Signed-off-by: Rajith Cherian return -EINVAL; return data->ops->set_trips(data->sensor_data, low, high); -@@ -192,6 +193,9 @@ static int of_thermal_set_emul_temp(stru +@@ -174,6 +175,9 @@ static int of_thermal_set_emul_temp(stru { struct __thermal_zone *data = tz->devdata; @@ -52,7 +52,7 @@ Signed-off-by: Rajith Cherian return data->ops->set_emul_temp(data->sensor_data, temp); } -@@ -200,7 +204,7 @@ static int of_thermal_get_trend(struct t +@@ -182,7 +186,7 @@ static int of_thermal_get_trend(struct t { struct __thermal_zone *data = tz->devdata; @@ -61,7 +61,7 @@ Signed-off-by: Rajith Cherian return -EINVAL; return data->ops->get_trend(data->sensor_data, trip, trend); -@@ -289,7 +293,9 @@ static int of_thermal_set_mode(struct th +@@ -271,7 +275,9 @@ static int of_thermal_set_mode(struct th mutex_unlock(&tz->lock); data->mode = mode; @@ -72,7 +72,7 @@ Signed-off-by: Rajith Cherian return 0; } -@@ -299,7 +305,8 @@ static int of_thermal_get_trip_type(stru +@@ -281,7 +287,8 @@ static int of_thermal_get_trip_type(stru { struct __thermal_zone *data = tz->devdata; @@ -82,7 +82,7 @@ Signed-off-by: Rajith Cherian return -EDOM; *type = data->trips[trip].type; -@@ -307,12 +314,39 @@ static int of_thermal_get_trip_type(stru +@@ -289,12 +296,39 @@ static int of_thermal_get_trip_type(stru return 0; } @@ -123,7 +123,7 @@ Signed-off-by: Rajith Cherian return -EDOM; *temp = data->trips[trip].temperature; -@@ -325,7 +359,8 @@ static int of_thermal_set_trip_temp(stru +@@ -307,7 +341,8 @@ static int of_thermal_set_trip_temp(stru { struct __thermal_zone *data = tz->devdata; @@ -133,7 +133,7 @@ Signed-off-by: Rajith Cherian return -EDOM; if (data->ops->set_trip_temp) { -@@ -347,7 +382,8 @@ static int of_thermal_get_trip_hyst(stru +@@ -329,7 +364,8 @@ static int of_thermal_get_trip_hyst(stru { struct __thermal_zone *data = tz->devdata; @@ -143,7 +143,7 @@ Signed-off-by: Rajith Cherian return -EDOM; *hyst = data->trips[trip].hysteresis; -@@ -360,7 +396,8 @@ static int of_thermal_set_trip_hyst(stru +@@ -342,7 +378,8 @@ static int of_thermal_set_trip_hyst(stru { struct __thermal_zone *data = tz->devdata; @@ -153,7 +153,7 @@ Signed-off-by: Rajith Cherian return -EDOM; /* thermal framework should take care of data->mask & (1 << trip) */ -@@ -435,6 +472,9 @@ thermal_zone_of_add_sensor(struct device +@@ -417,6 +454,9 @@ thermal_zone_of_add_sensor(struct device if (ops->set_emul_temp) tzd->ops->set_emul_temp = of_thermal_set_emul_temp; @@ -163,7 +163,7 @@ Signed-off-by: Rajith Cherian mutex_unlock(&tzd->lock); return tzd; -@@ -729,7 +769,10 @@ static const char * const trip_types[] = +@@ -711,7 +751,10 @@ static const char * const trip_types[] = [THERMAL_TRIP_ACTIVE] = "active", [THERMAL_TRIP_PASSIVE] = "passive", [THERMAL_TRIP_HOT] = "hot", @@ -243,7 +243,7 @@ Signed-off-by: Rajith Cherian static SIMPLE_DEV_PM_OPS(tsens_pm_ops, tsens_suspend, tsens_resume); static const struct of_device_id tsens_table[] = { -@@ -83,6 +109,8 @@ MODULE_DEVICE_TABLE(of, tsens_table); +@@ -86,6 +112,8 @@ MODULE_DEVICE_TABLE(of, tsens_table); static const struct thermal_zone_of_device_ops tsens_of_ops = { .get_temp = tsens_get_temp, .get_trend = tsens_get_trend, @@ -252,18 +252,18 @@ Signed-off-by: Rajith Cherian }; static int tsens_register(struct tsens_device *tmdev) -@@ -131,7 +159,7 @@ static int tsens_probe(struct platform_d +@@ -134,7 +162,7 @@ static int tsens_probe(struct platform_d if (id) data = id->data; else - data = &data_8960; + return -EINVAL; - if (data->num_sensors <= 0) { - dev_err(dev, "invalid number of sensors\n"); -@@ -146,6 +174,9 @@ static int tsens_probe(struct platform_d + num_sensors = data->num_sensors; + +@@ -155,6 +183,9 @@ static int tsens_probe(struct platform_d tmdev->dev = dev; - tmdev->num_sensors = data->num_sensors; + tmdev->num_sensors = num_sensors; tmdev->ops = data->ops; + + tmdev->tsens_irq = platform_get_irq(pdev, 0); @@ -321,7 +321,7 @@ Signed-off-by: Rajith Cherian --- a/drivers/thermal/thermal_sysfs.c +++ b/drivers/thermal/thermal_sysfs.c -@@ -115,12 +115,48 @@ trip_point_type_show(struct device *dev, +@@ -113,12 +113,48 @@ trip_point_type_show(struct device *dev, return sprintf(buf, "passive\n"); case THERMAL_TRIP_ACTIVE: return sprintf(buf, "active\n"); @@ -370,7 +370,7 @@ Signed-off-by: Rajith Cherian trip_point_temp_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { -@@ -562,6 +598,12 @@ static int create_trip_attrs(struct ther +@@ -559,6 +595,12 @@ static int create_trip_attrs(struct ther tz->trip_type_attrs[indx].attr.show = trip_point_type_show; attrs[indx] = &tz->trip_type_attrs[indx].attr.attr; @@ -385,7 +385,7 @@ Signed-off-by: Rajith Cherian "trip_point_%d_temp", indx); --- a/include/linux/thermal.h +++ b/include/linux/thermal.h -@@ -78,11 +78,19 @@ enum thermal_device_mode { +@@ -63,11 +63,19 @@ enum thermal_device_mode { THERMAL_DEVICE_ENABLED, }; @@ -405,7 +405,7 @@ Signed-off-by: Rajith Cherian }; enum thermal_trend { -@@ -120,6 +128,8 @@ struct thermal_zone_device_ops { +@@ -105,6 +113,8 @@ struct thermal_zone_device_ops { enum thermal_trip_type *); int (*get_trip_temp) (struct thermal_zone_device *, int, int *); int (*set_trip_temp) (struct thermal_zone_device *, int, int); @@ -414,7 +414,7 @@ Signed-off-by: Rajith Cherian int (*get_trip_hyst) (struct thermal_zone_device *, int, int *); int (*set_trip_hyst) (struct thermal_zone_device *, int, int); int (*get_crit_temp) (struct thermal_zone_device *, int *); -@@ -363,6 +373,8 @@ struct thermal_genl_event { +@@ -349,6 +359,8 @@ struct thermal_genl_event { * temperature. * @set_trip_temp: a pointer to a function that sets the trip temperature on * hardware. @@ -423,7 +423,7 @@ Signed-off-by: Rajith Cherian */ struct thermal_zone_of_device_ops { int (*get_temp)(void *, int *); -@@ -370,6 +382,8 @@ struct thermal_zone_of_device_ops { +@@ -356,6 +368,8 @@ struct thermal_zone_of_device_ops { int (*set_trips)(void *, int, int); int (*set_emul_temp)(void *, int); int (*set_trip_temp)(void *, int, int); diff --git a/target/linux/ipq806x/patches-4.19/0063-3-tsens-fix-kernel-4_19.patch b/target/linux/ipq806x/patches-4.19/0063-3-tsens-fix-kernel-4_19.patch new file mode 100644 index 000000000..a87069290 --- /dev/null +++ b/target/linux/ipq806x/patches-4.19/0063-3-tsens-fix-kernel-4_19.patch @@ -0,0 +1,20 @@ +--- a/drivers/thermal/qcom/tsens-common.c ++++ b/drivers/thermal/qcom/tsens-common.c +@@ -128,6 +128,7 @@ int __init init_common(struct tsens_devi + { + void __iomem *base; + struct resource *res; ++ resource_size_t size; + struct platform_device *op = of_find_device_by_node(tmdev->dev->of_node); + + if (!op) +@@ -142,7 +143,8 @@ int __init init_common(struct tsens_devi + } + + res = platform_get_resource(op, IORESOURCE_MEM, 0); +- base = devm_ioremap_resource(&op->dev, res); ++ size = resource_size(res); ++ base = devm_ioremap(&op->dev, res->start, size); + if (IS_ERR(base)) + return PTR_ERR(base); + diff --git a/target/linux/ipq806x/patches-4.19/0064-clk-clk-rpm-fixes.patch b/target/linux/ipq806x/patches-4.19/0064-clk-clk-rpm-fixes.patch index 306474ab0..72217de12 100644 --- a/target/linux/ipq806x/patches-4.19/0064-clk-clk-rpm-fixes.patch +++ b/target/linux/ipq806x/patches-4.19/0064-clk-clk-rpm-fixes.patch @@ -12,7 +12,7 @@ Signed-off-by: John Crispin --- a/Documentation/devicetree/bindings/clock/qcom,rpmcc.txt +++ b/Documentation/devicetree/bindings/clock/qcom,rpmcc.txt -@@ -14,6 +14,7 @@ Required properties : +@@ -16,6 +16,7 @@ Required properties : "qcom,rpmcc-msm8974", "qcom,rpmcc" "qcom,rpmcc-apq8064", "qcom,rpmcc" "qcom,rpmcc-msm8996", "qcom,rpmcc" @@ -22,7 +22,7 @@ Signed-off-by: John Crispin --- a/include/dt-bindings/clock/qcom,rpmcc.h +++ b/include/dt-bindings/clock/qcom,rpmcc.h -@@ -37,6 +37,10 @@ +@@ -45,6 +45,10 @@ #define RPM_XO_A0 27 #define RPM_XO_A1 28 #define RPM_XO_A2 29 diff --git a/target/linux/ipq806x/patches-4.19/0065-arm-override-compiler-flags.patch b/target/linux/ipq806x/patches-4.19/0065-arm-override-compiler-flags.patch index 0d2a4274c..6f1cdcf4d 100644 --- a/target/linux/ipq806x/patches-4.19/0065-arm-override-compiler-flags.patch +++ b/target/linux/ipq806x/patches-4.19/0065-arm-override-compiler-flags.patch @@ -10,7 +10,7 @@ Signed-off-by: John Crispin --- a/arch/arm/Makefile +++ b/arch/arm/Makefile -@@ -67,7 +67,7 @@ KBUILD_CFLAGS += $(call cc-option,-fno-i +@@ -64,7 +64,7 @@ KBUILD_CFLAGS += $(call cc-option,-fno-i # macro, but instead defines a whole series of macros which makes # testing for a specific architecture or later rather impossible. arch-$(CONFIG_CPU_32v7M) =-D__LINUX_ARM_ARCH__=7 -march=armv7-m -Wa,-march=armv7-m diff --git a/target/linux/ipq806x/patches-4.19/0067-generic-Mangle-bootloader-s-kernel-arguments.patch b/target/linux/ipq806x/patches-4.19/0067-generic-Mangle-bootloader-s-kernel-arguments.patch index c7123eac5..b7b9c991e 100644 --- a/target/linux/ipq806x/patches-4.19/0067-generic-Mangle-bootloader-s-kernel-arguments.patch +++ b/target/linux/ipq806x/patches-4.19/0067-generic-Mangle-bootloader-s-kernel-arguments.patch @@ -22,7 +22,7 @@ Signed-off-by: Adrian Panella --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig -@@ -1938,6 +1938,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN +@@ -1926,6 +1926,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN The command-line arguments provided by the boot loader will be appended to the the device tree bootargs property. @@ -157,9 +157,9 @@ Signed-off-by: Adrian Panella } --- a/init/main.c +++ b/init/main.c -@@ -95,6 +95,10 @@ - #include - #include +@@ -102,6 +102,10 @@ + #define CREATE_TRACE_POINTS + #include +#if defined(CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_MANGLE) +#include @@ -168,10 +168,10 @@ Signed-off-by: Adrian Panella static int kernel_init(void *); extern void init_IRQ(void); -@@ -574,6 +578,18 @@ asmlinkage __visible void __init start_k - page_alloc_init(); - +@@ -593,6 +597,18 @@ asmlinkage __visible void __init start_k pr_notice("Kernel command line: %s\n", boot_command_line); + /* parameters may set static keys */ + jump_label_init(); + +#if defined(CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_MANGLE) + //Show bootloader's original command line for reference diff --git a/target/linux/ipq806x/patches-4.19/0069-arm-boot-add-dts-files.patch b/target/linux/ipq806x/patches-4.19/0069-arm-boot-add-dts-files.patch index e11378b42..77ce4c424 100644 --- a/target/linux/ipq806x/patches-4.19/0069-arm-boot-add-dts-files.patch +++ b/target/linux/ipq806x/patches-4.19/0069-arm-boot-add-dts-files.patch @@ -10,9 +10,9 @@ Signed-off-by: John Crispin --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -699,6 +699,18 @@ dtb-$(CONFIG_ARCH_QCOM) += \ - qcom-apq8084-mtp.dtb \ - qcom-ipq4019-ap.dk01.1-c1.dtb \ +@@ -791,6 +791,18 @@ dtb-$(CONFIG_ARCH_QCOM) += \ + qcom-ipq4019-ap.dk07.1-c1.dtb \ + qcom-ipq4019-ap.dk07.1-c2.dtb \ qcom-ipq8064-ap148.dtb \ + qcom-ipq8064-c2600.dtb \ + qcom-ipq8064-d7800.dtb \ @@ -28,4 +28,4 @@ Signed-off-by: John Crispin + qcom-ipq8065-r7800.dtb \ qcom-msm8660-surf.dtb \ qcom-msm8960-cdp.dtb \ - qcom-msm8974-lge-nexus5-hammerhead.dtb \ + qcom-msm8974-fairphone-fp2.dtb \ diff --git a/target/linux/ipq806x/patches-4.19/0071-1-PCI-qcom-Fixed-IPQ806x-specific-clocks.patch b/target/linux/ipq806x/patches-4.19/0071-1-PCI-qcom-Fixed-IPQ806x-specific-clocks.patch index 7064da973..3a3e0a000 100644 --- a/target/linux/ipq806x/patches-4.19/0071-1-PCI-qcom-Fixed-IPQ806x-specific-clocks.patch +++ b/target/linux/ipq806x/patches-4.19/0071-1-PCI-qcom-Fixed-IPQ806x-specific-clocks.patch @@ -9,7 +9,7 @@ Signed-off-by: Sham Muthayyan --- a/drivers/pci/controller/dwc/pcie-qcom.c +++ b/drivers/pci/controller/dwc/pcie-qcom.c -@@ -91,6 +91,8 @@ struct qcom_pcie_resources_2_1_0 { +@@ -85,6 +85,8 @@ struct qcom_pcie_resources_2_1_0 { struct clk *iface_clk; struct clk *core_clk; struct clk *phy_clk; @@ -18,7 +18,7 @@ Signed-off-by: Sham Muthayyan struct reset_control *pci_reset; struct reset_control *axi_reset; struct reset_control *ahb_reset; -@@ -249,6 +251,14 @@ static int qcom_pcie_get_resources_2_1_0 +@@ -235,6 +237,14 @@ static int qcom_pcie_get_resources_2_1_0 if (IS_ERR(res->phy_clk)) return PTR_ERR(res->phy_clk); @@ -33,7 +33,7 @@ Signed-off-by: Sham Muthayyan res->pci_reset = devm_reset_control_get_exclusive(dev, "pci"); if (IS_ERR(res->pci_reset)) return PTR_ERR(res->pci_reset); -@@ -281,6 +291,8 @@ static void qcom_pcie_deinit_2_1_0(struc +@@ -267,6 +277,8 @@ static void qcom_pcie_deinit_2_1_0(struc clk_disable_unprepare(res->iface_clk); clk_disable_unprepare(res->core_clk); clk_disable_unprepare(res->phy_clk); @@ -42,7 +42,7 @@ Signed-off-by: Sham Muthayyan regulator_bulk_disable(ARRAY_SIZE(res->supplies), res->supplies); } -@@ -324,16 +336,28 @@ static int qcom_pcie_init_2_1_0(struct q +@@ -296,16 +308,28 @@ static int qcom_pcie_init_2_1_0(struct q goto err_assert_ahb; } @@ -74,7 +74,7 @@ Signed-off-by: Sham Muthayyan } ret = reset_control_deassert(res->ahb_reset); -@@ -389,10 +413,14 @@ static int qcom_pcie_init_2_1_0(struct q +@@ -361,10 +385,14 @@ static int qcom_pcie_init_2_1_0(struct q return 0; err_deassert_ahb: @@ -90,4 +90,4 @@ Signed-off-by: Sham Muthayyan +err_clk_core: clk_disable_unprepare(res->iface_clk); err_assert_ahb: - regulator_disable(res->vdda_phy); + regulator_bulk_disable(ARRAY_SIZE(res->supplies), res->supplies); diff --git a/target/linux/ipq806x/patches-4.19/0071-2-PCI-qcom-Fixed-IPQ806x-PCIE-reset-changes.patch b/target/linux/ipq806x/patches-4.19/0071-2-PCI-qcom-Fixed-IPQ806x-PCIE-reset-changes.patch index 66357d273..5bd865a42 100644 --- a/target/linux/ipq806x/patches-4.19/0071-2-PCI-qcom-Fixed-IPQ806x-PCIE-reset-changes.patch +++ b/target/linux/ipq806x/patches-4.19/0071-2-PCI-qcom-Fixed-IPQ806x-PCIE-reset-changes.patch @@ -9,7 +9,7 @@ Signed-off-by: Sham Muthayyan --- a/drivers/pci/controller/dwc/pcie-qcom.c +++ b/drivers/pci/controller/dwc/pcie-qcom.c -@@ -98,6 +98,7 @@ struct qcom_pcie_resources_2_1_0 { +@@ -92,6 +92,7 @@ struct qcom_pcie_resources_2_1_0 { struct reset_control *ahb_reset; struct reset_control *por_reset; struct reset_control *phy_reset; @@ -17,7 +17,7 @@ Signed-off-by: Sham Muthayyan struct regulator_bulk_data supplies[QCOM_PCIE_2_1_0_MAX_SUPPLY]; }; -@@ -275,6 +276,10 @@ static int qcom_pcie_get_resources_2_1_0 +@@ -261,6 +262,10 @@ static int qcom_pcie_get_resources_2_1_0 if (IS_ERR(res->por_reset)) return PTR_ERR(res->por_reset); @@ -28,7 +28,7 @@ Signed-off-by: Sham Muthayyan res->phy_reset = devm_reset_control_get_exclusive(dev, "phy"); return PTR_ERR_OR_ZERO(res->phy_reset); } -@@ -288,6 +293,7 @@ static void qcom_pcie_deinit_2_1_0(struc +@@ -274,6 +279,7 @@ static void qcom_pcie_deinit_2_1_0(struc reset_control_assert(res->ahb_reset); reset_control_assert(res->por_reset); reset_control_assert(res->pci_reset); @@ -36,10 +36,10 @@ Signed-off-by: Sham Muthayyan clk_disable_unprepare(res->iface_clk); clk_disable_unprepare(res->core_clk); clk_disable_unprepare(res->phy_clk); -@@ -306,6 +312,12 @@ static int qcom_pcie_init_2_1_0(struct q +@@ -290,15 +296,21 @@ static int qcom_pcie_init_2_1_0(struct q u32 val; int ret; - + + ret = reset_control_assert(res->ahb_reset); + if (ret) { + dev_err(dev, "cannot assert ahb reset\n"); @@ -49,7 +49,6 @@ Signed-off-by: Sham Muthayyan ret = regulator_bulk_enable(ARRAY_SIZE(res->supplies), res->supplies); if (ret < 0) { dev_err(dev, "cannot enable regulators\n"); -@@ -324,9 +336,9 @@ static int qcom_pcie_init_2_1_0(struct q return ret; } diff --git a/target/linux/ipq806x/patches-4.19/0071-3-PCI-qcom-Fixed-IPQ806x-PCIE-init-changes.patch b/target/linux/ipq806x/patches-4.19/0071-3-PCI-qcom-Fixed-IPQ806x-PCIE-init-changes.patch index 01c740ce1..dde8fbaa7 100644 --- a/target/linux/ipq806x/patches-4.19/0071-3-PCI-qcom-Fixed-IPQ806x-PCIE-init-changes.patch +++ b/target/linux/ipq806x/patches-4.19/0071-3-PCI-qcom-Fixed-IPQ806x-PCIE-init-changes.patch @@ -9,7 +9,7 @@ Signed-off-by: Sham Muthayyan --- a/drivers/pci/controller/dwc/pcie-qcom.c +++ b/drivers/pci/controller/dwc/pcie-qcom.c -@@ -52,7 +52,13 @@ +@@ -45,7 +45,13 @@ #define PCIE_CAP_CPL_TIMEOUT_DISABLE 0x10 #define PCIE20_PARF_PHY_CTRL 0x40 @@ -23,7 +23,7 @@ Signed-off-by: Sham Muthayyan #define PCIE20_PARF_DBI_BASE_ADDR 0x168 #define PCIE20_PARF_SLV_ADDR_SPACE_SIZE 0x16C #define PCIE20_PARF_MHI_CLOCK_RESET_CTRL 0x174 -@@ -83,6 +89,18 @@ +@@ -76,6 +82,18 @@ #define DBI_RO_WR_EN 1 #define PERST_DELAY_US 1000 @@ -42,15 +42,15 @@ Signed-off-by: Sham Muthayyan #define PCIE20_v3_PARF_SLV_ADDR_SPACE_SIZE 0x358 #define SLV_ADDR_SPACE_SZ 0x10000000 -@@ -102,6 +120,7 @@ struct qcom_pcie_resources_2_1_0 { - struct reset_control *por_reset; +@@ -94,6 +112,7 @@ struct qcom_pcie_resources_2_1_0 { struct reset_control *phy_reset; + struct reset_control *ext_reset; struct regulator_bulk_data supplies[QCOM_PCIE_2_1_0_MAX_SUPPLY]; + uint8_t phy_tx0_term_offset; }; struct qcom_pcie_resources_1_0_0 { -@@ -179,6 +198,16 @@ struct qcom_pcie { +@@ -173,6 +192,16 @@ struct qcom_pcie { #define to_qcom_pcie(x) dev_get_drvdata((x)->dev) @@ -67,7 +67,7 @@ Signed-off-by: Sham Muthayyan static void qcom_ep_reset_assert(struct qcom_pcie *pcie) { gpiod_set_value_cansleep(pcie->reset, 1); -@@ -280,6 +309,10 @@ static int qcom_pcie_get_resources_2_1_0 +@@ -266,6 +295,10 @@ static int qcom_pcie_get_resources_2_1_0 if (IS_ERR(res->ext_reset)) return PTR_ERR(res->ext_reset); @@ -78,7 +78,7 @@ Signed-off-by: Sham Muthayyan res->phy_reset = devm_reset_control_get_exclusive(dev, "phy"); return PTR_ERR_OR_ZERO(res->phy_reset); } -@@ -309,7 +342,6 @@ static int qcom_pcie_init_2_1_0(struct q +@@ -293,7 +326,6 @@ static int qcom_pcie_init_2_1_0(struct q struct qcom_pcie_resources_2_1_0 *res = &pcie->res.v2_1_0; struct dw_pcie *pci = pcie->pci; struct device *dev = pci->dev; @@ -86,7 +86,7 @@ Signed-off-by: Sham Muthayyan int ret; ret = reset_control_assert(res->ahb_reset); -@@ -378,15 +410,26 @@ static int qcom_pcie_init_2_1_0(struct q +@@ -350,15 +382,26 @@ static int qcom_pcie_init_2_1_0(struct q goto err_deassert_ahb; } diff --git a/target/linux/ipq806x/patches-4.19/0071-5-PCI-qcom-Programming-the-PCIE-iATU-for-IPQ806x.patch b/target/linux/ipq806x/patches-4.19/0071-5-PCI-qcom-Programming-the-PCIE-iATU-for-IPQ806x.patch index be56f74aa..f6ebe0c0a 100644 --- a/target/linux/ipq806x/patches-4.19/0071-5-PCI-qcom-Programming-the-PCIE-iATU-for-IPQ806x.patch +++ b/target/linux/ipq806x/patches-4.19/0071-5-PCI-qcom-Programming-the-PCIE-iATU-for-IPQ806x.patch @@ -11,7 +11,7 @@ Signed-off-by: Sham Muthayyan --- a/drivers/pci/controller/dwc/pcie-qcom.c +++ b/drivers/pci/controller/dwc/pcie-qcom.c -@@ -83,6 +83,30 @@ +@@ -76,6 +76,30 @@ #define PCIE20_CAP_LINK_1 (PCIE20_CAP + 0x14) #define PCIE_CAP_LINK1_VAL 0x2FD7F @@ -42,7 +42,7 @@ Signed-off-by: Sham Muthayyan #define PCIE20_PARF_Q2A_FLUSH 0x1AC #define PCIE20_MISC_CONTROL_1_REG 0x8BC -@@ -251,6 +275,57 @@ static void qcom_pcie_2_1_0_ltssm_enable +@@ -240,6 +264,57 @@ static void qcom_pcie_2_1_0_ltssm_enable writel(val, pcie->elbi + PCIE20_ELBI_SYS_CTRL); } @@ -100,7 +100,7 @@ Signed-off-by: Sham Muthayyan static int qcom_pcie_get_resources_2_1_0(struct qcom_pcie *pcie) { struct qcom_pcie_resources_2_1_0 *res = &pcie->res.v2_1_0; -@@ -465,6 +540,9 @@ static int qcom_pcie_init_2_1_0(struct q +@@ -437,6 +512,9 @@ static int qcom_pcie_init_2_1_0(struct q writel(CFG_BRIDGE_SB_INIT, pci->dbi_base + PCIE20_AXI_MSTR_RESP_COMP_CTRL1); diff --git a/target/linux/ipq806x/patches-4.19/0071-6-PCI-qcom-Force-GEN1-support.patch b/target/linux/ipq806x/patches-4.19/0071-6-PCI-qcom-Force-GEN1-support.patch index 0cf442aa0..c1461e68c 100644 --- a/target/linux/ipq806x/patches-4.19/0071-6-PCI-qcom-Force-GEN1-support.patch +++ b/target/linux/ipq806x/patches-4.19/0071-6-PCI-qcom-Force-GEN1-support.patch @@ -9,7 +9,7 @@ Signed-off-by: Sham Muthayyan --- a/drivers/pci/controller/dwc/pcie-qcom.c +++ b/drivers/pci/controller/dwc/pcie-qcom.c -@@ -129,6 +129,8 @@ +@@ -122,6 +122,8 @@ #define PCIE20_v3_PARF_SLV_ADDR_SPACE_SIZE 0x358 #define SLV_ADDR_SPACE_SZ 0x10000000 @@ -18,7 +18,7 @@ Signed-off-by: Sham Muthayyan #define QCOM_PCIE_2_1_0_MAX_SUPPLY 3 struct qcom_pcie_resources_2_1_0 { struct clk *iface_clk; -@@ -218,6 +220,7 @@ struct qcom_pcie { +@@ -212,6 +214,7 @@ struct qcom_pcie { struct phy *phy; struct gpio_desc *reset; const struct qcom_pcie_ops *ops; @@ -26,7 +26,7 @@ Signed-off-by: Sham Muthayyan }; #define to_qcom_pcie(x) dev_get_drvdata((x)->dev) -@@ -532,6 +535,11 @@ static int qcom_pcie_init_2_1_0(struct q +@@ -504,6 +507,11 @@ static int qcom_pcie_init_2_1_0(struct q /* wait for clock acquisition */ usleep_range(1000, 1500); @@ -38,7 +38,7 @@ Signed-off-by: Sham Muthayyan /* Set the Max TLP size to 2K, instead of using default of 4K */ -@@ -1382,6 +1390,8 @@ static int qcom_pcie_probe(struct platfo +@@ -1367,6 +1375,8 @@ static int qcom_pcie_probe(struct platfo struct dw_pcie *pci; struct qcom_pcie *pcie; int ret; @@ -47,13 +47,13 @@ Signed-off-by: Sham Muthayyan pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL); if (!pcie) -@@ -1403,6 +1413,9 @@ static int qcom_pcie_probe(struct platfo - if (IS_ERR(pcie->reset)) - return PTR_ERR(pcie->reset); +@@ -1397,6 +1407,9 @@ static int qcom_pcie_probe(struct platfo + goto err_pm_runtime_put; + } + of_property_read_u32(np, "force_gen1", &force_gen1); + pcie->force_gen1 = force_gen1; + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "parf"); pcie->parf = devm_ioremap_resource(dev, res); - if (IS_ERR(pcie->parf)) + if (IS_ERR(pcie->parf)) { diff --git a/target/linux/ipq806x/patches-4.19/0071-7-pcie-Set-PCIE-MRRS-and-MPS-to-256B.patch b/target/linux/ipq806x/patches-4.19/0071-7-pcie-Set-PCIE-MRRS-and-MPS-to-256B.patch index e2c1f0512..e7b5b6f9a 100644 --- a/target/linux/ipq806x/patches-4.19/0071-7-pcie-Set-PCIE-MRRS-and-MPS-to-256B.patch +++ b/target/linux/ipq806x/patches-4.19/0071-7-pcie-Set-PCIE-MRRS-and-MPS-to-256B.patch @@ -16,7 +16,7 @@ Signed-off-by: Gokul Sriram Palanisamy --- a/drivers/pci/controller/dwc/pcie-qcom.c +++ b/drivers/pci/controller/dwc/pcie-qcom.c -@@ -131,6 +131,14 @@ +@@ -124,6 +124,14 @@ #define PCIE20_LNK_CONTROL2_LINK_STATUS2 0xA0 @@ -31,8 +31,8 @@ Signed-off-by: Gokul Sriram Palanisamy #define QCOM_PCIE_2_1_0_MAX_SUPPLY 3 struct qcom_pcie_resources_2_1_0 { struct clk *iface_clk; -@@ -1472,6 +1480,35 @@ static int qcom_pcie_probe(struct platfo - return 0; +@@ -1475,6 +1483,35 @@ err_pm_runtime_put: + return ret; } +static void qcom_pcie_fixup_final(struct pci_dev *dev) diff --git a/target/linux/ipq806x/patches-4.19/0071-8-pcie-qcom-Fixed-pcie_phy_clk-branch-issue.patch b/target/linux/ipq806x/patches-4.19/0071-8-pcie-qcom-Fixed-pcie_phy_clk-branch-issue.patch index a00df30b8..7cbeb3bed 100644 --- a/target/linux/ipq806x/patches-4.19/0071-8-pcie-qcom-Fixed-pcie_phy_clk-branch-issue.patch +++ b/target/linux/ipq806x/patches-4.19/0071-8-pcie-qcom-Fixed-pcie_phy_clk-branch-issue.patch @@ -38,7 +38,7 @@ Signed-off-by: Abhishek Sahu --- a/drivers/pci/controller/dwc/pcie-qcom.c +++ b/drivers/pci/controller/dwc/pcie-qcom.c -@@ -407,6 +407,7 @@ static void qcom_pcie_deinit_2_1_0(struc +@@ -393,6 +393,7 @@ static void qcom_pcie_deinit_2_1_0(struc { struct qcom_pcie_resources_2_1_0 *res = &pcie->res.v2_1_0; @@ -46,15 +46,15 @@ Signed-off-by: Abhishek Sahu reset_control_assert(res->pci_reset); reset_control_assert(res->axi_reset); reset_control_assert(res->ahb_reset); -@@ -415,7 +416,6 @@ static void qcom_pcie_deinit_2_1_0(struc +@@ -401,7 +402,6 @@ static void qcom_pcie_deinit_2_1_0(struc reset_control_assert(res->ext_reset); clk_disable_unprepare(res->iface_clk); clk_disable_unprepare(res->core_clk); - clk_disable_unprepare(res->phy_clk); clk_disable_unprepare(res->aux_clk); clk_disable_unprepare(res->ref_clk); - regulator_disable(res->vdda); -@@ -472,12 +472,6 @@ static int qcom_pcie_init_2_1_0(struct q + regulator_bulk_disable(ARRAY_SIZE(res->supplies), res->supplies); +@@ -444,12 +444,6 @@ static int qcom_pcie_init_2_1_0(struct q goto err_clk_core; } @@ -67,7 +67,7 @@ Signed-off-by: Abhishek Sahu ret = clk_prepare_enable(res->aux_clk); if (ret) { dev_err(dev, "cannot prepare/enable aux clock\n"); -@@ -541,6 +535,12 @@ static int qcom_pcie_init_2_1_0(struct q +@@ -513,6 +507,12 @@ static int qcom_pcie_init_2_1_0(struct q return ret; } @@ -80,7 +80,7 @@ Signed-off-by: Abhishek Sahu /* wait for clock acquisition */ usleep_range(1000, 1500); if (pcie->force_gen1) { -@@ -566,8 +566,6 @@ err_deassert_ahb: +@@ -538,8 +538,6 @@ err_deassert_ahb: err_clk_ref: clk_disable_unprepare(res->aux_clk); err_clk_aux: diff --git a/target/linux/ipq806x/patches-4.19/0071-9-pcie-qcom-change-duplicate-pci-reset-to-phy-reset.patch b/target/linux/ipq806x/patches-4.19/0071-9-pcie-qcom-change-duplicate-pci-reset-to-phy-reset.patch index 1847fe40c..3fff78bfd 100644 --- a/target/linux/ipq806x/patches-4.19/0071-9-pcie-qcom-change-duplicate-pci-reset-to-phy-reset.patch +++ b/target/linux/ipq806x/patches-4.19/0071-9-pcie-qcom-change-duplicate-pci-reset-to-phy-reset.patch @@ -14,7 +14,7 @@ Signed-off-by: Abhishek Sahu --- a/drivers/pci/controller/dwc/pcie-qcom.c +++ b/drivers/pci/controller/dwc/pcie-qcom.c -@@ -408,7 +408,7 @@ static void qcom_pcie_deinit_2_1_0(struc +@@ -394,7 +394,7 @@ static void qcom_pcie_deinit_2_1_0(struc struct qcom_pcie_resources_2_1_0 *res = &pcie->res.v2_1_0; clk_disable_unprepare(res->phy_clk); diff --git a/target/linux/ipq806x/patches-4.19/0072-add-ipq806x-with-no-clocks.patch b/target/linux/ipq806x/patches-4.19/0072-add-ipq806x-with-no-clocks.patch index 035281f66..76c7cfd56 100644 --- a/target/linux/ipq806x/patches-4.19/0072-add-ipq806x-with-no-clocks.patch +++ b/target/linux/ipq806x/patches-4.19/0072-add-ipq806x-with-no-clocks.patch @@ -1,7 +1,7 @@ --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c -@@ -422,6 +422,9 @@ static const struct of_device_id qcom_sc - { .compatible = "qcom,scm-msm8996", +@@ -609,6 +609,9 @@ static const struct of_device_id qcom_sc + { .compatible = "qcom,scm-ipq4019", .data = NULL, /* no clocks */ }, + { .compatible = "qcom,scm-ipq806x", diff --git a/target/linux/ipq806x/patches-4.19/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch b/target/linux/ipq806x/patches-4.19/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch index 4847973a2..78a5bb417 100644 --- a/target/linux/ipq806x/patches-4.19/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch +++ b/target/linux/ipq806x/patches-4.19/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch @@ -24,7 +24,7 @@ Signed-off-by: Ajay Kishore #include "../core.h" #include "../pinconf.h" #include "pinctrl-msm.h" -@@ -646,6 +647,9 @@ static void msm_gpio_irq_ack(struct irq_ +@@ -628,6 +629,9 @@ static void msm_gpio_irq_mask(struct irq const struct msm_pingroup *g; unsigned long flags; u32 val; @@ -34,7 +34,7 @@ Signed-off-by: Ajay Kishore g = &pctrl->soc->groups[d->hwirq]; -@@ -684,11 +688,30 @@ static int msm_gpio_irq_set_type(struct +@@ -732,11 +736,30 @@ static int msm_gpio_irq_set_type(struct else clear_bit(d->hwirq, pctrl->dual_edge_irqs); diff --git a/target/linux/ipq806x/patches-4.19/080-ARM-dts-qcom-add-gpio-ranges-property.patch b/target/linux/ipq806x/patches-4.19/080-ARM-dts-qcom-add-gpio-ranges-property.patch index 3c1b8fccd..04cb9b3bb 100644 --- a/target/linux/ipq806x/patches-4.19/080-ARM-dts-qcom-add-gpio-ranges-property.patch +++ b/target/linux/ipq806x/patches-4.19/080-ARM-dts-qcom-add-gpio-ranges-property.patch @@ -60,7 +60,7 @@ will be executed twice with the same parameters for the same pinctrl. --- a/arch/arm/boot/dts/qcom-ipq8064.dtsi +++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi -@@ -108,6 +108,7 @@ +@@ -625,6 +625,7 @@ reg = <0x800000 0x4000>; gpio-controller; diff --git a/target/linux/ixp4xx/patches-4.9/160-delayed_uart_io.patch b/target/linux/ixp4xx/patches-4.9/160-delayed_uart_io.patch index 3b9428017..95cc5680c 100644 --- a/target/linux/ixp4xx/patches-4.9/160-delayed_uart_io.patch +++ b/target/linux/ixp4xx/patches-4.9/160-delayed_uart_io.patch @@ -54,7 +54,7 @@ unsigned int read_status_mask; /* driver specific */ unsigned int ignore_status_mask; /* driver specific */ -@@ -233,6 +234,7 @@ struct uart_port { +@@ -234,6 +235,7 @@ struct uart_port { int hw_stopped; /* sw-assisted CTS flow state */ unsigned int mctrl; /* current modem ctrl settings */ unsigned int timeout; /* character-based timeout */ diff --git a/target/linux/lantiq/patches-4.19/0152-lantiq-VPE.patch b/target/linux/lantiq/patches-4.19/0152-lantiq-VPE.patch index d40dcef50..9e39427c6 100644 --- a/target/linux/lantiq/patches-4.19/0152-lantiq-VPE.patch +++ b/target/linux/lantiq/patches-4.19/0152-lantiq-VPE.patch @@ -1,6 +1,6 @@ --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -2317,6 +2317,12 @@ config MIPS_VPE_LOADER +@@ -2318,6 +2318,12 @@ config MIPS_VPE_LOADER Includes a loader for loading an elf relocatable object onto another VPE and running it. diff --git a/target/linux/layerscape/patches-4.14/202-core-linux-support-layerscape.patch b/target/linux/layerscape/patches-4.14/202-core-linux-support-layerscape.patch index 7be95d49e..63d12e688 100644 --- a/target/linux/layerscape/patches-4.14/202-core-linux-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/202-core-linux-support-layerscape.patch @@ -539,7 +539,7 @@ Signed-off-by: Yangbo Lu --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h -@@ -2344,7 +2344,8 @@ int register_netdevice_notifier(struct n +@@ -2349,7 +2349,8 @@ int register_netdevice_notifier(struct n int unregister_netdevice_notifier(struct notifier_block *nb); struct netdev_notifier_info { @@ -549,7 +549,7 @@ Signed-off-by: Yangbo Lu }; struct netdev_notifier_info_ext { -@@ -2376,6 +2377,7 @@ static inline void netdev_notifier_info_ +@@ -2381,6 +2382,7 @@ static inline void netdev_notifier_info_ struct net_device *dev) { info->dev = dev; @@ -557,7 +557,7 @@ Signed-off-by: Yangbo Lu } static inline struct net_device * -@@ -2384,6 +2386,12 @@ netdev_notifier_info_to_dev(const struct +@@ -2389,6 +2391,12 @@ netdev_notifier_info_to_dev(const struct return info->dev; } diff --git a/target/linux/layerscape/patches-4.14/804-i2c-support-layerscape.patch b/target/linux/layerscape/patches-4.14/804-i2c-support-layerscape.patch index e0dbffe30..31c686d56 100644 --- a/target/linux/layerscape/patches-4.14/804-i2c-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/804-i2c-support-layerscape.patch @@ -336,7 +336,7 @@ Signed-off-by: Zhang Ying-22455 /* Get I2C clock */ i2c_imx->clk = devm_clk_get(&pdev->dev, NULL); if (IS_ERR(i2c_imx->clk)) { -@@ -1103,7 +1301,8 @@ static int i2c_imx_probe(struct platform +@@ -1104,7 +1302,8 @@ static int i2c_imx_probe(struct platform pdev->name, i2c_imx); if (ret) { dev_err(&pdev->dev, "can't claim irq %d\n", irq); @@ -346,7 +346,7 @@ Signed-off-by: Zhang Ying-22455 } /* Init queue */ -@@ -1150,25 +1349,31 @@ static int i2c_imx_probe(struct platform +@@ -1151,25 +1350,31 @@ static int i2c_imx_probe(struct platform pm_runtime_mark_last_busy(&pdev->dev); pm_runtime_put_autosuspend(&pdev->dev); diff --git a/target/linux/layerscape/patches-4.14/807-usb-support-layerscape.patch b/target/linux/layerscape/patches-4.14/807-usb-support-layerscape.patch index ab43bc49f..a569dff7d 100644 --- a/target/linux/layerscape/patches-4.14/807-usb-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/807-usb-support-layerscape.patch @@ -382,7 +382,7 @@ Signed-off-by: Zhao Chenhui dwc->lpm_nyet_threshold = lpm_nyet_threshold; dwc->tx_de_emphasis = tx_de_emphasis; -@@ -1367,12 +1532,14 @@ static int dwc3_resume_common(struct dwc +@@ -1368,12 +1533,14 @@ static int dwc3_resume_common(struct dwc switch (dwc->dr_mode) { case USB_DR_MODE_PERIPHERAL: @@ -1289,7 +1289,7 @@ Signed-off-by: Zhao Chenhui xhci->quirks |= XHCI_BROKEN_PORT_PED; --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -1976,10 +1976,12 @@ static int finish_td(struct xhci_hcd *xh +@@ -1972,10 +1972,12 @@ static int finish_td(struct xhci_hcd *xh union xhci_trb *ep_trb, struct xhci_transfer_event *event, struct xhci_virt_ep *ep, int *status) { @@ -1302,7 +1302,7 @@ Signed-off-by: Zhao Chenhui u32 trb_comp_code; int ep_index; -@@ -2002,14 +2004,30 @@ static int finish_td(struct xhci_hcd *xh +@@ -1998,14 +2000,30 @@ static int finish_td(struct xhci_hcd *xh if (trb_comp_code == COMP_STALL_ERROR || xhci_requires_manual_halt_cleanup(xhci, ep_ctx, trb_comp_code)) { @@ -1340,7 +1340,7 @@ Signed-off-by: Zhao Chenhui while (ep_ring->dequeue != td->last_trb) --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -1607,13 +1607,38 @@ static int xhci_urb_dequeue(struct usb_h +@@ -1604,13 +1604,38 @@ static int xhci_urb_dequeue(struct usb_h ret = -ENOMEM; goto done; } diff --git a/target/linux/layerscape/patches-4.14/816-pcie-support-layerscape.patch b/target/linux/layerscape/patches-4.14/816-pcie-support-layerscape.patch index f3f09989a..216bef0c3 100644 --- a/target/linux/layerscape/patches-4.14/816-pcie-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/816-pcie-support-layerscape.patch @@ -5618,7 +5618,7 @@ Signed-off-by: Yangbo Lu static void quirk_no_pm_reset(struct pci_dev *dev) { /* -@@ -4878,3 +4885,11 @@ static void quirk_no_ats(struct pci_dev +@@ -4884,3 +4891,11 @@ static void quirk_no_ats(struct pci_dev DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x98e4, quirk_no_ats); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6900, quirk_no_ats); #endif /* CONFIG_PCI_ATS */ diff --git a/target/linux/mvebu/patches-4.14/408-sfp-move-module-eeprom-ethtool-access-into-netdev-co.patch b/target/linux/mvebu/patches-4.14/408-sfp-move-module-eeprom-ethtool-access-into-netdev-co.patch index 2e4be1bc4..19f8f1e63 100644 --- a/target/linux/mvebu/patches-4.14/408-sfp-move-module-eeprom-ethtool-access-into-netdev-co.patch +++ b/target/linux/mvebu/patches-4.14/408-sfp-move-module-eeprom-ethtool-access-into-netdev-co.patch @@ -129,7 +129,7 @@ Signed-off-by: Russell King /* 802.11 specific */ struct wireless_dev; /* 802.15.4 specific */ -@@ -1935,6 +1936,7 @@ struct net_device { +@@ -1940,6 +1941,7 @@ struct net_device { struct netprio_map __rcu *priomap; #endif struct phy_device *phydev; diff --git a/target/linux/octeontx/patches-4.14/0001-net-thunderx-add-support-for-rgmii-internal-delay-mo.patch b/target/linux/octeontx/patches-4.14/0001-net-thunderx-add-support-for-rgmii-internal-delay-mo.patch index efd13da5e..cf0f96dce 100644 --- a/target/linux/octeontx/patches-4.14/0001-net-thunderx-add-support-for-rgmii-internal-delay-mo.patch +++ b/target/linux/octeontx/patches-4.14/0001-net-thunderx-add-support-for-rgmii-internal-delay-mo.patch @@ -51,7 +51,7 @@ Signed-off-by: Tim Harvey + lmac->lmac_type))) return -ENODEV; - phy_start_aneg(lmac->phydev); + phy_start(lmac->phydev); @@ -1287,6 +1289,8 @@ static int bgx_init_of_phy(struct bgx *b bgx->lmac[lmac].lmacid = lmac; diff --git a/target/linux/x86/patches-4.19/011-tune_lzma_options.patch b/target/linux/x86/patches-4.19/011-tune_lzma_options.patch index e680f9c48..09d3c6c7c 100644 --- a/target/linux/x86/patches-4.19/011-tune_lzma_options.patch +++ b/target/linux/x86/patches-4.19/011-tune_lzma_options.patch @@ -1,6 +1,6 @@ --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib -@@ -324,7 +324,7 @@ cmd_bzip2 = (cat $(filter-out FORCE,$^) +@@ -325,7 +325,7 @@ cmd_bzip2 = (cat $(filter-out FORCE,$^) quiet_cmd_lzma = LZMA $@ cmd_lzma = (cat $(filter-out FORCE,$^) | \