qcacmn: Add USB bus support (HIF Common)
Add module specific changes for USB bus support. Change-Id: I98ca380567c279d3206aa4afc7a28c2feeb65993 CRs-Fixed: 1023663
This commit is contained in:

committed by
Vishwajith Upendra

parent
1957ba9385
commit
440c5295c2
@@ -40,7 +40,9 @@ extern "C" {
|
|||||||
#ifdef HIF_PCI
|
#ifdef HIF_PCI
|
||||||
#include <linux/pci.h>
|
#include <linux/pci.h>
|
||||||
#endif /* HIF_PCI */
|
#endif /* HIF_PCI */
|
||||||
|
#ifdef HIF_USB
|
||||||
|
#include <linux/usb.h>
|
||||||
|
#endif /* HIF_USB */
|
||||||
#define ENABLE_MBOX_DUMMY_SPACE_FEATURE 1
|
#define ENABLE_MBOX_DUMMY_SPACE_FEATURE 1
|
||||||
|
|
||||||
typedef struct htc_callbacks HTC_CALLBACKS;
|
typedef struct htc_callbacks HTC_CALLBACKS;
|
||||||
@@ -363,7 +365,7 @@ typedef void (*fastpath_msg_handler)(void *, qdf_nbuf_t *, uint32_t);
|
|||||||
#ifdef WLAN_FEATURE_FASTPATH
|
#ifdef WLAN_FEATURE_FASTPATH
|
||||||
void hif_enable_fastpath(struct hif_opaque_softc *hif_ctx);
|
void hif_enable_fastpath(struct hif_opaque_softc *hif_ctx);
|
||||||
bool hif_is_fastpath_mode_enabled(struct hif_opaque_softc *hif_ctx);
|
bool hif_is_fastpath_mode_enabled(struct hif_opaque_softc *hif_ctx);
|
||||||
void *hif_get_ce_handle(struct hif_opaque_softc *hif_ctx, int);
|
void *hif_get_ce_handle(struct hif_opaque_softc *hif_ctx, int ret);
|
||||||
int hif_ce_fastpath_cb_register(struct hif_opaque_softc *hif_ctx,
|
int hif_ce_fastpath_cb_register(struct hif_opaque_softc *hif_ctx,
|
||||||
fastpath_msg_handler handler, void *context);
|
fastpath_msg_handler handler, void *context);
|
||||||
#else
|
#else
|
||||||
@@ -373,6 +375,11 @@ static inline int hif_ce_fastpath_cb_register(struct hif_opaque_softc *hif_ctx,
|
|||||||
{
|
{
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
static inline void *hif_get_ce_handle(struct hif_opaque_softc *hif_ctx, int ret)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -613,7 +620,11 @@ struct hif_pipe_addl_info *hif_get_addl_pipe_info(struct hif_opaque_softc *osc,
|
|||||||
uint32_t hif_set_nss_wifiol_mode(struct hif_opaque_softc *osc,
|
uint32_t hif_set_nss_wifiol_mode(struct hif_opaque_softc *osc,
|
||||||
uint32_t pipe_num);
|
uint32_t pipe_num);
|
||||||
int32_t hif_get_nss_wifiol_bypass_nw_process(struct hif_opaque_softc *osc);
|
int32_t hif_get_nss_wifiol_bypass_nw_process(struct hif_opaque_softc *osc);
|
||||||
#endif
|
#endif /* QCA_NSS_WIFI_OFFLOAD_SUPPORT */
|
||||||
|
|
||||||
|
void hif_set_bundle_mode(struct hif_opaque_softc *scn, bool enabled,
|
||||||
|
int rx_bundle_cnt);
|
||||||
|
int hif_bus_reset_resume(struct hif_opaque_softc *scn);
|
||||||
|
|
||||||
#ifdef WLAN_SUSPEND_RESUME_TEST
|
#ifdef WLAN_SUSPEND_RESUME_TEST
|
||||||
typedef void (*hdd_fake_resume_callback)(uint32_t val);
|
typedef void (*hdd_fake_resume_callback)(uint32_t val);
|
||||||
@@ -623,4 +634,5 @@ void hif_fake_apps_suspend(hdd_fake_resume_callback callback);
|
|||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* _HIF_H_ */
|
#endif /* _HIF_H_ */
|
||||||
|
@@ -31,8 +31,14 @@
|
|||||||
#ifdef HIF_SDIO
|
#ifdef HIF_SDIO
|
||||||
#include "regtable_sdio.h"
|
#include "regtable_sdio.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(HIF_PCI) || defined(HIF_SNOC) || defined(HIF_AHB)
|
#if defined(HIF_PCI) || defined(HIF_SNOC) || defined(HIF_AHB)
|
||||||
#include "reg_struct.h"
|
#include "reg_struct.h"
|
||||||
#include "regtable_pcie.h"
|
#include "regtable_pcie.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(HIF_USB)
|
||||||
|
#include "regtable_usb.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -460,8 +460,10 @@ struct targetdef_s ar6320_targetdef = {
|
|||||||
.d_DRAM_BASE_ADDRESS = AR6320_DRAM_BASE_ADDRESS,
|
.d_DRAM_BASE_ADDRESS = AR6320_DRAM_BASE_ADDRESS,
|
||||||
.d_SOC_CORE_BASE_ADDRESS = AR6320_SOC_CORE_BASE_ADDRESS,
|
.d_SOC_CORE_BASE_ADDRESS = AR6320_SOC_CORE_BASE_ADDRESS,
|
||||||
.d_CORE_CTRL_ADDRESS = AR6320_CORE_CTRL_ADDRESS,
|
.d_CORE_CTRL_ADDRESS = AR6320_CORE_CTRL_ADDRESS,
|
||||||
|
#if defined(HIF_PCI) || defined(HIF_SNOC) || defined(HIF_AHB)
|
||||||
.d_MSI_NUM_REQUEST = MSI_NUM_REQUEST,
|
.d_MSI_NUM_REQUEST = MSI_NUM_REQUEST,
|
||||||
.d_MSI_ASSIGN_FW = MSI_ASSIGN_FW,
|
.d_MSI_ASSIGN_FW = MSI_ASSIGN_FW,
|
||||||
|
#endif
|
||||||
.d_CORE_CTRL_CPU_INTR_MASK = AR6320_CORE_CTRL_CPU_INTR_MASK,
|
.d_CORE_CTRL_CPU_INTR_MASK = AR6320_CORE_CTRL_CPU_INTR_MASK,
|
||||||
.d_SR_WR_INDEX_ADDRESS = AR6320_SR_WR_INDEX_ADDRESS,
|
.d_SR_WR_INDEX_ADDRESS = AR6320_SR_WR_INDEX_ADDRESS,
|
||||||
.d_DST_WATERMARK_ADDRESS = AR6320_DST_WATERMARK_ADDRESS,
|
.d_DST_WATERMARK_ADDRESS = AR6320_DST_WATERMARK_ADDRESS,
|
||||||
|
@@ -464,8 +464,10 @@ struct targetdef_s ar6320v2_targetdef = {
|
|||||||
.d_DRAM_BASE_ADDRESS = AR6320V2_DRAM_BASE_ADDRESS,
|
.d_DRAM_BASE_ADDRESS = AR6320V2_DRAM_BASE_ADDRESS,
|
||||||
.d_SOC_CORE_BASE_ADDRESS = AR6320V2_SOC_CORE_BASE_ADDRESS,
|
.d_SOC_CORE_BASE_ADDRESS = AR6320V2_SOC_CORE_BASE_ADDRESS,
|
||||||
.d_CORE_CTRL_ADDRESS = AR6320V2_CORE_CTRL_ADDRESS,
|
.d_CORE_CTRL_ADDRESS = AR6320V2_CORE_CTRL_ADDRESS,
|
||||||
|
#if defined(HIF_PCI) || defined(HIF_SNOC) || defined(HIF_AHB)
|
||||||
.d_MSI_NUM_REQUEST = MSI_NUM_REQUEST,
|
.d_MSI_NUM_REQUEST = MSI_NUM_REQUEST,
|
||||||
.d_MSI_ASSIGN_FW = MSI_ASSIGN_FW,
|
.d_MSI_ASSIGN_FW = MSI_ASSIGN_FW,
|
||||||
|
#endif
|
||||||
.d_CORE_CTRL_CPU_INTR_MASK = AR6320V2_CORE_CTRL_CPU_INTR_MASK,
|
.d_CORE_CTRL_CPU_INTR_MASK = AR6320V2_CORE_CTRL_CPU_INTR_MASK,
|
||||||
.d_SR_WR_INDEX_ADDRESS = AR6320V2_SR_WR_INDEX_ADDRESS,
|
.d_SR_WR_INDEX_ADDRESS = AR6320V2_SR_WR_INDEX_ADDRESS,
|
||||||
.d_DST_WATERMARK_ADDRESS = AR6320V2_DST_WATERMARK_ADDRESS,
|
.d_DST_WATERMARK_ADDRESS = AR6320V2_DST_WATERMARK_ADDRESS,
|
||||||
|
@@ -367,8 +367,10 @@ struct targetdef_s ar9888_targetdef = {
|
|||||||
.d_DRAM_BASE_ADDRESS = AR9888_DRAM_BASE_ADDRESS,
|
.d_DRAM_BASE_ADDRESS = AR9888_DRAM_BASE_ADDRESS,
|
||||||
.d_SOC_CORE_BASE_ADDRESS = AR9888_SOC_CORE_BASE_ADDRESS,
|
.d_SOC_CORE_BASE_ADDRESS = AR9888_SOC_CORE_BASE_ADDRESS,
|
||||||
.d_CORE_CTRL_ADDRESS = AR9888_CORE_CTRL_ADDRESS,
|
.d_CORE_CTRL_ADDRESS = AR9888_CORE_CTRL_ADDRESS,
|
||||||
|
#if defined(HIF_PCI) || defined(HIF_SNOC) || defined(HIF_AHB)
|
||||||
.d_MSI_NUM_REQUEST = MSI_NUM_REQUEST,
|
.d_MSI_NUM_REQUEST = MSI_NUM_REQUEST,
|
||||||
.d_MSI_ASSIGN_FW = MSI_ASSIGN_FW,
|
.d_MSI_ASSIGN_FW = MSI_ASSIGN_FW,
|
||||||
|
#endif
|
||||||
.d_CORE_CTRL_CPU_INTR_MASK = AR9888_CORE_CTRL_CPU_INTR_MASK,
|
.d_CORE_CTRL_CPU_INTR_MASK = AR9888_CORE_CTRL_CPU_INTR_MASK,
|
||||||
.d_SR_WR_INDEX_ADDRESS = AR9888_SR_WR_INDEX_ADDRESS,
|
.d_SR_WR_INDEX_ADDRESS = AR9888_SR_WR_INDEX_ADDRESS,
|
||||||
.d_DST_WATERMARK_ADDRESS = AR9888_DST_WATERMARK_ADDRESS,
|
.d_DST_WATERMARK_ADDRESS = AR9888_DST_WATERMARK_ADDRESS,
|
||||||
|
@@ -36,7 +36,7 @@
|
|||||||
#define HIF_INFO_LO(args ...) \
|
#define HIF_INFO_LO(args ...) \
|
||||||
QDF_TRACE(QDF_MODULE_ID_HIF, QDF_TRACE_LEVEL_INFO_LOW, ## args)
|
QDF_TRACE(QDF_MODULE_ID_HIF, QDF_TRACE_LEVEL_INFO_LOW, ## args)
|
||||||
#define HIF_TRACE(args ...) \
|
#define HIF_TRACE(args ...) \
|
||||||
QDF_TRACE(QDF_MODULE_ID_HIF, QDF_TRACE_LEVEL_ERROR, ## args)
|
QDF_TRACE(QDF_MODULE_ID_HIF, QDF_TRACE_LEVEL_INFO, ## args)
|
||||||
#define HIF_DBG(args ...) \
|
#define HIF_DBG(args ...) \
|
||||||
QDF_TRACE(QDF_MODULE_ID_HIF, QDF_TRACE_LEVEL_DEBUG, ## args)
|
QDF_TRACE(QDF_MODULE_ID_HIF, QDF_TRACE_LEVEL_DEBUG, ## args)
|
||||||
|
|
||||||
|
@@ -39,13 +39,13 @@
|
|||||||
#include "hif_main.h"
|
#include "hif_main.h"
|
||||||
#include "hif_hw_version.h"
|
#include "hif_hw_version.h"
|
||||||
#if defined(HIF_PCI) || defined(HIF_SNOC) || defined(HIF_AHB)
|
#if defined(HIF_PCI) || defined(HIF_SNOC) || defined(HIF_AHB)
|
||||||
#include "ce_api.h"
|
|
||||||
#include "ce_tasklet.h"
|
#include "ce_tasklet.h"
|
||||||
#endif
|
#endif
|
||||||
#include "qdf_trace.h"
|
#include "qdf_trace.h"
|
||||||
#include "qdf_status.h"
|
#include "qdf_status.h"
|
||||||
#include "hif_debug.h"
|
#include "hif_debug.h"
|
||||||
#include "mp_dev.h"
|
#include "mp_dev.h"
|
||||||
|
#include "ce_api.h"
|
||||||
|
|
||||||
void hif_dump(struct hif_opaque_softc *hif_ctx, uint8_t cmd_id, bool start)
|
void hif_dump(struct hif_opaque_softc *hif_ctx, uint8_t cmd_id, bool start)
|
||||||
{
|
{
|
||||||
@@ -324,6 +324,11 @@ void hif_get_hw_info(struct hif_opaque_softc *scn, u32 *version, u32 *revision,
|
|||||||
const char **target_name)
|
const char **target_name)
|
||||||
{
|
{
|
||||||
struct hif_target_info *info = hif_get_target_info_handle(scn);
|
struct hif_target_info *info = hif_get_target_info_handle(scn);
|
||||||
|
struct hif_softc *sc = HIF_GET_SOFTC(scn);
|
||||||
|
|
||||||
|
if (sc->bus_type == QDF_BUS_TYPE_USB)
|
||||||
|
hif_usb_get_hw_info(sc);
|
||||||
|
|
||||||
*version = info->target_version;
|
*version = info->target_version;
|
||||||
*revision = info->target_revision;
|
*revision = info->target_revision;
|
||||||
*target_name = hif_get_hw_name(info);
|
*target_name = hif_get_hw_name(info);
|
||||||
@@ -455,7 +460,7 @@ QDF_STATUS hif_enable(struct hif_opaque_softc *hif_ctx, struct device *dev,
|
|||||||
|
|
||||||
scn->hif_init_done = true;
|
scn->hif_init_done = true;
|
||||||
|
|
||||||
HIF_TRACE("%s: X OK", __func__);
|
HIF_TRACE("%s: OK", __func__);
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
@@ -888,7 +893,7 @@ bool hif_is_recovery_in_progress(struct hif_softc *scn)
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
#if defined(HIF_PCI) || defined(SNOC) || defined(HIF_AHB)
|
||||||
/**
|
/**
|
||||||
* hif_batch_send() - API to access hif specific function
|
* hif_batch_send() - API to access hif specific function
|
||||||
* ce_batch_send.
|
* ce_batch_send.
|
||||||
@@ -958,6 +963,7 @@ int hif_send_fast(struct hif_opaque_softc *osc, qdf_nbuf_t nbuf,
|
|||||||
return ce_send_fast((struct CE_handle *)ce_tx_hdl, nbuf,
|
return ce_send_fast((struct CE_handle *)ce_tx_hdl, nbuf,
|
||||||
transfer_id, download_len);
|
transfer_id, download_len);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* hif_reg_write() - API to access hif specific function
|
* hif_reg_write() - API to access hif specific function
|
||||||
@@ -990,3 +996,19 @@ uint32_t hif_reg_read(struct hif_opaque_softc *hif_ctx, uint32_t offset)
|
|||||||
struct hif_softc *scn = HIF_GET_SOFTC(hif_ctx);
|
struct hif_softc *scn = HIF_GET_SOFTC(hif_ctx);
|
||||||
return hif_read32_mb(scn->mem + offset);
|
return hif_read32_mb(scn->mem + offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(HIF_USB)
|
||||||
|
/**
|
||||||
|
* hif_ramdump_handler(): generic ramdump handler
|
||||||
|
* @scn: struct hif_opaque_softc
|
||||||
|
*
|
||||||
|
* Return: None
|
||||||
|
*/
|
||||||
|
|
||||||
|
void hif_ramdump_handler(struct hif_opaque_softc *scn)
|
||||||
|
|
||||||
|
{
|
||||||
|
if (hif_get_bus_type == QDF_BUS_TYPE_USB)
|
||||||
|
hif_usb_ramdump_handler();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
@@ -95,6 +95,8 @@
|
|||||||
#define HIF_GET_PCI_SOFTC(scn) ((struct hif_pci_softc *)scn)
|
#define HIF_GET_PCI_SOFTC(scn) ((struct hif_pci_softc *)scn)
|
||||||
#define HIF_GET_CE_STATE(scn) ((struct HIF_CE_state *)scn)
|
#define HIF_GET_CE_STATE(scn) ((struct HIF_CE_state *)scn)
|
||||||
#define HIF_GET_SDIO_SOFTC(scn) ((struct hif_sdio_softc *)scn)
|
#define HIF_GET_SDIO_SOFTC(scn) ((struct hif_sdio_softc *)scn)
|
||||||
|
#define HIF_GET_USB_SOFTC(scn) ((struct hif_usb_softc *)scn)
|
||||||
|
#define HIF_GET_USB_DEVICE(scn) ((HIF_DEVICE_USB *)scn)
|
||||||
#define HIF_GET_SOFTC(scn) ((struct hif_softc *)scn)
|
#define HIF_GET_SOFTC(scn) ((struct hif_softc *)scn)
|
||||||
#define GET_HIF_OPAQUE_HDL(scn) ((struct hif_opaque_softc *)scn)
|
#define GET_HIF_OPAQUE_HDL(scn) ((struct hif_opaque_softc *)scn)
|
||||||
|
|
||||||
@@ -203,4 +205,12 @@ void hif_wlan_disable(struct hif_softc *scn);
|
|||||||
int hif_target_sleep_state_adjust(struct hif_softc *scn,
|
int hif_target_sleep_state_adjust(struct hif_softc *scn,
|
||||||
bool sleep_ok,
|
bool sleep_ok,
|
||||||
bool wait_for_it);
|
bool wait_for_it);
|
||||||
|
#ifdef HIF_USB
|
||||||
|
void hif_usb_get_hw_info(struct hif_softc *scn);
|
||||||
|
void hif_ramdump_handler(struct hif_opaque_softc *scn);
|
||||||
|
|
||||||
|
#else
|
||||||
|
static inline void hif_usb_get_hw_info(struct hif_softc *scn) {}
|
||||||
|
static inline void hif_ramdump_handler(struct hif_opaque_softc *scn) {}
|
||||||
|
#endif
|
||||||
#endif /* __HIF_MAIN_H__ */
|
#endif /* __HIF_MAIN_H__ */
|
||||||
|
@@ -226,16 +226,3 @@ void hif_send_complete_check(struct hif_opaque_softc *hif_ctx, uint8_t pipe,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* hif_set_bundle_mode() - set bundling mode.
|
|
||||||
* @hif_ctx: HIF context
|
|
||||||
* @enabled: enable/disable bundling
|
|
||||||
* @rx_bundle_cnt: bundling count
|
|
||||||
*
|
|
||||||
* Return: none
|
|
||||||
*/
|
|
||||||
void hif_set_bundle_mode(struct hif_opaque_softc *hif_ctx, bool enabled,
|
|
||||||
uint64_t rx_bundle_cnt)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
@@ -893,14 +893,14 @@ void hif_suspend_wow(struct hif_opaque_softc *scn)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* hif_set_bundle_mode() - enable bundling and set default rx bundle cnt
|
* hif_usb_set_bundle_mode() - enable bundling and set default rx bundle cnt
|
||||||
* @scn: pointer to hif_opaque_softc structure
|
* @scn: pointer to hif_opaque_softc structure
|
||||||
* @enabled: flag to enable/disable bundling
|
* @enabled: flag to enable/disable bundling
|
||||||
* @rx_bundle_cnt: bundle count to be used for RX
|
* @rx_bundle_cnt: bundle count to be used for RX
|
||||||
*
|
*
|
||||||
* Return: none
|
* Return: none
|
||||||
*/
|
*/
|
||||||
void hif_set_bundle_mode(struct hif_opaque_softc *scn,
|
void hif_usb_set_bundle_mode(struct hif_softc *scn,
|
||||||
bool enabled, int rx_bundle_cnt)
|
bool enabled, int rx_bundle_cnt)
|
||||||
{
|
{
|
||||||
HIF_DEVICE_USB *device = HIF_GET_USB_DEVICE(scn);
|
HIF_DEVICE_USB *device = HIF_GET_USB_DEVICE(scn);
|
||||||
|
@@ -361,7 +361,7 @@ int hif_usb_bus_resume(struct hif_softc *hif_ctx)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* hif_bus_reset_resume() - resume the bus after reset
|
* hif_usb_bus_reset_resume() - resume the bus after reset
|
||||||
* @scn: struct hif_opaque_softc
|
* @scn: struct hif_opaque_softc
|
||||||
*
|
*
|
||||||
* This function is called to tell the driver that USB device has been resumed
|
* This function is called to tell the driver that USB device has been resumed
|
||||||
@@ -370,10 +370,9 @@ int hif_usb_bus_resume(struct hif_softc *hif_ctx)
|
|||||||
*
|
*
|
||||||
* Return: int 0 for success, non zero for failure
|
* Return: int 0 for success, non zero for failure
|
||||||
*/
|
*/
|
||||||
int hif_bus_reset_resume(struct hif_opaque_softc *scn)
|
int hif_usb_bus_reset_resume(struct hif_softc *hif_ctx)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
struct hif_softc *hif_ctx = HIF_GET_SOFTC(scn);
|
|
||||||
HIF_ENTER();
|
HIF_ENTER();
|
||||||
if (hif_usb_diag_write_cold_reset(hif_ctx) != QDF_STATUS_SUCCESS)
|
if (hif_usb_diag_write_cold_reset(hif_ctx) != QDF_STATUS_SUCCESS)
|
||||||
ret = 1;
|
ret = 1;
|
||||||
@@ -621,7 +620,7 @@ void hif_fw_assert_ramdump_pattern(struct hif_usb_softc *sc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* hif_ramdump_handler(): dump bus debug registers
|
* hif_usb_ramdump_handler(): dump bus debug registers
|
||||||
* @scn: struct hif_opaque_softc
|
* @scn: struct hif_opaque_softc
|
||||||
*
|
*
|
||||||
* This function is to receive information of firmware crash dump, and
|
* This function is to receive information of firmware crash dump, and
|
||||||
@@ -641,7 +640,7 @@ void hif_fw_assert_ramdump_pattern(struct hif_usb_softc *sc)
|
|||||||
* Return: 0 for success or error code
|
* Return: 0 for success or error code
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void hif_ramdump_handler(struct hif_opaque_softc *scn)
|
void hif_usb_ramdump_handler(struct hif_opaque_softc *scn)
|
||||||
{
|
{
|
||||||
uint32_t *reg, pattern, i, start_addr = 0;
|
uint32_t *reg, pattern, i, start_addr = 0;
|
||||||
uint32_t len;
|
uint32_t len;
|
||||||
|
Reference in New Issue
Block a user