Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions | Variables
hardware.c File Reference
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/irq.h>
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/slab.h>
#include "hardware.h"
#include "setup_protocol.h"
#include "network.h"
#include "main.h"

Go to the source code of this file.

Data Structures

struct  nl_first_packet_header
 
struct  nl_packet_header
 
union  nl_packet
 
struct  MEMCCR
 
struct  MEMINFREG
 
struct  ipw_hardware
 
struct  ipw_tx_packet
 
struct  ipw_control_packet_body
 
struct  ipw_control_packet
 
struct  ipw_rx_packet
 
struct  ipw_setup_get_version_query_packet
 
struct  ipw_setup_config_packet
 
struct  ipw_setup_config_done_packet
 
struct  ipw_setup_open_packet
 
struct  ipw_setup_info_packet
 
struct  ipw_setup_reboot_msg_ack
 

Macros

#define LL_MTU_V1   318
 
#define LL_MTU_V2   250
 
#define LL_MTU_MAX   (LL_MTU_V1 > LL_MTU_V2 ? LL_MTU_V1 : LL_MTU_V2)
 
#define PRIO_DATA   2
 
#define PRIO_CTRL   1
 
#define PRIO_SETUP   0
 
#define ADDR_SETUP_PROT   0
 
#define NL_FIRST_PACKET_HEADER_SIZE   3
 
#define NL_FOLLOWING_PACKET_HEADER_SIZE   1
 
#define NL_INTERMEDIATE_PACKET   0x0
 
#define NL_LAST_PACKET   0x1
 
#define NL_FIRST_PACKET   0x2
 
#define HW_VERSION_UNKNOWN   -1
 
#define HW_VERSION_1   1
 
#define HW_VERSION_2   2
 
#define IOIER   0x00 /* Interrupt Enable Register */
 
#define IOIR   0x02 /* Interrupt Source/ACK register */
 
#define IODCR   0x04 /* Data Control Register */
 
#define IODRR   0x06 /* Data Read Register */
 
#define IODWR   0x08 /* Data Write Register */
 
#define IOESR   0x0A /* Embedded Driver Status Register */
 
#define IORXR   0x0C /* Rx Fifo Register (Host to Embedded) */
 
#define IOTXR   0x0E /* Tx Fifo Register (Embedded to Host) */
 
#define IER_RXENABLED   0x1
 
#define IER_TXENABLED   0x2
 
#define IR_RXINTR   0x1
 
#define IR_TXINTR   0x2
 
#define DCR_RXDONE   0x1
 
#define DCR_TXDONE   0x2
 
#define DCR_RXRESET   0x4
 
#define DCR_TXRESET   0x8
 
#define CARD_PRESENT_VALUE   (0xBEEFCAFEUL)
 
#define MEMTX_TX   0x0001
 
#define MEMRX_RX   0x0001
 
#define MEMRX_RX_DONE   0x0001
 
#define MEMRX_PCINTACKK   0x0001
 
#define NL_NUM_OF_PRIORITIES   3
 
#define NL_NUM_OF_PROTOCOLS   3
 
#define NL_NUM_OF_ADDRESSES   NO_OF_IPW_CHANNELS
 
#define COMCTRL_RTS   0
 
#define COMCTRL_DTR   1
 
#define COMCTRL_CTS   2
 
#define COMCTRL_DCD   3
 
#define COMCTRL_DSR   4
 
#define COMCTRL_RI   5
 
#define DUMP_MAX_BYTES   64
 

Enumerations

enum  { TL_PROTOCOLID_COM_DATA = 0, TL_PROTOCOLID_COM_CTRL = 1, TL_PROTOCOLID_SETUP = 2 }
 

Functions

union nl_packet __attribute__ ((__packed__))
 
irqreturn_t ipwireless_interrupt (int irq, void *dev_id)
 
int ipwireless_send_packet (struct ipw_hardware *hw, unsigned int channel_idx, const unsigned char *data, unsigned int length, void(*callback)(void *cb, unsigned int length), void *callback_data)
 
