patch-2.4.0-test5 linux/arch/arm/kernel/dma-a5k.c
Next file: linux/arch/arm/kernel/dma-arc.c
Previous file: linux/arch/arm/kernel/bios32.c
Back to the patch index
Back to the overall index
- Lines: 100
- Date:
Wed Dec 31 16:00:00 1969
- Orig file:
v2.4.0-test4/linux/arch/arm/kernel/dma-a5k.c
- Orig date:
Fri Jun 23 21:55:07 2000
diff -u --recursive --new-file v2.4.0-test4/linux/arch/arm/kernel/dma-a5k.c linux/arch/arm/kernel/dma-a5k.c
@@ -1,99 +0,0 @@
-/*
- * arch/arm/kernel/dma-a5k.c
- *
- * Copyright (C) 1998 Russell King
- *
- * DMA functions specific to A5000 architecture
- */
-#include <linux/sched.h>
-#include <linux/init.h>
-
-#include <asm/dma.h>
-#include <asm/fiq.h>
-#include <asm/io.h>
-#include <asm/hardware.h>
-
-#include "dma.h"
-
-static struct fiq_handler fh = {
- name: "floppydma"
-};
-
-int arch_request_dma(dmach_t channel, dma_t *dma, const char *dev_id)
-{
- if (channel == DMA_VIRTUAL_FLOPPY)
- return 0;
- else
- return -EINVAL;
-}
-
-void arch_free_dma(dmach_t channel, dma_t *dma)
-{
- if (channel != DMA_VIRTUAL_FLOPPY)
- printk("arch_free_dma: invalid channel %d\n", channel);
-}
-
-int arch_get_dma_residue(dmach_t channel, dma_t *dma)
-{
- if (channel != DMA_VIRTUAL_FLOPPY)
- printk("arch_dma_count: invalid channel %d\n", channel);
- else {
- struct pt_regs regs;
- get_fiq_regs(®s);
- return regs.ARM_r9;
- }
- return 0;
-}
-
-void arch_enable_dma(dmach_t channel, dma_t *dma)
-{
- if (channel != DMA_VIRTUAL_FLOPPY)
- printk("arch_enable_dma: invalid channel %d\n", channel);
- else {
- struct pt_regs regs;
- void *fiqhandler_start;
- unsigned int fiqhandler_length;
- extern void floppy_fiqsetup(unsigned long len, unsigned long addr,
- unsigned long port);
-
- if (dma->dma_mode == DMA_MODE_READ) {
- extern unsigned char floppy_fiqin_start, floppy_fiqin_end;
- fiqhandler_start = &floppy_fiqin_start;
- fiqhandler_length = &floppy_fiqin_end - &floppy_fiqin_start;
- } else {
- extern unsigned char floppy_fiqout_start, floppy_fiqout_end;
- fiqhandler_start = &floppy_fiqout_start;
- fiqhandler_length = &floppy_fiqout_end - &floppy_fiqout_start;
- }
- if (claim_fiq(&fh)) {
- printk("floppydma: couldn't claim FIQ.\n");
- return;
- }
- memcpy((void *)0x1c, fiqhandler_start, fiqhandler_length);
- regs.ARM_r9 = dma->buf.length;
- regs.ARM_r10 = __bus_to_virt(dma->buf.address);
- regs.ARM_fp = (int)PCIO_FLOPPYDMABASE;
- set_fiq_regs(®s);
- enable_irq(dma->dma_irq);
- }
-}
-
-void arch_disable_dma(dmach_t channel, dma_t *dma)
-{
- if (channel != DMA_VIRTUAL_FLOPPY)
- printk("arch_disable_dma: invalid channel %d\n", channel);
- else {
- disable_irq(dma->dma_irq);
- release_fiq(&fh);
- }
-}
-
-int arch_set_dma_speed(dmach_t channel, dma_t *dma, int cycle_ns)
-{
- return 0;
-}
-
-void __init arch_dma_init(dma_t *dma)
-{
- dma[DMA_VIRTUAL_FLOPPY].dma_irq = 64;
-}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)