text: /******************************************************************************
   *
   * Copyright(c) 2018 - 2019 Realtek Corporation. All rights reserved.
   *
   * This program is free software; you can redistribute it and/or modify it
   * under the terms of version 2 of the GNU General Public License as
   * published by the Free Software Foundation.
   *
   * This program is distributed in the hope that it will be useful, but WITHOUT
   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
   * more details.
   *
   ******************************************************************************/
  #include "halmac_dbg.h"
  #if HALMAC_DBG_MONITOR_IO
  static u8
  monitor_reg_read_8(struct halmac_adapter *adapter, u32 offset,
  		   const char *func, const u32 line);
  static u16
  monitor_reg_read_16(struct halmac_adapter *adapter, u32 offset,
  		    const char *func, const u32 line);
  static u32
  monitor_reg_read_32(struct halmac_adapter *adapter, u32 offset,
  		    const char *func, const u32 line);
  static enum halmac_ret_status
  monitor_reg_sdio_cmd53_read_n(struct halmac_adapter *adapter,
  			      u32 offset, u32 size, u8 *value,
  			      const char *func, const u32 line);
  static enum halmac_ret_status
  monitor_reg_write_8(struct halmac_adapter *adapter, u32 offset,
  		    u8 value, const char *func, const u32 line);
  static enum halmac_ret_status
  monitor_reg_write_16(struct halmac_adapter *adapter, u32 offset,
  		     u16 value, const char *func, const u32 line);
  static enum halmac_ret_status
  monitor_reg_write_32(struct halmac_adapter *adapter, u32 offset,
  		     u32 value, const char *func, const u32 line);
  
  enum halmac_ret_status
  mount_api_dbg(struct halmac_adapter *adapter)
  {
  	struct halmac_api *api = (struct halmac_api *)adapter->halmac_api;
  
  	api->halmac_mon_reg_read_8 = monitor_reg_read_8;
  	api->halmac_mon_reg_read_16 = monitor_reg_read_16;
  	api->halmac_mon_reg_read_32 = monitor_reg_read_32;
  	api->halmac_mon_reg_sdio_cmd53_read_n = monitor_reg_sdio_cmd53_read_n;
  	api->halmac_mon_reg_write_8 = monitor_reg_write_8;
  	api->halmac_mon_reg_write_16 = monitor_reg_write_16;
  	api->halmac_mon_reg_write_32 = monitor_reg_write_32;
  
  	return HALMAC_RET_SUCCESS;
  }
  
  u8
  monitor_reg_read_8(struct halmac_adapter *adapter, u32 offset,
  		   const char *func, const u32 line)
  {
  	struct halmac_api *api = (struct halmac_api *)adapter->halmac_api;
  	u8 val;
  
  	val = api->halmac_reg_read_8(adapter, offset);
  	PLTFM_MONITOR_READ(offset, 1, val, func, line);
  	return val;
  }
  
  u16
  monitor_reg_read_16(struct halmac_adapter *adapter, u32 offset,
  		    const char *func, const u32 line)
  {
  	struct halmac_api *api = (struct halmac_api *)adapter->halmac_api;
  	u16 val;
  
  	val = api->halmac_reg_read_16(adapter, offset);
  	PLTFM_MONITOR_READ(offset, 2, val, func, line);
  	return val;
  }
  
  u32
  monitor_reg_read_32(struct halmac_adapter *adapter, u32 offset,
  		    const char *func, const u32 line)
  {
  	struct halmac_api *api = (struct halmac_api *)adapter->halmac_api;
  	u32 val;
  
  	val = api->halmac_reg_read_32(adapter, offset);
  	PLTFM_MONITOR_READ(offset, 4, val, func, line);
  	return val;
  }
  
  enum halmac_ret_status
  monitor_reg_sdio_cmd53_read_n(struct halmac_adapter *adapter,
  			      u32 offset, u32 size, u8 *value,
  			      const char *func, const u32 line)
  {
  	struct halmac_api *api = (struct halmac_api *)adapter->halmac_api;
  
  	PLTFM_MONITOR_READ(offset, size, 0, func, line);
  	return api->halmac_reg_sdio_cmd53_read_n(adapter, offset, size, value);
  }
  
  enum halmac_ret_status
  monitor_reg_write_8(struct halmac_adapter *adapter, u32 offset,
  		    u8 value, const char *func, const u32 line)
  {
  	struct halmac_api *api = (struct halmac_api *)adapter->halmac_api;
  
  	PLTFM_MONITOR_WRITE(offset, 1, value, func, line);
  	return api->halmac_reg_write_8(adapter, offset, value);
  }
  
  enum halmac_ret_status
  monitor_reg_write_16(struct halmac_adapter *adapter, u32 offset,
  		     u16 value, const char *func, const u32 line)
  {
  	struct halmac_api *api = (struct halmac_api *)adapter->halmac_api;
  
  	PLTFM_MONITOR_WRITE(offset, 2, value, func, line);
  	return api->halmac_reg_write_16(adapter, offset, value);
  }
  
  enum halmac_ret_status
  monitor_reg_write_32(struct halmac_adapter *adapter, u32 offset,
  		     u32 value, const char *func, const u32 line)
  {
  	struct halmac_api *api = (struct halmac_api *)adapter->halmac_api;
  
  	PLTFM_MONITOR_WRITE(offset, 4, value, func, line);
  	return api->halmac_reg_write_32(adapter, offset, value);
  }
  #endif
  