Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 60cb1248 authored by Arun Kumar Khandavalli's avatar Arun Kumar Khandavalli
Browse files

qcacmn: add new api to get the bus reg dump

Add new wrapper to get the bus specific register information via
the bus driver.

Change-Id: I544b23c8f6654e9215fb4f03203d6754c766dada
CRs-Fixed: 2833251
parent 19d1a362
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
@@ -303,4 +303,33 @@ void qdf_register_recovery_reason_update(qdf_recovery_reason_update_callback
 */
void qdf_recovery_reason_update(enum qdf_hang_reason reason);

/**
 * qdf_bus_reg_dump() - callback for getting bus specific register dump
 * @dev: Bus specific device
 * @buf: Hang event buffer in which the data will be populated
 * @len: length of data to be populated in the hang event buffer
 *
 * Return: none
 */
typedef void (*qdf_bus_reg_dump)(struct device *dev, uint8_t *buf,
				 uint32_t len);

/**
 * qdf_register_get_bus_reg_dump() - Register callback to update bus register
 *                                   dump
 * @qdf_bus_reg_dump: callback to update bus register dump
 *
 * Return: none
 */
void qdf_register_get_bus_reg_dump(qdf_bus_reg_dump callback);

/**
 * qdf_get_bus_reg_dump() - Get the register dump for the bus
 * @dev: device
 * @buffer: buffer for hang data
 * @len: len of hang data
 *
 * Return: none
 */
void qdf_get_bus_reg_dump(struct device *dev, uint8_t *buf, uint32_t len);
#endif /*_QDF_PLATFORM_H*/
+2 −0
Original line number Diff line number Diff line
@@ -1314,6 +1314,7 @@ enum qdf_suspend_type {
 * @QDF_WMI_BUF_SEQUENCE_MISMATCH: WMI Tx completion buffer sequence mismatch
 * @QDF_HAL_REG_WRITE_FAILURE: HAL register writing failures
 * @QDF_SUSPEND_NO_CREDIT: host lack of credit after suspend
 * @QCA_HANG_BUS_FAILURE: Bus failure
 */
enum qdf_hang_reason {
	QDF_REASON_UNSPECIFIED,
@@ -1339,6 +1340,7 @@ enum qdf_hang_reason {
	QDF_WMI_BUF_SEQUENCE_MISMATCH,
	QDF_HAL_REG_WRITE_FAILURE,
	QDF_SUSPEND_NO_CREDIT,
	QCA_HANG_BUS_FAILURE,
};

/**
+19 −0
Original line number Diff line number Diff line
@@ -32,6 +32,8 @@ static qdf_is_drv_connected_callback is_drv_connected_cb;
static qdf_wmi_send_over_qmi_callback _wmi_send_recv_qmi_cb;
static qdf_is_drv_supported_callback    is_drv_supported_cb;
static qdf_recovery_reason_update_callback   update_recovery_reason_cb;
static qdf_bus_reg_dump   get_bus_reg_dump;



void qdf_register_fw_down_callback(qdf_is_fw_down_callback is_fw_down)
@@ -215,3 +217,20 @@ void qdf_recovery_reason_update(enum qdf_hang_reason reason)
}

qdf_export_symbol(qdf_recovery_reason_update);

void qdf_register_get_bus_reg_dump(qdf_bus_reg_dump callback)
{
	get_bus_reg_dump = callback;
}

qdf_export_symbol(qdf_register_get_bus_reg_dump);

void qdf_get_bus_reg_dump(struct device *dev, uint8_t *buf, uint32_t len)
{
	if (!get_bus_reg_dump)
		return;

	get_bus_reg_dump(dev, buf, len);
}

qdf_export_symbol(qdf_get_bus_reg_dump);