radio:iris:Adding support for FM debug commands
This patch adds new debug commands for FM driver
Signed-off-by: Srinivasa Rao Uppala <uppalas@codeaurora.org>
diff --git a/include/media/radio-iris.h b/include/media/radio-iris.h
index 040a5ab..04e3240 100644
--- a/include/media/radio-iris.h
+++ b/include/media/radio-iris.h
@@ -39,6 +39,8 @@
/* HCI data types */
#define RADIO_HCI_COMMAND_PKT 0x11
#define RADIO_HCI_EVENT_PKT 0x14
+/*HCI reponce packets*/
+#define MAX_RIVA_PEEK_RSP_SIZE 251
/* HCI timeouts */
#define RADIO_HCI_TIMEOUT (10000) /* 10 seconds */
@@ -239,23 +241,27 @@
struct hci_fm_def_data_wr_req {
struct hci_fm_def_data_rd_req data_rd;
- __u8 data[256];
+ __u8 data[256];
} __packed;
-struct hci_fm_peek_req {
+struct hci_fm_riva_data {
+ __u8 subopcode;
__u32 start_addr;
__u8 length;
} __packed;
-struct hci_fm_poke_req {
- struct hci_fm_peek_req peek_req;
- __u8 data[256];
+struct hci_fm_riva_poke {
+ struct hci_fm_riva_data cmd_params;
+ __u8 data[MAX_RIVA_PEEK_RSP_SIZE];
} __packed;
struct hci_fm_ssbi_req {
__u16 start_addr;
__u8 data;
} __packed;
+struct hci_fm_ssbi_peek {
+ __u16 start_address;
+} __packed;
/*HCI events*/
#define HCI_EV_TUNE_STATUS 0x01
@@ -451,12 +457,25 @@
V4L2_CID_PRIVATE_IRIS_ANTENNA,
V4L2_CID_PRIVATE_IRIS_RDSD_BUF,
V4L2_CID_PRIVATE_IRIS_PSALL,
+
/*v4l2 Tx controls*/
V4L2_CID_PRIVATE_IRIS_TX_SETPSREPEATCOUNT,
V4L2_CID_PRIVATE_IRIS_STOP_RDS_TX_PS_NAME,
V4L2_CID_PRIVATE_IRIS_STOP_RDS_TX_RT,
V4L2_CID_PRIVATE_IRIS_IOVERC,
V4L2_CID_PRIVATE_IRIS_INTDET,
+
+ /*Diagnostic commands*/
+ V4L2_CID_PRIVATE_IRIS_SOFT_MUTE,
+ V4L2_CID_PRIVATE_IRIS_RIVA_ACCS_ADDR,
+ V4L2_CID_PRIVATE_IRIS_RIVA_ACCS_LEN,
+ V4L2_CID_PRIVATE_IRIS_RIVA_PEEK,
+ V4L2_CID_PRIVATE_IRIS_RIVA_POKE,
+ V4L2_CID_PRIVATE_IRIS_SSBI_ACCS_ADDR,
+ V4L2_CID_PRIVATE_IRIS_SSBI_PEEK,
+ V4L2_CID_PRIVATE_IRIS_SSBI_POKE,
+ V4L2_CID_PRIVATE_IRIS_HLSI,
+ VL2_CID_PRIVATE_IRIS_TX_TONE,
};
enum iris_evt_t {
@@ -497,6 +516,8 @@
IRIS_BUF_PS_RDS,
IRIS_BUF_RAW_RDS,
IRIS_BUF_AF_LIST,
+ IRIS_BUF_PEEK,
+ IRIS_BUF_SSBI_PEEK,
IRIS_BUF_MAX
};
@@ -568,15 +589,20 @@
#define CTRL_ON (1)
#define CTRL_OFF (0)
+/*Diagnostic commands*/
+
+#define RIVA_PEEK_OPCODE 0x0D
+#define RIVA_POKE_OPCODE 0x0C
+
+#define PEEK_DATA_OFSET 0x1
+#define RIVA_PEEK_PARAM 0x6
+#define RIVA_PEEK_LEN_OFSET 0x6
+#define SSBI_PEEK_LEN 0x01
int hci_def_data_read(struct hci_fm_def_data_rd_req *arg,
struct radio_hci_dev *hdev);
int hci_def_data_write(struct hci_fm_def_data_wr_req *arg,
struct radio_hci_dev *hdev);
int hci_fm_do_calibration(__u8 *arg, struct radio_hci_dev *hdev);
int hci_fm_do_calibration(__u8 *arg, struct radio_hci_dev *hdev);
-int hci_peek_data(struct hci_fm_peek_req *arg, struct radio_hci_dev *hdev);
-int hci_poke_data(struct hci_fm_poke_req *arg, struct radio_hci_dev *hdev);
-int hci_poke_data(struct hci_fm_poke_req *arg, struct radio_hci_dev *hdev);
-int hci_poke_data(struct hci_fm_poke_req *arg, struct radio_hci_dev *hdev);
#endif /* __RADIO_HCI_CORE_H */