Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
mpu401.h File Reference
#include <sound/rawmidi.h>
#include <linux/interrupt.h>

Go to the source code of this file.

Data Structures

struct  snd_mpu401
 

Macros

#define MPU401_HW_MPU401   1 /* native MPU401 */
 
#define MPU401_HW_SB   2 /* SoundBlaster MPU-401 UART */
 
#define MPU401_HW_ES1688   3 /* AudioDrive ES1688 MPU-401 UART */
 
#define MPU401_HW_OPL3SA2   4 /* Yamaha OPL3-SA2 */
 
#define MPU401_HW_SONICVIBES   5 /* S3 SonicVibes */
 
#define MPU401_HW_CS4232   6 /* CS4232 */
 
#define MPU401_HW_ES18XX   7 /* AudioDrive ES18XX MPU-401 UART */
 
#define MPU401_HW_FM801   8 /* ForteMedia FM801 */
 
#define MPU401_HW_TRID4DWAVE   9 /* Trident 4DWave */
 
#define MPU401_HW_AZT2320   10 /* Aztech AZT2320 */
 
#define MPU401_HW_ALS100   11 /* Avance Logic ALS100 */
 
#define MPU401_HW_ICE1712   12 /* Envy24 */
 
#define MPU401_HW_VIA686A   13 /* VIA 82C686A */
 
#define MPU401_HW_YMFPCI   14 /* YMF DS-XG PCI */
 
#define MPU401_HW_CMIPCI   15 /* CMIPCI MPU-401 UART */
 
#define MPU401_HW_ALS4000   16 /* Avance Logic ALS4000 */
 
#define MPU401_HW_INTEL8X0   17 /* Intel8x0 driver */
 
#define MPU401_HW_PC98II   18 /* Roland PC98II */
 
#define MPU401_HW_AUREAL   19 /* Aureal Vortex */
 
#define MPU401_INFO_INPUT   (1 << 0) /* input stream */
 
#define MPU401_INFO_OUTPUT   (1 << 1) /* output stream */
 
#define MPU401_INFO_INTEGRATED   (1 << 2) /* integrated h/w port */
 
#define MPU401_INFO_MMIO   (1 << 3) /* MMIO access */
 
#define MPU401_INFO_TX_IRQ   (1 << 4) /* independent TX irq */
 
#define MPU401_INFO_IRQ_HOOK
 
#define MPU401_INFO_NO_ACK   (1 << 6) /* No ACK cmd needed */
 
#define MPU401_INFO_USE_TIMER   (1 << 15) /* internal */
 
#define MPU401_MODE_BIT_INPUT   0
 
#define MPU401_MODE_BIT_OUTPUT   1
 
#define MPU401_MODE_BIT_INPUT_TRIGGER   2
 
#define MPU401_MODE_BIT_OUTPUT_TRIGGER   3
 
#define MPU401_MODE_INPUT   (1<<MPU401_MODE_BIT_INPUT)
 
#define MPU401_MODE_OUTPUT   (1<<MPU401_MODE_BIT_OUTPUT)
 
#define MPU401_MODE_INPUT_TRIGGER   (1<<MPU401_MODE_BIT_INPUT_TRIGGER)
 
#define MPU401_MODE_OUTPUT_TRIGGER   (1<<MPU401_MODE_BIT_OUTPUT_TRIGGER)
 
#define MPU401_MODE_INPUT_TIMER   (1<<0)
 
#define MPU401_MODE_OUTPUT_TIMER   (1<<1)
 
#define MPU401C(mpu)   (mpu)->cport
 
#define MPU401D(mpu)   (mpu)->port
 
#define MPU401_RX_EMPTY   0x80
 
#define MPU401_TX_FULL   0x40
 
#define MPU401_RESET   0xff
 
#define MPU401_ENTER_UART   0x3f
 
#define MPU401_ACK   0xfe
 

Functions

irqreturn_t snd_mpu401_uart_interrupt (int irq, void *dev_id)
 
irqreturn_t snd_mpu401_uart_interrupt_tx (int irq, void *dev_id)
 
int snd_mpu401_uart_new (struct snd_card *card, int device, unsigned short hardware, unsigned long port, unsigned int info_flags, int irq, struct snd_rawmidi **rrawmidi)
 

Macro Definition Documentation

#define MPU401_ACK   0xfe

Definition at line 119 of file mpu401.h.

#define MPU401_ENTER_UART   0x3f

Definition at line 116 of file mpu401.h.

#define MPU401_HW_ALS100   11 /* Avance Logic ALS100 */

Definition at line 38 of file mpu401.h.

#define MPU401_HW_ALS4000   16 /* Avance Logic ALS4000 */

Definition at line 43 of file mpu401.h.

#define MPU401_HW_AUREAL   19 /* Aureal Vortex */

Definition at line 46 of file mpu401.h.

#define MPU401_HW_AZT2320   10 /* Aztech AZT2320 */

Definition at line 37 of file mpu401.h.

#define MPU401_HW_CMIPCI   15 /* CMIPCI MPU-401 UART */

Definition at line 42 of file mpu401.h.

#define MPU401_HW_CS4232   6 /* CS4232 */

Definition at line 33 of file mpu401.h.

#define MPU401_HW_ES1688   3 /* AudioDrive ES1688 MPU-401 UART */

Definition at line 30 of file mpu401.h.

#define MPU401_HW_ES18XX   7 /* AudioDrive ES18XX MPU-401 UART */

Definition at line 34 of file mpu401.h.

#define MPU401_HW_FM801   8 /* ForteMedia FM801 */

Definition at line 35 of file mpu401.h.

#define MPU401_HW_ICE1712   12 /* Envy24 */

