summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ. German Rivera <Jose.G.Rivera@freescale.com>2013-10-02 22:22:36 (GMT)
committerJ. German Rivera <German.Rivera@freescale.com>2013-10-02 22:22:36 (GMT)
commit3914c4dd5aa3ed90483b35ea097f43f2f63b1920 (patch)
treeeb108dea78684774736ce244b8889e41c97f5696
parentd103ca95cb3fbde0aaae4ca8a8be727d7e2bed71 (diff)
parenta2f50a55e334ee321b49f33746930c606b16e1f8 (diff)
downloadlinux-fsl-qoriq-3914c4dd5aa3ed90483b35ea097f43f2f63b1920.tar.xz
Merge branch 'sdk-kernel-3.8'
-rw-r--r--arch/powerpc/boot/dts/p1010rdb-pa.dts33
-rw-r--r--arch/powerpc/boot/dts/p1010rdb-pb.dts33
-rw-r--r--arch/powerpc/boot/dts/p1010rdb.dts66
-rw-r--r--arch/powerpc/boot/dts/p1010rdb.dtsi51
-rw-r--r--arch/powerpc/sysdev/fsl_pci.c5
-rw-r--r--drivers/net/ethernet/freescale/dpa/Kconfig2
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth.c8
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c2
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth_macless.c2
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth_non_sg.c2
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c2
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth_shared.c2
-rw-r--r--drivers/pci/quirks.c10
-rw-r--r--drivers/staging/fsl_dpa_offload/dpa_classifier.c16
-rw-r--r--drivers/staging/fsl_dpa_offload/wrp_dpa_ipsec.c6
-rw-r--r--drivers/staging/fsl_dpa_offload/wrp_dpa_stats.c2
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);