diff --git a/include/kernel-version.mk b/include/kernel-version.mk index baa9699722b..74c04b782f2 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -3,11 +3,11 @@ LINUX_RELEASE?=1 LINUX_VERSION-3.18 = .43 -LINUX_VERSION-4.4 = .50 +LINUX_VERSION-4.4 = .52 LINUX_VERSION-4.9 = .13 LINUX_KERNEL_HASH-3.18.43 = 1236e8123a6ce537d5029232560966feed054ae31776fe8481dd7d18cdd5492c -LINUX_KERNEL_HASH-4.4.50 = e4944ca5bb0bdf63a7e97dc7fbdd38bcc820d8b3b57c4a3a7b3bf9c8a48216b7 +LINUX_KERNEL_HASH-4.4.52 = e8d2ddaece73e1a34e045bbdcdcc1383f658e24537797f8d8e0dd520cf1b1f06 LINUX_KERNEL_HASH-4.9.13 = 36464aec4fb32ed192252645819abb55ceb21eef17b3f7210b4a673e7486a268 ifdef KERNEL_PATCHVER diff --git a/target/linux/generic/patches-4.4/630-packet_socket_type.patch b/target/linux/generic/patches-4.4/630-packet_socket_type.patch index 71ff0eb6cf9..0c248639ba9 100644 --- a/target/linux/generic/patches-4.4/630-packet_socket_type.patch +++ b/target/linux/generic/patches-4.4/630-packet_socket_type.patch @@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau #define PACKET_FANOUT_LB 1 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c -@@ -1763,6 +1763,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1776,6 +1776,7 @@ static int packet_rcv_spkt(struct sk_buf { struct sock *sk; struct sockaddr_pkt *spkt; @@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau /* * When we registered the protocol we saved the socket in the data -@@ -1770,6 +1771,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1783,6 +1784,7 @@ static int packet_rcv_spkt(struct sk_buf */ sk = pt->af_packet_priv; @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau /* * Yank back the headers [hope the device set this -@@ -1782,7 +1784,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1795,7 +1797,7 @@ static int packet_rcv_spkt(struct sk_buf * so that this procedure is noop. */ @@ -51,7 +51,7 @@ Signed-off-by: Felix Fietkau goto out; if (!net_eq(dev_net(dev), sock_net(sk))) -@@ -1985,12 +1987,12 @@ static int packet_rcv(struct sk_buff *sk +@@ -1998,12 +2000,12 @@ static int packet_rcv(struct sk_buff *sk int skb_len = skb->len; unsigned int snaplen, res; @@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -2110,12 +2112,12 @@ static int tpacket_rcv(struct sk_buff *s +@@ -2123,12 +2125,12 @@ static int tpacket_rcv(struct sk_buff *s BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32); BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48); @@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -3092,6 +3094,7 @@ static int packet_create(struct net *net +@@ -3111,6 +3113,7 @@ static int packet_create(struct net *net mutex_init(&po->pg_vec_lock); po->rollover = NULL; po->prot_hook.func = packet_rcv; @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau if (sock->type == SOCK_PACKET) po->prot_hook.func = packet_rcv_spkt; -@@ -3714,6 +3717,16 @@ packet_setsockopt(struct socket *sock, i +@@ -3733,6 +3736,16 @@ packet_setsockopt(struct socket *sock, i po->xmit = val ? packet_direct_xmit : dev_queue_xmit; return 0; } @@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau default: return -ENOPROTOOPT; } -@@ -3766,6 +3779,13 @@ static int packet_getsockopt(struct sock +@@ -3785,6 +3798,13 @@ static int packet_getsockopt(struct sock case PACKET_VNET_HDR: val = po->has_vnet_hdr; break; diff --git a/target/linux/layerscape/patches-4.4/0239-ARM-dts-ls1021a-add-PCIe-dts-node.patch b/target/linux/layerscape/patches-4.4/0239-ARM-dts-ls1021a-add-PCIe-dts-node.patch index c2672972589..1e47060a0a0 100644 --- a/target/linux/layerscape/patches-4.4/0239-ARM-dts-ls1021a-add-PCIe-dts-node.patch +++ b/target/linux/layerscape/patches-4.4/0239-ARM-dts-ls1021a-add-PCIe-dts-node.patch @@ -14,8 +14,6 @@ Signed-off-by: Yangbo Lu arch/arm/boot/dts/ls1021a.dtsi | 44 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) -diff --git a/arch/arm/boot/dts/ls1021a.dtsi b/arch/arm/boot/dts/ls1021a.dtsi -index 9430a99..38272d0 100644 --- a/arch/arm/boot/dts/ls1021a.dtsi +++ b/arch/arm/boot/dts/ls1021a.dtsi @@ -539,5 +539,49 @@ @@ -68,6 +66,3 @@ index 9430a99..38272d0 100644 + }; }; }; --- -2.1.0.27.g96db324 - diff --git a/target/linux/layerscape/patches-4.4/0240-ARM-dts-ls1021a-add-SCFG-MSI-dts-node.patch b/target/linux/layerscape/patches-4.4/0240-ARM-dts-ls1021a-add-SCFG-MSI-dts-node.patch index 760ea004a7c..ca2663b86c7 100644 --- a/target/linux/layerscape/patches-4.4/0240-ARM-dts-ls1021a-add-SCFG-MSI-dts-node.patch +++ b/target/linux/layerscape/patches-4.4/0240-ARM-dts-ls1021a-add-SCFG-MSI-dts-node.patch @@ -15,8 +15,6 @@ Signed-off-by: Yangbo Lu arch/arm/boot/dts/ls1021a.dtsi | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) -diff --git a/arch/arm/boot/dts/ls1021a.dtsi b/arch/arm/boot/dts/ls1021a.dtsi -index 38272d0..527f653 100644 --- a/arch/arm/boot/dts/ls1021a.dtsi +++ b/arch/arm/boot/dts/ls1021a.dtsi @@ -119,6 +119,20 @@ @@ -56,6 +54,3 @@ index 38272d0..527f653 100644 #interrupt-cells = <1>; interrupt-map-mask = <0 0 0 7>; interrupt-map = <0000 0 0 1 &gic GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>, --- -2.1.0.27.g96db324 - diff --git a/target/linux/layerscape/patches-4.4/0241-dt-bindings-Add-bindings-for-Layerscape-SCFG-MSI.patch b/target/linux/layerscape/patches-4.4/0241-dt-bindings-Add-bindings-for-Layerscape-SCFG-MSI.patch index 8f7ae19a7a0..463df7db1a1 100644 --- a/target/linux/layerscape/patches-4.4/0241-dt-bindings-Add-bindings-for-Layerscape-SCFG-MSI.patch +++ b/target/linux/layerscape/patches-4.4/0241-dt-bindings-Add-bindings-for-Layerscape-SCFG-MSI.patch @@ -18,9 +18,6 @@ Signed-off-by: Yangbo Lu 1 file changed, 30 insertions(+) create mode 100644 Documentation/devicetree/bindings/interrupt-controller/fsl,ls-scfg-msi.txt -diff --git a/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-scfg-msi.txt b/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-scfg-msi.txt -new file mode 100644 -index 0000000..9e38949 --- /dev/null +++ b/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-scfg-msi.txt @@ -0,0 +1,30 @@ @@ -54,6 +51,3 @@ index 0000000..9e38949 + msi-controller; + interrupts = <0 116 0x4>; + }; --- -2.1.0.27.g96db324 - diff --git a/target/linux/layerscape/patches-4.4/3229-arm-dts-ls1021a-fix-typo-of-MSI-compatible-string.patch b/target/linux/layerscape/patches-4.4/3229-arm-dts-ls1021a-fix-typo-of-MSI-compatible-string.patch index 270568d54bb..926efff7adf 100644 --- a/target/linux/layerscape/patches-4.4/3229-arm-dts-ls1021a-fix-typo-of-MSI-compatible-string.patch +++ b/target/linux/layerscape/patches-4.4/3229-arm-dts-ls1021a-fix-typo-of-MSI-compatible-string.patch @@ -14,8 +14,6 @@ Signed-off-by: Yangbo Lu arch/arm/boot/dts/ls1021a.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/arch/arm/boot/dts/ls1021a.dtsi b/arch/arm/boot/dts/ls1021a.dtsi -index 527f653..a2a3e8e 100644 --- a/arch/arm/boot/dts/ls1021a.dtsi +++ b/arch/arm/boot/dts/ls1021a.dtsi @@ -120,14 +120,14 @@ @@ -35,6 +33,3 @@ index 527f653..a2a3e8e 100644 reg = <0x0 0x1570e08 0x0 0x8>; msi-controller; interrupts = ; --- -2.1.0.27.g96db324 - diff --git a/target/linux/layerscape/patches-4.4/3230-arm64-dts-ls1043a-fix-typo-of-MSI-compatible-string.patch b/target/linux/layerscape/patches-4.4/3230-arm64-dts-ls1043a-fix-typo-of-MSI-compatible-string.patch index 569adda7a1d..4fcd40db725 100644 --- a/target/linux/layerscape/patches-4.4/3230-arm64-dts-ls1043a-fix-typo-of-MSI-compatible-string.patch +++ b/target/linux/layerscape/patches-4.4/3230-arm64-dts-ls1043a-fix-typo-of-MSI-compatible-string.patch @@ -14,8 +14,6 @@ Signed-off-by: Yangbo Lu arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) -diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi -index ae13e68..e51a6cb 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi @@ -991,7 +991,7 @@ @@ -45,6 +43,3 @@ index ae13e68..e51a6cb 100644 reg = <0x0 0x1573000 0x0 0x4>, <0x0 0x1573004 0x0 0x4>; reg-names = "msiir", "msir"; --- -2.1.0.27.g96db324 - diff --git a/target/linux/layerscape/patches-4.4/3231-arm-dts-ls1021a-share-all-MSIs.patch b/target/linux/layerscape/patches-4.4/3231-arm-dts-ls1021a-share-all-MSIs.patch index 828022f1a78..09a61dd058b 100644 --- a/target/linux/layerscape/patches-4.4/3231-arm-dts-ls1021a-share-all-MSIs.patch +++ b/target/linux/layerscape/patches-4.4/3231-arm-dts-ls1021a-share-all-MSIs.patch @@ -15,8 +15,6 @@ Signed-off-by: Yangbo Lu arch/arm/boot/dts/ls1021a.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/arch/arm/boot/dts/ls1021a.dtsi b/arch/arm/boot/dts/ls1021a.dtsi -index a2a3e8e..bf4ffeb 100644 --- a/arch/arm/boot/dts/ls1021a.dtsi +++ b/arch/arm/boot/dts/ls1021a.dtsi @@ -568,7 +568,7 @@ @@ -37,6 +35,3 @@ index a2a3e8e..bf4ffeb 100644 #interrupt-cells = <1>; interrupt-map-mask = <0 0 0 7>; interrupt-map = <0000 0 0 1 &gic GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>, --- -2.1.0.27.g96db324 - diff --git a/target/linux/layerscape/patches-4.4/3232-arm64-dts-ls1043a-share-all-MSIs.patch b/target/linux/layerscape/patches-4.4/3232-arm64-dts-ls1043a-share-all-MSIs.patch index 11cc1f87aae..4380b5a21d7 100644 --- a/target/linux/layerscape/patches-4.4/3232-arm64-dts-ls1043a-share-all-MSIs.patch +++ b/target/linux/layerscape/patches-4.4/3232-arm64-dts-ls1043a-share-all-MSIs.patch @@ -15,8 +15,6 @@ Signed-off-by: Yangbo Lu arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) -diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi -index e51a6cb..92d18c5 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi @@ -1033,7 +1033,7 @@ @@ -46,6 +44,3 @@ index e51a6cb..92d18c5 100644 #interrupt-cells = <1>; interrupt-map-mask = <0 0 0 7>; interrupt-map = <0000 0 0 1 &gic 0 154 0x4>, --- -2.1.0.27.g96db324 - diff --git a/target/linux/layerscape/patches-4.4/3233-arm64-dts-ls1046a-update-MSI-dts-node.patch b/target/linux/layerscape/patches-4.4/3233-arm64-dts-ls1046a-update-MSI-dts-node.patch index 3bfcd297b2c..02f2e724e5c 100644 --- a/target/linux/layerscape/patches-4.4/3233-arm64-dts-ls1046a-update-MSI-dts-node.patch +++ b/target/linux/layerscape/patches-4.4/3233-arm64-dts-ls1046a-update-MSI-dts-node.patch @@ -13,8 +13,6 @@ Signed-off-by: Yangbo Lu arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi | 58 +++++++++++++------------- 1 file changed, 30 insertions(+), 28 deletions(-) -diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi -index 179c38b..f96be34 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi @@ -44,6 +44,8 @@ @@ -113,6 +111,3 @@ index 179c38b..f96be34 100644 #interrupt-cells = <1>; interrupt-map-mask = <0 0 0 7>; interrupt-map = <0000 0 0 1 &gic 0 154 0x4>, --- -2.1.0.27.g96db324 - diff --git a/target/linux/layerscape/patches-4.4/3234-dts-ls1043a-change-GIC-register-for-rev1.1.patch b/target/linux/layerscape/patches-4.4/3234-dts-ls1043a-change-GIC-register-for-rev1.1.patch index 2a11e72035c..c693b28a7c1 100644 --- a/target/linux/layerscape/patches-4.4/3234-dts-ls1043a-change-GIC-register-for-rev1.1.patch +++ b/target/linux/layerscape/patches-4.4/3234-dts-ls1043a-change-GIC-register-for-rev1.1.patch @@ -13,8 +13,6 @@ Signed-off-by: Yangbo Lu arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) -diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi -index 92d18c5..3257c69 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi @@ -141,10 +141,10 @@ @@ -32,6 +30,3 @@ index 92d18c5..3257c69 100644 interrupts = <1 9 0xf08>; }; --- -2.1.0.27.g96db324 - diff --git a/target/linux/layerscape/patches-4.4/8238-irqchip-ls-scfg-msi-fix-typo-of-MSI-compatible-strin.patch b/target/linux/layerscape/patches-4.4/8238-irqchip-ls-scfg-msi-fix-typo-of-MSI-compatible-strin.patch index c5dad9c4908..8f2c3831a31 100644 --- a/target/linux/layerscape/patches-4.4/8238-irqchip-ls-scfg-msi-fix-typo-of-MSI-compatible-strin.patch +++ b/target/linux/layerscape/patches-4.4/8238-irqchip-ls-scfg-msi-fix-typo-of-MSI-compatible-strin.patch @@ -16,8 +16,6 @@ Signed-off-by: Yangbo Lu drivers/irqchip/irq-ls-scfg-msi.c | 6 ++++-- 2 files changed, 7 insertions(+), 5 deletions(-) -diff --git a/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-scfg-msi.txt b/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-scfg-msi.txt -index 9e38949..2755cd1 100644 --- a/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-scfg-msi.txt +++ b/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-scfg-msi.txt @@ -4,8 +4,8 @@ Required properties: @@ -40,11 +38,9 @@ index 9e38949..2755cd1 100644 reg = <0x0 0x1571000 0x0 0x8>, msi-controller; interrupts = <0 116 0x4>; -diff --git a/drivers/irqchip/irq-ls-scfg-msi.c b/drivers/irqchip/irq-ls-scfg-msi.c -index 47520fa..5b16f4a 100644 --- a/drivers/irqchip/irq-ls-scfg-msi.c +++ b/drivers/irqchip/irq-ls-scfg-msi.c -@@ -220,8 +220,10 @@ static int ls_scfg_msi_remove(struct platform_device *pdev) +@@ -220,8 +220,10 @@ static int ls_scfg_msi_remove(struct pla static const struct of_device_id ls_scfg_msi_id[] = { { .compatible = "fsl,ls1012a-msi", }, @@ -57,6 +53,3 @@ index 47520fa..5b16f4a 100644 { .compatible = "fsl,ls1046a-msi", }, {}, }; --- -2.1.0.27.g96db324 - diff --git a/target/linux/layerscape/patches-4.4/8239-irqchip-ls-scfg-msi-add-LS1046a-MSI-support.patch b/target/linux/layerscape/patches-4.4/8239-irqchip-ls-scfg-msi-add-LS1046a-MSI-support.patch index 1a1c288db18..bea806bf10a 100644 --- a/target/linux/layerscape/patches-4.4/8239-irqchip-ls-scfg-msi-add-LS1046a-MSI-support.patch +++ b/target/linux/layerscape/patches-4.4/8239-irqchip-ls-scfg-msi-add-LS1046a-MSI-support.patch @@ -19,8 +19,6 @@ Signed-off-by: Yangbo Lu drivers/irqchip/irq-ls-scfg-msi.c | 168 +++++++++++++++++++++++++++++--------- 1 file changed, 131 insertions(+), 37 deletions(-) -diff --git a/drivers/irqchip/irq-ls-scfg-msi.c b/drivers/irqchip/irq-ls-scfg-msi.c -index 5b16f4a..6586076 100644 --- a/drivers/irqchip/irq-ls-scfg-msi.c +++ b/drivers/irqchip/irq-ls-scfg-msi.c @@ -17,13 +17,24 @@ @@ -65,7 +63,7 @@ index 5b16f4a..6586076 100644 }; static struct irq_chip ls_scfg_msi_irq_chip = { -@@ -55,7 +69,7 @@ static void ls_scfg_msi_compose_msg(struct irq_data *data, struct msi_msg *msg) +@@ -55,7 +69,7 @@ static void ls_scfg_msi_compose_msg(stru msg->address_hi = upper_32_bits(msi_data->msiir_addr); msg->address_lo = lower_32_bits(msi_data->msiir_addr); @@ -74,7 +72,7 @@ index 5b16f4a..6586076 100644 } static int ls_scfg_msi_set_affinity(struct irq_data *irq_data, -@@ -81,8 +95,8 @@ static int ls_scfg_msi_domain_irq_alloc(struct irq_domain *domain, +@@ -81,8 +95,8 @@ static int ls_scfg_msi_domain_irq_alloc( WARN_ON(nr_irqs != 1); spin_lock(&msi_data->lock); @@ -85,7 +83,7 @@ index 5b16f4a..6586076 100644 __set_bit(pos, msi_data->used); else err = -ENOSPC; -@@ -106,7 +120,7 @@ static void ls_scfg_msi_domain_irq_free(struct irq_domain *domain, +@@ -106,7 +120,7 @@ static void ls_scfg_msi_domain_irq_free( int pos; pos = d->hwirq; @@ -94,7 +92,7 @@ index 5b16f4a..6586076 100644 pr_err("failed to teardown msi. Invalid hwirq %d\n", pos); return; } -@@ -123,15 +137,17 @@ static const struct irq_domain_ops ls_scfg_msi_domain_ops = { +@@ -123,15 +137,17 @@ static const struct irq_domain_ops ls_sc static void ls_scfg_msi_irq_handler(struct irq_desc *desc) { @@ -117,7 +115,7 @@ index 5b16f4a..6586076 100644 if (virq) generic_handle_irq(virq); } -@@ -143,7 +159,7 @@ static int ls_scfg_msi_domains_init(struct ls_scfg_msi *msi_data) +@@ -143,7 +159,7 @@ static int ls_scfg_msi_domains_init(stru { /* Initialize MSI domain parent */ msi_data->parent = irq_domain_add_linear(NULL, @@ -126,7 +124,7 @@ index 5b16f4a..6586076 100644 &ls_scfg_msi_domain_ops, msi_data); if (!msi_data->parent) { -@@ -164,16 +180,88 @@ static int ls_scfg_msi_domains_init(struct ls_scfg_msi *msi_data) +@@ -164,16 +180,88 @@ static int ls_scfg_msi_domains_init(stru return 0; } @@ -216,7 +214,7 @@ index 5b16f4a..6586076 100644 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); msi_data->regs = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(msi_data->regs)) { -@@ -182,23 +270,37 @@ static int ls_scfg_msi_probe(struct platform_device *pdev) +@@ -182,23 +270,37 @@ static int ls_scfg_msi_probe(struct plat } msi_data->msiir_addr = res->start; @@ -264,7 +262,7 @@ index 5b16f4a..6586076 100644 platform_set_drvdata(pdev, msi_data); return 0; -@@ -207,8 +309,10 @@ static int ls_scfg_msi_probe(struct platform_device *pdev) +@@ -207,8 +309,10 @@ static int ls_scfg_msi_probe(struct plat static int ls_scfg_msi_remove(struct platform_device *pdev) { struct ls_scfg_msi *msi_data = platform_get_drvdata(pdev); @@ -276,7 +274,7 @@ index 5b16f4a..6586076 100644 irq_domain_remove(msi_data->msi_domain); irq_domain_remove(msi_data->parent); -@@ -218,16 +322,6 @@ static int ls_scfg_msi_remove(struct platform_device *pdev) +@@ -218,16 +322,6 @@ static int ls_scfg_msi_remove(struct pla return 0; } @@ -293,6 +291,3 @@ index 5b16f4a..6586076 100644 static struct platform_driver ls_scfg_msi_driver = { .driver = { .name = "ls-scfg-msi", --- -2.1.0.27.g96db324 - diff --git a/target/linux/layerscape/patches-4.4/8240-irqchip-ls-scfg-msi-add-LS1043a-v1.1-MSI-support.patch b/target/linux/layerscape/patches-4.4/8240-irqchip-ls-scfg-msi-add-LS1043a-v1.1-MSI-support.patch index 02fc0203383..d1266a23aee 100644 --- a/target/linux/layerscape/patches-4.4/8240-irqchip-ls-scfg-msi-add-LS1043a-v1.1-MSI-support.patch +++ b/target/linux/layerscape/patches-4.4/8240-irqchip-ls-scfg-msi-add-LS1043a-v1.1-MSI-support.patch @@ -21,8 +21,6 @@ Signed-off-by: Yangbo Lu drivers/irqchip/irq-ls-scfg-msi.c | 45 +++++++++++++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 6 deletions(-) -diff --git a/drivers/irqchip/irq-ls-scfg-msi.c b/drivers/irqchip/irq-ls-scfg-msi.c -index 6586076..71a2050 100644 --- a/drivers/irqchip/irq-ls-scfg-msi.c +++ b/drivers/irqchip/irq-ls-scfg-msi.c @@ -25,14 +25,21 @@ @@ -47,7 +45,7 @@ index 6586076..71a2050 100644 void __iomem *reg; }; -@@ -140,13 +147,18 @@ static void ls_scfg_msi_irq_handler(struct irq_desc *desc) +@@ -140,13 +147,18 @@ static void ls_scfg_msi_irq_handler(stru struct ls_scfg_msir *msir = irq_desc_get_handler_data(desc); struct ls_scfg_msi *msi_data = msir->msi_data; unsigned long val; @@ -69,7 +67,7 @@ index 6586076..71a2050 100644 virq = irq_find_mapping(msi_data->parent, hwirq); if (virq) generic_handle_irq(virq); -@@ -193,14 +205,24 @@ static int ls_scfg_msi_setup_hwirq(struct ls_scfg_msi *msi_data, int index) +@@ -193,14 +205,24 @@ static int ls_scfg_msi_setup_hwirq(struc msir->index = index; msir->msi_data = msi_data; msir->gic_irq = virq; @@ -96,7 +94,7 @@ index 6586076..71a2050 100644 hwirq = i << msi_data->cfg->ibs_shift | msir->index; bitmap_clear(msi_data->used, hwirq, 1); } -@@ -216,7 +238,7 @@ static int ls_scfg_msi_teardown_hwirq(struct ls_scfg_msir *msir) +@@ -216,7 +238,7 @@ static int ls_scfg_msi_teardown_hwirq(st if (msir->gic_irq > 0) irq_set_chained_handler_and_data(msir->gic_irq, NULL, NULL); @@ -105,7 +103,7 @@ index 6586076..71a2050 100644 hwirq = i << msi_data->cfg->ibs_shift | msir->index; bitmap_set(msi_data->used, hwirq, 1); } -@@ -226,10 +248,20 @@ static int ls_scfg_msi_teardown_hwirq(struct ls_scfg_msir *msir) +@@ -226,10 +248,20 @@ static int ls_scfg_msi_teardown_hwirq(st static struct ls_scfg_msi_cfg ls1021_msi_cfg = { .ibs_shift = 3, @@ -126,7 +124,7 @@ index 6586076..71a2050 100644 }; static const struct of_device_id ls_scfg_msi_id[] = { -@@ -240,6 +272,7 @@ static const struct of_device_id ls_scfg_msi_id[] = { +@@ -240,6 +272,7 @@ static const struct of_device_id ls_scfg { .compatible = "fsl,ls1012a-msi", .data = &ls1021_msi_cfg }, { .compatible = "fsl,ls1021a-msi", .data = &ls1021_msi_cfg }, { .compatible = "fsl,ls1043a-msi", .data = &ls1021_msi_cfg }, @@ -134,6 +132,3 @@ index 6586076..71a2050 100644 { .compatible = "fsl,ls1046a-msi", .data = &ls1046_msi_cfg }, {}, }; --- -2.1.0.27.g96db324 - diff --git a/target/linux/layerscape/patches-4.4/8241-irqchip-ls-scfg-msi-add-MSI-affinity-support.patch b/target/linux/layerscape/patches-4.4/8241-irqchip-ls-scfg-msi-add-MSI-affinity-support.patch index dbaef7a6522..b3b3795b6cb 100644 --- a/target/linux/layerscape/patches-4.4/8241-irqchip-ls-scfg-msi-add-MSI-affinity-support.patch +++ b/target/linux/layerscape/patches-4.4/8241-irqchip-ls-scfg-msi-add-MSI-affinity-support.patch @@ -32,8 +32,6 @@ Signed-off-by: Yangbo Lu drivers/irqchip/irq-ls-scfg-msi.c | 68 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 63 insertions(+), 5 deletions(-) -diff --git a/drivers/irqchip/irq-ls-scfg-msi.c b/drivers/irqchip/irq-ls-scfg-msi.c -index 71a2050..57e3d90 100644 --- a/drivers/irqchip/irq-ls-scfg-msi.c +++ b/drivers/irqchip/irq-ls-scfg-msi.c @@ -40,6 +40,7 @@ struct ls_scfg_msir { @@ -44,7 +42,7 @@ index 71a2050..57e3d90 100644 void __iomem *reg; }; -@@ -70,6 +71,19 @@ static struct msi_domain_info ls_scfg_msi_domain_info = { +@@ -70,6 +71,19 @@ static struct msi_domain_info ls_scfg_ms .chip = &ls_scfg_msi_irq_chip, }; @@ -64,7 +62,7 @@ index 71a2050..57e3d90 100644 static void ls_scfg_msi_compose_msg(struct irq_data *data, struct msi_msg *msg) { struct ls_scfg_msi *msi_data = irq_data_get_irq_chip_data(data); -@@ -77,12 +91,36 @@ static void ls_scfg_msi_compose_msg(struct irq_data *data, struct msi_msg *msg) +@@ -77,12 +91,36 @@ static void ls_scfg_msi_compose_msg(stru msg->address_hi = upper_32_bits(msi_data->msiir_addr); msg->address_lo = lower_32_bits(msi_data->msiir_addr); msg->data = data->hwirq; @@ -102,7 +100,7 @@ index 71a2050..57e3d90 100644 } static struct irq_chip ls_scfg_msi_parent_chip = { -@@ -158,7 +196,7 @@ static void ls_scfg_msi_irq_handler(struct irq_desc *desc) +@@ -158,7 +196,7 @@ static void ls_scfg_msi_irq_handler(stru for_each_set_bit_from(pos, &val, size) { hwirq = ((msir->bit_end - pos) << msi_data->cfg->ibs_shift) | @@ -111,7 +109,7 @@ index 71a2050..57e3d90 100644 virq = irq_find_mapping(msi_data->parent, hwirq); if (virq) generic_handle_irq(virq); -@@ -221,10 +259,19 @@ static int ls_scfg_msi_setup_hwirq(struct ls_scfg_msi *msi_data, int index) +@@ -221,10 +259,19 @@ static int ls_scfg_msi_setup_hwirq(struc ls_scfg_msi_irq_handler, msir); @@ -134,7 +132,7 @@ index 71a2050..57e3d90 100644 } return 0; -@@ -321,6 +368,17 @@ static int ls_scfg_msi_probe(struct platform_device *pdev) +@@ -321,6 +368,17 @@ static int ls_scfg_msi_probe(struct plat bitmap_set(msi_data->used, 0, msi_data->irqs_num); msi_data->msir_num = of_irq_count(pdev->dev.of_node); @@ -152,6 +150,3 @@ index 71a2050..57e3d90 100644 msi_data->msir = devm_kcalloc(&pdev->dev, msi_data->msir_num, sizeof(*msi_data->msir), GFP_KERNEL); --- -2.1.0.27.g96db324 -