blob: 0eed0d5ab743dd46c8b77bc226b09fee5196a94c [file] [log] [blame]
/*
* Copyright (c) 2016-2019 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef __PLD_PCIE_FW_SIM_H__
#define __PLD_PCIE_FW_SIM_H__
#include "pld_internal.h"
#ifndef CONFIG_PLD_PCIE_FW_SIM
static inline int pld_pcie_fw_sim_register_driver(void)
{
return 0;
}
static inline void pld_pcie_fw_sim_unregister_driver(void)
{
}
static inline int pld_pcie_fw_sim_wlan_enable(struct device *dev,
struct pld_wlan_enable_cfg *cfg,
enum pld_driver_mode mode,
const char *host_version)
{
return 0;
}
static inline int pld_pcie_fw_sim_wlan_disable(struct device *dev,
enum pld_driver_mode mode)
{
return 0;
}
static inline void pld_pcie_fw_sim_link_down(struct device *dev)
{
}
static inline int pld_pcie_fw_sim_is_fw_down(struct device *dev)
{
return 0;
}
static inline int pld_pcie_fw_sim_get_platform_cap(struct device *dev,
struct pld_platform_cap *cap)
{
return 0;
}
static inline int pld_pcie_fw_sim_get_soc_info(struct device *dev,
struct pld_soc_info *info)
{
return 0;
}
static inline int pld_pcie_fw_sim_get_user_msi_assignment(struct device *dev,
char *user_name,
int *num_vectors,
uint32_t *base_data,
uint32_t *base_vector)
{
return -EINVAL;
}
static inline int pld_pcie_fw_sim_get_msi_irq(struct device *dev,
unsigned int vector)
{
return 0;
}
static inline void pld_pcie_fw_sim_get_msi_address(struct device *dev,
uint32_t *msi_addr_low,
uint32_t *msi_addr_high)
{
}
static inline int pld_pcie_fw_sim_request_irq(struct device *dev, int irq,
irq_handler_t handler,
unsigned long irqflags,
const char *devname,
void *dev_data)
{
return 0;
}
static inline int pld_pcie_fw_sim_free_irq(struct device *dev,
unsigned int ce_id, void *ctx)
{
return 0;
}
static inline void pld_pcie_fw_sim_enable_irq(struct device *dev,
unsigned int irq)
{
}
static inline void pld_pcie_fw_sim_disable_irq(struct device *dev,
unsigned int irq)
{
}
static inline int pld_pcie_fw_sim_idle_shutdown(struct device *dev)
{
return 0;
}
static inline int pld_pcie_fw_sim_idle_restart(struct device *dev)
{
return 0;
}
#else
#include <net/cnss2.h>
int pld_pcie_fw_sim_wlan_enable(struct device *dev,
struct pld_wlan_enable_cfg *config,
enum pld_driver_mode mode,
const char *host_version);
int pld_pcie_fw_sim_wlan_disable(struct device *dev, enum pld_driver_mode mode);
int pld_pcie_fw_sim_register_driver(void);
void pld_pcie_fw_sim_unregister_driver(void);
int pld_pcie_fw_sim_get_platform_cap(struct device *dev,
struct pld_platform_cap *cap);
int pld_pcie_fw_sim_get_soc_info(struct device *dev, struct pld_soc_info *info);
static inline int pld_pcie_fw_sim_get_user_msi_assignment(struct device *dev,
char *user_name,
int *num_vectors,
uint32_t *base_data,
uint32_t *base_vector)
{
return cnss_fw_sim_get_user_msi_assignment(dev, user_name, num_vectors,
base_data, base_vector);
}
static inline int pld_pcie_fw_sim_get_msi_irq(struct device *dev,
unsigned int vector)
{
return cnss_fw_sim_get_msi_irq(dev, vector);
}
static inline void pld_pcie_fw_sim_get_msi_address(struct device *dev,
uint32_t *msi_addr_low,
uint32_t *msi_addr_high)
{
cnss_fw_sim_get_msi_address(dev, msi_addr_low, msi_addr_high);
}
static inline int pld_pcie_fw_sim_request_irq(struct device *dev, int irq,
irq_handler_t handler,
unsigned long irqflags,
const char *devname,
void *dev_data)
{
return cnss_fw_sim_request_irq(dev, irq, handler,
irqflags, devname, dev_data);
}
static inline int pld_pcie_fw_sim_free_irq(struct device *dev,
int irq, void *dev_data)
{
return cnss_fw_sim_free_irq(dev, irq, dev_data);
}
static inline void pld_pcie_fw_sim_enable_irq(struct device *dev, int irq)
{
cnss_fw_sim_enable_irq(dev, irq);
}
static inline void pld_pcie_fw_sim_disable_irq(struct device *dev, int irq)
{
cnss_fw_sim_disable_irq(dev, irq);
}
static inline int pld_pcie_fw_sim_idle_shutdown(struct device *dev)
{
return cnss_fw_sim_idle_shutdown(dev);
}
static inline int pld_pcie_fw_sim_idle_restart(struct device *dev)
{
return cnss_fw_sim_idle_restart(dev);
}
#endif
#endif