summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjason <jason.jin@freescale.com>2015-06-01 08:30:34 (GMT)
committerjason <jason.jin@freescale.com>2015-06-01 08:30:34 (GMT)
commit5217966a0624a33977766b5c5e91a0bc46d9cb36 (patch)
treee55aabe4f6e5284bd863349d8d540d427d495e94
parent02d571e96d41e475ad809326a94a1b3beb3b104e (diff)
parent1b189c445fc54387c7a3bb94c61232d4f3846922 (diff)
downloadlinux-fsl-qoriq-5217966a0624a33977766b5c5e91a0bc46d9cb36.tar.xz
Merge branch 'qoriq-sdk' into LS1-SDK-Rev2.0
-rw-r--r--arch/powerpc/boot/dts/t1023rdb.dts12
-rw-r--r--arch/powerpc/boot/dts/t1024rdb.dts7
-rw-r--r--arch/powerpc/configs/corenet32_smp_defconfig1
-rw-r--r--arch/powerpc/configs/corenet64_smp_defconfig2
-rw-r--r--arch/powerpc/kvm/Kconfig1
-rw-r--r--arch/powerpc/platforms/85xx/bsc913x_qds.c1
-rw-r--r--drivers/clk/clk-qoriq.c2
-rw-r--r--drivers/crypto/caam/caamalg.c113
-rw-r--r--drivers/crypto/caam/caamalg_qi.c111
-rw-r--r--drivers/crypto/caam/caamhash.c2
-rw-r--r--drivers/crypto/caam/caampkc.c35
-rw-r--r--drivers/crypto/caam/ctrl.c8
-rw-r--r--drivers/crypto/caam/desc.h1
-rw-r--r--drivers/crypto/caam/desc_constr.h3
-rw-r--r--drivers/crypto/caam/intern.h5
-rw-r--r--drivers/crypto/caam/pkc_desc.c9
-rw-r--r--drivers/crypto/caam/pkc_desc.h4
-rw-r--r--drivers/crypto/caam/regs.h2
-rw-r--r--drivers/crypto/caam/sg_sw_sec4.h12
-rw-r--r--drivers/crypto/talitos.c18
-rw-r--r--drivers/mtd/devices/m25p80.c11
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c1
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth_generic.c55
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_generic_debugfs.c2
-rw-r--r--drivers/net/ethernet/freescale/dpa/mac-api.c2
-rw-r--r--drivers/net/ethernet/freescale/fman/Peripherals/FM/HC/hc.c13
-rw-r--r--drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/dtsec.c49
-rw-r--r--drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c61
-rw-r--r--drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/tgec.c48
-rw-r--r--drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_kg.c102
-rw-r--r--drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_pcd.c35
-rw-r--r--drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_plcr.c97
-rw-r--r--drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_prs.c46
-rw-r--r--drivers/net/ethernet/freescale/fman/Peripherals/FM/Port/fm_port.c265
-rw-r--r--drivers/net/ethernet/freescale/fman/Peripherals/FM/Rtc/fm_rtc.c49
-rw-r--r--drivers/net/ethernet/freescale/fman/Peripherals/FM/fm.c146
-rw-r--r--drivers/net/ethernet/freescale/fman/inc/ctype_ext.h94
-rw-r--r--drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c4
-rw-r--r--drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm_compat.c6
-rw-r--r--drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_sysfs_fm_port.c34
-rw-r--r--drivers/net/ethernet/freescale/fman/src/xx/Makefile2
-rw-r--r--drivers/net/ethernet/freescale/fman/src/xx/stdlib.c264
-rw-r--r--drivers/net/ethernet/freescale/xgmac_mdio.c9
-rw-r--r--drivers/staging/fsl_dce/dce_sys.c2
-rw-r--r--drivers/staging/fsl_dpa_offload/dpa_ipsec.c2
-rw-r--r--drivers/staging/fsl_dpa_offload/dts/b4860qds-usdpaa-nf-offload.dts181
-rw-r--r--drivers/staging/fsl_dpa_offload/dts/b4860qds-usdpaa-shared-interfaces.dts19
-rw-r--r--drivers/staging/fsl_pme2/pme2_high.c3
-rw-r--r--drivers/staging/fsl_qbman/bman_test_high.c4
-rw-r--r--drivers/staging/fsl_qbman/fsl_usdpaa.c4
-rw-r--r--drivers/staging/fsl_qbman/qman_high.c317
-rw-r--r--drivers/usb/gadget/fsl_udc_core.c18
-rw-r--r--drivers/usb/gadget/fsl_usb2_udc.h12
-rw-r--r--include/linux/fsl_qman.h90
-rw-r--r--include/linux/mtd/spi-nor.h2
-rw-r--r--include/uapi/linux/fmd/Peripherals/fm_ioctls.h2
56 files changed, 933 insertions, 1467 deletions
diff --git a/arch/powerpc/boot/dts/t1023rdb.dts b/arch/powerpc/boot/dts/t1023rdb.dts
index 0fd8dc8..4aa16c3 100644
--- a/arch/powerpc/boot/dts/t1023rdb.dts
+++ b/arch/powerpc/boot/dts/t1023rdb.dts
@@ -60,7 +60,7 @@
#address-cells = <1>;
#size-cells = <1>;
compatible = "fsl,ifc-nand";
- reg = <0x2 0x0 0x10000>;
+ reg = <0x1 0x0 0x10000>;
};
};
@@ -107,7 +107,17 @@
};
i2c@118100 {
+ ina220@40 {
+ compatible = "ti,ina220";
+ reg = <0x40>;
+ shunt-resistor = <1000>;
+ };
+ ina220@41 {
+ compatible = "ti,ina220";
+ reg = <0x41>;
+ shunt-resistor = <1000>;
+ };
};
fman0: fman@400000 {
diff --git a/arch/powerpc/boot/dts/t1024rdb.dts b/arch/powerpc/boot/dts/t1024rdb.dts
index af52aeb..559a422 100644
--- a/arch/powerpc/boot/dts/t1024rdb.dts
+++ b/arch/powerpc/boot/dts/t1024rdb.dts
@@ -126,6 +126,13 @@
reg = <0x4c>;
};
+ /* INA220 Current Sense */
+ ina220@40 {
+ compatible = "ti,ina220";
+ reg = <0x40>;
+ shunt-resistor = <1000>;
+ };
+
eeprom@50 {
compatible = "at24,24c256";
reg = <0x50>;
diff --git a/arch/powerpc/configs/corenet32_smp_defconfig b/arch/powerpc/configs/corenet32_smp_defconfig
index 47b01412..605fd5a 100644
--- a/arch/powerpc/configs/corenet32_smp_defconfig
+++ b/arch/powerpc/configs/corenet32_smp_defconfig
@@ -156,6 +156,7 @@ CONFIG_FSL_PME2=y
CONFIG_FSL_PAMU=y
CONFIG_VIRT_DRIVERS=y
CONFIG_FSL_HV_MANAGER=y
+CONFIG_CLK_QORIQ=y
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
diff --git a/arch/powerpc/configs/corenet64_smp_defconfig b/arch/powerpc/configs/corenet64_smp_defconfig
index c063a2c..e9fe78a 100644
--- a/arch/powerpc/configs/corenet64_smp_defconfig
+++ b/arch/powerpc/configs/corenet64_smp_defconfig
@@ -93,6 +93,7 @@ CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_IDS=y
CONFIG_MTD_NAND_FSL_ELBC=y
CONFIG_MTD_NAND_FSL_IFC=y
+CONFIG_MTD_SPI_NOR_BASE=y
CONFIG_MTD_UBI=y
CONFIG_MTD_UBI_WL_THRESHOLD=4096
CONFIG_MTD_UBI_BEB_RESERVE=1
@@ -173,6 +174,7 @@ CONFIG_FSL_PME2=y
CONFIG_FSL_PAMU=y
CONFIG_VIRT_DRIVERS=y
CONFIG_FSL_HV_MANAGER=y
+CONFIG_CLK_QORIQ=y
CONFIG_MEMORY=y
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
diff --git a/arch/powerpc/kvm/Kconfig b/arch/powerpc/kvm/Kconfig
index ffaef2c..78c3c30 100644
--- a/arch/powerpc/kvm/Kconfig
+++ b/arch/powerpc/kvm/Kconfig
@@ -155,6 +155,7 @@ config KVM_E500MC
config KVM_MPIC
bool "KVM in-kernel MPIC emulation"
depends on KVM && E500
+ depends on !PREEMPT_RT_FULL
select HAVE_KVM_IRQCHIP
select HAVE_KVM_IRQ_ROUTING
select HAVE_KVM_MSI
diff --git a/arch/powerpc/platforms/85xx/bsc913x_qds.c b/arch/powerpc/platforms/85xx/bsc913x_qds.c
index 2812784..428973f 100644
--- a/arch/powerpc/platforms/85xx/bsc913x_qds.c
+++ b/arch/powerpc/platforms/85xx/bsc913x_qds.c
@@ -72,6 +72,7 @@ define_machine(bsc9132_qds) {
.init_IRQ = bsc913x_qds_pic_init,
#ifdef CONFIG_PCI
.pcibios_fixup_bus = fsl_pcibios_fixup_bus,
+ .pcibios_fixup_phb = fsl_pcibios_fixup_phb,
#endif
.get_irq = mpic_get_irq,
.restart = fsl_rstcr_restart,
diff --git a/drivers/clk/clk-qoriq.c b/drivers/clk/clk-qoriq.c
index bbb2568..4c3d27c 100644
--- a/drivers/clk/clk-qoriq.c
+++ b/drivers/clk/clk-qoriq.c
@@ -127,7 +127,7 @@ static void __init core_mux_init(struct device_node *np)
init.name = clk_name;
init.ops = &cmux_ops;
init.parent_names = parent_names;
- init.num_parents = count;
+ init.num_parents = (u8)count;
init.flags = 0;
cmux_clk->hw.init = &init;
diff --git a/drivers/crypto/caam/caamalg.c b/drivers/crypto/caam/caamalg.c
index ba0c55a..0f117d0 100644
--- a/drivers/crypto/caam/caamalg.c
+++ b/drivers/crypto/caam/caamalg.c
@@ -660,6 +660,12 @@ static int tls_set_sh_desc(struct crypto_aead *aead)
unsigned int blocksize = crypto_aead_blocksize(aead);
/* Associated data length is always = 13 for TLS */
unsigned int assoclen = 13;
+ /*
+ * Pointer Size bool determines the size of address pointers.
+ * false - Pointers fit in one 32-bit word.
+ * true - Pointers fit in two 32-bit words.
+ */
+ static const bool ps = (CAAM_PTR_SZ != CAAM_CMD_SZ);
if (!ctx->enckeylen || !ctx->authsize)
return 0;
@@ -878,6 +884,10 @@ static int tls_set_sh_desc(struct crypto_aead *aead)
/* VSOL = payloadlen + icvlen + padlen */
append_math_add(desc, VARSEQOUTLEN, ZERO, REG3, 4);
+#ifdef __LITTLE_ENDIAN
+ append_moveb(desc, MOVE_WAITCOMP |
+ MOVE_SRC_MATH0 | MOVE_DEST_MATH0 | 8);
+#endif
/* update Len field */
append_math_sub(desc, REG0, REG0, REG2, 8);
@@ -917,23 +927,90 @@ static int tls_set_sh_desc(struct crypto_aead *aead)
/* VSIL = (payloadlen + icvlen + padlen) - icvlen + padlen */
append_math_sub(desc, VARSEQINLEN, REG3, REG2, 4);
- /* move seqoutptr fields into math registers */
- append_move(desc, MOVE_WAITCOMP | MOVE_SRC_DESCBUF | MOVE_DEST_MATH0 |
- (54 * 4 << MOVE_OFFSET_SHIFT) | 20);
- /* seqinptr will point to seqoutptr */
- append_math_and_imm_u32(desc, REG0, REG0, IMM,
- ~(CMD_SEQ_IN_PTR ^ CMD_SEQ_OUT_PTR));
- /* Load jump command */
- jumpback = CMD_JUMP | (char)-9;
- append_load_imm_u32(desc, jumpback, LDST_CLASS_DECO | LDST_IMM |
- LDST_SRCDST_WORD_DECO_MATH2 |
- (4 << LDST_OFFSET_SHIFT));
- append_jump(desc, JUMP_TEST_ALL | JUMP_COND_CALM | 1);
- /* move updated seqinptr fields to JD */
- append_move(desc, MOVE_WAITCOMP | MOVE_SRC_MATH0 | MOVE_DEST_DESCBUF |
- (54 * 4 << MOVE_OFFSET_SHIFT) | 24);
- /* read updated seqinptr */
- append_jump(desc, JUMP_TEST_ALL | JUMP_COND_CALM | 6);
+ /*
+ * Start a new input sequence using the SEQ OUT PTR command options,
+ * pointer and length used when the current output sequence was defined.
+ */
+ if (ps) {
+ /*
+ * Move the lower 32 bits of Shared Descriptor address, the
+ * SEQ OUT PTR command, Output Pointer (2 words) and
+ * Output Length into math registers.
+ */
+#ifdef __LITTLE_ENDIAN
+ append_move(desc, MOVE_WAITCOMP | MOVE_SRC_DESCBUF |
+ MOVE_DEST_MATH0 | (55 * 4 << MOVE_OFFSET_SHIFT) |
+ 20);
+#else
+ append_move(desc, MOVE_WAITCOMP | MOVE_SRC_DESCBUF |
+ MOVE_DEST_MATH0 | (54 * 4 << MOVE_OFFSET_SHIFT) |
+ 20);
+#endif
+ /* Transform SEQ OUT PTR command in SEQ IN PTR command */
+ append_math_and_imm_u32(desc, REG0, REG0, IMM,
+ ~(CMD_SEQ_IN_PTR ^ CMD_SEQ_OUT_PTR));
+ /* Append a JUMP command after the copied fields */
+ jumpback = CMD_JUMP | (char)-9;
+ append_load_imm_u32(desc, jumpback, LDST_CLASS_DECO | LDST_IMM |
+ LDST_SRCDST_WORD_DECO_MATH2 |
+ (4 << LDST_OFFSET_SHIFT));
+ append_jump(desc, JUMP_TEST_ALL | JUMP_COND_CALM | 1);
+ /* Move the updated fields back to the Job Descriptor */
+#ifdef __LITTLE_ENDIAN
+ append_move(desc, MOVE_WAITCOMP | MOVE_SRC_MATH0 |
+ MOVE_DEST_DESCBUF | (55 * 4 << MOVE_OFFSET_SHIFT) |
+ 24);
+#else
+ append_move(desc, MOVE_WAITCOMP | MOVE_SRC_MATH0 |
+ MOVE_DEST_DESCBUF | (54 * 4 << MOVE_OFFSET_SHIFT) |
+ 24);
+#endif
+ /*
+ * Read the new SEQ IN PTR command, Input Pointer, Input Length
+ * and then jump back to the next command from the
+ * Shared Descriptor.
+ */
+ append_jump(desc, JUMP_TEST_ALL | JUMP_COND_CALM | 6);
+ } else {
+ /*
+ * Move the SEQ OUT PTR command, Output Pointer (1 word) and
+ * Output Length into math registers.
+ */
+#ifdef __LITTLE_ENDIAN
+ append_move(desc, MOVE_WAITCOMP | MOVE_SRC_DESCBUF |
+ MOVE_DEST_MATH0 | (54 * 4 << MOVE_OFFSET_SHIFT) |
+ 12);
+#else
+ append_move(desc, MOVE_WAITCOMP | MOVE_SRC_DESCBUF |
+ MOVE_DEST_MATH0 | (53 * 4 << MOVE_OFFSET_SHIFT) |
+ 12);
+#endif
+ /* Transform SEQ OUT PTR command in SEQ IN PTR command */
+ append_math_and_imm_u64(desc, REG0, REG0, IMM,
+ ~(((u64)(CMD_SEQ_IN_PTR ^ CMD_SEQ_OUT_PTR)) << 32));
+ /* Append a JUMP command after the copied fields */
+ jumpback = CMD_JUMP | (char)-7;
+ append_load_imm_u32(desc, jumpback, LDST_CLASS_DECO | LDST_IMM |
+ LDST_SRCDST_WORD_DECO_MATH1 |
+ (4 << LDST_OFFSET_SHIFT));
+ append_jump(desc, JUMP_TEST_ALL | JUMP_COND_CALM | 1);
+ /* Move the updated fields back to the Job Descriptor */
+#ifdef __LITTLE_ENDIAN
+ append_move(desc, MOVE_WAITCOMP | MOVE_SRC_MATH0 |
+ MOVE_DEST_DESCBUF | (54 * 4 << MOVE_OFFSET_SHIFT) |
+ 16);
+#else
+ append_move(desc, MOVE_WAITCOMP | MOVE_SRC_MATH0 |
+ MOVE_DEST_DESCBUF | (53 * 4 << MOVE_OFFSET_SHIFT) |
+ 16);
+#endif
+ /*
+ * Read the new SEQ IN PTR command, Input Pointer, Input Length
+ * and then jump back to the next command from the
+ * Shared Descriptor.
+ */
+ append_jump(desc, JUMP_TEST_ALL | JUMP_COND_CALM | 5);
+ }
/* skip payload */
append_seq_fifo_load(desc, 0, FIFOLD_CLASS_SKIP | FIFOLDST_VLF);
@@ -4315,7 +4392,7 @@ static int caam_cra_init(struct crypto_tfm *tfm)
if (op_id < ARRAY_SIZE(digest_size)) {
ctx->authsize = digest_size[op_id];
} else {
- dev_err(ctx->jrdev, "incorrect op_id %d; must be less than %d\n",
+ dev_err(ctx->jrdev, "incorrect op_id %d; must be less than %zu\n",
op_id, ARRAY_SIZE(digest_size));
caam_jr_free(ctx->jrdev);
return -EINVAL;
diff --git a/drivers/crypto/caam/caamalg_qi.c b/drivers/crypto/caam/caamalg_qi.c
index 81b82bd..cc47085 100644
--- a/drivers/crypto/caam/caamalg_qi.c
+++ b/drivers/crypto/caam/caamalg_qi.c
@@ -376,6 +376,12 @@ static int tls_set_sh_desc(struct crypto_aead *aead)
unsigned int blocksize = crypto_aead_blocksize(aead);
/* Associated data length is always = 13 for TLS */
unsigned int assoclen = 13;
+ /*
+ * Pointer Size bool determines the size of address pointers.
+ * false - Pointers fit in one 32-bit word.
+ * true - Pointers fit in two 32-bit words.
+ */
+ static const bool ps = (CAAM_PTR_SZ != CAAM_CMD_SZ);
if (!ctx->enckeylen || !ctx->authsize)
return 0;
@@ -587,6 +593,10 @@ static int tls_set_sh_desc(struct crypto_aead *aead)
/* VSOL = payloadlen + icvlen + padlen */
append_math_add(desc, VARSEQOUTLEN, ZERO, REG3, 4);
+#ifdef __LITTLE_ENDIAN
+ append_moveb(desc, MOVE_WAITCOMP |
+ MOVE_SRC_MATH0 | MOVE_DEST_MATH0 | 8);
+#endif
/* update Len field */
append_math_sub(desc, REG0, REG0, REG2, 8);
@@ -626,23 +636,90 @@ static int tls_set_sh_desc(struct crypto_aead *aead)
/* VSIL = (payloadlen + icvlen + padlen) - icvlen + padlen */
append_math_sub(desc, VARSEQINLEN, REG3, REG2, 4);
- /* move seqoutptr fields into math registers */
- append_move(desc, MOVE_WAITCOMP | MOVE_SRC_DESCBUF | MOVE_DEST_MATH0 |
- (54 * 4 << MOVE_OFFSET_SHIFT) | 20);
- /* seqinptr will point to seqoutptr */
- append_math_and_imm_u32(desc, REG0, REG0, IMM,
- ~(CMD_SEQ_IN_PTR ^ CMD_SEQ_OUT_PTR));
- /* Load jump command */
- jumpback = CMD_JUMP | (char)-9;
- append_load_imm_u32(desc, jumpback, LDST_CLASS_DECO | LDST_IMM |
- LDST_SRCDST_WORD_DECO_MATH2 |
- (4 << LDST_OFFSET_SHIFT));
- append_jump(desc, JUMP_TEST_ALL | JUMP_COND_CALM | 1);
- /* move updated seqinptr fields to JD */
- append_move(desc, MOVE_WAITCOMP | MOVE_SRC_MATH0 | MOVE_DEST_DESCBUF |
- (54 * 4 << MOVE_OFFSET_SHIFT) | 24);
- /* read updated seqinptr */
- append_jump(desc, JUMP_TEST_ALL | JUMP_COND_CALM | 6);
+ /*
+ * Start a new input sequence using the SEQ OUT PTR command options,
+ * pointer and length used when the current output sequence was defined.
+ */
+ if (ps) {
+ /*
+ * Move the lower 32 bits of Shared Descriptor address, the
+ * SEQ OUT PTR command, Output Pointer (2 words) and
+ * Output Length into math registers.
+ */
+#ifdef __LITTLE_ENDIAN
+ append_move(desc, MOVE_WAITCOMP | MOVE_SRC_DESCBUF |
+ MOVE_DEST_MATH0 | (55 * 4 << MOVE_OFFSET_SHIFT) |
+ 20);
+#else
+ append_move(desc, MOVE_WAITCOMP | MOVE_SRC_DESCBUF |
+ MOVE_DEST_MATH0 | (54 * 4 << MOVE_OFFSET_SHIFT) |
+ 20);
+#endif
+ /* Transform SEQ OUT PTR command in SEQ IN PTR command */
+ append_math_and_imm_u32(desc, REG0, REG0, IMM,
+ ~(CMD_SEQ_IN_PTR ^ CMD_SEQ_OUT_PTR));
+ /* Append a JUMP command after the copied fields */
+ jumpback = CMD_JUMP | (char)-9;
+ append_load_imm_u32(desc, jumpback, LDST_CLASS_DECO | LDST_IMM |
+ LDST_SRCDST_WORD_DECO_MATH2 |
+ (4 << LDST_OFFSET_SHIFT));
+ append_jump(desc, JUMP_TEST_ALL | JUMP_COND_CALM | 1);
+ /* Move the updated fields back to the Job Descriptor */
+#ifdef __LITTLE_ENDIAN
+ append_move(desc, MOVE_WAITCOMP | MOVE_SRC_MATH0 |
+ MOVE_DEST_DESCBUF | (55 * 4 << MOVE_OFFSET_SHIFT) |
+ 24);
+#else
+ append_move(desc, MOVE_WAITCOMP | MOVE_SRC_MATH0 |
+ MOVE_DEST_DESCBUF | (54 * 4 << MOVE_OFFSET_SHIFT) |
+ 24);
+#endif
+ /*
+ * Read the new SEQ IN PTR command, Input Pointer, Input Length
+ * and then jump back to the next command from the
+ * Shared Descriptor.
+ */
+ append_jump(desc, JUMP_TEST_ALL | JUMP_COND_CALM | 6);
+ } else {
+ /*
+ * Move the SEQ OUT PTR command, Output Pointer (1 word) and
+ * Output Length into math registers.
+ */
+#ifdef __LITTLE_ENDIAN
+ append_move(desc, MOVE_WAITCOMP | MOVE_SRC_DESCBUF |
+ MOVE_DEST_MATH0 | (54 * 4 << MOVE_OFFSET_SHIFT) |
+ 12);
+#else
+ append_move(desc, MOVE_WAITCOMP | MOVE_SRC_DESCBUF |
+ MOVE_DEST_MATH0 | (53 * 4 << MOVE_OFFSET_SHIFT) |
+ 12);
+#endif
+ /* Transform SEQ OUT PTR command in SEQ IN PTR command */
+ append_math_and_imm_u64(desc, REG0, REG0, IMM,
+ ~(((u64)(CMD_SEQ_IN_PTR ^ CMD_SEQ_OUT_PTR)) << 32));
+ /* Append a JUMP command after the copied fields */
+ jumpback = CMD_JUMP | (char)-7;
+ append_load_imm_u32(desc, jumpback, LDST_CLASS_DECO | LDST_IMM |
+ LDST_SRCDST_WORD_DECO_MATH1 |
+ (4 << LDST_OFFSET_SHIFT));
+ append_jump(desc, JUMP_TEST_ALL | JUMP_COND_CALM | 1);
+ /* Move the updated fields back to the Job Descriptor */
+#ifdef __LITTLE_ENDIAN
+ append_move(desc, MOVE_WAITCOMP | MOVE_SRC_MATH0 |
+ MOVE_DEST_DESCBUF | (54 * 4 << MOVE_OFFSET_SHIFT) |
+ 16);
+#else
+ append_move(desc, MOVE_WAITCOMP | MOVE_SRC_MATH0 |
+ MOVE_DEST_DESCBUF | (53 * 4 << MOVE_OFFSET_SHIFT) |
+ 16);
+#endif
+ /*
+ * Read the new SEQ IN PTR command, Input Pointer, Input Length
+ * and then jump back to the next command from the
+ * Shared Descriptor.
+ */
+ append_jump(desc, JUMP_TEST_ALL | JUMP_COND_CALM | 5);
+ }
/* skip payload */
append_seq_fifo_load(desc, 0, FIFOLD_CLASS_SKIP | FIFOLDST_VLF);
diff --git a/drivers/crypto/caam/caamhash.c b/drivers/crypto/caam/caamhash.c
index 697a683..e99a45b 100644
--- a/drivers/crypto/caam/caamhash.c
+++ b/drivers/crypto/caam/caamhash.c
@@ -1778,7 +1778,7 @@ static int caam_hash_cra_init(struct crypto_tfm *tfm)
op_id = (ctx->alg_op & OP_ALG_ALGSEL_SUBMASK) >> OP_ALG_ALGSEL_SHIFT;
if (op_id >= ARRAY_SIZE(runninglen)) {
- dev_err(ctx->jrdev, "incorrect op_id %d; must be less than %d\n",
+ dev_err(ctx->jrdev, "incorrect op_id %d; must be less than %zu\n",
op_id, ARRAY_SIZE(runninglen));
ret = -EINVAL;
goto out_err;
diff --git a/drivers/crypto/caam/caampkc.c b/drivers/crypto/caam/caampkc.c
index f98abfb..e9944a4 100644
--- a/drivers/crypto/caam/caampkc.c
+++ b/drivers/crypto/caam/caampkc.c
@@ -30,6 +30,12 @@ struct caam_pkc_context_s {
struct device *dev;
};
+struct caam_pkc_alg {
+ struct list_head entry;
+ struct device *ctrldev;
+ struct crypto_alg crypto_alg;
+};
+
static void rsa_unmap(struct device *dev,
struct rsa_edesc *edesc, struct pkc_request *req)
{
@@ -484,6 +490,10 @@ static int caam_keygen_edesc(struct pkc_request *req,
{
struct crypto_pkc *tfm = crypto_pkc_reqtfm(req);
struct caam_pkc_context_s *ctxt = crypto_pkc_ctx(tfm);
+ struct crypto_alg *alg = crypto_pkc_tfm(tfm)->__crt_alg;
+ struct caam_pkc_alg *caam_alg =
+ container_of(alg, struct caam_pkc_alg, crypto_alg);
+ struct caam_drv_private *caam_priv = dev_get_drvdata(caam_alg->ctrldev);
struct device *dev = ctxt->dev;
struct keygen_req_s *key_req = &req->req_u.keygen;
@@ -491,6 +501,7 @@ static int caam_keygen_edesc(struct pkc_request *req,
edesc->n_len = key_req->r_len;
edesc->req_type = req->type;
edesc->curve_type = req->curve_type;
+ edesc->erratum_A_006899 = caam_priv->errata & SEC_ERRATUM_A_006899;
edesc->q_dma = dma_map_single(dev, key_req->q, key_req->q_len,
DMA_TO_DEVICE);
@@ -513,6 +524,20 @@ static int caam_keygen_edesc(struct pkc_request *req,
goto g_map_fail;
}
+ if (edesc->erratum_A_006899) {
+ dma_to_sec4_sg_one(&(edesc->g_sg), edesc->g_dma,
+ key_req->g_len, 0);
+ edesc->g_sg.len |= SEC4_SG_LEN_FIN;
+
+ edesc->g_sg_dma = dma_map_single(dev, &(edesc->g_sg),
+ sizeof(struct sec4_sg_entry),
+ DMA_TO_DEVICE);
+ if (dma_mapping_error(dev, edesc->g_sg_dma)) {
+ dev_err(dev, "unable to map S/G table\n");
+ goto g_sg_dma_fail;
+ }
+ }
+
edesc->key_dma = dma_map_single(dev, key_req->pub_key,
key_req->pub_key_len, DMA_FROM_DEVICE);
if (dma_mapping_error(dev, edesc->key_dma)) {
@@ -545,6 +570,10 @@ s_map_fail:
dma_unmap_single(dev, edesc->key_dma, key_req->pub_key_len,
DMA_FROM_DEVICE);
key_map_fail:
+ if (edesc->erratum_A_006899)
+ dma_unmap_single(dev, edesc->g_sg_dma, key_req->g_len,
+ DMA_TO_DEVICE);
+g_sg_dma_fail:
dma_unmap_single(dev, edesc->g_dma, key_req->g_len, DMA_TO_DEVICE);
g_map_fail:
dma_unmap_single(dev, edesc->r_dma, key_req->r_len, DMA_TO_DEVICE);
@@ -1324,12 +1353,6 @@ static struct caam_pkc_template driver_pkc[] = {
}
};
-struct caam_pkc_alg {
- struct list_head entry;
- struct device *ctrldev;
- struct crypto_alg crypto_alg;
-};
-
/* Per session pkc's driver context creation function */
static int caam_pkc_cra_init(struct crypto_tfm *tfm)
{
diff --git a/drivers/crypto/caam/ctrl.c b/drivers/crypto/caam/ctrl.c
index 7a22427..321deb0 100644
--- a/drivers/crypto/caam/ctrl.c
+++ b/drivers/crypto/caam/ctrl.c
@@ -480,6 +480,7 @@ static int caam_probe(struct platform_device *pdev)
{
int ret, ring, rspec;
u64 caam_id;
+ u32 caam_id_ms;
struct device *dev;
struct device_node *nprop, *np;
struct caam_ctrl __iomem *ctrl;
@@ -660,7 +661,12 @@ static int caam_probe(struct platform_device *pdev)
/* NOTE: RTIC detection ought to go here, around Si time */
ctrlpriv->era = caam_get_era();
- caam_id = (u64)rd_reg32(&ctrl->perfmon.caam_id_ms) << 32 |
+
+ caam_id_ms = rd_reg32(&ctrl->perfmon.caam_id_ms);
+ if (caam_id_ms == SEC_ID_MS_T1040)
+ ctrlpriv->errata |= SEC_ERRATUM_A_006899;
+
+ caam_id = (u64)caam_id_ms << 32 |
(u64)rd_reg32(&ctrl->perfmon.caam_id_ls);
/* Report "alive" for developer to see */
diff --git a/drivers/crypto/caam/desc.h b/drivers/crypto/caam/desc.h
index 03efd6e..e57fefa 100644
--- a/drivers/crypto/caam/desc.h
+++ b/drivers/crypto/caam/desc.h
@@ -38,6 +38,7 @@ struct sec4_sg_entry {
#define CMD_SEQ_LOAD (0x03 << CMD_SHIFT)
#define CMD_FIFO_LOAD (0x04 << CMD_SHIFT)
#define CMD_SEQ_FIFO_LOAD (0x05 << CMD_SHIFT)
+#define CMD_MOVEB (0x07 << CMD_SHIFT)
#define CMD_STORE (0x0a << CMD_SHIFT)
#define CMD_SEQ_STORE (0x0b << CMD_SHIFT)
#define CMD_FIFO_STORE (0x0c << CMD_SHIFT)
diff --git a/drivers/crypto/caam/desc_constr.h b/drivers/crypto/caam/desc_constr.h
index 112eb29..12a0eda 100644
--- a/drivers/crypto/caam/desc_constr.h
+++ b/drivers/crypto/caam/desc_constr.h
@@ -167,6 +167,7 @@ static inline u32 *append_##cmd(u32 *desc, u32 options) \
}
APPEND_CMD_RET(jump, JUMP)
APPEND_CMD_RET(move, MOVE)
+APPEND_CMD_RET(moveb, MOVEB)
static inline void set_jump_tgt_here(u32 *desc, u32 *jump_cmd)
{
@@ -369,7 +370,7 @@ do { \
if (upper) \
append_u64(desc, data); \
else \
- append_u32(desc, data); \
+ append_u32(desc, lower_32_bits(data)); \
} while (0)
#define append_math_add_imm_u64(desc, dest, src0, src1, data) \
diff --git a/drivers/crypto/caam/intern.h b/drivers/crypto/caam/intern.h
index 43596fe..9faf832 100644
--- a/drivers/crypto/caam/intern.h
+++ b/drivers/crypto/caam/intern.h
@@ -95,6 +95,11 @@ struct caam_drv_private {
struct list_head pkc_list;
int era; /* SEC Era */
+
+#define SEC_ERRATUM_A_006899 0x01
+ /* SEC errata bitmask */
+ u32 errata;
+
int virt_en; /* Virtualization enabled in CAAM */
#define RNG4_MAX_HANDLES 2
diff --git a/drivers/crypto/caam/pkc_desc.c b/drivers/crypto/caam/pkc_desc.c
index 5bcf5d3..2e81519 100644
--- a/drivers/crypto/caam/pkc_desc.c
+++ b/drivers/crypto/caam/pkc_desc.c
@@ -271,10 +271,15 @@ void *caam_keygen_desc(struct dsa_edesc_s *edesc)
(start_idx << HDR_START_IDX_SHIFT) |
(start_idx & HDR_DESCLEN_MASK) | HDR_ONE);
ecc_desc->sgf_ln = (edesc->l_len << DSA_PDB_L_SHIFT) |
- ((edesc->n_len & DSA_PDB_N_MASK));
+ (edesc->n_len & DSA_PDB_N_MASK);
+ if (edesc->erratum_A_006899) {
+ ecc_desc->sgf_ln |= DSA_PDB_SGF_G;
+ ecc_desc->g_dma = edesc->g_sg_dma;
+ } else {
+ ecc_desc->g_dma = edesc->g_dma;
+ }
ecc_desc->q_dma = edesc->q_dma;
ecc_desc->r_dma = edesc->r_dma;
- ecc_desc->g_dma = edesc->g_dma;
ecc_desc->s_dma = edesc->s_dma;
ecc_desc->w_dma = edesc->key_dma;
ecc_desc->ab_dma = edesc->ab_dma;
diff --git a/drivers/crypto/caam/pkc_desc.h b/drivers/crypto/caam/pkc_desc.h
index 03013c2..e859e40 100644
--- a/drivers/crypto/caam/pkc_desc.h
+++ b/drivers/crypto/caam/pkc_desc.h
@@ -20,6 +20,7 @@
#include "desc_constr.h"
#include "jr.h"
#include "error.h"
+#include "sg_sw_sec4.h"
#include <linux/crypto.h>
#include "pdb.h"
@@ -187,8 +188,11 @@ struct dsa_edesc_s {
dma_addr_t d_dma;
dma_addr_t ab_dma;
dma_addr_t g_dma;
+ dma_addr_t g_sg_dma;
dma_addr_t tmp_dma;
uint8_t *tmp; /* Allocate locally for dsa_verify */
+ struct sec4_sg_entry g_sg;
+ bool erratum_A_006899;
u32 hw_desc[];
};
diff --git a/drivers/crypto/caam/regs.h b/drivers/crypto/caam/regs.h
index 928cb53..72193f8 100644
--- a/drivers/crypto/caam/regs.h
+++ b/drivers/crypto/caam/regs.h
@@ -182,6 +182,8 @@ struct sec_vid {
u8 min_rev;
};
+#define SEC_ID_MS_T1040 0x0A120400
+
struct caam_perfmon {
/* Performance Monitor Registers f00-f9f */
u64 req_dequeued; /* PC_REQ_DEQ - Dequeued Requests */
diff --git a/drivers/crypto/caam/sg_sw_sec4.h b/drivers/crypto/caam/sg_sw_sec4.h
index eef6345..752134c 100644
--- a/drivers/crypto/caam/sg_sw_sec4.h
+++ b/drivers/crypto/caam/sg_sw_sec4.h
@@ -90,9 +90,9 @@ static inline int sg_count(struct scatterlist *sg_list, int nbytes,
return sg_nents;
}
-static int dma_map_sg_chained(struct device *dev, struct scatterlist *sg,
- unsigned int nents, enum dma_data_direction dir,
- bool chained)
+static int __maybe_unused dma_map_sg_chained(struct device *dev,
+ struct scatterlist *sg, unsigned int nents, enum dma_data_direction dir,
+ bool chained)
{
if (!sg || !nents)
return 0;
@@ -109,9 +109,9 @@ static int dma_map_sg_chained(struct device *dev, struct scatterlist *sg,
return nents;
}
-static void dma_unmap_sg_chained(struct device *dev, struct scatterlist *sg,
- unsigned int nents, enum dma_data_direction dir,
- bool chained)
+static void __maybe_unused dma_unmap_sg_chained(struct device *dev,
+ struct scatterlist *sg, unsigned int nents, enum dma_data_direction dir,
+ bool chained)
{
if (!sg || !nents)
return;
diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c
index c7a1368..8ebe3f9 100644
--- a/drivers/crypto/talitos.c
+++ b/drivers/crypto/talitos.c
@@ -65,7 +65,7 @@ static void to_talitos_ptr(struct talitos_ptr *talitos_ptr, dma_addr_t dma_addr)
*/
static void map_single_talitos_ptr(struct device *dev,
struct talitos_ptr *talitos_ptr,
- unsigned short len, void *data,
+ unsigned int len, void *data,
unsigned char extent,
enum dma_data_direction dir)
{
@@ -458,7 +458,7 @@ static void talitos_error(struct device *dev, u32 isr, u32 isr_lo)
struct talitos_private *priv = dev_get_drvdata(dev);
unsigned int timeout = TALITOS_TIMEOUT;
int ch, error, reset_dev = 0, reset_ch = 0;
- u32 v, v_lo;
+ u32 v_lo;
for (ch = 0; ch < priv->num_channels; ch++) {
/* skip channels without errors */
@@ -467,7 +467,6 @@ static void talitos_error(struct device *dev, u32 isr, u32 isr_lo)
error = -EINVAL;
- v = in_be32(priv->chan[ch].reg + TALITOS_CCPSR);
v_lo = in_be32(priv->chan[ch].reg + TALITOS_CCPSR_LO);
if (v_lo & TALITOS_CCPSR_LO_DOF) {
@@ -1052,7 +1051,7 @@ struct talitos_ahash_req_ctx {
unsigned int first;
unsigned int last;
unsigned int to_hash_later;
- u64 nbuf;
+ unsigned int nbuf;
struct scatterlist bufsl[2];
struct scatterlist *psrc;
};
@@ -1298,7 +1297,7 @@ static int sg_to_link_tbl(struct scatterlist *sg, int sg_count,
{
int n_sg = sg_count;
- while (n_sg--) {
+ while (sg && n_sg--) {
to_talitos_ptr(link_tbl_ptr, sg_dma_address(sg));
link_tbl_ptr->len = cpu_to_be16(sg_dma_len(sg));
link_tbl_ptr->j_extent = 0;
@@ -1316,7 +1315,8 @@ static int sg_to_link_tbl(struct scatterlist *sg, int sg_count,
sg_count--;
link_tbl_ptr--;
}
- be16_add_cpu(&link_tbl_ptr->len, cryptlen);
+ link_tbl_ptr->len = cpu_to_be16(be16_to_cpu(link_tbl_ptr->len)
+ + cryptlen);
/* tag end of link table */
link_tbl_ptr->j_extent = DESC_PTR_LNKTBL_RETURN;
@@ -1486,7 +1486,7 @@ static int sg_count(struct scatterlist *sg_list, int nbytes, bool *chained)
int sg_nents = 0;
*chained = false;
- while (nbytes > 0) {
+ while (nbytes > 0 && sg) {
sg_nents++;
nbytes -= sg->length;
if (!sg_is_last(sg) && (sg + 1)->length == 0)
@@ -1825,8 +1825,7 @@ static int common_nonsnoop(struct talitos_edesc *edesc,
(edesc->src_nents + 1) *
sizeof(struct talitos_ptr));
desc->ptr[4].j_extent |= DESC_PTR_LNKTBL_JUMP;
- sg_count = sg_to_link_tbl(areq->dst, sg_count, cryptlen,
- link_tbl_ptr);
+ sg_to_link_tbl(areq->dst, sg_count, cryptlen, link_tbl_ptr);
dma_sync_single_for_device(ctx->dev, edesc->dma_link_tbl,
edesc->dma_len, DMA_BIDIRECTIONAL);
}
@@ -2961,6 +2960,7 @@ static struct talitos_crypto_alg *talitos_alg_alloc(struct device *dev,
break;
default:
dev_err(dev, "unknown algorithm type %d\n", t_alg->algt.type);
+ kfree(t_alg);
return ERR_PTR(-EINVAL);
}
diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
index fa5e463..d531b1e 100644
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -26,6 +26,7 @@
#include <linux/spi/spi.h>
#include <linux/spi/flash.h>
#include <linux/mtd/spi-nor.h>
+#include <linux/delay.h>
#define MAX_CMD_SIZE 6
struct m25p {
@@ -256,9 +257,13 @@ static int m25p_suspend(struct device *dev)
struct m25p *flash = dev_get_drvdata(dev);
struct spi_nor *nor = &flash->spi_nor;
- /* Wait till previous write/erase is done. */
- if (nor->wait_till_ready)
- return nor->wait_till_ready(nor);
+ /*
+ * A minimum de-selection time of 50ns must come between the
+ * RESET ENABLE and RESET MEMORY commands
+ */
+ m25p80_write_reg(nor, SPINOR_OP_RESET_EN, NULL, 0, 0);
+ ndelay(50);
+ m25p80_write_reg(nor, SPINOR_OP_RESET_MEM, NULL, 0, 0);
return 0;
}
diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c
index 327246c..06ada5f 100644
--- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c
+++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c
@@ -821,6 +821,7 @@ void dpa_bp_drain(struct dpa_bp *bp)
}
} while (ret > 0);
}
+EXPORT_SYMBOL(dpa_bp_drain);
static void __cold __attribute__((nonnull))
_dpa_bp_free(struct dpa_bp *dpa_bp)
diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_generic.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_generic.c
index 970e7c8..5bb4af0 100644
--- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_generic.c
+++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_generic.c
@@ -1347,6 +1347,46 @@ static int dpa_generic_bp_create(struct net_device *net_dev,
return 0;
}
+static void dpa_generic_bp_free(struct dpa_generic_priv_s *priv)
+{
+ struct dpa_bp *bp = NULL;
+ int i = 0;
+
+ /* release the rx bpools */
+ for (i = 0; i < priv->rx_bp_count; i++) {
+ bp = &priv->rx_bp[i];
+ if (!bp)
+ continue;
+
+ if (!atomic_dec_and_test(&bp->refs))
+ continue;
+
+ if (bp->free_buf_cb)
+ dpa_bp_drain(bp);
+
+ bman_free_pool(bp->pool);
+
+ if (bp->dev)
+ platform_device_unregister(to_platform_device(bp->dev));
+ }
+
+ /* release the tx draining bpool */
+ bp = priv->draining_tx_bp;
+ if (!bp)
+ return;
+
+ if (!atomic_dec_and_test(&bp->refs))
+ return;
+
+ if (bp->free_buf_cb)
+ dpa_bp_drain(bp);
+
+ bman_free_pool(bp->pool);
+
+ if (bp->dev)
+ platform_device_unregister(to_platform_device(bp->dev));
+}
+
static int dpa_generic_remove(struct platform_device *of_dev)
{
int err;
@@ -1363,22 +1403,11 @@ static int dpa_generic_remove(struct platform_device *of_dev)
dev_set_drvdata(dev, NULL);
unregister_netdev(net_dev);
- /* TODO: this is for private driver; make it generic */
- err = 0;
-#if 0
err = dpa_fq_free(dev, &priv->dpa_fq_list);
-#endif
- dpa_private_napi_del(net_dev);
+ dpa_generic_napi_del(net_dev);
- /* TODO: this is for private dirver also; make generic */
-#if 0
- dpa_bp_free(priv);
- devm_kfree(dev, priv->dpa_bp);
-
- if (priv->buf_layout)
- devm_kfree(dev, priv->buf_layout);
-#endif
+ dpa_generic_bp_free(priv);
#ifdef CONFIG_FSL_DPAA_ETH_DEBUGFS
dpa_generic_debugfs_remove(net_dev);
diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_generic_debugfs.c b/drivers/net/ethernet/freescale/dpa/dpaa_generic_debugfs.c
index 2b655cd..b53c289 100644
--- a/drivers/net/ethernet/freescale/dpa/dpaa_generic_debugfs.c
+++ b/drivers/net/ethernet/freescale/dpa/dpaa_generic_debugfs.c
@@ -247,7 +247,7 @@ int dpa_generic_debugfs_create(struct net_device *net_dev)
void dpa_generic_debugfs_remove(struct net_device *net_dev)
{
- struct dpa_priv_s *priv = netdev_priv(net_dev);
+ struct dpa_generic_priv_s *priv = netdev_priv(net_dev);
debugfs_remove(priv->debugfs_file);
}
diff --git a/drivers/net/ethernet/freescale/dpa/mac-api.c b/drivers/net/ethernet/freescale/dpa/mac-api.c
index c9866db..3b93ddc 100644
--- a/drivers/net/ethernet/freescale/dpa/mac-api.c
+++ b/drivers/net/ethernet/freescale/dpa/mac-api.c
@@ -818,6 +818,7 @@ int fm_mac_dump_rx_stats(struct mac_device *h_mac, char *buf, int nn)
return n;
}
+EXPORT_SYMBOL(fm_mac_dump_rx_stats);
int fm_mac_dump_tx_stats(struct mac_device *h_mac, char *buf, int nn)
{
@@ -828,6 +829,7 @@ int fm_mac_dump_tx_stats(struct mac_device *h_mac, char *buf, int nn)
return n;
}
+EXPORT_SYMBOL(fm_mac_dump_tx_stats);
static void __cold setup_dtsec(struct mac_device *mac_dev)
{
diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/HC/hc.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/HC/hc.c
index 5b03cfc..8bc0889 100644
--- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/HC/hc.c
+++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/HC/hc.c
@@ -342,19 +342,6 @@ t_Error FmHcSetFramesDataMemory(t_Handle h_FmHc,
return FillBufPool(p_FmHc);
}
-#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0))
-t_Error FmHcDumpRegs(t_Handle h_FmHc)
-{
- t_FmHc *p_FmHc = (t_FmHc*)h_FmHc;
-
- SANITY_CHECK_RETURN_ERROR(p_FmHc, E_INVALID_HANDLE);
- SANITY_CHECK_RETURN_ERROR(p_FmHc->h_HcPortDev, E_INVALID_HANDLE);
-
- return FM_PORT_DumpRegs(p_FmHc->h_HcPortDev);
-
-}
-#endif /* (defined(DEBUG_ERRORS) && ... */
-
void FmHcTxConf(t_Handle h_FmHc, t_DpaaFD *p_Fd)
{
t_FmHc *p_FmHc = (t_FmHc*)h_FmHc;
diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/dtsec.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/dtsec.c
index d0ed2e7..5ae65f8 100644
--- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/dtsec.c
+++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/dtsec.c
@@ -1202,52 +1202,6 @@ static t_Error DtsecSetException(t_Handle h_Dtsec, e_FmMacExceptions exception,
return E_OK;
}
-/* ........................................................................... */
-
-#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0))
-static t_Error DtsecDumpRegs(t_Handle h_Dtsec)
-{
- t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
- int i = 0;
-
- DECLARE_DUMP;
-
- if (p_Dtsec->p_MemMap)
- {
- DUMP_TITLE(p_Dtsec->p_MemMap, ("dTSEC %d: ", p_Dtsec->macId));
- DUMP_VAR(p_Dtsec->p_MemMap, tsec_id);
- DUMP_VAR(p_Dtsec->p_MemMap, tsec_id2);
- DUMP_VAR(p_Dtsec->p_MemMap, ievent);
- DUMP_VAR(p_Dtsec->p_MemMap, imask);
- DUMP_VAR(p_Dtsec->p_MemMap, ecntrl);
- DUMP_VAR(p_Dtsec->p_MemMap, ptv);
- DUMP_VAR(p_Dtsec->p_MemMap, tmr_ctrl);
- DUMP_VAR(p_Dtsec->p_MemMap, tmr_pevent);
- DUMP_VAR(p_Dtsec->p_MemMap, tmr_pemask);
- DUMP_VAR(p_Dtsec->p_MemMap, tctrl);
- DUMP_VAR(p_Dtsec->p_MemMap, rctrl);
- DUMP_VAR(p_Dtsec->p_MemMap, maccfg1);
- DUMP_VAR(p_Dtsec->p_MemMap, maccfg2);
- DUMP_VAR(p_Dtsec->p_MemMap, ipgifg);
- DUMP_VAR(p_Dtsec->p_MemMap, hafdup);
- DUMP_VAR(p_Dtsec->p_MemMap, maxfrm);
-
- DUMP_VAR(p_Dtsec->p_MemMap, macstnaddr1);
- DUMP_VAR(p_Dtsec->p_MemMap, macstnaddr2);
-
- DUMP_SUBSTRUCT_ARRAY(i, 8)
- {
- DUMP_VAR(p_Dtsec->p_MemMap, macaddr[i].exact_match1);
- DUMP_VAR(p_Dtsec->p_MemMap, macaddr[i].exact_match2);
- }
- DUMP_VAR(p_Dtsec->p_MemMap, car1);
- DUMP_VAR(p_Dtsec->p_MemMap, car2);
- }
-
- return E_OK;
-}
-#endif /* (defined(DEBUG_ERRORS) && ... */
-
/*****************************************************************************/
/* dTSEC Init & Free API */
@@ -1447,9 +1401,6 @@ static void InitFmMacControllerDriver(t_FmMacControllerDriver *p_FmMacController
p_FmMacControllerDriver->f_FM_MAC_MII_WritePhyReg = DTSEC_MII_WritePhyReg;
p_FmMacControllerDriver->f_FM_MAC_MII_ReadPhyReg = DTSEC_MII_ReadPhyReg;
-#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0))
- p_FmMacControllerDriver->f_FM_MAC_DumpRegs = DtsecDumpRegs;
-#endif /* (defined(DEBUG_ERRORS) && ... */
}
diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c
index a2b8751..b5aacc9 100644
--- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c
+++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c
@@ -812,63 +812,6 @@ static uint16_t MemacGetMaxFrameLength(t_Handle h_Memac)
return fman_memac_get_max_frame_len(p_Memac->p_MemMap);
}
-/* ......................................................................... */
-
-#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0))
-static t_Error MemacDumpRegs(t_Handle h_Memac)
-{
- t_Memac *p_Memac = (t_Memac *)h_Memac;
- int i = 0;
-
- DECLARE_DUMP;
-
- if (p_Memac->p_MemMap)
- {
- DUMP_TITLE(p_Memac->p_MemMap, ("mEMAC %d: ", p_Memac->macId));
- DUMP_VAR(p_Memac->p_MemMap, command_config);
- DUMP_VAR(p_Memac->p_MemMap, mac_addr0.mac_addr_l);
- DUMP_VAR(p_Memac->p_MemMap, mac_addr0.mac_addr_u);
- DUMP_VAR(p_Memac->p_MemMap, maxfrm);
- DUMP_VAR(p_Memac->p_MemMap, hashtable_ctrl);
- DUMP_VAR(p_Memac->p_MemMap, ievent);
- DUMP_VAR(p_Memac->p_MemMap, tx_ipg_length);
- DUMP_VAR(p_Memac->p_MemMap, imask);
-
- DUMP_SUBSTRUCT_ARRAY(i, 4)
- {
- DUMP_VAR(p_Memac->p_MemMap, pause_quanta[i]);
- }
- DUMP_SUBSTRUCT_ARRAY(i, 4)
- {
- DUMP_VAR(p_Memac->p_MemMap, pause_thresh[i]);
- }
-
- DUMP_VAR(p_Memac->p_MemMap, rx_pause_status);
-
- DUMP_SUBSTRUCT_ARRAY(i, MEMAC_NUM_OF_PADDRS)
- {
- DUMP_VAR(p_Memac->p_MemMap, mac_addr[i].mac_addr_l);
- DUMP_VAR(p_Memac->p_MemMap, mac_addr[i].mac_addr_u);
- }
-
- DUMP_VAR(p_Memac->p_MemMap, lpwake_timer);
- DUMP_VAR(p_Memac->p_MemMap, sleep_timer);
- DUMP_VAR(p_Memac->p_MemMap, statn_config);
- DUMP_VAR(p_Memac->p_MemMap, if_mode);
- DUMP_VAR(p_Memac->p_MemMap, if_status);
- DUMP_VAR(p_Memac->p_MemMap, hg_config);
- DUMP_VAR(p_Memac->p_MemMap, hg_pause_quanta);
- DUMP_VAR(p_Memac->p_MemMap, hg_pause_thresh);
- DUMP_VAR(p_Memac->p_MemMap, hgrx_pause_status);
- DUMP_VAR(p_Memac->p_MemMap, hg_fifos_status);
- DUMP_VAR(p_Memac->p_MemMap, rhm);
- DUMP_VAR(p_Memac->p_MemMap, thm);
- }
-
- return E_OK;
-}
-#endif /* (defined(DEBUG_ERRORS) && ... */
-
/*****************************************************************************/
/* mEMAC Init & Free API */
@@ -1086,10 +1029,6 @@ static void InitFmMacControllerDriver(t_FmMacControllerDriver *p_FmMacController
p_FmMacControllerDriver->f_FM_MAC_MII_WritePhyReg = MEMAC_MII_WritePhyReg;
p_FmMacControllerDriver->f_FM_MAC_MII_ReadPhyReg = MEMAC_MII_ReadPhyReg;
-
-#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0))
- p_FmMacControllerDriver->f_FM_MAC_DumpRegs = MemacDumpRegs;
-#endif /* (defined(DEBUG_ERRORS) && ... */
}
diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/tgec.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/tgec.c
index 8f39f25..bf12c5d 100644
--- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/tgec.c
+++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/tgec.c
@@ -741,50 +741,6 @@ static t_Error TgecTxEccWorkaround(t_Tgec *p_Tgec)
}
#endif /* FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 */
-/* ......................................................................... */
-
-#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0))
-static t_Error TgecDumpRegs(t_Handle h_Tgec)
-{
- t_Tgec *p_Tgec = (t_Tgec *)h_Tgec;
-
- DECLARE_DUMP;
-
- if (p_Tgec->p_MemMap)
- {
- DUMP_TITLE(p_Tgec->p_MemMap, ("10G MAC %d: ", p_Tgec->macId));
- DUMP_VAR(p_Tgec->p_MemMap, tgec_id);
- DUMP_VAR(p_Tgec->p_MemMap, command_config);
- DUMP_VAR(p_Tgec->p_MemMap, mac_addr_0);
- DUMP_VAR(p_Tgec->p_MemMap, mac_addr_1);
- DUMP_VAR(p_Tgec->p_MemMap, maxfrm);
- DUMP_VAR(p_Tgec->p_MemMap, pause_quant);
- DUMP_VAR(p_Tgec->p_MemMap, rx_fifo_sections);
- DUMP_VAR(p_Tgec->p_MemMap, tx_fifo_sections);
- DUMP_VAR(p_Tgec->p_MemMap, rx_fifo_almost_f_e);
- DUMP_VAR(p_Tgec->p_MemMap, tx_fifo_almost_f_e);
- DUMP_VAR(p_Tgec->p_MemMap, hashtable_ctrl);
- DUMP_VAR(p_Tgec->p_MemMap, mdio_cfg_status);
- DUMP_VAR(p_Tgec->p_MemMap, mdio_command);
- DUMP_VAR(p_Tgec->p_MemMap, mdio_data);
- DUMP_VAR(p_Tgec->p_MemMap, mdio_regaddr);
- DUMP_VAR(p_Tgec->p_MemMap, status);
- DUMP_VAR(p_Tgec->p_MemMap, tx_ipg_len);
- DUMP_VAR(p_Tgec->p_MemMap, mac_addr_2);
- DUMP_VAR(p_Tgec->p_MemMap, mac_addr_3);
- DUMP_VAR(p_Tgec->p_MemMap, rx_fifo_ptr_rd);
- DUMP_VAR(p_Tgec->p_MemMap, rx_fifo_ptr_wr);
- DUMP_VAR(p_Tgec->p_MemMap, tx_fifo_ptr_rd);
- DUMP_VAR(p_Tgec->p_MemMap, tx_fifo_ptr_wr);
- DUMP_VAR(p_Tgec->p_MemMap, imask);
- DUMP_VAR(p_Tgec->p_MemMap, ievent);
- }
-
- return E_OK;
-}
-#endif /* (defined(DEBUG_ERRORS) && ... */
-
-
/*****************************************************************************/
/* FM Init & Free API */
/*****************************************************************************/
@@ -960,10 +916,6 @@ static void InitFmMacControllerDriver(t_FmMacControllerDriver *p_FmMacController
p_FmMacControllerDriver->f_FM_MAC_MII_WritePhyReg = TGEC_MII_WritePhyReg;
p_FmMacControllerDriver->f_FM_MAC_MII_ReadPhyReg = TGEC_MII_ReadPhyReg;
-
-#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0))
- p_FmMacControllerDriver->f_FM_MAC_DumpRegs = TgecDumpRegs;
-#endif /* (defined(DEBUG_ERRORS) && ... */
}
diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_kg.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_kg.c
index dae5575..720da19 100644
--- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_kg.c
+++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_kg.c
@@ -3240,105 +3240,3 @@ t_Error FM_PCD_KgSetDfltValue(t_Handle h_FmPcd, uint8_t valueId, uint32_t value)
WRITE_UINT32(p_Regs->fmkg_gdv1r,value);
return E_OK;
}
-
-#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0))
-t_Error FM_PCD_KgDumpRegs(t_Handle h_FmPcd)
-{
- t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
- int i = 0, j = 0;
- uint8_t hardwarePortId = 0;
- uint32_t tmpKgarReg, intFlags;
- t_Error err = E_OK;
-
- DECLARE_DUMP;
-
- SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE);
- SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdKg, E_INVALID_HANDLE);
- SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE);
- SANITY_CHECK_RETURN_ERROR(((p_FmPcd->guestId == NCSW_MASTER_ID) ||
- p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs), E_INVALID_OPERATION);
-
- DUMP_SUBTITLE(("\n"));
- DUMP_TITLE(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs, ("FmPcdKgRegs Regs"));
-
- DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,fmkg_gcr);
- DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,fmkg_eer);
- DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,fmkg_eeer);
- DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,fmkg_seer);
- DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,fmkg_seeer);
- DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,fmkg_gsr);
- DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,fmkg_tpc);
- DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,fmkg_serc);
- DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,fmkg_fdor);
- DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,fmkg_gdv0r);
- DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,fmkg_gdv1r);
- DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,fmkg_feer);
- DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,fmkg_ar);
-
- DUMP_SUBTITLE(("\n"));
- intFlags = KgHwLock(p_FmPcd->p_FmPcdKg);
- for (j = 0;j<FM_PCD_KG_NUM_OF_SCHEMES;j++)
- {
- tmpKgarReg = FmPcdKgBuildReadSchemeActionReg((uint8_t)j);
- if (WriteKgarWait(p_FmPcd, tmpKgarReg) != E_OK)
- RETURN_ERROR(MAJOR, E_INVALID_STATE, NO_MSG);
-
- DUMP_TITLE(&p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs, ("FmPcdKgIndirectAccessSchemeRegs Scheme %d Regs", j));
-
- DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs,kgse_mode);
- DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs,kgse_ekfc);
- DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs,kgse_ekdv);
- DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs,kgse_bmch);
- DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs,kgse_bmcl);
- DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs,kgse_fqb);
- DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs,kgse_hc);
- DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs,kgse_ppc);
-
- DUMP_TITLE(&p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs.kgse_gec, ("kgse_gec"));
- DUMP_SUBSTRUCT_ARRAY(i, FM_KG_NUM_OF_GENERIC_REGS)
- {
- DUMP_MEMORY(&p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs.kgse_gec[i], sizeof(uint32_t));
- }
-
- DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs,kgse_spc);
- DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs,kgse_dv0);
- DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs,kgse_dv1);
- DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs,kgse_ccbs);
- DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs,kgse_mv);
- }
- DUMP_SUBTITLE(("\n"));
-
- for (i=0;i<FM_MAX_NUM_OF_PORTS;i++)
- {
- SW_PORT_INDX_TO_HW_PORT_ID(hardwarePortId, i);
-
- tmpKgarReg = FmPcdKgBuildReadPortSchemeBindActionReg(hardwarePortId);
-
- err = WriteKgarWait(p_FmPcd, tmpKgarReg);
- if (err)
- RETURN_ERROR(MINOR, err, NO_MSG);
-
- DUMP_TITLE(&p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->portRegs, ("FmPcdKgIndirectAccessPortRegs PCD Port %d regs", hardwarePortId));
-
- DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->portRegs, fmkg_pe_sp);
- DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->portRegs, fmkg_pe_cpp);
- }
-
- DUMP_SUBTITLE(("\n"));
- for (j=0;j<FM_PCD_MAX_NUM_OF_CLS_PLANS/CLS_PLAN_NUM_PER_GRP;j++)
- {
- DUMP_TITLE(&p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->clsPlanRegs, ("FmPcdKgIndirectAccessClsPlanRegs Regs group %d", j));
- DUMP_TITLE(&p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->clsPlanRegs.kgcpe, ("kgcpe"));
-
- tmpKgarReg = ReadClsPlanBlockActionReg((uint8_t)j);
- err = WriteKgarWait(p_FmPcd, tmpKgarReg);
- if (err)
- RETURN_ERROR(MINOR, err, NO_MSG);
- DUMP_SUBSTRUCT_ARRAY(i, 8)
- DUMP_MEMORY(&p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->clsPlanRegs.kgcpe[i], sizeof(uint32_t));
- }
- KgHwUnlock(p_FmPcd->p_FmPcdKg, intFlags);
-
- return E_OK;
-}
-#endif /* (defined(DEBUG_ERRORS) && ... */
diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_pcd.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_pcd.c
index 4adf9a1..1534331 100644
--- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_pcd.c
+++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_pcd.c
@@ -1752,41 +1752,6 @@ uint32_t FM_PCD_GetCounter(t_Handle h_FmPcd, e_FmPcdCounters counter)
return 0;
}
-#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0))
-t_Error FM_PCD_DumpRegs(t_Handle h_FmPcd)
-{
- t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
- t_Error err = E_OK;
-
- DECLARE_DUMP;
-
- SANITY_CHECK_RETURN_ERROR(h_FmPcd, E_INVALID_HANDLE);
- SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE);
-
- if (p_FmPcd->p_FmPcdKg)
- err |= FM_PCD_KgDumpRegs(h_FmPcd);
- if (p_FmPcd->p_FmPcdPlcr)
- err |= FM_PCD_PlcrDumpRegs(h_FmPcd);
- if (p_FmPcd->p_FmPcdPrs)
- err |= FM_PCD_PrsDumpRegs(h_FmPcd);
-
- return err;
-}
-
-t_Error FM_PCD_HcDumpRegs(t_Handle h_FmPcd)
-{
- t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
-
- DECLARE_DUMP;
-
- SANITY_CHECK_RETURN_ERROR(h_FmPcd, E_INVALID_HANDLE);
- SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE);
- SANITY_CHECK_RETURN_ERROR(p_FmPcd->h_Hc, E_INVALID_STATE);
-
- return FmHcDumpRegs(p_FmPcd->h_Hc);
-}
-#endif /* (defined(DEBUG_ERRORS) && ... */
-
t_Error FM_PCD_SetException(t_Handle h_FmPcd, e_FmPcdExceptions exception, bool enable)
{
t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_plcr.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_plcr.c
index a28b363..f0f1676 100644
--- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_plcr.c
+++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_plcr.c
@@ -1532,52 +1532,6 @@ t_Error FM_PCD_SetPlcrStatistics(t_Handle h_FmPcd, bool enable)
return E_OK;
}
-/* ... */
-#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0))
-t_Error FM_PCD_PlcrDumpRegs(t_Handle h_FmPcd)
-{
- t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
- int i = 0;
-
- DECLARE_DUMP;
-
- SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE);
- SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdPlcr, E_INVALID_HANDLE);
- SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE);
- SANITY_CHECK_RETURN_ERROR(((p_FmPcd->guestId == NCSW_MASTER_ID) ||
- p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs), E_INVALID_OPERATION);
-
- DUMP_SUBTITLE(("\n"));
- DUMP_TITLE(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs, ("FM-PCD policer regs"));
-
- DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_gcr);
- DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_gsr);
- DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_evr);
- DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_ier);
- DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_ifr);
- DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_eevr);
- DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_eier);
- DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_eifr);
- DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_rpcnt);
- DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_ypcnt);
- DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_rrpcnt);
- DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_rypcnt);
- DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_tpcnt);
- DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_flmcnt);
- DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_serc);
- DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_upcr);
- DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_dpmr);
-
- DUMP_TITLE(&p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_pmr, ("fmpl_pmr"));
- DUMP_SUBSTRUCT_ARRAY(i, 63)
- {
- DUMP_MEMORY(&p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_pmr[i], sizeof(uint32_t));
- }
-
- return E_OK;
-}
-#endif /* (defined(DEBUG_ERRORS) && ... */
-
t_Handle FM_PCD_PlcrProfileSet(t_Handle h_FmPcd,
t_FmPcdPlcrProfileParams *p_ProfileParams)
{
@@ -1890,54 +1844,3 @@ t_Error FM_PCD_PlcrProfileSetCounter(t_Handle h_Profile, e_FmPcdPlcrProfileCount
return E_OK;
}
-
-#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0))
-t_Error FM_PCD_PlcrProfileDumpRegs(t_Handle h_Profile)
-{
- t_FmPcdPlcrProfile *p_Profile = (t_FmPcdPlcrProfile*)h_Profile;
- t_FmPcd *p_FmPcd;
- t_FmPcdPlcrProfileRegs *p_ProfilesRegs;
- uint16_t profileIndx;
- uint32_t tmpReg, intFlags;
-
- DECLARE_DUMP;
-
- SANITY_CHECK_RETURN_ERROR(p_Profile, E_INVALID_HANDLE);
- p_FmPcd = p_Profile->h_FmPcd;
- SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE);
- SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdPlcr, E_INVALID_HANDLE);
-
- profileIndx = p_Profile->absoluteProfileId;
-
- DUMP_SUBTITLE(("\n"));
- DUMP_TITLE(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs, ("FM-PCD policer-profile regs"));
-
- p_ProfilesRegs = &p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->profileRegs;
-
- tmpReg = FmPcdPlcrBuildReadPlcrActionReg((uint16_t)profileIndx);
- intFlags = PlcrHwLock(p_FmPcd->p_FmPcdPlcr);
- WritePar(p_FmPcd, tmpReg);
-
- DUMP_TITLE(p_ProfilesRegs, ("Profile %d regs", profileIndx));
-
- DUMP_VAR(p_ProfilesRegs, fmpl_pemode);
- DUMP_VAR(p_ProfilesRegs, fmpl_pegnia);
- DUMP_VAR(p_ProfilesRegs, fmpl_peynia);
- DUMP_VAR(p_ProfilesRegs, fmpl_pernia);
- DUMP_VAR(p_ProfilesRegs, fmpl_pecir);
- DUMP_VAR(p_ProfilesRegs, fmpl_pecbs);
- DUMP_VAR(p_ProfilesRegs, fmpl_pepepir_eir);
- DUMP_VAR(p_ProfilesRegs, fmpl_pepbs_ebs);
- DUMP_VAR(p_ProfilesRegs, fmpl_pelts);
- DUMP_VAR(p_ProfilesRegs, fmpl_pects);
- DUMP_VAR(p_ProfilesRegs, fmpl_pepts_ets);
- DUMP_VAR(p_ProfilesRegs, fmpl_pegpc);
- DUMP_VAR(p_ProfilesRegs, fmpl_peypc);
- DUMP_VAR(p_ProfilesRegs, fmpl_perpc);
- DUMP_VAR(p_ProfilesRegs, fmpl_perypc);
- DUMP_VAR(p_ProfilesRegs, fmpl_perrpc);
- PlcrHwUnlock(p_FmPcd->p_FmPcdPlcr, intFlags);
-
- return E_OK;
-}
-#endif /* (defined(DEBUG_ERRORS) && ... */
diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_prs.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_prs.c
index e6ac6df..da2fccf 100644
--- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_prs.c
+++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_prs.c
@@ -418,49 +418,3 @@ t_Error FM_PCD_ConfigPrsMaxCycleLimit(t_Handle h_FmPcd,uint16_t value)
return E_OK;
}
-
-#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0))
-t_Error FM_PCD_PrsDumpRegs(t_Handle h_FmPcd)
-{
- t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
-
- DECLARE_DUMP;
-
- SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE);
- SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdPrs, E_INVALID_HANDLE);
- SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE);
- SANITY_CHECK_RETURN_ERROR(((p_FmPcd->guestId == NCSW_MASTER_ID) ||
- p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs), E_INVALID_OPERATION);
-
- DUMP_SUBTITLE(("\n"));
- DUMP_TITLE(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs, ("FM-PCD parser regs"));
-
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_rpclim);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_rpimac);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,pmeec);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_pevr);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_pever);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_perr);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_perer);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_ppsc);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_pds);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_l2rrs);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_l3rrs);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_l4rrs);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_srrs);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_l2rres);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_l3rres);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_l4rres);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_srres);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_spcs);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_spscs);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_hxscs);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_mrcs);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_mwcs);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_mrscs);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_mwscs);
- DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fmpr_fcscs);
-
- return E_OK;
-}
-#endif /* (defined(DEBUG_ERRORS) && ... */
diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/Port/fm_port.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/Port/fm_port.c
index 56f9f80..379406e 100644
--- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/Port/fm_port.c
+++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/Port/fm_port.c
@@ -5496,271 +5496,6 @@ t_Error FM_PORT_PcdPrsModifyStartOffset(t_Handle h_FmPort,
return E_OK;
}
-#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0))
-t_Error FM_PORT_DumpRegs(t_Handle h_FmPort)
-{
- t_FmPort *p_FmPort = (t_FmPort*)h_FmPort;
- t_Error err = E_OK;
- char arr[20];
- uint8_t flag;
- int i=0;
-
- DECLARE_DUMP;
-
- SANITY_CHECK_RETURN_ERROR(h_FmPort, E_INVALID_HANDLE);
- SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE);
- SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortQmiRegs, E_INVALID_HANDLE);
- SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortBmiRegs, E_INVALID_HANDLE);
-
- memset(arr, 0, sizeof(arr));
- switch (p_FmPort->portType)
- {
- case (e_FM_PORT_TYPE_OH_OFFLINE_PARSING):
- strcpy(arr, "OFFLINE-PARSING");
- flag = 0;
- break;
- case (e_FM_PORT_TYPE_OH_HOST_COMMAND):
- strcpy(arr, "HOST-COMMAND");
- flag = 0;
- break;
- case (e_FM_PORT_TYPE_RX):
- strcpy(arr, "RX");
- flag = 1;
- break;
- case (e_FM_PORT_TYPE_RX_10G):
- strcpy(arr, "RX-10G");
- flag = 1;
- break;
- case (e_FM_PORT_TYPE_TX):
- strcpy(arr, "TX");
- flag = 2;
- break;
- case (e_FM_PORT_TYPE_TX_10G):
- strcpy(arr, "TX-10G");
- flag = 2;
- break;
- default:
- return ERROR_CODE(E_INVALID_VALUE);
- }
-
- DUMP_TITLE(NULL,
- ("FMan-Port (%s #%d) registers:",
- arr, p_FmPort->portId));
-
- err = FmDumpPortRegs(p_FmPort->h_Fm, p_FmPort->hardwarePortId);
- if (err)
- RETURN_ERROR(MAJOR, err, NO_MSG);
-
- DUMP_TITLE(p_FmPort->p_FmPortBmiRegs, ("Bmi Port Regs"));
-
- switch (flag)
- {
- case (0):
- DUMP_SUBTITLE(("\n"));
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ocfg);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ost);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_oda);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_oicp);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofdne);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofne);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofca);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofpne);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_opso);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_opp);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_occb);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_oim);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofp);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofed);
-
- DUMP_TITLE(&(p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_oprai), ("fmbm_oprai"));
- DUMP_SUBSTRUCT_ARRAY(i, FM_PORT_PRS_RESULT_NUM_OF_WORDS)
- {
- DUMP_MEMORY(&(p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_oprai[i]), sizeof(uint32_t));
- }
- DUMP_SUBTITLE(("\n"));
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofqid );
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_oefqid);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofsdm );
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofsem );
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofene );
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_orlmts);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_orlmt);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ocmne);
- {
- #ifndef FM_NO_OP_OBSERVED_POOLS
- if (p_FmPort->fmRevInfo.majorRev == 4)
- {
- DUMP_TITLE(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_oebmpi, ("fmbm_oebmpi"));
-
- DUMP_SUBSTRUCT_ARRAY(i, FM_PORT_MAX_NUM_OF_OBSERVED_EXT_POOLS)
- {
- DUMP_MEMORY(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_oebmpi[i], sizeof(uint32_t));
- }
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ocgm);
- }
- #endif /* !FM_NO_OP_OBSERVED_POOLS */
- }
-
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ostc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofrc );
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofdc );
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofledc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofufdc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_offc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofwdc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofldec);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_obdc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_opc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_opcp);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_occn);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_otuc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_oduc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofuc);
- DUMP_TITLE(&(p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_odcfg), ("fmbm_odcfg"));
- DUMP_SUBSTRUCT_ARRAY(i, 3)
- {
- DUMP_MEMORY(&(p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_odcfg[i]), sizeof(uint32_t));
- }
- DUMP_SUBTITLE(("\n"));
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ogpr);
- break;
-
- case (1):
- DUMP_SUBTITLE(("\n"));
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rcfg);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rst);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rda);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfp);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_reth);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfed);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_ricp);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rebm);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfne);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfca);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfpne);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rpso);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rpp);
-
- DUMP_TITLE(&(p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rprai), ("fmbm_rprai"));
- DUMP_SUBSTRUCT_ARRAY(i, FM_PORT_PRS_RESULT_NUM_OF_WORDS)
- {
- DUMP_MEMORY(&(p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rprai[i]), sizeof(uint32_t));
- }
- DUMP_SUBTITLE(("\n"));
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfqid);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_refqid);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfsdm);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfsem);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfene);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rcmne);
- DUMP_TITLE(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_ebmpi, ("fmbm_ebmpi"));
- DUMP_SUBSTRUCT_ARRAY(i, FM_PORT_MAX_NUM_OF_EXT_POOLS)
- {
- DUMP_MEMORY(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_ebmpi[i], sizeof(uint32_t));
- }
- DUMP_TITLE(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_acnt, ("fmbm_acnt"));
- DUMP_SUBSTRUCT_ARRAY(i, FM_PORT_MAX_NUM_OF_EXT_POOLS)
- {
- DUMP_MEMORY(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_acnt[i], sizeof(uint32_t));
- }
- DUMP_TITLE(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rcgm, ("fmbm_rcgm"));
- DUMP_SUBSTRUCT_ARRAY(i, FM_PORT_NUM_OF_CONGESTION_GRPS/32)
- {
- DUMP_MEMORY(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rcgm[i], sizeof(uint32_t));
- }
- DUMP_SUBTITLE(("\n"));
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rmpd);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rstc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfrc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfbc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rlfc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rffc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfcd);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfldec);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rodc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rpc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rpcp);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rccn);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rtuc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rrquc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rduc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfuc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rpac);
- DUMP_TITLE(&(p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rdcfg), ("fmbm_rdcfg"));
- DUMP_SUBSTRUCT_ARRAY(i, 3)
- {
- DUMP_MEMORY(&(p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rdcfg[i]), sizeof(uint32_t));
- }
- DUMP_SUBTITLE(("\n"));
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rgpr);
- break;
-
- case (2):
- DUMP_SUBTITLE(("\n"));
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tcfg);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tst);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tda);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfp);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfed);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_ticp);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfdne);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfca);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tcfqid);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfeqid);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfene);
- #if (DPAA_VERSION >= 11)
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfne);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tcmne);
- #endif /* (DPAA_VERSION >= 11) */
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_trlmts);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_trlmt);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tstc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfrc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfdc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfledc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfufdc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tbdc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tpc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tpcp);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tccn);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_ttuc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_ttcquc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tduc);
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfuc);
- DUMP_TITLE(&(p_FmPort->p_FmPortBmiRegs->txPortBmiRegs.fmbm_tdcfg), ("fmbm_tdcfg"));
- DUMP_SUBSTRUCT_ARRAY(i, 3)
- {
- DUMP_MEMORY(&(p_FmPort->p_FmPortBmiRegs->txPortBmiRegs.fmbm_tdcfg[i]), sizeof(uint32_t));
- }
- DUMP_SUBTITLE(("\n"));
- DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tgpr);
- break;
-
- default:
- RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Invalid flag"));
- }
-
- DUMP_TITLE(p_FmPort->p_FmPortQmiRegs, ("Qmi Port Regs"));
-
- DUMP_VAR(p_FmPort->p_FmPortQmiRegs,fmqm_pnc);
- DUMP_VAR(p_FmPort->p_FmPortQmiRegs,fmqm_pns);
- DUMP_VAR(p_FmPort->p_FmPortQmiRegs,fmqm_pnts);
- DUMP_VAR(p_FmPort->p_FmPortQmiRegs,fmqm_pnen);
- DUMP_VAR(p_FmPort->p_FmPortQmiRegs,fmqm_pnetfc);
-
- if (flag !=1)
- {
- DUMP_VAR(&p_FmPort->p_FmPortQmiRegs->nonRxQmiRegs,fmqm_pndn);
- DUMP_VAR(&p_FmPort->p_FmPortQmiRegs->nonRxQmiRegs,fmqm_pndc);
- DUMP_VAR(&p_FmPort->p_FmPortQmiRegs->nonRxQmiRegs,fmqm_pndtfc);
- DUMP_VAR(&p_FmPort->p_FmPortQmiRegs->nonRxQmiRegs,fmqm_pndfdc);
- DUMP_VAR(&p_FmPort->p_FmPortQmiRegs->nonRxQmiRegs,fmqm_pndcc);
- }
-
- return E_OK;
-}
-#endif /* (defined(DEBUG_ERRORS) && ... */
-
t_Error FM_PORT_AddCongestionGrps(t_Handle h_FmPort,
t_FmPortCongestionGrps *p_CongestionGrps)
{
diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/Rtc/fm_rtc.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/Rtc/fm_rtc.c
index b0bcf26..727d5c8 100644
--- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/Rtc/fm_rtc.c
+++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/Rtc/fm_rtc.c
@@ -690,52 +690,3 @@ t_Error FM_RTC_DisableInterrupt(t_Handle h_FmRtc, uint32_t events)
return E_OK;
}
#endif
-
-/*****************************************************************************/
-#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0))
-t_Error FM_RTC_DumpRegs(t_Handle h_FmRtc)
-{
- t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc;
- struct rtc_regs *p_MemMap = p_Rtc->p_MemMap;
- int i = 0;
-
- DECLARE_DUMP;
-
- if (p_MemMap)
- {
-
- DUMP_TITLE(p_MemMap, ("RTC:"));
- DUMP_VAR(p_MemMap, tmr_id);
- DUMP_VAR(p_MemMap, tmr_id2);
- DUMP_VAR(p_MemMap, tmr_ctrl);
- DUMP_VAR(p_MemMap, tmr_tevent);
- DUMP_VAR(p_MemMap, tmr_temask);
- DUMP_VAR(p_MemMap, tmr_cnt_h);
- DUMP_VAR(p_MemMap, tmr_cnt_l);
- DUMP_VAR(p_MemMap, tmr_ctrl);
- DUMP_VAR(p_MemMap, tmr_add);
- DUMP_VAR(p_MemMap, tmr_acc);
- DUMP_VAR(p_MemMap, tmr_prsc);
- DUMP_VAR(p_MemMap, tmr_off_h);
- DUMP_VAR(p_MemMap, tmr_off_l);
-
- DUMP_SUBSTRUCT_ARRAY(i, 2)
- {
- DUMP_VAR(p_MemMap, tmr_alarm[i].tmr_alarm_h);
- DUMP_VAR(p_MemMap, tmr_alarm[i].tmr_alarm_l);
- }
- DUMP_SUBSTRUCT_ARRAY(i, 2)
- {
- DUMP_VAR(p_MemMap, tmr_fiper[i]);
- DUMP_VAR(p_MemMap, tmr_fiper[i]);
- }
- DUMP_SUBSTRUCT_ARRAY(i, 2)
- {
- DUMP_VAR(p_MemMap, tmr_etts[i].tmr_etts_l);
- DUMP_VAR(p_MemMap, tmr_etts[i].tmr_etts_l);
- }
- }
-
- return E_OK;
-}
-#endif /* (defined(DEBUG_ERRORS) && ... */
diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/fm.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/fm.c
index 16dd8aa..a1083a0 100644
--- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/fm.c
+++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/fm.c
@@ -153,7 +153,7 @@ static t_Error CheckFmParameters(t_Fm *p_Fm)
if (!p_Fm->p_FmStateStruct->totalFifoSize ||
(p_Fm->p_FmStateStruct->totalFifoSize > BMI_MAX_FIFO_SIZE))
RETURN_ERROR(MAJOR, E_INVALID_VALUE,
- ("totalFifoSize (curr - %d) has to be in the range 256 - %d",
+ ("totalFifoSize (currently defined as %d) has to be in the range of 256 to %d",
p_Fm->p_FmStateStruct->totalFifoSize,
BMI_MAX_FIFO_SIZE));
if (!p_Fm->p_FmStateStruct->totalNumOfTasks ||
@@ -2637,8 +2637,15 @@ t_Error FmSetSizeOfFifo(t_Handle h_Fm,
/* check that there are enough uncommitted fifo size */
if ((p_Fm->p_FmStateStruct->accumulatedFifoSize - currentVal + sizeOfFifo) >
- (p_Fm->p_FmStateStruct->totalFifoSize - p_Fm->p_FmStateStruct->extraFifoPoolSize))
- RETURN_ERROR(MAJOR, E_NOT_AVAILABLE, ("Requested fifo size and extra size exceed total FIFO size."));
+ (p_Fm->p_FmStateStruct->totalFifoSize - p_Fm->p_FmStateStruct->extraFifoPoolSize)){
+ REPORT_ERROR(MAJOR, E_INVALID_VALUE,
+ ("Port request fifo size + accumulated size > total FIFO size:"));
+ RETURN_ERROR(MAJOR, E_INVALID_VALUE,
+ ("port 0x%x requested %d bytes, extra size = %d, accumulated size = %d total size = %d",
+ hardwarePortId, sizeOfFifo, p_Fm->p_FmStateStruct->extraFifoPoolSize,
+ p_Fm->p_FmStateStruct->accumulatedFifoSize,
+ p_Fm->p_FmStateStruct->totalFifoSize));
+ }
else
{
/* update accumulated */
@@ -5077,139 +5084,6 @@ t_Error FM_CtrlMonGetCounters(t_Handle h_Fm, uint8_t fmCtrlIndex, t_FmCtrlMon *p
return E_OK;
}
-#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0))
-t_Error FM_DumpRegs(t_Handle h_Fm)
-{
- t_Fm *p_Fm = (t_Fm *)h_Fm;
- uint8_t i,j = 0;
- DECLARE_DUMP;
- SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE);
- SANITY_CHECK_RETURN_ERROR(!p_Fm->p_FmDriverParam, E_INVALID_STATE);
- SANITY_CHECK_RETURN_ERROR(((p_Fm->guestId == NCSW_MASTER_ID) ||
- p_Fm->baseAddr), E_INVALID_OPERATION);
-
- DUMP_SUBTITLE(("\n"));
-
- DUMP_TITLE(p_Fm->p_FmFpmRegs, ("FM-FPM Regs"));
-
- DUMP_VAR(p_Fm->p_FmFpmRegs,fmfp_tnc);
- DUMP_VAR(p_Fm->p_FmFpmRegs,fmfp_prc);
- DUMP_VAR(p_Fm->p_FmFpmRegs,fmfp_brkc);
- DUMP_VAR(p_Fm->p_FmFpmRegs,fmfp_mxd);
- DUMP_VAR(p_Fm->p_FmFpmRegs,fmfp_dist1);
- DUMP_VAR(p_Fm->p_FmFpmRegs,fmfp_dist2);
- DUMP_VAR(p_Fm->p_FmFpmRegs,fm_epi);
- DUMP_VAR(p_Fm->p_FmFpmRegs,fm_rie);
-
- DUMP_TITLE(&p_Fm->p_FmFpmRegs->fmfp_fcev, ("fmfp_fcev"));
- DUMP_SUBSTRUCT_ARRAY(i, 4)
- {
- DUMP_MEMORY(&p_Fm->p_FmFpmRegs->fmfp_fcev[i], sizeof(uint32_t));
- }
-
- DUMP_TITLE(&p_Fm->p_FmFpmRegs->fmfp_cee, ("fmfp_cee"));
- DUMP_SUBSTRUCT_ARRAY(i, 4)
- {
- DUMP_MEMORY(&p_Fm->p_FmFpmRegs->fmfp_cee[i], sizeof(uint32_t));
- }
-
- DUMP_SUBTITLE(("\n"));
- DUMP_VAR(p_Fm->p_FmFpmRegs,fmfp_tsc1);
- DUMP_VAR(p_Fm->p_FmFpmRegs,fmfp_tsc2);
- DUMP_VAR(p_Fm->p_FmFpmRegs,fmfp_tsp);
- DUMP_VAR(p_Fm->p_FmFpmRegs,fmfp_tsf);
- DUMP_VAR(p_Fm->p_FmFpmRegs,fm_rcr);
- DUMP_VAR(p_Fm->p_FmFpmRegs,fmfp_extc);
- DUMP_VAR(p_Fm->p_FmFpmRegs,fmfp_ext1);
- DUMP_VAR(p_Fm->p_FmFpmRegs,fmfp_ext2);
-
- DUMP_SUBTITLE(("\n"));
- WRITE_UINT32(p_Fm->p_FmFpmRegs->fmfp_dra, 0);
- CORE_MemoryBarrier();
- for (j=0; j<128; j++)
- {
- DUMP_TITLE(j, ("fmfp_dra"));
- DUMP_SUBSTRUCT_ARRAY(i, 4)
- {
- DUMP_MEMORY(&p_Fm->p_FmFpmRegs->fmfp_drd[i], sizeof(uint32_t));
- }
- DUMP_TITLE(j, ("fmfp_ts"));
- DUMP_MEMORY(&p_Fm->p_FmFpmRegs->fmfp_ts[j], sizeof(uint32_t));
- }
-
- DUMP_SUBTITLE(("\n"));
- DUMP_VAR(p_Fm->p_FmFpmRegs,fm_ip_rev_1);
- DUMP_VAR(p_Fm->p_FmFpmRegs,fm_ip_rev_2);
- DUMP_VAR(p_Fm->p_FmFpmRegs,fm_rstc);
- DUMP_VAR(p_Fm->p_FmFpmRegs,fm_cld);
- DUMP_VAR(p_Fm->p_FmFpmRegs,fm_npi);
- DUMP_VAR(p_Fm->p_FmFpmRegs,fmfp_ee);
-
- DUMP_TITLE(&p_Fm->p_FmFpmRegs->fmfp_cev, ("fmfp_cev"));
- DUMP_SUBSTRUCT_ARRAY(i, 4)
- {
- DUMP_MEMORY(&p_Fm->p_FmFpmRegs->fmfp_cev[i], sizeof(uint32_t));
- }
-
- DUMP_TITLE(&p_Fm->p_FmFpmRegs->fmfp_ps, ("fmfp_ps"));
- DUMP_SUBSTRUCT_ARRAY(i, 64)
- {
- DUMP_MEMORY(&p_Fm->p_FmFpmRegs->fmfp_ps[i], sizeof(uint32_t));
- }
-
- DUMP_TITLE(p_Fm->p_FmDmaRegs, ("FM-DMA Regs"));
- DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmsr);
- DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmemsr);
- DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmmr);
- DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmtr);
- DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmhy);
- DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmsetr);
- DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmtah);
- DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmtal);
- DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmtcid);
- DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmra);
- DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmrd);
- DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmwcr);
- DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmebcr);
- DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmdcr);
-
- DUMP_TITLE(&p_Fm->p_FmDmaRegs->fmdmplr, ("fmdmplr"));
-
- DUMP_SUBSTRUCT_ARRAY(i, FM_MAX_NUM_OF_HW_PORT_IDS/2)
- {
- DUMP_MEMORY(&p_Fm->p_FmDmaRegs->fmdmplr[i], sizeof(uint32_t));
- }
-
- DUMP_TITLE(p_Fm->p_FmBmiRegs, ("FM-BMI COMMON Regs"));
- DUMP_VAR(p_Fm->p_FmBmiRegs,fmbm_init);
- DUMP_VAR(p_Fm->p_FmBmiRegs,fmbm_cfg1);
- DUMP_VAR(p_Fm->p_FmBmiRegs,fmbm_cfg2);
- DUMP_VAR(p_Fm->p_FmBmiRegs,fmbm_ievr);
- DUMP_VAR(p_Fm->p_FmBmiRegs,fmbm_ier);
-
- DUMP_TITLE(&p_Fm->p_FmBmiRegs->fmbm_arb, ("fmbm_arb"));
- DUMP_SUBSTRUCT_ARRAY(i, 8)
- {
- DUMP_MEMORY(&p_Fm->p_FmBmiRegs->fmbm_arb[i], sizeof(uint32_t));
- }
-
- DUMP_TITLE(p_Fm->p_FmQmiRegs, ("FM-QMI COMMON Regs"));
- DUMP_VAR(p_Fm->p_FmQmiRegs,fmqm_gc);
- DUMP_VAR(p_Fm->p_FmQmiRegs,fmqm_eie);
- DUMP_VAR(p_Fm->p_FmQmiRegs,fmqm_eien);
- DUMP_VAR(p_Fm->p_FmQmiRegs,fmqm_eif);
- DUMP_VAR(p_Fm->p_FmQmiRegs,fmqm_ie);
- DUMP_VAR(p_Fm->p_FmQmiRegs,fmqm_ien);
- DUMP_VAR(p_Fm->p_FmQmiRegs,fmqm_if);
- DUMP_VAR(p_Fm->p_FmQmiRegs,fmqm_gs);
- DUMP_VAR(p_Fm->p_FmQmiRegs,fmqm_etfc);
- DUMP_VAR(p_Fm->p_FmQmiRegs,fmqm_tapc);
-
- return E_OK;
-}
-#endif /* (defined(DEBUG_ERRORS) && ... */
-
-
/****************************************************/
/* Hidden-DEBUG Only API */
diff --git a/drivers/net/ethernet/freescale/fman/inc/ctype_ext.h b/drivers/net/ethernet/freescale/fman/inc/ctype_ext.h
deleted file mode 100644
index e3d5d8d..0000000
--- a/drivers/net/ethernet/freescale/fman/inc/ctype_ext.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright 2008-2012 Freescale Semiconductor Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Freescale Semiconductor nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- *
- * ALTERNATIVELY, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") as published by the Free Software
- * Foundation, either version 2 of that License or (at your option) any
- * later version.
- *
- * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-
-#ifndef __CTYPE_EXT_H
-#define __CTYPE_EXT_H
-
-
-#if defined(NCSW_LINUX) && defined(__KERNEL__)
-/*
- * NOTE! This ctype does not handle EOF like the standard C
- * library is required to.
- */
-
-#define _U 0x01 /* upper */
-#define _L 0x02 /* lower */
-#define _D 0x04 /* digit */
-#define _C 0x08 /* cntrl */
-#define _P 0x10 /* punct */
-#define _S 0x20 /* white space (space/lf/tab) */
-#define _X 0x40 /* hex digit */
-#define _SP 0x80 /* hard space (0x20) */
-
-extern unsigned char _ctype[];
-
-#define __ismask(x) (_ctype[(int)(unsigned char)(x)])
-
-#define isalnum(c) ((__ismask(c)&(_U|_L|_D)) != 0)
-#define isalpha(c) ((__ismask(c)&(_U|_L)) != 0)
-#define iscntrl(c) ((__ismask(c)&(_C)) != 0)
-#define isdigit(c) ((__ismask(c)&(_D)) != 0)
-#define isgraph(c) ((__ismask(c)&(_P|_U|_L|_D)) != 0)
-#define islower(c) ((__ismask(c)&(_L)) != 0)
-#define isprint(c) ((__ismask(c)&(_P|_U|_L|_D|_SP)) != 0)
-#define ispunct(c) ((__ismask(c)&(_P)) != 0)
-#define isspace(c) ((__ismask(c)&(_S)) != 0)
-#define isupper(c) ((__ismask(c)&(_U)) != 0)
-#define isxdigit(c) ((__ismask(c)&(_D|_X)) != 0)
-
-#define isascii(c) (((unsigned char)(c))<=0x7f)
-#define toascii(c) (((unsigned char)(c))&0x7f)
-
-static __inline__ unsigned char __tolower(unsigned char c)
-{
- if (isupper(c))
- c -= 'A'-'a';
- return c;
-}
-
-static __inline__ unsigned char __toupper(unsigned char c)
-{
- if (islower(c))
- c -= 'a'-'A';
- return c;
-}
-
-#define tolower(c) __tolower(c)
-#define toupper(c) __toupper(c)
-
-#else
-#include <ctype.h>
-#endif /* defined(NCSW_LINUX) && defined(__KERNEL__) */
-
-
-#endif /* __CTYPE_EXT_H */
diff --git a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c
index 109dd36..b4ab295 100644
--- a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c
+++ b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c
@@ -1456,7 +1456,7 @@ Status: feature not supported
}
goto invalid_port_id;
- case (e_FM_PORT_TYPE_OH_OFFLINE_PARSING):
+ case (e_IOC_FM_PORT_TYPE_OH_OFFLINE_PARSING):
if (port_params->port_id && port_params->port_id < FM_MAX_NUM_OF_OH_PORTS) {
h_Port = p_LnxWrpFmDev->opPorts[port_params->port_id - 1].h_Dev;
break;
@@ -3523,7 +3523,7 @@ t_Error LnxwrpFmIOCTL(t_LnxWrpFmDev *p_LnxWrpFmDev, unsigned int cmd, unsigned l
else
#endif
{
- if (copy_from_user(&param, (void *)arg, sizeof(ioc_fm_counters_params_t)))
+ if (copy_from_user(&param, (void *)arg, sizeof(ioc_fm_ctrl_mon_counters_params_t)))
RETURN_ERROR(MINOR, E_WRITE_FAILED, NO_MSG);
}
diff --git a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm_compat.c b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm_compat.c
index b5ffe5c..ea0885a 100644
--- a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm_compat.c
+++ b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm_compat.c
@@ -310,12 +310,18 @@ static inline void compat_copy_fm_pcd_cc_next_kg(
{
param->new_fqid = compat_param->new_fqid;
param->override_fqid = compat_param->override_fqid;
+#if DPAA_VERSION >= 11
+ param->new_relative_storage_profile_id = compat_param->new_relative_storage_profile_id;
+#endif
param->p_direct_scheme = compat_pcd_id2ptr(compat_param->p_direct_scheme);
}
else
{
compat_param->new_fqid = param->new_fqid;
compat_param->override_fqid = param->override_fqid;
+#if DPAA_VERSION >= 11
+ compat_param->new_relative_storage_profile_id = param->new_relative_storage_profile_id;
+#endif
compat_param->p_direct_scheme = compat_pcd_ptr2id(param->p_direct_scheme);
}
diff --git a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_sysfs_fm_port.c b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_sysfs_fm_port.c
index 0cdf6a8..bd62011 100644
--- a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_sysfs_fm_port.c
+++ b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_sysfs_fm_port.c
@@ -380,7 +380,7 @@ static int fm_port_dsar_dump_regs(void *h_dev, char *buf, int nn)
FM_DMP_LN(buf, n, "control bits 0x%04x\n", ArpDescriptor->control);
if (ArpDescriptor->numOfBindings)
{
- char ip_str[20];
+ char ip_str[100];
t_DsarArpBindingEntry* bindings = ioremap(
ioread32be(&ArpDescriptor->p_Bindings) +
p_FmPort->fmMuramPhysBaseAddr,
@@ -390,8 +390,11 @@ static int fm_port_dsar_dump_regs(void *h_dev, char *buf, int nn)
FM_DMP_LN(buf, n, " ip vlan id\n");
for (i = 0; i < ArpDescriptor->numOfBindings; i++)
{
- n += sprintf(ip_str, "%d:%d:%d:%d", ip_addr[0], ip_addr[1], ip_addr[2], ip_addr[3]);
- FM_DMP_LN(buf, n, "%-15s 0x%x\n", ip_str, bindings->vlanId);
+ n += snprintf(ip_str, 100, "%d.%d.%d.%d",
+ ip_addr[0], ip_addr[1],
+ ip_addr[2], ip_addr[3]);
+ FM_DMP_LN(buf, n, "%-15s 0x%x\n",
+ ip_str, bindings->vlanId);
}
iounmap(bindings);
}
@@ -427,7 +430,7 @@ static int fm_port_dsar_dump_regs(void *h_dev, char *buf, int nn)
FM_DMP_LN(buf, n, "control bits 0x%04x\n", ICMPV4Descriptor->control);
if (ICMPV4Descriptor->numOfBindings)
{
- char ip_str[20];
+ char ip_str[100];
t_DsarArpBindingEntry* bindings = ioremap(
ioread32be(&ICMPV4Descriptor->p_Bindings) +
p_FmPort->fmMuramPhysBaseAddr,
@@ -437,8 +440,11 @@ static int fm_port_dsar_dump_regs(void *h_dev, char *buf, int nn)
FM_DMP_LN(buf, n, " ip vlan id\n");
for (i = 0; i < ICMPV4Descriptor->numOfBindings; i++)
{
- n += sprintf(ip_str, "%d:%d:%d:%d", ip_addr[0], ip_addr[1], ip_addr[2], ip_addr[3]);
- FM_DMP_LN(buf, n, "%-15s 0x%x\n", ip_str, bindings->vlanId);
+ n += snprintf(ip_str, 100, "%d.%d.%d.%d",
+ ip_addr[0], ip_addr[1],
+ ip_addr[2], ip_addr[3]);
+ FM_DMP_LN(buf, n, "%-15s 0x%x\n",
+ ip_str, bindings->vlanId);
}
iounmap(bindings);
}
@@ -470,7 +476,7 @@ static int fm_port_dsar_dump_regs(void *h_dev, char *buf, int nn)
FM_DMP_LN(buf, n, "solicited address 0x%08x\n", NDDescriptor->solicitedAddr);
if (NDDescriptor->numOfBindings)
{
- char ip_str[20];
+ char ip_str[100];
t_DsarIcmpV6BindingEntry* bindings = ioremap(
ioread32be(&NDDescriptor->p_Bindings) +
p_FmPort->fmMuramPhysBaseAddr,
@@ -480,7 +486,8 @@ static int fm_port_dsar_dump_regs(void *h_dev, char *buf, int nn)
FM_DMP_LN(buf, n, " ip vlan id\n");
for (i = 0; i < NDDescriptor->numOfBindings; i++)
{
- n += sprintf(ip_str, "%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x",
+ n += snprintf(ip_str, 100,
+ "%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x",
ip_addr[0], ip_addr[1], ip_addr[2], ip_addr[3],
ip_addr[4], ip_addr[5], ip_addr[6], ip_addr[7]);
FM_DMP_LN(buf, n, "%s 0x%x\n", ip_str, bindings->vlanId);
@@ -516,7 +523,7 @@ static int fm_port_dsar_dump_regs(void *h_dev, char *buf, int nn)
FM_DMP_LN(buf, n, "control bits 0x%04x\n", ICMPV6Descriptor->control);
if (ICMPV6Descriptor->numOfBindings)
{
- char ip_str[20];
+ char ip_str[100];
t_DsarIcmpV6BindingEntry* bindings = ioremap(
ioread32be(&ICMPV6Descriptor->p_Bindings) +
p_FmPort->fmMuramPhysBaseAddr,
@@ -526,7 +533,8 @@ static int fm_port_dsar_dump_regs(void *h_dev, char *buf, int nn)
FM_DMP_LN(buf, n, " ip vlan id\n");
for (i = 0; i < ICMPV6Descriptor->numOfBindings; i++)
{
- n += sprintf(ip_str, "%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x",
+ n += snprintf(ip_str, 100,
+ "%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x",
ip_addr[0], ip_addr[1], ip_addr[2], ip_addr[3],
ip_addr[4], ip_addr[5], ip_addr[6], ip_addr[7]);
FM_DMP_LN(buf, n, "%s 0x%x\n", ip_str, bindings->vlanId);
@@ -560,7 +568,7 @@ static int fm_port_dsar_dump_regs(void *h_dev, char *buf, int nn)
FM_DMP_LN(buf, n, "max message length 0x%04x\n", SnmpDescriptor->maxSnmpMsgLength);
if (SnmpDescriptor->numOfIpv4Addresses)
{
- char ip_str[20];
+ char ip_str[100];
t_DsarSnmpIpv4AddrTblEntry* addrs = ioremap(
ioread32be(&SnmpDescriptor->p_Ipv4AddrTbl) +
p_FmPort->fmMuramPhysBaseAddr,
@@ -570,7 +578,9 @@ static int fm_port_dsar_dump_regs(void *h_dev, char *buf, int nn)
FM_DMP_LN(buf, n, " ip vlan id\n");
for (i = 0; i < SnmpDescriptor->numOfIpv4Addresses; i++)
{
- n += sprintf(ip_str, "%d:%d:%d:%d", ip_addr[0], ip_addr[1], ip_addr[2], ip_addr[3]);
+ n += snprintf(ip_str, 100, "%d.%d.%d.%d",
+ ip_addr[0], ip_addr[1],
+ ip_addr[2], ip_addr[3]);
FM_DMP_LN(buf, n, "%-15s 0x%x\n", ip_str, addrs->vlanId);
}
iounmap(addrs);
diff --git a/drivers/net/ethernet/freescale/fman/src/xx/Makefile b/drivers/net/ethernet/freescale/fman/src/xx/Makefile
index 7199b57..3d832a4 100644
--- a/drivers/net/ethernet/freescale/fman/src/xx/Makefile
+++ b/drivers/net/ethernet/freescale/fman/src/xx/Makefile
@@ -8,5 +8,5 @@ include $(srctree)/drivers/net/ethernet/freescale/fman/ncsw_config.mk
obj-y += fsl-ncsw-xx.o
-fsl-ncsw-xx-objs := xx_linux.o stdlib.o \
+fsl-ncsw-xx-objs := xx_linux.o \
module_strings.o
diff --git a/drivers/net/ethernet/freescale/fman/src/xx/stdlib.c b/drivers/net/ethernet/freescale/fman/src/xx/stdlib.c
deleted file mode 100644
index 851bcf1..0000000
--- a/drivers/net/ethernet/freescale/fman/src/xx/stdlib.c
+++ /dev/null
@@ -1,264 +0,0 @@
-/*
- * Copyright 2008-2012 Freescale Semiconductor Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Freescale Semiconductor nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- *
- * ALTERNATIVELY, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") as published by the Free Software
- * Foundation, either version 2 of that License or (at your option) any
- * later version.
- *
- * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*------------------------------------------------------*/
-/* */
-/* File: stdlib.c */
-/* */
-/* Description: */
-/* Standard library routines (externals) */
-/* */
-/* Modifications: */
-/* ============== */
-/* */
-/*------------------------------------------------------*/
-#include "stdlib_ext.h"
-#include "stdarg_ext.h"
-#include "ctype_ext.h"
-#include "string_ext.h"
-#include "std_ext.h"
-#include "xx_ext.h"
-
-
-#ifdef MODULE
-/**
- * strtoul - convert a string to an uint32_t
- * @cp: The start of the string
- * @endp: A pointer to the end of the parsed string will be placed here
- * @base: The number base to use
- */
-uint32_t strtoul(const char *cp,char **endp,uint32_t base)
-{
- uint32_t result = 0,value;
-
- if (!base) {
- base = 10;
- if (*cp == '0') {
- base = 8;
- cp++;
- if ((*cp == 'x') && isxdigit(cp[1])) {
- cp++;
- base = 16;
- }
- }
- }
- while (isxdigit(*cp) &&
- (value = (uint32_t)(isdigit(*cp) ? *cp-'0' : toupper((uint8_t)(*cp))-'A'+10)) < base) {
- result = result*base + value;
- cp++;
- }
- if (endp)
- *endp = (char *)cp;
- return result;
-}
-
-/**
- * strtol - convert a string to a int32_t
- * @cp: The start of the string
- * @endp: A pointer to the end of the parsed string will be placed here
- * @base: The number base to use
- */
-long strtol(const char *cp,char **endp,uint32_t base)
-{
- if(*cp=='-')
- return (long)(-strtoul(cp+1,endp,base));
- return (long)strtoul(cp,endp,base);
-}
-
-/**
- * strtoull - convert a string to an uint64_t
- * @cp: The start of the string
- * @endp: A pointer to the end of the parsed string will be placed here
- * @base: The number base to use
- */
-uint64_t strtoull(const char *cp,char **endp,uint32_t base)
-{
- uint64_t result = 0,value;
-
- if (!base) {
- base = 10;
- if (*cp == '0') {
- base = 8;
- cp++;
- if ((*cp == 'x') && isxdigit(cp[1])) {
- cp++;
- base = 16;
- }
- }
- }
- while (isxdigit(*cp) && (value = isdigit(*cp) ? *cp-'0' : (islower(*cp)
- ? toupper((uint8_t)(*cp)) : *cp)-'A'+10) < base) {
- result = result*base + value;
- cp++;
- }
- if (endp)
- *endp = (char *)cp;
- return result;
-}
-
-/**
- * strtoll - convert a string to a int64
- * @cp: The start of the string
- * @endp: A pointer to the end of the parsed string will be placed here
- * @base: The number base to use
- */
-long long strtoll(const char *cp,char **endp,uint32_t base)
-{
- if(*cp=='-')
- return (long long)(-strtoull(cp+1,endp,base));
- return (long long)(strtoull(cp,endp,base));
-}
-
-/**
- * atoi - convert a string to a int
- * @s: The start of the string
- */
-int atoi(const char *s)
-{
- int i=0;
- const char **tmp_s = &s;
-
- while (isdigit(**tmp_s))
- i = i*10 + *((*tmp_s)++) - '0';
- return i;
-}
-
-/**
- * strlen - Find the length of a string
- * @s: The string to be sized
- */
-size_t strlen(const char * s)
-{
- const char *sc;
-
- for (sc = s; *sc != '\0'; ++sc)
- /* nothing */;
-
- return sc - s;
-}
-
-/**
- * strnlen - Find the length of a length-limited string
- * @s: The string to be sized
- * @count: The maximum number of bytes to search
- */
-size_t strnlen(const char * s, size_t count)
-{
- const char *sc;
-
- for (sc = s; count-- && *sc != '\0'; ++sc)
- /* nothing */;
-
- return sc - s;
-}
-
-/**
- * strcpy - Copy a %NUL terminated string
- * @dest: Where to copy the string to
- * @src: Where to copy the string from
- */
-char * strcpy(char * dest,const char *src)
-{
- char *tmp = dest;
-
- while ((*dest++ = *src++) != '\0')
- /* nothing */;
-
- return tmp;
-}
-#endif /* MODULE */
-
-/**
- * strtok - Split a string into tokens
- * @s: The string to be searched
- * @ct: The characters to search for
- *
- * WARNING: strtok is deprecated, use strsep instead.
- */
-char *___strtok;
-
-char * strtok(char * s,const char * ct)
-{
- char *sbegin, *send;
-
- sbegin = s ? s : ___strtok;
- if (!sbegin) {
- return NULL;
- }
- sbegin += strspn(sbegin,ct);
- if (*sbegin == '\0') {
- ___strtok = NULL;
- return( NULL );
- }
- send = strpbrk( sbegin, ct);
- if (send && *send != '\0')
- *send++ = '\0';
- ___strtok = send;
- return (sbegin);
-}
-
-
-#ifdef MODULE
-/**
- * strncpy - Copy a length-limited, %NUL-terminated string
- * @dest: Where to copy the string to
- * @src: Where to copy the string from
- * @count: The maximum number of bytes to copy
- *
- * Note that unlike userspace strncpy, this does not %NUL-pad the buffer.
- * However, the result is not %NUL-terminated if the source exceeds
- * @count bytes.
- */
-char * strncpy(char * dest,const char *src,size_t count)
-{
- char *tmp = dest;
-
- while (count-- && (*dest++ = *src++) != '\0')
- /* nothing */;
-
- return tmp;
-}
-
-/**
- * vsprintf - Format a string and place it in a buffer
- * @buf: The buffer to place the result into
- * @fmt: The format string to use
- * @args: Arguments for the format string
- *
- * Call this function if you are already dealing with a va_list.
- * You probably want sprintf instead.
- */
-int vsprintf(char *buf, const char *fmt, va_list args)
-{
- return vsnprintf(buf, INT32_MAX, fmt, args);
-}
-#endif /* MODULE */
diff --git a/drivers/net/ethernet/freescale/xgmac_mdio.c b/drivers/net/ethernet/freescale/xgmac_mdio.c
index 5eef8ce..b2d060c 100644
--- a/drivers/net/ethernet/freescale/xgmac_mdio.c
+++ b/drivers/net/ethernet/freescale/xgmac_mdio.c
@@ -19,9 +19,6 @@
#include <linux/mdio.h>
#include <linux/of_platform.h>
#include <linux/of_mdio.h>
-#ifdef CONFIG_FMAN_V3L
-#include <asm/mpc85xx.h>
-#endif
/* Number of microseconds to wait for a register to respond */
#define TIMEOUT 1000
@@ -183,12 +180,6 @@ static int xgmac_mdio_read(struct mii_bus *bus, int phy_id, int regnum)
return ret;
}
-#ifdef CONFIG_FMAN_V3L
- /* Fixup for RTL8211F MDIO timing delay on T1023RDB */
- if (SVR_SOC_VER(mfspr(SPRN_SVR)) == SVR_T1023)
- udelay(100);
-#endif
-
/* Initiate the read */
out_be32(&regs->mdio_ctl, mdio_ctl | MDIO_CTL_READ);
diff --git a/drivers/staging/fsl_dce/dce_sys.c b/drivers/staging/fsl_dce/dce_sys.c
index 29ad636..d865d90 100644
--- a/drivers/staging/fsl_dce/dce_sys.c
+++ b/drivers/staging/fsl_dce/dce_sys.c
@@ -87,7 +87,7 @@ static int dce_sys_init(void)
slab_scr_128b = kmem_cache_create("fsl_dce_scr_128b",
sizeof(struct scf_128b), /* 128 byte size */
DCE_SCR_ALIGN, SLAB_HWCACHE_ALIGN, NULL);
- if (!slab_scr_64b)
+ if (!slab_scr_128b)
goto end;
slab_compress_history = kmem_cache_create("fsl_dce_compress_history",
DCE_COMP_HISTORY_SIZE,
diff --git a/drivers/staging/fsl_dpa_offload/dpa_ipsec.c b/drivers/staging/fsl_dpa_offload/dpa_ipsec.c
index 5b3fc91..23b0521 100644
--- a/drivers/staging/fsl_dpa_offload/dpa_ipsec.c
+++ b/drivers/staging/fsl_dpa_offload/dpa_ipsec.c
@@ -3680,8 +3680,6 @@ int dpa_ipsec_free(int dpa_ipsec_id)
free_resources(dpa_ipsec_id);
- mark_unused_gbl_dpa_ipsec(instance->id);
-
return 0;
}
EXPORT_SYMBOL(dpa_ipsec_free);
diff --git a/drivers/staging/fsl_dpa_offload/dts/b4860qds-usdpaa-nf-offload.dts b/drivers/staging/fsl_dpa_offload/dts/b4860qds-usdpaa-nf-offload.dts
new file mode 100644
index 0000000..daaed81
--- /dev/null
+++ b/drivers/staging/fsl_dpa_offload/dts/b4860qds-usdpaa-nf-offload.dts
@@ -0,0 +1,181 @@
+/*
+ * B4860QDS Device Tree Source
+ *
+ * Copyright 2013 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Freescale Semiconductor nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/include/ "b4860qds.dts"
+
+/ {
+ /* NB: "bpool-ethernet-seeds" is not set to avoid buffer seeding,
+ * because apps seed these pools with buffers allocated at
+ * run-time.
+ * HOWEVER, the kernel driver requires the buffer-size so
+ * "fsl,bpool-ethernet-cfg" is set. It also mis-interprets
+ * things if the base-address is zero (hence the 0xdeadbeef
+ * values).
+ */
+ bp7: buffer-pool@7 {
+ compatible = "fsl,b4860-bpool", "fsl,bpool";
+ fsl,bpid = <7>;
+ fsl,bpool-ethernet-cfg = <0 0 0 192 0 0xdeadbeef>;
+ fsl,bpool-thresholds = <0x400 0xc00 0x0 0x0>;
+ };
+ bp8: buffer-pool@8 {
+ compatible = "fsl,b4860-bpool", "fsl,bpool";
+ fsl,bpid = <8>;
+ fsl,bpool-ethernet-cfg = <0 0 0 576 0 0xabbaf00d>;
+ fsl,bpool-thresholds = <0x100 0x300 0x0 0x0>;
+ };
+ bp9: buffer-pool@9 {
+ compatible = "fsl,b4860-bpool", "fsl,bpool";
+ fsl,bpid = <9>;
+ fsl,bpool-ethernet-cfg = <0 0 0 1728 0 0xfeedabba>;
+ fsl,bpool-thresholds = <0x100 0x300 0x0 0x0>;
+ };
+
+ bp10: buffer-pool@10 {
+ compatible = "fsl,b4860-bpool", "fsl,bpool";
+ fsl,bpid = <10>;
+ fsl,bpool-thresholds = <0x10 0x30 0x0 0x0>;
+ };
+ bp11: buffer-pool@11 {
+ compatible = "fsl,b4860-bpool", "fsl,bpool";
+ fsl,bpid = <11>;
+ fsl,bpool-thresholds = <0x100 0x300 0x0 0x0>;
+ };
+ bp12: buffer-pool@12 {
+ compatible = "fsl,b4860-bpool", "fsl,bpool";
+ fsl,bpid = <12>;
+ fsl,bpool-thresholds = <0x100 0x300 0x0 0x0>;
+ };
+
+ bp16: buffer-pool@16 {
+ compatible = "fsl,b4860-bpool", "fsl,bpool";
+ fsl,bpid = <16>;
+ fsl,bpool-ethernet-cfg = <0 2048 0 1728 0 0>;
+ fsl,bpool-thresholds = <0x100 0x300 0x0 0x0>;
+ };
+ bp17: buffer-pool@17 {
+ compatible = "fsl,b4860-bpool", "fsl,bpool";
+ fsl,bpid = <17>;
+ fsl,bpool-ethernet-cfg = <0 2048 0 1728 0 0>;
+ fsl,bpool-thresholds = <0x100 0x300 0x0 0x0>;
+ fsl,bpool-ethernet-seeds;
+ };
+
+
+ fsl,dpaa {
+ ethernet@0 {
+ compatible = "fsl,b4860-dpa-ethernet-init", "fsl,dpa-ethernet-init";
+ fsl,bman-buffer-pools = <&bp16>;
+ fsl,qman-frame-queues-rx = <0x50 1 0x51 1>;
+ fsl,qman-frame-queues-tx = <0x70 1 0x71 1>;
+ };
+ ethernet@1 {
+ compatible = "fsl,b4860-dpa-ethernet-init", "fsl,dpa-ethernet-init";
+ fsl,bman-buffer-pools = <&bp16>;
+ fsl,qman-frame-queues-rx = <0x52 1 0x53 1>;
+ fsl,qman-frame-queues-tx = <0x72 1 0x73 1>;
+ };
+ ethernet@2 {
+ compatible = "fsl,b4860-dpa-ethernet-init", "fsl,dpa-ethernet-init";
+ fsl,bman-buffer-pools = <&bp16>;
+ fsl,qman-frame-queues-rx = <0x54 1 0x55 1>;
+ fsl,qman-frame-queues-tx = <0x74 1 0x75 1>;
+ };
+ ethernet@3 {
+ compatible = "fsl,b4860-dpa-ethernet-init", "fsl,dpa-ethernet-init";
+ fsl,bman-buffer-pools = <&bp16>;
+ fsl,qman-frame-queues-rx = <0x56 1 0x57 1>;
+ fsl,qman-frame-queues-tx = <0x76 1 0x77 1>;
+ };
+ ethernet@4 {
+ compatible = "fsl,b4860-dpa-ethernet-shared", "fsl,dpa-ethernet-shared";
+ fsl,bman-buffer-pools = <&bp16>;
+ fsl,qman-frame-queues-rx = <0x58 1 0x59 1 0x1000 2>;
+ fsl,qman-frame-queues-tx = <0x78 1 0x79 1 0x2000 8>;
+ };
+ ethernet@5 {
+ compatible = "fsl,b4860-dpa-ethernet-shared", "fsl,dpa-ethernet-shared";
+ fsl,bman-buffer-pools = <&bp16>;
+ fsl,qman-frame-queues-rx = <0x5a 1 0x5b 1 0x1002 2>;
+ fsl,qman-frame-queues-tx = <0x7a 1 0x7b 1 0x2008 8>;
+ };
+ ethernet@8 {
+ compatible = "fsl,b4860-dpa-ethernet-init", "fsl,dpa-ethernet-init";
+ fsl,bman-buffer-pools = <&bp16>;
+ fsl,qman-frame-queues-rx = <0x5c 1 0x5d 1>;
+ fsl,qman-frame-queues-tx = <0x7c 1 0x7d 1>;
+ };
+
+ /* ethernet@16 declared as MAC-less interface with no "fsl,fman-mac" property.
+ * USDPAA will seed buffers to this buffer pool and initialize 8 TX Frame
+ * queues. The ethernet driver will initialize 8 RX default Frame queues.
+ * On receiving frame at this interface, the ethernet driver will do
+ * kmap_atomic/kunmap_atomic for that frame. */
+ ethernet@16 {
+ compatible = "fsl,b4860-dpa-ethernet-macless", "fsl,dpa-ethernet-macless";
+ fsl,bman-buffer-pools = <&bp16>;
+ fsl,qman-frame-queues-rx = <4000 8>;
+ fsl,qman-frame-queues-tx = <4008 8>;
+ local-mac-address = [00 11 22 33 44 55];
+ };
+ ethernet@17 {
+ compatible = "fsl,b4860-dpa-ethernet-macless", "fsl,dpa-ethernet-macless";
+ fsl,bman-buffer-pools = <&bp16>;
+ fsl,qman-frame-queues-rx = <5000 8>;
+ fsl,qman-frame-queues-tx = <5008 8>;
+ local-mac-address = [00 11 22 33 44 66];
+ };
+
+ dpa-fman0-oh@2 {
+ compatible = "fsl,dpa-oh";
+ /* Define frame queues for the OH port*/
+ /* <OH Rx error, OH Rx default> */
+ fsl,qman-frame-queues-oh = <0x6e 1 0x6f 1>;
+ fsl,bman-buffer-pools = <&bp16>;
+ fsl,fman-oh-port = <&fman0_oh2>;
+ };
+ dpa_fman0_oh3: dpa-fman0-oh@3 {
+ compatible = "fsl,dpa-oh";
+ fsl,qman-frame-queues-oh = <0x68 1 0x69 1>;
+ fsl,bman-buffer-pools = <&bp9>;
+ fsl,fman-oh-port = <&fman0_oh3>;
+ };
+ dpa_fman0_oh4: dpa-fman0-oh@4 {
+ compatible = "fsl,dpa-oh";
+ fsl,qman-frame-queues-oh = <0x70 1 0x71 1>;
+ fsl,bman-buffer-pools = <&bp9>;
+ fsl,fman-oh-port = <&fman0_oh4>;
+ };
+ };
+};
diff --git a/drivers/staging/fsl_dpa_offload/dts/b4860qds-usdpaa-shared-interfaces.dts b/drivers/staging/fsl_dpa_offload/dts/b4860qds-usdpaa-shared-interfaces.dts
index fe64763..151979b 100644
--- a/drivers/staging/fsl_dpa_offload/dts/b4860qds-usdpaa-shared-interfaces.dts
+++ b/drivers/staging/fsl_dpa_offload/dts/b4860qds-usdpaa-shared-interfaces.dts
@@ -89,6 +89,7 @@
fsl,bpid = <17>;
fsl,bpool-ethernet-cfg = <0 2048 0 1728 0 0>;
fsl,bpool-thresholds = <0x100 0x300 0x0 0x0>;
+ fsl,bpool-ethernet-seeds;
};
@@ -118,22 +119,16 @@
fsl,qman-frame-queues-tx = <0x76 1 0x77 1>;
};
ethernet@4 {
- compatible = "fsl,b4860-dpa-ethernet-shared", "fsl,dpa-ethernet-shared";
+ compatible = "fsl,b4860-dpa-ethernet-init", "fsl,dpa-ethernet-init";
fsl,bman-buffer-pools = <&bp16>;
- fsl,qman-frame-queues-rx = <0x58 1 0x59 1 0x1000 2>;
- fsl,qman-frame-queues-tx = <0x78 1 0x79 1 0x2000 8>;
+ fsl,qman-frame-queues-rx = <0x58 1 0x59 1>;
+ fsl,qman-frame-queues-tx = <0x78 1 0x79 1>;
};
ethernet@5 {
- compatible = "fsl,b4860-dpa-ethernet-shared", "fsl,dpa-ethernet-shared";
- fsl,bman-buffer-pools = <&bp16>;
- fsl,qman-frame-queues-rx = <0x5a 1 0x5b 1 0x1002 2>;
- fsl,qman-frame-queues-tx = <0x7a 1 0x7b 1 0x2008 8>;
- };
- ethernet@8 {
compatible = "fsl,b4860-dpa-ethernet-init", "fsl,dpa-ethernet-init";
fsl,bman-buffer-pools = <&bp16>;
- fsl,qman-frame-queues-rx = <0x5c 1 0x5d 1>;
- fsl,qman-frame-queues-tx = <0x7c 1 0x7d 1>;
+ fsl,qman-frame-queues-rx = <0x5a 1 0x5b 1>;
+ fsl,qman-frame-queues-tx = <0x7a 1 0x7b 1>;
};
/* ethernet@16 declared as MAC-less interface with no "fsl,fman-mac" property.
@@ -176,7 +171,7 @@
/* Define frame queues for the OH port*/
/* <OH Rx error, OH Rx default> */
fsl,qman-frame-queues-oh = <0x6e 1 0x6f 1>;
- fsl,bman-buffer-pools = <&bp16>;
+ fsl,bman-buffer-pools = <&bp17>;
fsl,fman-oh-port = <&fman0_oh2>;
};
oh3: dpa_fman0_oh3: dpa-fman0-oh@3 {
diff --git a/drivers/staging/fsl_pme2/pme2_high.c b/drivers/staging/fsl_pme2/pme2_high.c
index 094ee9d..12ab7a1 100644
--- a/drivers/staging/fsl_pme2/pme2_high.c
+++ b/drivers/staging/fsl_pme2/pme2_high.c
@@ -727,6 +727,9 @@ static inline int __update_flow(struct pme_ctx *ctx, u32 flags,
BUG_ON(ctx->flags & PME_CTX_FLAG_DIRECT);
if (!hw_res)
return -ENOMEM;
+ /* Direct mode is not enabled. Therefore the call back token must not
+ * be NULL */
+ BUG_ON(!token);
token->internal_flow_ptr = pme_hw_flow_new();
if (!token->internal_flow_ptr) {
pme_hw_residue_free(hw_res);
diff --git a/drivers/staging/fsl_qbman/bman_test_high.c b/drivers/staging/fsl_qbman/bman_test_high.c
index 7bdd181..4676fb0 100644
--- a/drivers/staging/fsl_qbman/bman_test_high.c
+++ b/drivers/staging/fsl_qbman/bman_test_high.c
@@ -165,7 +165,9 @@ do_loop:
BUG_ON(tmp != num);
i -= num;
}
- i = bman_acquire(pool, NULL, 1, 0);
+
+ struct bm_buffer tmp_buf;
+ i = bman_acquire(pool, &tmp_buf, 1, 0);
BUG_ON(i > 0);
bufs_confirm();
diff --git a/drivers/staging/fsl_qbman/fsl_usdpaa.c b/drivers/staging/fsl_qbman/fsl_usdpaa.c
index dfef598..e2e3308 100644
--- a/drivers/staging/fsl_qbman/fsl_usdpaa.c
+++ b/drivers/staging/fsl_qbman/fsl_usdpaa.c
@@ -195,9 +195,9 @@ static u32 largest_page_size(u32 size)
/* Determine if value is power of 4 */
static inline bool is_power_of_4(u64 x)
{
- if (!is_power_of_2(x))
+ if (x == 0 || ((x & (x - 1)) != 0))
return false;
- return !!(x & 0x5555555555555555ul);
+ return !!(x & 0x5555555555555555ull);
}
/* Helper for ioctl_dma_map() when we have a larger fragment than we need. This
diff --git a/drivers/staging/fsl_qbman/qman_high.c b/drivers/staging/fsl_qbman/qman_high.c
index 565de9e..b94bfb4 100644
--- a/drivers/staging/fsl_qbman/qman_high.c
+++ b/drivers/staging/fsl_qbman/qman_high.c
@@ -3504,11 +3504,6 @@ int qman_ceetm_lni_enable_shaper(struct qm_ceetm_lni *lni, int coupled,
{
struct qm_mcc_ceetm_mapping_shaper_tcfc_config config_opts;
- if (lni->shaper_enable) {
- pr_err("The shaper has already been enabled\n");
- return -EINVAL;
- }
-
lni->shaper_enable = 1;
lni->shaper_couple = coupled;
lni->oal = oal;
@@ -3550,6 +3545,12 @@ int qman_ceetm_lni_disable_shaper(struct qm_ceetm_lni *lni)
}
EXPORT_SYMBOL(qman_ceetm_lni_disable_shaper);
+int qman_ceetm_lni_is_shaper_enabled(struct qm_ceetm_lni *lni)
+{
+ return lni->shaper_enable;
+}
+EXPORT_SYMBOL(qman_ceetm_lni_is_shaper_enabled);
+
int qman_ceetm_lni_set_commit_rate(struct qm_ceetm_lni *lni,
const struct qm_ceetm_rate *token_rate,
u16 token_limit)
@@ -3559,34 +3560,52 @@ int qman_ceetm_lni_set_commit_rate(struct qm_ceetm_lni *lni,
struct qm_mcr_ceetm_mapping_shaper_tcfc_query query_result;
int ret;
- if (!lni->shaper_enable) {
- pr_err("The LNI#%d is unshaped, cannot set CR rate\n",
- lni->idx);
- return -EINVAL;
+ lni->cr_token_rate.whole = token_rate->whole;
+ lni->cr_token_rate.fraction = token_rate->fraction;
+ lni->cr_token_bucket_limit = token_limit;
+ if (lni->shaper_enable) {
+ query_opts.cid = CEETM_COMMAND_LNI_SHAPER | lni->idx;
+ query_opts.dcpid = lni->dcp_idx;
+ ret = qman_ceetm_query_mapping_shaper_tcfc(&query_opts,
+ &query_result);
+ if (ret) {
+ pr_err("Fail to get current LNI shaper setting\n");
+ return -EINVAL;
+ }
+
+ config_opts.cid = CEETM_COMMAND_LNI_SHAPER | lni->idx;
+ config_opts.dcpid = lni->dcp_idx;
+ config_opts.shaper_config.crtcr = (token_rate->whole << 13) |
+ (token_rate->fraction);
+ config_opts.shaper_config.crtbl = token_limit;
+ config_opts.shaper_config.cpl = query_result.shaper_query.cpl;
+ config_opts.shaper_config.ertcr =
+ query_result.shaper_query.ertcr;
+ config_opts.shaper_config.ertbl =
+ query_result.shaper_query.ertbl;
+ return qman_ceetm_configure_mapping_shaper_tcfc(&config_opts);
+ } else {
+ return 0;
}
+}
+EXPORT_SYMBOL(qman_ceetm_lni_set_commit_rate);
- query_opts.cid = CEETM_COMMAND_LNI_SHAPER | lni->idx;
- query_opts.dcpid = lni->dcp_idx;
- ret = qman_ceetm_query_mapping_shaper_tcfc(&query_opts, &query_result);
+int qman_ceetm_lni_set_commit_rate_bps(struct qm_ceetm_lni *lni,
+ u64 bps,
+ u16 token_limit)
+{
+ struct qm_ceetm_rate token_rate;
+ int ret;
+
+ ret = qman_ceetm_bps2tokenrate(bps, &token_rate, 0);
if (ret) {
- pr_err("Fail to get current LNI shaper setting\n");
+ pr_err("Can not convert bps to token rate\n");
return -EINVAL;
}
- lni->cr_token_rate.whole = token_rate->whole;
- lni->cr_token_rate.fraction = token_rate->fraction;
- lni->cr_token_bucket_limit = token_limit;
- config_opts.cid = CEETM_COMMAND_LNI_SHAPER | lni->idx;
- config_opts.dcpid = lni->dcp_idx;
- config_opts.shaper_config.crtcr = (token_rate->whole << 13) |
- (token_rate->fraction);
- config_opts.shaper_config.crtbl = token_limit;
- config_opts.shaper_config.cpl = query_result.shaper_query.cpl;
- config_opts.shaper_config.ertcr = query_result.shaper_query.ertcr;
- config_opts.shaper_config.ertbl = query_result.shaper_query.ertbl;
- return qman_ceetm_configure_mapping_shaper_tcfc(&config_opts);
+ return qman_ceetm_lni_set_commit_rate(lni, &token_rate, token_limit);
}
-EXPORT_SYMBOL(qman_ceetm_lni_set_commit_rate);
+EXPORT_SYMBOL(qman_ceetm_lni_set_commit_rate_bps);
int qman_ceetm_lni_get_commit_rate(struct qm_ceetm_lni *lni,
struct qm_ceetm_rate *token_rate,
@@ -3611,6 +3630,22 @@ int qman_ceetm_lni_get_commit_rate(struct qm_ceetm_lni *lni,
}
EXPORT_SYMBOL(qman_ceetm_lni_get_commit_rate);
+int qman_ceetm_lni_get_commit_rate_bps(struct qm_ceetm_lni *lni,
+ u64 *bps, u16 *token_limit)
+{
+ struct qm_ceetm_rate token_rate;
+ int ret;
+
+ ret = qman_ceetm_lni_get_commit_rate(lni, &token_rate, token_limit);
+ if (ret) {
+ pr_err("The LNI CR rate or limit is not available\n");
+ return -EINVAL;
+ }
+
+ return qman_ceetm_tokenrate2bps(&token_rate, bps, 0);
+}
+EXPORT_SYMBOL(qman_ceetm_lni_get_commit_rate_bps);
+
int qman_ceetm_lni_set_excess_rate(struct qm_ceetm_lni *lni,
const struct qm_ceetm_rate *token_rate,
u16 token_limit)
@@ -3620,35 +3655,53 @@ int qman_ceetm_lni_set_excess_rate(struct qm_ceetm_lni *lni,
struct qm_mcr_ceetm_mapping_shaper_tcfc_query query_result;
int ret;
- if (!lni->shaper_enable) {
- pr_err("The LIN#%d is unshaped, cannot set ER rate\n",
- lni->idx);
- return -EINVAL;
+ lni->er_token_rate.whole = token_rate->whole;
+ lni->er_token_rate.fraction = token_rate->fraction;
+ lni->er_token_bucket_limit = token_limit;
+ if (lni->shaper_enable) {
+ query_opts.cid = CEETM_COMMAND_LNI_SHAPER | lni->idx;
+ query_opts.dcpid = lni->dcp_idx;
+ ret = qman_ceetm_query_mapping_shaper_tcfc(&query_opts,
+ &query_result);
+ if (ret) {
+ pr_err("Fail to get current LNI shaper setting\n");
+ return -EINVAL;
+ }
+
+ config_opts.cid = CEETM_COMMAND_LNI_SHAPER | lni->idx;
+ config_opts.dcpid = lni->dcp_idx;
+ config_opts.shaper_config.ertcr =
+ (token_rate->whole << 13) | (token_rate->fraction);
+ config_opts.shaper_config.ertbl = token_limit;
+ config_opts.shaper_config.cpl = query_result.shaper_query.cpl;
+ config_opts.shaper_config.crtcr =
+ query_result.shaper_query.crtcr;
+ config_opts.shaper_config.crtbl =
+ query_result.shaper_query.crtbl;
+
+ return qman_ceetm_configure_mapping_shaper_tcfc(&config_opts);
+ } else {
+ return 0;
}
+}
+EXPORT_SYMBOL(qman_ceetm_lni_set_excess_rate);
- query_opts.cid = CEETM_COMMAND_LNI_SHAPER | lni->idx;
- query_opts.dcpid = lni->dcp_idx;
- ret = qman_ceetm_query_mapping_shaper_tcfc(&query_opts, &query_result);
+int qman_ceetm_lni_set_excess_rate_bps(struct qm_ceetm_lni *lni,
+ u64 bps,
+ u16 token_limit)
+{
+ struct qm_ceetm_rate token_rate;
+ int ret;
+
+ ret = qman_ceetm_bps2tokenrate(bps, &token_rate, 0);
if (ret) {
- pr_err("Fail to get current LNI shaper setting\n");
+ pr_err("Can not convert bps to token rate\n");
return -EINVAL;
}
- lni->er_token_rate.whole = token_rate->whole;
- lni->er_token_rate.fraction = token_rate->fraction;
- lni->er_token_bucket_limit = token_limit;
- config_opts.cid = CEETM_COMMAND_LNI_SHAPER | lni->idx;
- config_opts.dcpid = lni->dcp_idx;
- config_opts.shaper_config.ertcr =
- (token_rate->whole << 13) | (token_rate->fraction);
- config_opts.shaper_config.ertbl = token_limit;
- config_opts.shaper_config.cpl = query_result.shaper_query.cpl;
- config_opts.shaper_config.crtcr = query_result.shaper_query.crtcr;
- config_opts.shaper_config.crtbl = query_result.shaper_query.crtbl;
-
- return qman_ceetm_configure_mapping_shaper_tcfc(&config_opts);
+ return qman_ceetm_lni_set_excess_rate(lni, &token_rate, token_limit);
}
-EXPORT_SYMBOL(qman_ceetm_lni_set_excess_rate);
+EXPORT_SYMBOL(qman_ceetm_lni_set_excess_rate_bps);
int qman_ceetm_lni_get_excess_rate(struct qm_ceetm_lni *lni,
struct qm_ceetm_rate *token_rate,
@@ -3672,6 +3725,22 @@ int qman_ceetm_lni_get_excess_rate(struct qm_ceetm_lni *lni,
}
EXPORT_SYMBOL(qman_ceetm_lni_get_excess_rate);
+int qman_ceetm_lni_get_excess_rate_bps(struct qm_ceetm_lni *lni,
+ u64 *bps, u16 *token_limit)
+{
+ struct qm_ceetm_rate token_rate;
+ int ret;
+
+ ret = qman_ceetm_lni_get_excess_rate(lni, &token_rate, token_limit);
+ if (ret) {
+ pr_err("The LNI ER rate or limit is not available\n");
+ return -EINVAL;
+ }
+
+ return qman_ceetm_tokenrate2bps(&token_rate, bps, 0);
+}
+EXPORT_SYMBOL(qman_ceetm_lni_get_excess_rate_bps);
+
#define QMAN_CEETM_LNITCFCC_CQ_LEVEL_SHIFT(n) ((15 - n) * 4)
#define QMAN_CEETM_LNITCFCC_ENABLE 0x8
int qman_ceetm_lni_set_tcfcc(struct qm_ceetm_lni *lni,
@@ -3893,11 +3962,6 @@ int qman_ceetm_channel_disable_shaper(struct qm_ceetm_channel *channel)
struct qm_mcc_ceetm_mapping_shaper_tcfc_config config_opts;
u8 map;
- if (channel->shaper_enable == 0) {
- pr_err("This channel shaper has been disabled\n");
- return -EINVAL;
- }
-
query_opts.cid = CEETM_COMMAND_CHANNEL_MAPPING | channel->idx;
query_opts.dcpid = channel->dcp_idx;
@@ -3916,6 +3980,25 @@ int qman_ceetm_channel_disable_shaper(struct qm_ceetm_channel *channel)
}
EXPORT_SYMBOL(qman_ceetm_channel_disable_shaper);
+int qman_ceetm_channel_is_shaper_enabled(struct qm_ceetm_channel *channel)
+{
+ struct qm_mcc_ceetm_mapping_shaper_tcfc_query query_opts;
+ struct qm_mcr_ceetm_mapping_shaper_tcfc_query query_result;
+ u8 map;
+
+ query_opts.cid = CEETM_COMMAND_CHANNEL_MAPPING | channel->idx;
+ query_opts.dcpid = channel->dcp_idx;
+
+ if (qman_ceetm_query_mapping_shaper_tcfc(&query_opts, &query_result)) {
+ pr_err("Can't query channel mapping\n");
+ return -EINVAL;
+ }
+
+ map = query_result.channel_mapping_query.map;
+ return (map & QMAN_CEETM_ENABLE_CHANNEL_SHAPER) ? 1 : 0;
+}
+EXPORT_SYMBOL(qman_ceetm_channel_is_shaper_enabled);
+
int qman_ceetm_channel_set_commit_rate(struct qm_ceetm_channel *channel,
const struct qm_ceetm_rate *token_rate,
u16 token_limit)
@@ -3925,11 +4008,6 @@ int qman_ceetm_channel_set_commit_rate(struct qm_ceetm_channel *channel,
struct qm_mcr_ceetm_mapping_shaper_tcfc_query query_result;
int ret;
- if (!channel->shaper_enable) {
- pr_err("This channel is unshaped\n");
- return -EINVAL;
- }
-
query_opts.cid = CEETM_COMMAND_CHANNEL_SHAPER | channel->idx;
query_opts.dcpid = channel->dcp_idx;
@@ -3954,6 +4032,22 @@ int qman_ceetm_channel_set_commit_rate(struct qm_ceetm_channel *channel,
}
EXPORT_SYMBOL(qman_ceetm_channel_set_commit_rate);
+int qman_ceetm_channel_set_commit_rate_bps(struct qm_ceetm_channel *channel,
+ u64 bps, u16 token_limit)
+{
+ struct qm_ceetm_rate token_rate;
+ int ret;
+
+ ret = qman_ceetm_bps2tokenrate(bps, &token_rate, 0);
+ if (ret) {
+ pr_err("Can not convert bps to token rate\n");
+ return -EINVAL;
+ }
+ return qman_ceetm_channel_set_commit_rate(channel, &token_rate,
+ token_limit);
+}
+EXPORT_SYMBOL(qman_ceetm_channel_set_commit_rate_bps);
+
int qman_ceetm_channel_get_commit_rate(struct qm_ceetm_channel *channel,
struct qm_ceetm_rate *token_rate,
u16 *token_limit)
@@ -3978,6 +4072,23 @@ int qman_ceetm_channel_get_commit_rate(struct qm_ceetm_channel *channel,
}
EXPORT_SYMBOL(qman_ceetm_channel_get_commit_rate);
+int qman_ceetm_channel_get_commit_rate_bps(struct qm_ceetm_channel *channel,
+ u64 *bps, u16 *token_limit)
+{
+ struct qm_ceetm_rate token_rate;
+ int ret;
+
+ ret = qman_ceetm_channel_get_commit_rate(channel, &token_rate,
+ token_limit);
+ if (ret) {
+ pr_err("The channel CR rate or limit is not available\n");
+ return -EINVAL;
+ }
+
+ return qman_ceetm_tokenrate2bps(&token_rate, bps, 0);
+}
+EXPORT_SYMBOL(qman_ceetm_channel_get_commit_rate_bps);
+
int qman_ceetm_channel_set_excess_rate(struct qm_ceetm_channel *channel,
const struct qm_ceetm_rate *token_rate,
u16 token_limit)
@@ -3987,11 +4098,6 @@ int qman_ceetm_channel_set_excess_rate(struct qm_ceetm_channel *channel,
struct qm_mcr_ceetm_mapping_shaper_tcfc_query query_result;
int ret;
- if (!channel->shaper_enable) {
- pr_err("This channel is unshaped\n");
- return -EINVAL;
- }
-
query_opts.cid = CEETM_COMMAND_CHANNEL_SHAPER | channel->idx;
query_opts.dcpid = channel->dcp_idx;
ret = qman_ceetm_query_mapping_shaper_tcfc(&query_opts, &query_result);
@@ -4015,6 +4121,22 @@ int qman_ceetm_channel_set_excess_rate(struct qm_ceetm_channel *channel,
}
EXPORT_SYMBOL(qman_ceetm_channel_set_excess_rate);
+int qman_ceetm_channel_set_excess_rate_bps(struct qm_ceetm_channel *channel,
+ u64 bps, u16 token_limit)
+{
+ struct qm_ceetm_rate token_rate;
+ int ret;
+
+ ret = qman_ceetm_bps2tokenrate(bps, &token_rate, 0);
+ if (ret) {
+ pr_err("Can not convert bps to token rate\n");
+ return -EINVAL;
+ }
+ return qman_ceetm_channel_set_excess_rate(channel, &token_rate,
+ token_limit);
+}
+EXPORT_SYMBOL(qman_ceetm_channel_set_excess_rate_bps);
+
int qman_ceetm_channel_get_excess_rate(struct qm_ceetm_channel *channel,
struct qm_ceetm_rate *token_rate,
u16 *token_limit)
@@ -4038,6 +4160,23 @@ int qman_ceetm_channel_get_excess_rate(struct qm_ceetm_channel *channel,
}
EXPORT_SYMBOL(qman_ceetm_channel_get_excess_rate);
+int qman_ceetm_channel_get_excess_rate_bps(struct qm_ceetm_channel *channel,
+ u64 *bps, u16 *token_limit)
+{
+ struct qm_ceetm_rate token_rate;
+ int ret;
+
+ ret = qman_ceetm_channel_get_excess_rate(channel, &token_rate,
+ token_limit);
+ if (ret) {
+ pr_err("The channel ER rate or limit is not available\n");
+ return -EINVAL;
+ }
+
+ return qman_ceetm_tokenrate2bps(&token_rate, bps, 0);
+}
+EXPORT_SYMBOL(qman_ceetm_channel_get_excess_rate_bps);
+
int qman_ceetm_channel_set_weight(struct qm_ceetm_channel *channel,
u16 token_limit)
{
@@ -4416,6 +4555,7 @@ int qman_ceetm_cq_release(struct qm_ceetm_cq *cq)
return -EBUSY;
}
list_del(&cq->node);
+ qman_ceetm_drain_cq(cq);
kfree(cq);
return 0;
}
@@ -4549,6 +4689,38 @@ int qman_ceetm_ratio2wbfs(u32 numerator,
}
EXPORT_SYMBOL(qman_ceetm_ratio2wbfs);
+int qman_ceetm_set_queue_weight_in_ratio(struct qm_ceetm_cq *cq, u32 ratio)
+{
+ struct qm_ceetm_weight_code weight_code;
+
+ if (qman_ceetm_ratio2wbfs(ratio, 100, &weight_code, 0)) {
+ pr_err("Cannot get wbfs code for cq %x\n", cq->idx);
+ return -EINVAL;
+ }
+ return qman_ceetm_set_queue_weight(cq, &weight_code);
+}
+EXPORT_SYMBOL(qman_ceetm_set_queue_weight_in_ratio);
+
+int qman_ceetm_get_queue_weight_in_ratio(struct qm_ceetm_cq *cq, u32 *ratio)
+{
+ struct qm_ceetm_weight_code weight_code;
+ u32 n, d;
+
+ if (qman_ceetm_get_queue_weight(cq, &weight_code)) {
+ pr_err("Cannot query the weight code for cq%x\n", cq->idx);
+ return -EINVAL;
+ }
+
+ if (qman_ceetm_wbfs2ratio(&weight_code, &n, &d)) {
+ pr_err("Cannot get the ratio with wbfs code\n");
+ return -EINVAL;
+ }
+
+ *ratio = (n * (u32)100) / d;
+ return 0;
+}
+EXPORT_SYMBOL(qman_ceetm_get_queue_weight_in_ratio);
+
int qman_ceetm_cq_get_dequeue_statistics(struct qm_ceetm_cq *cq, u32 flags,
u64 *frame_count, u64 *byte_count)
{
@@ -4576,6 +4748,23 @@ int qman_ceetm_cq_get_dequeue_statistics(struct qm_ceetm_cq *cq, u32 flags,
}
EXPORT_SYMBOL(qman_ceetm_cq_get_dequeue_statistics);
+int qman_ceetm_drain_cq(struct qm_ceetm_cq *cq)
+{
+ struct qm_mcr_ceetm_cq_peek_pop_xsfdrread ppxr;
+ int ret;
+
+ do {
+ ret = qman_ceetm_cq_peek_pop_xsfdrread(cq, 1, 0, &ppxr);
+ if (ret) {
+ pr_err("Failed to pop frame from CQ\n");
+ return -EINVAL;
+ }
+ } while (!(ppxr.stat & 0x2));
+
+ return 0;
+}
+EXPORT_SYMBOL(qman_ceetm_drain_cq);
+
#define CEETM_LFQMT_LFQID_MSB 0xF00000
#define CEETM_LFQMT_LFQID_LSB 0x000FFF
int qman_ceetm_lfq_claim(struct qm_ceetm_lfq **lfq,
@@ -4963,7 +5152,7 @@ int qman_ceetm_cscn_dcp_get(struct qm_ceetm_ccg *ccg,
*vcgid = query_result.cm_query.cdv;
*cscn_enabled = (query_result.cm_query.cscn_targ_dcp >>
- (7 - dcp_idx)) & 0x1;
+ dcp_idx) & 0x1;
return 0;
}
EXPORT_SYMBOL(qman_ceetm_cscn_dcp_get);
diff --git a/drivers/usb/gadget/fsl_udc_core.c b/drivers/usb/gadget/fsl_udc_core.c
index 12dc799..638a345 100644
--- a/drivers/usb/gadget/fsl_udc_core.c
+++ b/drivers/usb/gadget/fsl_udc_core.c
@@ -1594,14 +1594,13 @@ static int process_ep_req(struct fsl_udc *udc, int pipe,
struct fsl_req *curr_req)
{
struct ep_td_struct *curr_td;
- int td_complete, actual, remaining_length, j, tmp;
+ int actual, remaining_length, j, tmp;
int status = 0;
int errors = 0;
struct ep_queue_head *curr_qh = &udc->ep_qh[pipe];
int direction = pipe % 2;
curr_td = curr_req->head;
- td_complete = 0;
actual = curr_req->req.length;
for (j = 0; j < curr_req->dtd_count; j++) {
@@ -1646,11 +1645,9 @@ static int process_ep_req(struct fsl_udc *udc, int pipe,
status = -EPROTO;
break;
} else {
- td_complete++;
break;
}
} else {
- td_complete++;
VDBG("dTD transmitted successful");
}
@@ -1693,7 +1690,7 @@ static void dtd_complete_irq(struct fsl_udc *udc)
curr_ep = get_ep_by_pipe(udc, i);
/* If the ep is configured */
- if (curr_ep->name == NULL) {
+ if (strncmp(curr_ep->name, "ep", 2)) {
WARNING("Invalid EP?");
continue;
}
@@ -2404,10 +2401,12 @@ static int __init fsl_udc_probe(struct platform_device *pdev)
usb_sys_regs = (void *)dr_regs + USB_DR_SYS_OFFSET;
#endif
+#ifdef CONFIG_ARCH_MXC
/* Initialize USB clocks */
ret = fsl_udc_clk_init(pdev);
if (ret < 0)
goto err_iounmap_noclk;
+#endif
/* Read Device Controller Capability Parameters register */
dccparams = fsl_readl(&dr_regs->dccparams);
@@ -2447,9 +2446,11 @@ static int __init fsl_udc_probe(struct platform_device *pdev)
dr_controller_setup(udc_controller);
}
+#ifdef CONFIG_ARCH_MXC
ret = fsl_udc_clk_finalize(pdev);
if (ret)
goto err_free_irq;
+#endif
/* Setup gadget structure */
udc_controller->gadget.ops = &fsl_gadget_ops;
@@ -2513,7 +2514,9 @@ err_free_irq:
err_iounmap:
if (pdata->exit)
pdata->exit(pdev);
+#ifdef CONFIG_ARCH_MXC
fsl_udc_clk_release();
+#endif
err_iounmap_noclk:
iounmap(dr_regs);
err_release_mem_region:
@@ -2541,8 +2544,9 @@ static int __exit fsl_udc_remove(struct platform_device *pdev)
udc_controller->done = &done;
usb_del_gadget_udc(&udc_controller->gadget);
+#ifdef CONFIG_ARCH_MXC
fsl_udc_clk_release();
-
+#endif
/* DR has been stopped in usb_gadget_unregister_driver() */
remove_proc_file();
@@ -2554,7 +2558,7 @@ static int __exit fsl_udc_remove(struct platform_device *pdev)
dma_pool_destroy(udc_controller->td_pool);
free_irq(udc_controller->irq, udc_controller);
iounmap(dr_regs);
- if (pdata->operating_mode == FSL_USB2_DR_DEVICE)
+ if (res && (pdata->operating_mode == FSL_USB2_DR_DEVICE))
release_mem_region(res->start, resource_size(res));
/* free udc --wait for the release() finished */
diff --git a/drivers/usb/gadget/fsl_usb2_udc.h b/drivers/usb/gadget/fsl_usb2_udc.h
index e4c4c01..0f120be 100644
--- a/drivers/usb/gadget/fsl_usb2_udc.h
+++ b/drivers/usb/gadget/fsl_usb2_udc.h
@@ -598,18 +598,6 @@ struct platform_device;
int fsl_udc_clk_init(struct platform_device *pdev);
int fsl_udc_clk_finalize(struct platform_device *pdev);
void fsl_udc_clk_release(void);
-#else
-static inline int fsl_udc_clk_init(struct platform_device *pdev)
-{
- return 0;
-}
-static inline int fsl_udc_clk_finalize(struct platform_device *pdev)
-{
- return 0;
-}
-static inline void fsl_udc_clk_release(void)
-{
-}
#endif
#endif
diff --git a/include/linux/fsl_qman.h b/include/linux/fsl_qman.h
index 95fdd38..2909cc5 100644
--- a/include/linux/fsl_qman.h
+++ b/include/linux/fsl_qman.h
@@ -1245,8 +1245,8 @@ struct qm_mcr_ceetm_ccgr_query {
struct qm_cgr_wr_parm wr_parm_g;
struct qm_cgr_wr_parm wr_parm_y;
struct qm_cgr_wr_parm wr_parm_r;
- u8 cscn_targ_dcp;
- u16 dcp_lsn;
+ u16 cscn_targ_dcp;
+ u8 dcp_lsn;
u64 i_cnt:40;
u8 __reserved4[3];
u64 a_cnt:40;
@@ -2702,6 +2702,12 @@ int qman_ceetm_lni_enable_shaper(struct qm_ceetm_lni *lni, int coupled,
int qman_ceetm_lni_disable_shaper(struct qm_ceetm_lni *lni);
/**
+ * qman_ceetm_lni_is_shaper_enabled - Check LNI shaper status
+ * @lni: the give LNI
+ */
+int qman_ceetm_lni_is_shaper_enabled(struct qm_ceetm_lni *lni);
+
+/**
* qman_ceetm_lni_set_commit_rate
* qman_ceetm_lni_get_commit_rate
* qman_ceetm_lni_set_excess_rate
@@ -2730,6 +2736,33 @@ int qman_ceetm_lni_set_excess_rate(struct qm_ceetm_lni *lni,
int qman_ceetm_lni_get_excess_rate(struct qm_ceetm_lni *lni,
struct qm_ceetm_rate *token_rate,
u16 *token_limit);
+/**
+ * qman_ceetm_lni_set_commit_rate_bps
+ * qman_ceetm_lni_get_commit_rate_bps
+ * qman_ceetm_lni_set_excess_rate_bps
+ * qman_ceetm_lni_get_excess_rate_bps - Set/get the shaper CR/ER rate
+ * and token limit for the given LNI.
+ * @lni: the given LNI.
+ * @bps: the desired shaping rate in bps for "set" fuction, or the shaping rate
+ * of the LNI queried by "get" function.
+ * @token_limit: the desired token bucket limit for "set" function, or the token
+ * limit of the given LNI queried by "get" function.
+ *
+ * Returns zero for success. The "set" function returns -EINVAL if the given
+ * LNI is unshapped or -EIO if the configure shaper command returns error.
+ * The "get" function returns -EINVAL if the token rate or the token limit is
+ * not set or the query command returns error.
+ */
+int qman_ceetm_lni_set_commit_rate_bps(struct qm_ceetm_lni *lni,
+ u64 bps,
+ u16 token_limit);
+int qman_ceetm_lni_get_commit_rate_bps(struct qm_ceetm_lni *lni,
+ u64 *bps, u16 *token_limit);
+int qman_ceetm_lni_set_excess_rate_bps(struct qm_ceetm_lni *lni,
+ u64 bps,
+ u16 token_limit);
+int qman_ceetm_lni_get_excess_rate_bps(struct qm_ceetm_lni *lni,
+ u64 *bps, u16 *token_limit);
/**
* qman_ceetm_lni_set_tcfcc
@@ -2808,6 +2841,12 @@ int qman_ceetm_channel_enable_shaper(struct qm_ceetm_channel *channel,
int qman_ceetm_channel_disable_shaper(struct qm_ceetm_channel *channel);
/**
+ * qman_ceetm_channel_is_shaper_enabled - Check channel shaper status.
+ * @channel: the give channel.
+ */
+int qman_ceetm_channel_is_shaper_enabled(struct qm_ceetm_channel *channel);
+
+/**
* qman_ceetm_channel_set_commit_rate
* qman_ceetm_channel_get_commit_rate
* qman_ceetm_channel_set_excess_rate
@@ -2835,6 +2874,31 @@ int qman_ceetm_channel_set_excess_rate(struct qm_ceetm_channel *channel,
int qman_ceetm_channel_get_excess_rate(struct qm_ceetm_channel *channel,
struct qm_ceetm_rate *token_rate,
u16 *token_limit);
+/**
+ * qman_ceetm_channel_set_commit_rate_bps
+ * qman_ceetm_channel_get_commit_rate_bps
+ * qman_ceetm_channel_set_excess_rate_bps
+ * qman_ceetm_channel_get_excess_rate_bps - Set/get channel CR/ER shaper
+ * parameters.
+ * @channel: the given channel.
+ * @token_rate: the desired shaper rate in bps for "set" function, or the
+ * shaper rate in bps for "get" function.
+ * @token_limit: the desired token limit for "set" function, or the queried
+ * token limit for "get" function.
+ *
+ * Return zero for success. The "set" function returns -EINVAL if the channel
+ * is unshaped, or -EIO if the configure shapper command returns error. The
+ * "get" function returns -EINVAL if token rate of token limit is not set, or
+ * the query shaper command returns error.
+ */
+int qman_ceetm_channel_set_commit_rate_bps(struct qm_ceetm_channel *channel,
+ u64 bps, u16 token_limit);
+int qman_ceetm_channel_get_commit_rate_bps(struct qm_ceetm_channel *channel,
+ u64 *bps, u16 *token_limit);
+int qman_ceetm_channel_set_excess_rate_bps(struct qm_ceetm_channel *channel,
+ u64 bps, u16 token_limit);
+int qman_ceetm_channel_get_excess_rate_bps(struct qm_ceetm_channel *channel,
+ u64 *bps, u16 *token_limit);
/**
* qman_ceetm_channel_set_weight
@@ -3009,6 +3073,21 @@ int qman_ceetm_set_queue_weight(struct qm_ceetm_cq *cq,
int qman_ceetm_get_queue_weight(struct qm_ceetm_cq *cq,
struct qm_ceetm_weight_code *weight_code);
+/**
+ * qman_ceetm_set_queue_weight_in_ratio
+ * qman_ceetm_get_queue_weight_in_ratio - Configure/query the weight of a
+ * grouped class queue.
+ * @cq: the given class queue.
+ * @ratio: the weight in ratio. It should be the real ratio number multiplied
+ * by 100 to get rid of fraction.
+ *
+ * Returns zero for success, or -EIO if the configure weight command returns
+ * error for "set" function, or -EINVAL if the query command returns
+ * error for "get" function.
+ */
+int qman_ceetm_set_queue_weight_in_ratio(struct qm_ceetm_cq *cq, u32 ratio);
+int qman_ceetm_get_queue_weight_in_ratio(struct qm_ceetm_cq *cq, u32 *ratio);
+
/* Weights are encoded using a pseudo-exponential scheme. The weight codes 0,
* 32, 64, [...] correspond to weights of 1, 2, 4, [...]. The weights
* corresponding to intermediate weight codes are calculated using linear
@@ -3077,6 +3156,13 @@ int qman_ceetm_ratio2wbfs(u32 numerator,
int qman_ceetm_cq_get_dequeue_statistics(struct qm_ceetm_cq *cq, u32 flags,
u64 *frame_count, u64 *byte_count);
+/**
+ * qman_ceetm_drain_cq - drain the CQ till it is empty.
+ * @cq: the give CQ object.
+ * Return 0 for success or -EINVAL for unsuccessful command to empty CQ.
+ */
+int qman_ceetm_drain_cq(struct qm_ceetm_cq *cq);
+
/* ---------------------- */
/* CEETM :: logical FQIDs */
/* ---------------------- */
diff --git a/include/linux/mtd/spi-nor.h b/include/linux/mtd/spi-nor.h
index bde191c..c3d6651 100644
--- a/include/linux/mtd/spi-nor.h
+++ b/include/linux/mtd/spi-nor.h
@@ -38,6 +38,8 @@
#define SPINOR_OP_RDID 0x9f /* Read JEDEC ID */
#define SPINOR_OP_RDCR 0x35 /* Read configuration register */
#define SPINOR_OP_RDFSR 0x70 /* Read flag status register */
+#define SPINOR_OP_RESET_EN 0x66 /* Reset enable */
+#define SPINOR_OP_RESET_MEM 0x99 /* Reset memory */
/* 4-byte address opcodes - used on Spansion and some Macronix flashes. */
#define SPINOR_OP_READ4 0x13 /* Read data bytes (low frequency) */
diff --git a/include/uapi/linux/fmd/Peripherals/fm_ioctls.h b/include/uapi/linux/fmd/Peripherals/fm_ioctls.h
index 54e65b7..e0c2dd3 100644
--- a/include/uapi/linux/fmd/Peripherals/fm_ioctls.h
+++ b/include/uapi/linux/fmd/Peripherals/fm_ioctls.h
@@ -328,7 +328,7 @@ typedef struct ioc_fm_vsp_prs_result_params_t {
#endif
typedef struct fm_ctrl_mon_t {
- uint8_t percent_cnt[1];
+ uint8_t percent_cnt[2];
} fm_ctrl_mon_t;
typedef struct ioc_fm_ctrl_mon_counters_params_t {