Definition at line 39 of file mpu401.h.

#define MPU401_HW_INTEL8X0   17 /* Intel8x0 driver */

Definition at line 44 of file mpu401.h.

#define MPU401_HW_MPU401   1 /* native MPU401 */

Definition at line 28 of file mpu401.h.

#define MPU401_HW_OPL3SA2   4 /* Yamaha OPL3-SA2 */

Definition at line 31 of file mpu401.h.

#define MPU401_HW_PC98II   18 /* Roland PC98II */

Definition at line 45 of file mpu401.h.

#define MPU401_HW_SB   2 /* SoundBlaster MPU-401 UART */

Definition at line 29 of file mpu401.h.

#define MPU401_HW_SONICVIBES   5 /* S3 SonicVibes */

Definition at line 32 of file mpu401.h.

#define MPU401_HW_TRID4DWAVE   9 /* Trident 4DWave */

Definition at line 36 of file mpu401.h.

#define MPU401_HW_VIA686A   13 /* VIA 82C686A */

Definition at line 40 of file mpu401.h.

#define MPU401_HW_YMFPCI   14 /* YMF DS-XG PCI */

Definition at line 41 of file mpu401.h.

#define MPU401_INFO_INPUT   (1 << 0) /* input stream */

Definition at line 48 of file mpu401.h.

#define MPU401_INFO_INTEGRATED   (1 << 2) /* integrated h/w port */

Definition at line 50 of file mpu401.h.

#define MPU401_INFO_IRQ_HOOK
Value:
(1 << 5) /* mpu401 irq handler is called
from driver irq handler */

Definition at line 53 of file mpu401.h.

#define MPU401_INFO_MMIO   (1 << 3) /* MMIO access */

Definition at line 51 of file mpu401.h.

#define MPU401_INFO_NO_ACK   (1 << 6) /* No ACK cmd needed */

Definition at line 54 of file mpu401.h.

#define MPU401_INFO_OUTPUT   (1 << 1) /* output stream */

Definition at line 49 of file mpu401.h.

#define MPU401_INFO_TX_IRQ   (1 << 4) /* independent TX irq */

Definition at line 52 of file mpu401.h.

#define MPU401_INFO_USE_TIMER   (1 << 15) /* internal */

Definition at line 55 of file mpu401.h.

#define MPU401_MODE_BIT_INPUT   0

Definition at line 57 of file mpu401.h.

#define MPU401_MODE_BIT_INPUT_TRIGGER   2

Definition at line 59 of file mpu401.h.

#define MPU401_MODE_BIT_OUTPUT   1

Definition at line 58 of file mpu401.h.

#define MPU401_MODE_BIT_OUTPUT_TRIGGER   3

Definition at line 60 of file mpu401.h.

#define MPU401_MODE_INPUT   (1<<MPU401_MODE_BIT_INPUT)

Definition at line 62 of file mpu401.h.

#define MPU401_MODE_INPUT_TIMER   (1<<0)

Definition at line 67 of file mpu401.h.

#define MPU401_MODE_INPUT_TRIGGER   (1<<MPU401_MODE_BIT_INPUT_TRIGGER)

Definition at line 64 of file mpu401.h.

#define MPU401_MODE_OUTPUT   (1<<MPU401_MODE_BIT_OUTPUT)

Definition at line 63 of file mpu401.h.

#define MPU401_MODE_OUTPUT_TIMER   (1<<1)

Definition at line 68 of file mpu401.h.

#define MPU401_MODE_OUTPUT_TRIGGER   (1<<MPU401_MODE_BIT_OUTPUT_TRIGGER)

Definition at line 65 of file mpu401.h.

#define MPU401_RESET   0xff

Definition at line 115 of file mpu401.h.

#define MPU401_RX_EMPTY   0x80

Definition at line 111 of file mpu401.h.

#define MPU401_TX_FULL   0x40

Definition at line 112 of file mpu401.h.

#define MPU401C (   mpu)    (mpu)->cport

Definition at line 104 of file mpu401.h.

#define MPU401D (   mpu)    (mpu)->port

Definition at line 105 of file mpu401.h.

Function Documentation

irqreturn_t snd_mpu401_uart_interrupt ( int  irq,
void dev_id 
)

snd_mpu401_uart_interrupt - generic MPU401-UART interrupt handler : the irq number : mpu401 instance

Processes the interrupt for MPU401-UART i/o.

Definition at line 133 of file mpu401_uart.c.

irqreturn_t snd_mpu401_uart_interrupt_tx ( int  irq,
void dev_id 
)

snd_mpu401_uart_interrupt_tx - generic MPU401-UART transmit irq handler : the irq number : mpu401 instance

Processes the interrupt for MPU401-UART output.

Definition at line 152 of file mpu401_uart.c.

int snd_mpu401_uart_new ( struct snd_card card,
int  device,
unsigned short  hardware,
unsigned long  port,
unsigned int  info_flags,
int  irq,
struct snd_rawmidi **  rrawmidi 
)

snd_mpu401_uart_new - create an MPU401-UART instance : the card instance : the device index, zero-based : the hardware type, MPU401_HW_XXXX : the base address of MPU401 port : bitflags MPU401_INFO_XXX : the ISA irq number, -1 if not to be allocated : the pointer to store the new rawmidi instance

Creates a new MPU-401 instance.

Note that the rawmidi instance is returned on the rrawmidi argument, not the mpu401 instance itself. To access to the mpu401 instance, cast from rawmidi->private_data (with struct snd_mpu401 magic-cast).

Returns zero if successful, or a negative error code.

Definition at line 524 of file mpu401_uart.c.