cregit-Linux how code gets into the kernel

Release 4.12 drivers/staging/ks7010/ks7010_sdio.h

/*
 *   Driver for KeyStream, KS7010 based SDIO cards.
 *
 *   Copyright (C) 2006-2008 KeyStream Corp.
 *   Copyright (C) 2009 Renesas Technology Corp.
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License version 2 as
 *   published by the Free Software Foundation.
 */
#ifndef _KS7010_SDIO_H

#define _KS7010_SDIO_H

#ifdef	DEVICE_ALIGNMENT

#undef	DEVICE_ALIGNMENT
#endif

#define DEVICE_ALIGNMENT 32

/*  SDIO KeyStream vendor and device */

#define SDIO_VENDOR_ID_KS_CODE_A	0x005b

#define SDIO_VENDOR_ID_KS_CODE_B	0x0023
/* Older sources suggest earlier versions were named 7910 or 79xx */

#define SDIO_DEVICE_ID_KS_7010		0x7910

/* Read/Write Status Register */

#define READ_STATUS		0x000000

#define WRITE_STATUS		0x00000C

enum reg_status_type {
	
REG_STATUS_BUSY,
	
REG_STATUS_IDLE
};

/* Read Index Register */

#define READ_INDEX		0x000004

/* Read Data Size Register */

#define READ_DATA_SIZE		0x000008

/* Write Index Register */

#define WRITE_INDEX		0x000010

/* Write Status/Read Data Size Register
 * for network packet (less than 2048 bytes data)
 */

#define WSTATUS_RSIZE		0x000014

#define WSTATUS_MASK		0x80	
/* Write Status Register value */

#define RSIZE_MASK		0x7F	
/* Read Data Size Register value [10:4] */

/* ARM to SD interrupt Enable */

#define INT_ENABLE		0x000020
/* ARM to SD interrupt Pending */

#define INT_PENDING		0x000024


#define INT_GCR_B              BIT(7)

#define INT_GCR_A              BIT(6)

#define INT_WRITE_STATUS       BIT(5)

#define INT_WRITE_INDEX        BIT(4)

#define INT_WRITE_SIZE         BIT(3)

#define INT_READ_STATUS        BIT(2)

#define INT_READ_INDEX         BIT(1)

#define INT_READ_SIZE          BIT(0)

/* General Communication Register A */

#define GCR_A			0x000028

enum gen_com_reg_a {
	
GCR_A_INIT,
	
GCR_A_REMAP,
	
GCR_A_RUN
};

/* General Communication Register B */

#define GCR_B			0x00002C

enum gen_com_reg_b {
	
GCR_B_ACTIVE,
	
GCR_B_DOZE
};

/* Wakeup Register */

#define WAKEUP			0x008018

#define WAKEUP_REQ		0x5a

/* AHB Data Window  0x010000-0x01FFFF */

#define DATA_WINDOW		0x010000

#define WINDOW_SIZE		(64 * 1024)


#define KS7010_IRAM_ADDRESS	0x06000000

/**
 * struct ks_sdio_card - SDIO device data.
 *
 * Structure is used as the &struct sdio_func private data.
 *
 * @func: Pointer to the SDIO function device.
 * @priv: Pointer to the &struct net_device private data.
 */

struct ks_sdio_card {
	
struct sdio_func *func;
	
struct ks_wlan_private *priv;
};

/* Tx Device struct */

#define	TX_DEVICE_BUFF_SIZE	1024

/**
 * struct tx_device_buffer - Queue item for the tx queue.
 * @sendp: Pointer to the send request data.
 * @size: Size of @sendp data.
 * @complete_handler: Function called once data write to device is complete.
 * @arg1: First argument to @complete_handler.
 * @arg2: Second argument to @complete_handler.
 */

struct tx_device_buffer {
	
unsigned char *sendp;
	
unsigned int size;
	
void (*complete_handler)(struct ks_wlan_private *priv,
				 struct sk_buff *skb);
	
struct sk_buff *skb;
};

/**
 * struct tx_device - Tx buffer queue.
 * @tx_device_buffer: Queue buffer.
 * @qhead: Head of tx queue.
 * @qtail: Tail of tx queue.
 * @tx_dev_lock: Queue lock.
 */

struct tx_device {
	
struct tx_device_buffer tx_dev_buff[TX_DEVICE_BUFF_SIZE];
	
unsigned int qhead;
	
unsigned int qtail;
	
spinlock_t tx_dev_lock;	/* protect access to the queue */
};

/* Rx Device struct */

#define	RX_DATA_SIZE	(2 + 2 + 2347 + 1)

#define	RX_DEVICE_BUFF_SIZE	32

/**
 * struct rx_device_buffer - Queue item for the rx queue.
 * @data: rx data.
 * @size: Size of @data.
 */

struct rx_device_buffer {
	
unsigned char data[RX_DATA_SIZE];
	
unsigned int size;
};

/**
 * struct rx_device - Rx buffer queue.
 * @rx_device_buffer: Queue buffer.
 * @qhead: Head of rx queue.
 * @qtail: Tail of rx queue.
 * @rx_dev_lock: Queue lock.
 */

struct rx_device {
	
struct rx_device_buffer rx_dev_buff[RX_DEVICE_BUFF_SIZE];
	
unsigned int qhead;
	
unsigned int qtail;
	
spinlock_t rx_dev_lock;	/* protect access to the queue */
};


#define	ROM_FILE "ks7010sd.rom"

#endif /* _KS7010_SDIO_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Wolfram Sang26283.71%220.00%
Tobin C Harding4012.78%550.00%
Punit Vara82.56%110.00%
Manoj Sawai30.96%220.00%
Total313100.00%10100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.