Annotation of margi2/dram.h, revision 1.1.1.1

1.1       cvs         1: /* 
                      2:     dram.h
                      3: 
                      4:     Copyright (C) Christian Wolff for convergence integrated media.
                      5: 
                      6:     This program is free software; you can redistribute it and/or modify
                      7:     it under the terms of the GNU General Public License as published by
                      8:     the Free Software Foundation; either version 2 of the License, or
                      9:     (at your option) any later version.
                     10: 
                     11:     This program is distributed in the hope that it will be useful,
                     12:     but WITHOUT ANY WARRANTY; without even the implied warranty of
                     13:     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     14:     GNU General Public License for more details.
                     15: 
                     16:     You should have received a copy of the GNU General Public License
                     17:     along with this program; if not, write to the Free Software
                     18:     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
                     19: */
                     20: 
                     21: #ifndef DRAM_H
                     22: #define DRAM_H
                     23: 
                     24:     /////////////////////////////////
                     25:    //                             //
                     26:   //  L64021 DRAM Memory Access  //
                     27:  //                             //
                     28: /////////////////////////////////
                     29: 
                     30: #include "cardbase.h"
                     31: 
                     32:    // where: 21 bit DRAM Word-Address, 4 word aligned
                     33:   // size: bytes (8 byte aligned, remainder will be filled with fill value)
                     34:  // data: fill value
                     35: // returns 0 on success, -1 on collision with DMA transfer
                     36: int DRAMFillByte(struct cvdv_cards *card, u32 where, int size, u8 data);
                     37: 
                     38:    // where: 21 bit DRAM Word-Address, 8 byte aligned
                     39:   // size: bytes (8 byte aligned, remainder will be filled with garbage)
                     40:  // swap: 0=normal mode, 1=write each 8 bytes on reverse order (7,6,5,4,3,2,1,0,15,14,13,etc.)
                     41: // returns 0 on success, -1 on collision with DMA transfer
                     42: int DRAMWriteByte(struct cvdv_cards *card, u32 where, int size, u8 * data,
                     43:                  int swapburst);
                     44: 
                     45:    // where: 21 bit DRAM Word-Address, 4 word aligned
                     46:   // size: words (4 word aligned, remainder will be filled with garbage)
                     47:  // swap: 0=normal mode, 1=write each 8 bytes on reverse order (7,6,5,4,3,2,1,0,15,14,13,etc.)
                     48: // returns 0 on success, -1 on collision with DMA transfer
                     49: int DRAMWriteWord(struct cvdv_cards *card, u32 where, int size, u16 * data,
                     50:                  int swap);
                     51: 
                     52:    // where: 21 bit DRAM Word-Address, 8 byte aligned
                     53:   // size: bytes
                     54:  // swap: 0=normal mode, 1=write each 8 bytes on reverse order (7,6,5,4,3,2,1,0,15,14,13,etc.)
                     55: // returns 0 on success, -1 on collision with DMA transfer
                     56: int DRAMReadByte(struct cvdv_cards *card, u32 where, int size, u8 * data,
                     57:                 int swap);
                     58: 
                     59: 
                     60:    // where: 21 bit DRAM Word-Address, 4 word aligned
                     61:   // size: words
                     62:  // swap: 0=normal mode, 1=write each 8 bytes on reverse order (7,6,5,4,3,2,1,0,15,14,13,etc.)
                     63: // returns 0 on success, -1 on collision with DMA transfer
                     64: int DRAMReadWord(struct cvdv_cards *card, u32 where, int size, u16 * data,
                     65:                 int swap);
                     66: 
                     67:      // where: 21 bit DRAM Word-Address, 4 word aligned
                     68:     // size: words
                     69:    // swap: 0=normal mode, 1=write each 8 bytes on reverse order (7,6,5,4,3,2,1,0,15,14,13,etc.)
                     70:   // returns -1 on success (equal content), 
                     71:  //   word position on error (compare failure), 
                     72: //   -2 on collision with DMA transfer
                     73: int DRAMVerifyWord(struct cvdv_cards *card, u32 where, int size,
                     74:                   u16 * data, int swap);
                     75: 
                     76:       // WARNING: better not use this one. It can collide with normal DRAM access and other DMA transfers
                     77:      // If you want to use it, implement card->DMAMoveBusy in all other DMA functions, initialisation, and header file
                     78:     // source, destination: 21 bit DRAM Word-Address, 4 word aligned
                     79:    // size: byte (8 byte aligned, hang over bytes will NOT be moved)
                     80:   // returns 0 on success on success,
                     81:  //   -1 on collision with DMA transfer,
                     82: //   -2 on interrupt handler not installed
                     83: int DRAMMove(struct cvdv_cards *card, u32 source, u32 destination,
                     84:             int size);
                     85: 
                     86:   // size in words
                     87:  // align:  number of words on wich start of block will be aligned
                     88: // return value is 21 bit word address, or 0xFFFFFFFF on error
                     89: u32 DRAMAlloc(struct cvdv_cards *card, u32 size, int align);
                     90: 
                     91:  // addr is the return value of that resp. DRAMAlloc call
                     92: // returns 0 on success (always)
                     93: int DRAMFree(struct cvdv_cards *card, u32 addr);
                     94: 
                     95:  // free all blocks
                     96: // returns 0 on success (always)
                     97: int DRAMRelease(struct cvdv_cards *card);
                     98: 
                     99: #endif                         /* DRAM_H */

LinuxTV legacy CVS <linuxtv.org/cvs>