diff options
author | J. German Rivera <Jose.G.Rivera@freescale.com> | 2013-10-02 22:22:36 (GMT) |
---|---|---|
committer | J. German Rivera <German.Rivera@freescale.com> | 2013-10-02 22:22:36 (GMT) |
commit | 3914c4dd5aa3ed90483b35ea097f43f2f63b1920 (patch) | |
tree | eb108dea78684774736ce244b8889e41c97f5696 | |
parent | d103ca95cb3fbde0aaae4ca8a8be727d7e2bed71 (diff) | |
parent | a2f50a55e334ee321b49f33746930c606b16e1f8 (diff) | |
download | linux-fsl-qoriq-3914c4dd5aa3ed90483b35ea097f43f2f63b1920.tar.xz |
Merge branch 'sdk-kernel-3.8'
-rw-r--r-- | arch/powerpc/boot/dts/p1010rdb-pa.dts | 33 | ||||
-rw-r--r-- | arch/powerpc/boot/dts/p1010rdb-pb.dts | 33 | ||||
-rw-r--r-- | arch/powerpc/boot/dts/p1010rdb.dts | 66 | ||||
-rw-r--r-- | arch/powerpc/boot/dts/p1010rdb.dtsi | 51 | ||||
-rw-r--r-- | arch/powerpc/sysdev/fsl_pci.c | 5 | ||||
-rw-r--r-- | drivers/net/ethernet/freescale/dpa/Kconfig | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/freescale/dpa/dpaa_eth.c | 8 | ||||
-rw-r--r-- | drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/freescale/dpa/dpaa_eth_macless.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/freescale/dpa/dpaa_eth_non_sg.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/freescale/dpa/dpaa_eth_shared.c | 2 | ||||
-rw-r--r-- | drivers/pci/quirks.c | 10 | ||||
-rw-r--r-- | drivers/staging/fsl_dpa_offload/dpa_classifier.c | 16 | ||||
-rw-r--r-- | drivers/staging/fsl_dpa_offload/wrp_dpa_ipsec.c | 6 | ||||
-rw-r--r-- | drivers/staging/fsl_dpa_offload/wrp_dpa_stats.c | 2 |
16 files changed, 95 insertions, 147 deletions
diff --git a/arch/powerpc/boot/dts/p1010rdb-pa.dts b/arch/powerpc/boot/dts/p1010rdb-pa.dts deleted file mode 100644 index e1688d4..0000000 --- a/arch/powerpc/boot/dts/p1010rdb-pa.dts +++ /dev/null @@ -1,33 +0,0 @@ -/* - * P1010 RDB-PA Device Tree Source - * - * Copyright 2011 Freescale Semiconductor Inc. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - */ - -/include/ "fsl/p1010si-pre.dtsi" - -/ { - model = "fsl,P1010RDB-PA"; - compatible = "fsl,P1010RDB"; - - /include/ "p1010rdb.dtsi" -}; - -&phy0 { - interrupts = <3 1 0 0>; -}; - -&phy1 { - interrupts = <2 1 0 0>; -}; - -&phy2 { - interrupts = <2 1 0 0>; -}; - -/include/ "fsl/p1010si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1010rdb-pb.dts b/arch/powerpc/boot/dts/p1010rdb-pb.dts deleted file mode 100644 index 37f9366..0000000 --- a/arch/powerpc/boot/dts/p1010rdb-pb.dts +++ /dev/null @@ -1,33 +0,0 @@ -/* - * P1010 RDB-PB Device Tree Source - * - * Copyright 2011 Freescale Semiconductor Inc. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - */ - -/include/ "fsl/p1010si-pre.dtsi" - -/ { - model = "fsl,P1010RDB-PB"; - compatible = "fsl,P1010RDB"; - - /include/ "p1010rdb.dtsi" -}; - -&phy0 { - interrupts = <0 1 0 0>; -}; - -&phy1 { - interrupts = <2 1 0 0>; -}; - -&phy2 { - interrupts = <1 1 0 0>; -}; - -/include/ "fsl/p1010si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1010rdb.dts b/arch/powerpc/boot/dts/p1010rdb.dts new file mode 100644 index 0000000..b868d22 --- /dev/null +++ b/arch/powerpc/boot/dts/p1010rdb.dts @@ -0,0 +1,66 @@ +/* + * P1010 RDB Device Tree Source + * + * Copyright 2011 Freescale Semiconductor Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + */ + +/include/ "fsl/p1010si-pre.dtsi" + +/ { + model = "fsl,P1010RDB"; + compatible = "fsl,P1010RDB"; + + memory { + device_type = "memory"; + }; + + board_ifc: ifc: ifc@ffe1e000 { + /* NOR, NAND Flashes and CPLD on board */ + ranges = <0x0 0x0 0x0 0xee000000 0x02000000 + 0x1 0x0 0x0 0xff800000 0x00010000 + 0x3 0x0 0x0 0xffb00000 0x00000020>; + reg = <0x0 0xffe1e000 0 0x2000>; + }; + + board_soc: soc: soc@ffe00000 { + ranges = <0x0 0x0 0xffe00000 0x100000>; + }; + + pci0: pcie@ffe09000 { + reg = <0 0xffe09000 0 0x1000>; + ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000 + 0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>; + pcie@0 { + ranges = <0x2000000 0x0 0xa0000000 + 0x2000000 0x0 0xa0000000 + 0x0 0x20000000 + + 0x1000000 0x0 0x0 + 0x1000000 0x0 0x0 + 0x0 0x100000>; + }; + }; + + pci1: pcie@ffe0a000 { + reg = <0 0xffe0a000 0 0x1000>; + ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000 + 0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>; + pcie@0 { + ranges = <0x2000000 0x0 0x80000000 + 0x2000000 0x0 0x80000000 + 0x0 0x20000000 + + 0x1000000 0x0 0x0 + 0x1000000 0x0 0x0 + 0x0 0x100000>; + }; + }; +}; + +/include/ "p1010rdb.dtsi" +/include/ "fsl/p1010si-post.dtsi" diff --git a/arch/powerpc/boot/dts/p1010rdb.dtsi b/arch/powerpc/boot/dts/p1010rdb.dtsi index 5e5ca56..7fc3402 100644 --- a/arch/powerpc/boot/dts/p1010rdb.dtsi +++ b/arch/powerpc/boot/dts/p1010rdb.dtsi @@ -32,17 +32,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -memory { - device_type = "memory"; -}; - -board_ifc: ifc: ifc@ffe1e000 { - /* NOR, NAND Flashes and CPLD on board */ - ranges = <0x0 0x0 0x0 0xee000000 0x02000000 - 0x1 0x0 0x0 0xff800000 0x00010000 - 0x3 0x0 0x0 0xffb00000 0x00000020>; - reg = <0x0 0xffe1e000 0 0x2000>; - +&board_ifc { nor@0,0 { #address-cells = <1>; #size-cells = <1>; @@ -134,9 +124,7 @@ board_ifc: ifc: ifc@ffe1e000 { }; }; -board_soc: soc: soc@ffe00000 { - ranges = <0x0 0x0 0xffe00000 0x100000>; - +&board_soc { i2c@3000 { eeprom@50 { compatible = "st,24c256"; @@ -211,14 +199,17 @@ board_soc: soc: soc@ffe00000 { mdio@24000 { phy0: ethernet-phy@0 { + interrupts = <3 1 0 0>; reg = <0x1>; }; phy1: ethernet-phy@1 { + interrupts = <2 1 0 0>; reg = <0x0>; }; phy2: ethernet-phy@2 { + interrupts = <2 1 0 0>; reg = <0x2>; }; @@ -270,35 +261,3 @@ board_soc: soc: soc@ffe00000 { ptimer-handle = <&ptp_timer>; }; }; - -pci0: pcie@ffe09000 { - reg = <0 0xffe09000 0 0x1000>; - ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000 - 0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>; - - pcie@0 { - ranges = <0x2000000 0x0 0xa0000000 - 0x2000000 0x0 0xa0000000 - 0x0 0x20000000 - - 0x1000000 0x0 0x0 - 0x1000000 0x0 0x0 - 0x0 0x100000>; - }; -}; - -pci1: pcie@ffe0a000 { - reg = <0 0xffe0a000 0 0x1000>; - ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000 - 0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>; - - pcie@0 { - ranges = <0x2000000 0x0 0x80000000 - 0x2000000 0x0 0x80000000 - 0x0 0x20000000 - - 0x1000000 0x0 0x0 - 0x1000000 0x0 0x0 - 0x0 0x100000>; - }; -}; diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c index 5648137..d213c83 100644 --- a/arch/powerpc/sysdev/fsl_pci.c +++ b/arch/powerpc/sysdev/fsl_pci.c @@ -41,7 +41,7 @@ static int fsl_pcie_bus_fixup, is_mpc83xx_pci; -static void quirk_fsl_pcie_header(struct pci_dev *dev) +static void quirk_fsl_pcie_early(struct pci_dev *dev) { u8 hdr_type; @@ -626,7 +626,8 @@ no_bridge: } #endif /* CONFIG_FSL_SOC_BOOKE || CONFIG_PPC_86xx */ -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_FREESCALE, PCI_ANY_ID, quirk_fsl_pcie_header); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_FREESCALE, PCI_ANY_ID, + quirk_fsl_pcie_early); #if defined(CONFIG_PPC_83xx) || defined(CONFIG_PPC_MPC512x) struct mpc83xx_pcie_priv { diff --git a/drivers/net/ethernet/freescale/dpa/Kconfig b/drivers/net/ethernet/freescale/dpa/Kconfig index 3c91e93..7d0f596 100644 --- a/drivers/net/ethernet/freescale/dpa/Kconfig +++ b/drivers/net/ethernet/freescale/dpa/Kconfig @@ -45,6 +45,7 @@ choice FSL_DPAA_ETH_OPTIMIZE config FSL_DPAA_ETH_OPTIMIZE_FOR_TERM bool "Optimize for termination" + select FSL_DPAA_TX_RECYCLE if FMAN_T4240 select FSL_DPAA_ETH_SG_SUPPORT ---help--- Optimize the DPAA-Ethernet driver for termination (TCP, UDP) use-cases. @@ -54,6 +55,7 @@ endchoice config FSL_DPAA_TX_RECYCLE bool + depends on FSL_DPAA_ETH depends on FMAN_T4240 config FSL_DPAA_1588 diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth.c index f540e94..7e04f25 100644 --- a/drivers/net/ethernet/freescale/dpa/dpaa_eth.c +++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth.c @@ -481,7 +481,7 @@ static void dpaa_eth_napi_enable(struct dpa_priv_s *priv) struct dpa_percpu_priv_s *percpu_priv; int i; - for_each_online_cpu(i) { + for_each_possible_cpu(i) { percpu_priv = per_cpu_ptr(priv->percpu_priv, i); napi_enable(&percpu_priv->napi); } @@ -492,7 +492,7 @@ static void dpaa_eth_napi_disable(struct dpa_priv_s *priv) struct dpa_percpu_priv_s *percpu_priv; int i; - for_each_online_cpu(i) { + for_each_possible_cpu(i) { percpu_priv = per_cpu_ptr(priv->percpu_priv, i); napi_disable(&percpu_priv->napi); } @@ -584,7 +584,7 @@ static int dpa_private_netdev_init(struct device_node *dpa_node, /* Although we access another CPU's private data here * we do it at initialization so it is safe */ - for_each_online_cpu(i) { + for_each_possible_cpu(i) { percpu_priv = per_cpu_ptr(priv->percpu_priv, i); percpu_priv->net_dev = net_dev; @@ -822,7 +822,7 @@ dpaa_eth_priv_probe(struct platform_device *_of_dev) err = -ENOMEM; goto alloc_percpu_failed; } - for_each_online_cpu(i) { + for_each_possible_cpu(i) { percpu_priv = per_cpu_ptr(priv->percpu_priv, i); memset(percpu_priv, 0, sizeof(*percpu_priv)); } diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c index 892b333..e04b3b7 100644 --- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c +++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c @@ -220,7 +220,7 @@ dpa_get_stats64(struct net_device *net_dev, struct dpa_percpu_priv_s *percpu_priv; int numstats = sizeof(struct rtnl_link_stats64) / sizeof(u64); - for_each_online_cpu(i) { + for_each_possible_cpu(i) { percpu_priv = per_cpu_ptr(priv->percpu_priv, i); cpustats = (u64 *)&percpu_priv->stats; diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_macless.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_macless.c index 0e89aed..8065a81 100644 --- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_macless.c +++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_macless.c @@ -335,7 +335,7 @@ static int dpaa_eth_macless_probe(struct platform_device *_of_dev) err = -ENOMEM; goto alloc_percpu_failed; } - for_each_online_cpu(i) { + for_each_possible_cpu(i) { percpu_priv = per_cpu_ptr(priv->percpu_priv, i); memset(percpu_priv, 0, sizeof(*percpu_priv)); } diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_non_sg.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_non_sg.c index b4d26ce..f1f9fce 100644 --- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_non_sg.c +++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_non_sg.c @@ -138,7 +138,7 @@ int dpa_bp_priv_seed(struct dpa_bp *dpa_bp) dpa_bp->size = default_buf_size; /* Give each cpu an allotment of "count" buffers */ - for_each_online_cpu(i) { + for_each_possible_cpu(i) { int j; for (j = 0; j < dpa_bp->target_count; j += 8) diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c index fff3926..38580c9 100644 --- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c +++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c @@ -135,7 +135,7 @@ int dpa_bp_priv_seed(struct dpa_bp *dpa_bp) int i; /* Give each CPU an allotment of "config_count" buffers */ - for_each_online_cpu(i) { + for_each_possible_cpu(i) { int j; /* Although we access another CPU's counters here diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_shared.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_shared.c index 565b46e..300c456 100644 --- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_shared.c +++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_shared.c @@ -693,7 +693,7 @@ dpaa_eth_shared_probe(struct platform_device *_of_dev) err = -ENOMEM; goto alloc_percpu_failed; } - for_each_online_cpu(i) { + for_each_possible_cpu(i) { percpu_priv = per_cpu_ptr(priv->percpu_priv, i); memset(percpu_priv, 0, sizeof(*percpu_priv)); } diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 5088639..0369fb6 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -2794,16 +2794,6 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x342e, vtd_mask_spec_errors); DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x3c28, vtd_mask_spec_errors); #endif -#ifdef CONFIG_FSL_PCI -static void quirk_freescale_class(struct pci_dev *dev) -{ - dev_info(&dev->dev, "Setting PCI class for FSL PCI host bridge\n"); - dev->class = (PCI_CLASS_BRIDGE_PCI << 8) | (dev->class & 0xff); -} -DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_FREESCALE, PCI_ANY_ID, - quirk_freescale_class); -#endif - static void fixup_ti816x_class(struct pci_dev *dev) { /* TI 816x devices do not have class code set when in PCIe boot mode */ diff --git a/drivers/staging/fsl_dpa_offload/dpa_classifier.c b/drivers/staging/fsl_dpa_offload/dpa_classifier.c index 751dacd..5f7c7f7 100644 --- a/drivers/staging/fsl_dpa_offload/dpa_classifier.c +++ b/drivers/staging/fsl_dpa_offload/dpa_classifier.c @@ -2784,10 +2784,6 @@ static int action_to_next_engine_params(const struct dpa_cls_tbl_action *action, next_engine_params->nextEngine = e_FM_PCD_DONE; next_engine_params->params.enqueueParams.action = e_FM_PCD_DROP_FRAME; - if (action->enable_statistics) - next_engine_params->statisticsEn = - TRUE; - break; case DPA_CLS_TBL_ACTION_ENQ: if (distribution && classification) { @@ -2863,10 +2859,6 @@ static int action_to_next_engine_params(const struct dpa_cls_tbl_action *action, action->enq_params.new_rel_vsp_id; #endif } - - if (action->enable_statistics) - next_engine_params->statisticsEn = - TRUE; } if (action->enq_params.hmd != DPA_OFFLD_DESC_NONE) { @@ -2980,6 +2972,9 @@ static int action_to_next_engine_params(const struct dpa_cls_tbl_action *action, return -EINVAL; } + if (action->enable_statistics) + next_engine_params->statisticsEn = TRUE; + dpa_cls_dbg(("DEBUG: dpa_classifier %s (%d) <--\n", __func__, __LINE__)); @@ -7485,8 +7480,6 @@ int dpa_classif_mcast_create_group( pgroup->entries[0].used = true; pgroup->member_ids[0] = 0; pgroup->num_members++; - - kfree(replic_grp_params); } else { pgroup->group = res->group_node; /* mark prefilled members in index array member */ @@ -7499,6 +7492,8 @@ int dpa_classif_mcast_create_group( pgroup->num_members = group_params->prefilled_members; } + kfree(replic_grp_params); + if (!pgroup->group) { log_err("Could not create %s group %d\n", (group_params->prefilled_members > 0) ? "imported" : @@ -7524,7 +7519,6 @@ dpa_classif_mcast_create_group_error: } *grpd = DPA_OFFLD_DESC_NONE; - kfree(replic_grp_params); return err; } diff --git a/drivers/staging/fsl_dpa_offload/wrp_dpa_ipsec.c b/drivers/staging/fsl_dpa_offload/wrp_dpa_ipsec.c index 0d3ff7e..7b51e97 100644 --- a/drivers/staging/fsl_dpa_offload/wrp_dpa_ipsec.c +++ b/drivers/staging/fsl_dpa_offload/wrp_dpa_ipsec.c @@ -1335,7 +1335,8 @@ free: break; } default: - pr_err("Invalid DPA IPsec ioctl\n"); + pr_err("Invalid DPA IPsec ioctl (0x%x)\n", cmd); + ret = -EINVAL; break; } @@ -1503,7 +1504,8 @@ free: break; } default: - pr_err("Invalid DPA IPsec ioctl\n"); + pr_err("Invalid DPA IPsec ioctl (0x%x)\n", cmd); + ret = -EINVAL; break; } diff --git a/drivers/staging/fsl_dpa_offload/wrp_dpa_stats.c b/drivers/staging/fsl_dpa_offload/wrp_dpa_stats.c index b7fdf18..cf1d47c 100644 --- a/drivers/staging/fsl_dpa_offload/wrp_dpa_stats.c +++ b/drivers/staging/fsl_dpa_offload/wrp_dpa_stats.c @@ -1045,7 +1045,7 @@ create_cls_counter_cleanup: kfree(cnode->keys[i]); } /* Restore user-space pointers */ - tbl->keys = us_keys; + cnode->keys = us_keys; break; case DPA_STATS_CNT_IPSEC: kfree(sa_ids); |