blob: de118f13dfa5aba0826b0c738adb77de41ac437c [file] [log] [blame]
/*
* Copyright (c) 2013, The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
*
* 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.
*/
/*
* This file was originally distributed by Qualcomm Atheros, Inc.
* under proprietary terms before Copyright ownership was assigned
* to the Linux Foundation.
*/
/**========================================================================
\file hif_dxe_ospvt.h
\brief OS Private Layer used by Linux DXE OS Specific Module
========================================================================*/
/**=========================================================================
EDIT HISTORY FOR FILE
This section contains comments describing changes made to the module.
Notice that changes are listed in reverse chronological order.
$Header:$ $DateTime: $ $Author: $
when who what, where, why
-------- --- -----------------------------------------
05/03/2013 Ganesh Created module for HIF Dxe Linux Specific
Babu
==========================================================================*/
#ifndef _HIF_DXE_PVTOS_H_
#define _HIF_DXE_PVTOS_H_
#include <linux/irqreturn.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include "athdefs.h"
#include "adf_os_types.h"
#include "adf_os_atomic.h"
#include <linux/wcnss_wlan.h>
#define DXE_READ_REG(ctx,addr) hif_dxe_os_readreg(ctx,addr)
#define DXE_WRITE_REG(ctx,addr,val) hif_dxe_os_writereg(ctx,addr,val)
typedef struct _S_HIF_DXE_OSCONTEXT
{
struct resource *wcnss_memory;
void __iomem *mmio;
/***************************************/
/* Tx Irq related Params */
/***************************************/
int tx_irq;
/* Whether Tx Irq is registered with the OS or not */
unsigned char bTxRegistered;
/* Tasklet to do the Tx Processing */
struct tasklet_struct hif_dxe_tx_tasklet;
/***************************************/
/* Rx Irq related Params */
/***************************************/
int rx_irq;
/* Whether Rx Irq is registered with the OS or not */
unsigned char bRxRegistered;
/* Tasklet to do the Rx Processing */
struct tasklet_struct hif_dxe_rx_tasklet;
unsigned char bTxIntEnabled , bRxIntEnabled;
S_HIF_DXE_OS_PARAMS dxe_hif_params;
adf_os_atomic_t ref_count;
/* Currently not used. Is it required ??? */
unsigned long dxe_unloaded;
}S_HIF_DXE_OSCONTEXT;
#endif