Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

dma-rpc.c File Reference

#include <linux/sched.h>
#include <linux/malloc.h>
#include <linux/mman.h>
#include <linux/init.h>
#include <asm/page.h>
#include <asm/dma.h>
#include <asm/fiq.h>
#include <asm/io.h>
#include <asm/iomd.h>
#include <asm/hardware.h>
#include <asm/uaccess.h>
#include "dma.h"

Include dependency graph for dma-rpc.c:

Go to the source code of this file.

Defines

#define TRANSFER_SIZE   2
#define CURA   (0)
#define ENDA   ((IOMD_IO0ENDA - IOMD_IO0CURA) << 2)
#define CURB   ((IOMD_IO0CURB - IOMD_IO0CURA) << 2)
#define ENDB   ((IOMD_IO0ENDB - IOMD_IO0CURA) << 2)
#define CR   ((IOMD_IO0CR - IOMD_IO0CURA) << 2)
#define ST   ((IOMD_IO0ST - IOMD_IO0CURA) << 2)
#define state_prog_a   0
#define state_wait_a   1
#define state_wait_b   2

Functions

static void arch_get_next_sg (dmasg_t *sg, dma_t *dma)
static void arch_setup_dma_a (dmasg_t *sg, dma_t *dma)
static void arch_setup_dma_b (dmasg_t *sg, dma_t *dma)
static void arch_dma_handle (int irq, void *dev_id, struct pt_regs *regs)
int arch_request_dma (dmach_t channel, dma_t *dma, const char *dev_name)
void arch_free_dma (dmach_t channel, dma_t *dma)
int arch_get_dma_residue (dmach_t channel, dma_t *dma)
void arch_enable_dma (dmach_t channel, dma_t *dma)
void arch_disable_dma (dmach_t channel, dma_t *dma)
int arch_set_dma_speed (dmach_t channel, dma_t *dma, int cycle)
void __init arch_dma_init (dma_t *dma)

Variables

static struct fiq_handler fh = { NULL, "floppydma", NULL, NULL }


Define Documentation

#define CR   ((IOMD_IO0CR - IOMD_IO0CURA) << 2)
 

Definition at line 44 of file dma-rpc.c.

Referenced by arch_disable_dma(), and arch_enable_dma().

#define CURA   (0)
 

Definition at line 40 of file dma-rpc.c.

Referenced by arch_setup_dma_a().

#define CURB   ((IOMD_IO0CURB - IOMD_IO0CURA) << 2)
 

Definition at line 42 of file dma-rpc.c.

Referenced by arch_setup_dma_b().

#define ENDA   ((IOMD_IO0ENDA - IOMD_IO0CURA) << 2)
 

Definition at line 41 of file dma-rpc.c.

Referenced by arch_setup_dma_a().

#define ENDB   ((IOMD_IO0ENDB - IOMD_IO0CURA) << 2)
 

Definition at line 43 of file dma-rpc.c.

Referenced by arch_setup_dma_b().

#define ST   ((IOMD_IO0ST - IOMD_IO0CURA) << 2)
 

Definition at line 45 of file dma-rpc.c.

Referenced by arch_dma_handle(), autoLoadDefaultMap(), and fix_alignment().

#define state_prog_a   0
 

Definition at line 47 of file dma-rpc.c.

Referenced by arch_dma_handle(), and arch_enable_dma().

#define state_wait_a   1
 

Definition at line 48 of file dma-rpc.c.

Referenced by arch_dma_handle().

#define state_wait_b   2
 

Definition at line 49 of file dma-rpc.c.

Referenced by arch_dma_handle().

#define TRANSFER_SIZE   2
 

Definition at line 38 of file dma-rpc.c.

Referenced by arch_enable_dma(), arch_get_next_sg(), and hades_dma_emulator().


Function Documentation

void arch_disable_dma dmach_t  channel,
dma_t dma
 

Definition at line 298 of file dma-rpc.c.

References CR, disable_irq, DMA_0, DMA_1, DMA_2, DMA_3, dma_t::dma_base, DMA_CR_E, dma_t::dma_irq, DMA_S0, DMA_S1, DMA_VIRTUAL_FLOPPY, inb_t, outb_t, printk, and release_fiq().

Here is the call graph for this function:

static void arch_dma_handle int  irq,
void *  dev_id,
struct pt_regs regs
[static]
 

Definition at line 102 of file dma-rpc.c.