int ipwireless_set_DTR (struct ipw_hardware *hw, unsigned int channel_idx, int state)
 
int ipwireless_set_RTS (struct ipw_hardware *hw, unsigned int channel_idx, int state)
 
struct ipw_hardwareipwireless_hardware_create (void)
 
void ipwireless_init_hardware_v1 (struct ipw_hardware *hw, unsigned int base_port, void __iomem *attr_memory, void __iomem *common_memory, int is_v2_card, void(*reboot_callback)(void *data), void *reboot_callback_data)
 
void ipwireless_init_hardware_v2_v3 (struct ipw_hardware *hw)
 
void ipwireless_stop_interrupts (struct ipw_hardware *hw)
 
void ipwireless_hardware_free (struct ipw_hardware *hw)
 
void ipwireless_associate_network (struct ipw_hardware *hw, struct ipw_network *network)
 

Variables

struct nl_first_packet_header hdr_first
 
struct nl_packet_header hdr
 
unsigned char rawpkt [LL_MTU_MAX]
 
struct MEMCCR __attribute__
 
unsigned char sig_no
 
unsigned char value
 

Macro Definition Documentation

#define ADDR_SETUP_PROT   0

Definition at line 112 of file hardware.c.

#define CARD_PRESENT_VALUE   (0xBEEFCAFEUL)

Definition at line 217 of file hardware.c.

#define COMCTRL_CTS   2

Definition at line 317 of file hardware.c.

#define COMCTRL_DCD   3

Definition at line 318 of file hardware.c.

#define COMCTRL_DSR   4

Definition at line 319 of file hardware.c.

#define COMCTRL_DTR   1

Definition at line 314 of file hardware.c.

#define COMCTRL_RI   5

Definition at line 320 of file hardware.c.

#define COMCTRL_RTS   0

Definition at line 313 of file hardware.c.

#define DCR_RXDONE   0x1

Definition at line 187 of file hardware.c.

#define DCR_RXRESET   0x4

Definition at line 189 of file hardware.c.

#define DCR_TXDONE   0x2

Definition at line 188 of file hardware.c.

#define DCR_TXRESET   0x8

Definition at line 190 of file hardware.c.

#define DUMP_MAX_BYTES   64

Definition at line 360 of file hardware.c.

#define HW_VERSION_1   1

Definition at line 163 of file hardware.c.

#define HW_VERSION_2   2

Definition at line 164 of file hardware.c.

#define HW_VERSION_UNKNOWN   -1

Definition at line 162 of file hardware.c.

#define IER_RXENABLED   0x1

Definition at line 179 of file hardware.c.

#define IER_TXENABLED   0x2

Definition at line 180 of file hardware.c.

#define IODCR   0x04 /* Data Control Register */

Definition at line 169 of file hardware.c.

#define IODRR   0x06 /* Data Read Register */

Definition at line 170 of file hardware.c.

#define IODWR   0x08 /* Data Write Register */

Definition at line 171 of file hardware.c.

#define IOESR   0x0A /* Embedded Driver Status Register */

Definition at line 172 of file hardware.c.

#define IOIER   0x00 /* Interrupt Enable Register */

Definition at line 167 of file hardware.c.

#define IOIR   0x02 /* Interrupt Source/ACK register */

Definition at line 168 of file hardware.c.

#define IORXR   0x0C /* Rx Fifo Register (Host to Embedded) */

Definition at line 173 of file hardware.c.

#define IOTXR   0x0E /* Tx Fifo Register (Embedded to Host) */

Definition at line 174 of file hardware.c.

#define IR_RXINTR   0x1

Definition at line 183 of file hardware.c.

#define IR_TXINTR   0x2

Definition at line 184 of file hardware.c.

#define LL_MTU_MAX   (LL_MTU_V1 > LL_MTU_V2 ? LL_MTU_V1 : LL_MTU_V2)

Definition at line 105 of file hardware.c.

