summaryrefslogtreecommitdiff
path: root/drivers/char
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-12-20 23:44:44 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2016-12-20 23:44:43 -0800
commitf21063458aef9717ef2e6cf130104f9c0eec1f71 (patch)
tree7dbbc5004f8928cc2de381896f07aa17737d48e2 /drivers/char
parent9660a520b9edd6d142e40e3b266f0ef8ff7b20a0 (diff)
parent8961f17e6b7f77238443d3cbe581960d59718fb4 (diff)
Merge "diag: Add support for CDSP"
Diffstat (limited to 'drivers/char')
-rw-r--r--drivers/char/diag/diagchar.h8
-rw-r--r--drivers/char/diag/diagchar_core.c4
-rw-r--r--drivers/char/diag/diagfwd_glink.c35
-rw-r--r--drivers/char/diag/diagfwd_peripheral.h6
-rw-r--r--drivers/char/diag/diagfwd_smd.c25
-rw-r--r--drivers/char/diag/diagfwd_socket.c31
6 files changed, 104 insertions, 5 deletions
diff --git a/drivers/char/diag/diagchar.h b/drivers/char/diag/diagchar.h
index 35cbe3b6b596..67db49badf21 100644
--- a/drivers/char/diag/diagchar.h
+++ b/drivers/char/diag/diagchar.h
@@ -65,11 +65,13 @@
#define DIAG_CON_WCNSS (0x0008) /* Bit mask for WCNSS */
#define DIAG_CON_SENSORS (0x0010) /* Bit mask for Sensors */
#define DIAG_CON_WDSP (0x0020) /* Bit mask for WDSP */
+#define DIAG_CON_CDSP (0x0040)
#define DIAG_CON_NONE (0x0000) /* Bit mask for No SS*/
#define DIAG_CON_ALL (DIAG_CON_APSS | DIAG_CON_MPSS \
| DIAG_CON_LPASS | DIAG_CON_WCNSS \
- | DIAG_CON_SENSORS | DIAG_CON_WDSP)
+ | DIAG_CON_SENSORS | DIAG_CON_WDSP \
+ | DIAG_CON_CDSP)
#define DIAG_STM_MODEM 0x01
#define DIAG_STM_LPASS 0x02
@@ -77,6 +79,7 @@
#define DIAG_STM_APPS 0x08
#define DIAG_STM_SENSORS 0x10
#define DIAG_STM_WDSP 0x20
+#define DIAG_STM_CDSP 0x40
#define INVALID_PID -1
#define DIAG_CMD_FOUND 1
@@ -202,7 +205,8 @@
#define PERIPHERAL_WCNSS 2
#define PERIPHERAL_SENSORS 3
#define PERIPHERAL_WDSP 4
-#define NUM_PERIPHERALS 5
+#define PERIPHERAL_CDSP 5
+#define NUM_PERIPHERALS 6
#define APPS_DATA (NUM_PERIPHERALS)
/* Number of sessions possible in Memory Device Mode. +1 for Apps data */
diff --git a/drivers/char/diag/diagchar_core.c b/drivers/char/diag/diagchar_core.c
index 9d0955289796..85be81e88696 100644
--- a/drivers/char/diag/diagchar_core.c
+++ b/drivers/char/diag/diagchar_core.c
@@ -385,6 +385,8 @@ static uint32_t diag_translate_kernel_to_user_mask(uint32_t peripheral_mask)
ret |= DIAG_CON_SENSORS;
if (peripheral_mask & MD_PERIPHERAL_MASK(PERIPHERAL_WDSP))
ret |= DIAG_CON_WDSP;
+ if (peripheral_mask & MD_PERIPHERAL_MASK(PERIPHERAL_CDSP))
+ ret |= DIAG_CON_CDSP;
return ret;
}
@@ -1525,6 +1527,8 @@ static uint32_t diag_translate_mask(uint32_t peripheral_mask)
ret |= (1 << PERIPHERAL_SENSORS);
if (peripheral_mask & DIAG_CON_WDSP)
ret |= (1 << PERIPHERAL_WDSP);
+ if (peripheral_mask & DIAG_CON_CDSP)
+ ret |= (1 << PERIPHERAL_CDSP);
return ret;
}
diff --git a/drivers/char/diag/diagfwd_glink.c b/drivers/char/diag/diagfwd_glink.c
index ce523ac35a51..e761e6ec4e39 100644
--- a/drivers/char/diag/diagfwd_glink.c
+++ b/drivers/char/diag/diagfwd_glink.c
@@ -64,6 +64,13 @@ struct diag_glink_info glink_data[NUM_PERIPHERALS] = {
.edge = "wdsp",
.name = "DIAG_DATA",
.hdl = NULL
+ },
+ {
+ .peripheral = PERIPHERAL_CDSP,
+ .type = TYPE_DATA,
+ .edge = "cdsp",
+ .name = "DIAG_DATA",
+ .hdl = NULL
}
};
@@ -102,6 +109,13 @@ struct diag_glink_info glink_cntl[NUM_PERIPHERALS] = {
.edge = "wdsp",
.name = "DIAG_CTRL",
.hdl = NULL
+ },
+ {
+ .peripheral = PERIPHERAL_CDSP,
+ .type = TYPE_CNTL,
+ .edge = "cdsp",
+ .name = "DIAG_CTRL",
+ .hdl = NULL
}
};
@@ -140,6 +154,13 @@ struct diag_glink_info glink_dci[NUM_PERIPHERALS] = {
.edge = "wdsp",
.name = "DIAG_DCI_DATA",
.hdl = NULL
+ },
+ {
+ .peripheral = PERIPHERAL_CDSP,
+ .type = TYPE_DCI,
+ .edge = "cdsp",
+ .name = "DIAG_DCI_DATA",
+ .hdl = NULL
}
};
@@ -178,6 +199,13 @@ struct diag_glink_info glink_cmd[NUM_PERIPHERALS] = {
.edge = "wdsp",
.name = "DIAG_CMD",
.hdl = NULL
+ },
+ {
+ .peripheral = PERIPHERAL_CDSP,
+ .type = TYPE_CMD,
+ .edge = "cdsp",
+ .name = "DIAG_CMD",
+ .hdl = NULL
}
};
@@ -216,6 +244,13 @@ struct diag_glink_info glink_dci_cmd[NUM_PERIPHERALS] = {
.edge = "wdsp",
.name = "DIAG_DCI_CMD",
.hdl = NULL
+ },
+ {
+ .peripheral = PERIPHERAL_CDSP,
+ .type = TYPE_DCI_CMD,
+ .edge = "cdsp",
+ .name = "DIAG_DCI_CMD",
+ .hdl = NULL
}
};
diff --git a/drivers/char/diag/diagfwd_peripheral.h b/drivers/char/diag/diagfwd_peripheral.h
index cbbab86a9425..b5f360ac5158 100644
--- a/drivers/char/diag/diagfwd_peripheral.h
+++ b/drivers/char/diag/diagfwd_peripheral.h
@@ -28,14 +28,16 @@
((x == PERIPHERAL_LPASS) ? DIAG_CON_LPASS : \
((x == PERIPHERAL_WCNSS) ? DIAG_CON_WCNSS : \
((x == PERIPHERAL_SENSORS) ? DIAG_CON_SENSORS : \
- ((x == PERIPHERAL_WDSP) ? DIAG_CON_WDSP : 0))))) \
+ ((x == PERIPHERAL_WDSP) ? DIAG_CON_WDSP : \
+ ((x == PERIPHERAL_CDSP) ? DIAG_CON_CDSP : 0)))))) \
#define PERIPHERAL_STRING(x) \
((x == PERIPHERAL_MODEM) ? "MODEM" : \
((x == PERIPHERAL_LPASS) ? "LPASS" : \
((x == PERIPHERAL_WCNSS) ? "WCNSS" : \
((x == PERIPHERAL_SENSORS) ? "SENSORS" : \
- ((x == PERIPHERAL_WDSP) ? "WDSP" : "UNKNOWN"))))) \
+ ((x == PERIPHERAL_WDSP) ? "WDSP" : \
+ ((x == PERIPHERAL_CDSP) ? "CDSP" : "UNKNOWN")))))) \
struct diagfwd_buf_t {
unsigned char *data;
diff --git a/drivers/char/diag/diagfwd_smd.c b/drivers/char/diag/diagfwd_smd.c
index f0698f0814d6..51ab58b99fdd 100644
--- a/drivers/char/diag/diagfwd_smd.c
+++ b/drivers/char/diag/diagfwd_smd.c
@@ -54,6 +54,11 @@ struct diag_smd_info smd_data[NUM_PERIPHERALS] = {
.peripheral = PERIPHERAL_WDSP,
.type = TYPE_DATA,
.name = "DIAG_DATA"
+ },
+ {
+ .peripheral = PERIPHERAL_CDSP,
+ .type = TYPE_DATA,
+ .name = "CDSP_DATA"
}
};
@@ -82,6 +87,11 @@ struct diag_smd_info smd_cntl[NUM_PERIPHERALS] = {
.peripheral = PERIPHERAL_WDSP,
.type = TYPE_CNTL,
.name = "DIAG_CTRL"
+ },
+ {
+ .peripheral = PERIPHERAL_CDSP,
+ .type = TYPE_CNTL,
+ .name = "CDSP_CNTL"
}
};
@@ -110,6 +120,11 @@ struct diag_smd_info smd_dci[NUM_PERIPHERALS] = {
.peripheral = PERIPHERAL_WDSP,
.type = TYPE_DCI,
.name = "DIAG_DCI_DATA"
+ },
+ {
+ .peripheral = PERIPHERAL_CDSP,
+ .type = TYPE_DCI,
+ .name = "CDSP_DCI"
}
};
@@ -138,6 +153,11 @@ struct diag_smd_info smd_cmd[NUM_PERIPHERALS] = {
.peripheral = PERIPHERAL_WDSP,
.type = TYPE_CMD,
.name = "DIAG_CMD"
+ },
+ {
+ .peripheral = PERIPHERAL_CDSP,
+ .type = TYPE_CMD,
+ .name = "CDSP_CMD"
}
};
@@ -166,6 +186,11 @@ struct diag_smd_info smd_dci_cmd[NUM_PERIPHERALS] = {
.peripheral = PERIPHERAL_WDSP,
.type = TYPE_DCI_CMD,
.name = "DIAG_DCI_CMD"
+ },
+ {
+ .peripheral = PERIPHERAL_CDSP,
+ .type = TYPE_DCI_CMD,
+ .name = "CDSP_DCI_CMD"
}
};
diff --git a/drivers/char/diag/diagfwd_socket.c b/drivers/char/diag/diagfwd_socket.c
index 2f9ec51a17ba..bedb56e745dc 100644
--- a/drivers/char/diag/diagfwd_socket.c
+++ b/drivers/char/diag/diagfwd_socket.c
@@ -41,6 +41,7 @@
#define WCNSS_INST_BASE 128
#define SENSORS_INST_BASE 192
#define WDSP_INST_BASE 256
+#define CDSP_INST_BASE 320
#define INST_ID_CNTL 0
#define INST_ID_CMD 1
@@ -75,6 +76,11 @@ struct diag_socket_info socket_data[NUM_PERIPHERALS] = {
.peripheral = PERIPHERAL_WDSP,
.type = TYPE_DATA,
.name = "DIAG_DATA"
+ },
+ {
+ .peripheral = PERIPHERAL_CDSP,
+ .type = TYPE_DATA,
+ .name = "CDSP_DATA"
}
};
@@ -103,6 +109,11 @@ struct diag_socket_info socket_cntl[NUM_PERIPHERALS] = {
.peripheral = PERIPHERAL_WDSP,
.type = TYPE_CNTL,
.name = "DIAG_CTRL"
+ },
+ {
+ .peripheral = PERIPHERAL_CDSP,
+ .type = TYPE_CNTL,
+ .name = "CDSP_CNTL"
}
};
@@ -131,6 +142,11 @@ struct diag_socket_info socket_dci[NUM_PERIPHERALS] = {
.peripheral = PERIPHERAL_WDSP,
.type = TYPE_DCI,
.name = "DIAG_DCI_DATA"
+ },
+ {
+ .peripheral = PERIPHERAL_CDSP,
+ .type = TYPE_DCI,
+ .name = "CDSP_DCI"
}
};
@@ -159,6 +175,11 @@ struct diag_socket_info socket_cmd[NUM_PERIPHERALS] = {
.peripheral = PERIPHERAL_WDSP,
.type = TYPE_CMD,
.name = "DIAG_CMD"
+ },
+ {
+ .peripheral = PERIPHERAL_CDSP,
+ .type = TYPE_CMD,
+ .name = "CDSP_CMD"
}
};
@@ -188,7 +209,12 @@ struct diag_socket_info socket_dci_cmd[NUM_PERIPHERALS] = {
.peripheral = PERIPHERAL_WDSP,
.type = TYPE_DCI_CMD,
.name = "DIAG_DCI_CMD"
- }
+ },
+ {
+ .peripheral = PERIPHERAL_CDSP,
+ .type = TYPE_DCI_CMD,
+ .name = "CDSP_DCI_CMD"
+ },
};
static void diag_state_open_socket(void *ctxt);
@@ -741,6 +767,9 @@ static void __diag_socket_init(struct diag_socket_info *info)
case PERIPHERAL_WDSP:
ins_base = WDSP_INST_BASE;
break;
+ case PERIPHERAL_CDSP:
+ ins_base = CDSP_INST_BASE;
+ break;
}
switch (info->type) {