References arch_get_next_sg(), arch_setup_dma_a(), arch_setup_dma_b(), dma_t::cur_sg, disable_irq, dma, dma_t::dma_base, DMA_ST_AB, DMA_ST_INT, DMA_ST_OFL, inb_t, NULL, dma_t::sg, ST, dma_t::state, state_prog_a, state_wait_a, state_wait_b, and status.

Referenced by arch_request_dma().

Here is the call graph for this function:

void __init arch_dma_init dma_t dma  ) 
 

Definition at line 364 of file dma-rpc.c.

References dma_t::dma_base, DMA_EXT_IO2, DMA_EXT_IO3, dma_t::dma_irq, DMA_VIRTUAL_FLOPPY, ioaddr, IOMD_DMAEXT, IOMD_DMATCR, IOMD_IO0CR, IOMD_IO0CURA, IOMD_IO1CR, IOMD_IO1CURA, IOMD_IO2CR, IOMD_IO2CURA, IOMD_IO3CR, IOMD_IO3CURA, IOMD_SD0CURA, IOMD_SD1CURA, IRQ_DMA0, IRQ_DMA1, IRQ_DMA2, IRQ_DMA3, IRQ_DMAS0, IRQ_DMAS1, and outb.

void arch_enable_dma dmach_t  channel,
dma_t dma
 

Definition at line 235 of file dma-rpc.c.

References __bus_to_virt, addr, dmasg_t::address, dma_t::buf, claim_fiq(), CR, DMA_0, DMA_1, DMA_2, DMA_3, dma_t::dma_base, DMA_CR_C, DMA_CR_D, DMA_CR_E, dma_t::dma_irq, dma_t::dma_mode, DMA_MODE_READ, DMA_S0, DMA_S1, DMA_VIRTUAL_FLOPPY, enable_irq, dma_t::invalid, len, dmasg_t::length, memcpy, outb_t, PCIO_FLOPPYDMABASE, port, printk, set_fiq_handler(), set_fiq_regs(), dma_t::state, state_prog_a, TRANSFER_SIZE, and x1c.

Here is the call graph for this function:

void arch_free_dma dmach_t  channel,
dma_t dma
 

Definition at line 195 of file dma-rpc.c.

References DMA_0, DMA_1, DMA_2, DMA_3, dma_t::dma_irq, DMA_S0, DMA_S1, DMA_VIRTUAL_FLOPPY, free_irq(), and printk.

Here is the call graph for this function:

int arch_get_dma_residue dmach_t  channel,
dma_t dma
 

Definition at line 212 of file dma-rpc.c.

References DMA_0, DMA_1, DMA_2, DMA_3, DMA_S0, DMA_S1, DMA_VIRTUAL_FLOPPY, get_fiq_regs(), and printk.

Here is the call graph for this function:

static void arch_get_next_sg dmasg_t sg,
dma_t dma
[static]
 

Definition at line 51 of file dma-rpc.c.

References dmasg_t::address, DMA_END_L, DMA_END_S, end, dmasg_t::length, NULL, offset, PAGE_MASK, PAGE_SIZE, dma_t::sg, dma_t::sgcount, and TRANSFER_SIZE.

Referenced by arch_dma_handle().

int arch_request_dma dmach_t  channel,
dma_t dma,
const char *  dev_name
 

Definition at line 162 of file dma-rpc.c.

References arch_dma_handle(), disable_irq, DMA_0, DMA_1, DMA_2, DMA_3, dma_t::dma_irq, DMA_S0, DMA_S1, DMA_VIRTUAL_FLOPPY, DMA_VIRTUAL_SOUND, EINVAL, request_irq(), restore_flags, ret, SA_INTERRUPT, and save_flags_cli.

Here is the call graph for this function:

int arch_set_dma_speed dmach_t  channel,
dma_t dma,
int  cycle
 

Definition at line 322 of file dma-rpc.c.

References DMA_0, DMA_1, DMA_2, DMA_3, inb, IOMD_DMATCR, outb, and speed.

static void arch_setup_dma_a dmasg_t sg,
dma_t dma
[inline, static]
 

Definition at line 90 of file dma-rpc.c.

References dmasg_t::address, CURA, dma_t::dma_base, ENDA, dmasg_t::length, and outl_t.

Referenced by arch_dma_handle().

static void arch_setup_dma_b dmasg_t sg,
dma_t dma
[inline, static]
 

Definition at line 96 of file dma-rpc.c.

References dmasg_t::address, CURB, dma_t::dma_base, ENDB, dmasg_t::length, and outl_t.

Referenced by arch_dma_handle().


Variable Documentation

struct fiq_handler fh = { NULL, "floppydma", NULL, NULL } [static]
 

Definition at line 23 of file dma-rpc.c.