#define LL_MTU_V1   318

Definition at line 103 of file hardware.c.

#define LL_MTU_V2   250

Definition at line 104 of file hardware.c.

#define MEMRX_PCINTACKK   0x0001

Definition at line 222 of file hardware.c.

#define MEMRX_RX   0x0001

Definition at line 220 of file hardware.c.

#define MEMRX_RX_DONE   0x0001

Definition at line 221 of file hardware.c.

#define MEMTX_TX   0x0001

Definition at line 219 of file hardware.c.

#define NL_FIRST_PACKET   0x2

Definition at line 151 of file hardware.c.

#define NL_FIRST_PACKET_HEADER_SIZE   3

Definition at line 128 of file hardware.c.

#define NL_FOLLOWING_PACKET_HEADER_SIZE   1

Definition at line 132 of file hardware.c.

#define NL_INTERMEDIATE_PACKET   0x0

Definition at line 149 of file hardware.c.

#define NL_LAST_PACKET   0x1

Definition at line 150 of file hardware.c.

#define NL_NUM_OF_ADDRESSES   NO_OF_IPW_CHANNELS

Definition at line 226 of file hardware.c.

#define NL_NUM_OF_PRIORITIES   3

Definition at line 224 of file hardware.c.

#define NL_NUM_OF_PROTOCOLS   3

Definition at line 225 of file hardware.c.

#define PRIO_CTRL   1

Definition at line 108 of file hardware.c.

#define PRIO_DATA   2

Definition at line 107 of file hardware.c.

#define PRIO_SETUP   0

Definition at line 109 of file hardware.c.

Enumeration Type Documentation

anonymous enum
Enumerator:
TL_PROTOCOLID_COM_DATA 
TL_PROTOCOLID_COM_CTRL 
TL_PROTOCOLID_SETUP 

Definition at line 115 of file hardware.c.

Function Documentation

union nl_packet __attribute__ ( (__packed__)  )
read

Definition at line 85 of file mpc512x_dma.c.

void ipwireless_associate_network ( struct ipw_hardware hw,
struct ipw_network network 
)

Definition at line 1760 of file hardware.c.

struct ipw_hardware* ipwireless_hardware_create ( void  )
read

Definition at line 1609 of file hardware.c.

void ipwireless_hardware_free ( struct ipw_hardware hw)

Definition at line 1724 of file hardware.c.

void ipwireless_init_hardware_v1 ( struct ipw_hardware hw,
unsigned int  base_port,
void __iomem attr_memory,
void __iomem common_memory,
int  is_v2_card,
void(*)(void *data reboot_callback,
void reboot_callback_data 
)

Definition at line 1638 of file hardware.c.

void ipwireless_init_hardware_v2_v3 ( struct ipw_hardware hw)

Definition at line 1661 of file hardware.c.

irqreturn_t ipwireless_interrupt ( int  irq,
void dev_id 
)

Definition at line 1214 of file hardware.c.

int ipwireless_send_packet ( struct ipw_hardware hw,
unsigned int  channel_idx,
const unsigned char data,
unsigned int  length,
void(*)(void *cb, unsigned int length callback,
void callback_data 
)

Definition at line 1293 of file hardware.c.

int ipwireless_set_DTR ( struct ipw_hardware hw,
unsigned int  channel_idx,
int  state 
)

Definition at line 1355 of file hardware.c.

int ipwireless_set_RTS ( struct ipw_hardware hw,
unsigned int  channel_idx,
int  state 
)

Definition at line 1361 of file hardware.c.

void ipwireless_stop_interrupts ( struct ipw_hardware hw)

Definition at line 1712 of file hardware.c.

Variable Documentation

Definition at line 164 of file hardware.c.

Definition at line 162 of file hardware.c.

unsigned char rawpkt[LL_MTU_MAX]

Definition at line 166 of file hardware.c.

unsigned char sig_no

Definition at line 329 of file hardware.c.

unsigned char value

Definition at line 331 of file hardware.c.