Release 4.11 drivers/scsi/pcmcia/nsp_io.h
/*
NinjaSCSI I/O funtions
By: YOKOTA Hiroshi <yokota@netlab.is.tsukuba.ac.jp>
This software may be used and distributed according to the terms of
the GNU General Public License.
*/
/* $Id: nsp_io.h,v 1.3 2003/08/04 21:15:26 elca Exp $ */
#ifndef __NSP_IO_H__
#define __NSP_IO_H__
static inline void nsp_write(unsigned int base,
unsigned int index,
unsigned char val);
static inline unsigned char nsp_read(unsigned int base,
unsigned int index);
static inline void nsp_index_write(unsigned int BaseAddr,
unsigned int Register,
unsigned char Value);
static inline unsigned char nsp_index_read(unsigned int BaseAddr,
unsigned int Register);
/*******************************************************************
* Basic IO
*/
static inline void nsp_write(unsigned int base,
unsigned int index,
unsigned char val)
{
outb(val, (base + index));
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Linus Torvalds | 30 | 100.00% | 1 | 100.00% |
Total | 30 | 100.00% | 1 | 100.00% |
static inline unsigned char nsp_read(unsigned int base,
unsigned int index)
{
return inb(base + index);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Linus Torvalds | 24 | 100.00% | 1 | 100.00% |
Total | 24 | 100.00% | 1 | 100.00% |
/**********************************************************************
* Indexed IO
*/
static inline unsigned char nsp_index_read(unsigned int BaseAddr,
unsigned int Register)
{
outb(Register, BaseAddr + INDEXREG);
return inb(BaseAddr + DATAREG);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Linus Torvalds | 33 | 100.00% | 1 | 100.00% |
Total | 33 | 100.00% | 1 | 100.00% |
static inline void nsp_index_write(unsigned int BaseAddr,
unsigned int Register,
unsigned char Value)
{
outb(Register, BaseAddr + INDEXREG);
outb(Value, BaseAddr + DATAREG);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Linus Torvalds | 37 | 100.00% | 1 | 100.00% |
Total | 37 | 100.00% | 1 | 100.00% |
/*********************************************************************
* fifo func
*/
/* read 8 bit FIFO */
static inline void nsp_multi_read_1(unsigned int BaseAddr,
unsigned int Register,
void *buf,
unsigned long count)
{
insb(BaseAddr + Register, buf, count);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Linus Torvalds | 34 | 100.00% | 1 | 100.00% |
Total | 34 | 100.00% | 1 | 100.00% |
static inline void nsp_fifo8_read(unsigned int base,
void *buf,
unsigned long count)
{
/*nsp_dbg(NSP_DEBUG_DATA_IO, "buf=0x%p, count=0x%lx", buf, count);*/
nsp_multi_read_1(base, FIFODATA, buf, count);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Linus Torvalds | 31 | 100.00% | 2 | 100.00% |
Total | 31 | 100.00% | 2 | 100.00% |
/*--------------------------------------------------------------*/
/* read 16 bit FIFO */
static inline void nsp_multi_read_2(unsigned int BaseAddr,
unsigned int Register,
void *buf,
unsigned long count)
{
insw(BaseAddr + Register, buf, count);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Linus Torvalds | 34 | 100.00% | 1 | 100.00% |
Total | 34 | 100.00% | 1 | 100.00% |
static inline void nsp_fifo16_read(unsigned int base,
void *buf,
unsigned long count)
{
//nsp_dbg(NSP_DEBUG_DATA_IO, "buf=0x%p, count=0x%lx*2", buf, count);
nsp_multi_read_2(base, FIFODATA, buf, count);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Linus Torvalds | 31 | 100.00% | 2 | 100.00% |
Total | 31 | 100.00% | 2 | 100.00% |
/*--------------------------------------------------------------*/
/* read 32bit FIFO */
static inline void nsp_multi_read_4(unsigned int BaseAddr,
unsigned int Register,
void *buf,
unsigned long count)
{
insl(BaseAddr + Register, buf, count);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Linus Torvalds | 34 | 100.00% | 1 | 100.00% |
Total | 34 | 100.00% | 1 | 100.00% |
static inline void nsp_fifo32_read(unsigned int base,
void *buf,
unsigned long count)
{
//nsp_dbg(NSP_DEBUG_DATA_IO, "buf=0x%p, count=0x%lx*4", buf, count);
nsp_multi_read_4(base, FIFODATA, buf, count);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Linus Torvalds | 31 | 100.00% | 2 | 100.00% |
Total | 31 | 100.00% | 2 | 100.00% |
/*----------------------------------------------------------*/
/* write 8bit FIFO */
static inline void nsp_multi_write_1(unsigned int BaseAddr,
unsigned int Register,
void *buf,
unsigned long count)
{
outsb(BaseAddr + Register, buf, count);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Linus Torvalds | 34 | 100.00% | 1 | 100.00% |
Total | 34 | 100.00% | 1 | 100.00% |
static inline void nsp_fifo8_write(unsigned int base,
void *buf,
unsigned long count)
{
nsp_multi_write_1(base, FIFODATA, buf, count);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Linus Torvalds | 30 | 100.00% | 1 | 100.00% |
Total | 30 | 100.00% | 1 | 100.00% |
/*---------------------------------------------------------*/
/* write 16bit FIFO */
static inline void nsp_multi_write_2(unsigned int BaseAddr,
unsigned int Register,
void *buf,
unsigned long count)
{
outsw(BaseAddr + Register, buf, count);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Linus Torvalds | 34 | 100.00% | 1 | 100.00% |
Total | 34 | 100.00% | 1 | 100.00% |
static inline void nsp_fifo16_write(unsigned int base,
void *buf,
unsigned long count)
{
nsp_multi_write_2(base, FIFODATA, buf, count);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Linus Torvalds | 30 | 100.00% | 1 | 100.00% |
Total | 30 | 100.00% | 1 | 100.00% |
/*---------------------------------------------------------*/
/* write 32bit FIFO */
static inline void nsp_multi_write_4(unsigned int BaseAddr,
unsigned int Register,
void *buf,
unsigned long count)
{
outsl(BaseAddr + Register, buf, count);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Linus Torvalds | 34 | 100.00% | 1 | 100.00% |
Total | 34 | 100.00% | 1 | 100.00% |
static inline void nsp_fifo32_write(unsigned int base,
void *buf,
unsigned long count)
{
nsp_multi_write_4(base, FIFODATA, buf, count);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Linus Torvalds | 30 | 100.00% | 1 | 100.00% |
Total | 30 | 100.00% | 1 | 100.00% |
/*====================================================================*/
static inline void nsp_mmio_write(unsigned long base,
unsigned int index,
unsigned char val)
{
unsigned char *ptr = (unsigned char *)(base + NSP_MMIO_OFFSET + index);
writeb(val, ptr);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Alan Cox | 44 | 100.00% | 1 | 100.00% |
Total | 44 | 100.00% | 1 | 100.00% |
static inline unsigned char nsp_mmio_read(unsigned long base,
unsigned int index)
{
unsigned char *ptr = (unsigned char *)(base + NSP_MMIO_OFFSET + index);
return readb(ptr);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Alan Cox | 40 | 100.00% | 1 | 100.00% |
Total | 40 | 100.00% | 1 | 100.00% |
/*-----------*/
static inline unsigned char nsp_mmio_index_read(unsigned long base,
unsigned int reg)
{
unsigned char *index_ptr = (unsigned char *)(base + NSP_MMIO_OFFSET + INDEXREG);
unsigned char *data_ptr = (unsigned char *)(base + NSP_MMIO_OFFSET + DATAREG);
writeb((unsigned char)reg, index_ptr);
return readb(data_ptr);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Alan Cox | 69 | 100.00% | 1 | 100.00% |
Total | 69 | 100.00% | 1 | 100.00% |
static inline void nsp_mmio_index_write(unsigned long base,
unsigned int reg,
unsigned char val)
{
unsigned char *index_ptr = (unsigned char *)(base + NSP_MMIO_OFFSET + INDEXREG);
unsigned char *data_ptr = (unsigned char *)(base + NSP_MMIO_OFFSET + DATAREG);
writeb((unsigned char)reg, index_ptr);
writeb(val, data_ptr);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Alan Cox | 73 | 100.00% | 1 | 100.00% |
Total | 73 | 100.00% | 1 | 100.00% |
/* read 32bit FIFO */
static inline void nsp_mmio_multi_read_4(unsigned long base,
unsigned int Register,
void *buf,
unsigned long count)
{
unsigned long *ptr = (unsigned long *)(base + Register);
unsigned long *tmp = (unsigned long *)buf;
int i;
//nsp_dbg(NSP_DEBUG_DATA_IO, "base 0x%0lx ptr 0x%p",base,ptr);
for (i = 0; i < count; i++) {
*tmp = readl(ptr);
//nsp_dbg(NSP_DEBUG_DATA_IO, "<%d,%p,%p,%lx>", i, ptr, tmp, *tmp);
tmp++;
}
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Alan Cox | 80 | 97.56% | 1 | 50.00% |
Linus Torvalds | 2 | 2.44% | 1 | 50.00% |
Total | 82 | 100.00% | 2 | 100.00% |
static inline void nsp_mmio_fifo32_read(unsigned int base,
void *buf,
unsigned long count)
{
//nsp_dbg(NSP_DEBUG_DATA_IO, "buf=0x%p, count=0x%lx*4", buf, count);
nsp_mmio_multi_read_4(base, FIFODATA, buf, count);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Alan Cox | 30 | 96.77% | 1 | 50.00% |
Linus Torvalds | 1 | 3.23% | 1 | 50.00% |
Total | 31 | 100.00% | 2 | 100.00% |
static inline void nsp_mmio_multi_write_4(unsigned long base,
unsigned int Register,
void *buf,
unsigned long count)
{
unsigned long *ptr = (unsigned long *)(base + Register);
unsigned long *tmp = (unsigned long *)buf;
int i;
//nsp_dbg(NSP_DEBUG_DATA_IO, "base 0x%0lx ptr 0x%p",base,ptr);
for (i = 0; i < count; i++) {
writel(*tmp, ptr);
//nsp_dbg(NSP_DEBUG_DATA_IO, "<%d,%p,%p,%lx>", i, ptr, tmp, *tmp);
tmp++;
}
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Alan Cox | 80 | 97.56% | 1 | 50.00% |
Linus Torvalds | 2 | 2.44% | 1 | 50.00% |
Total | 82 | 100.00% | 2 | 100.00% |
static inline void nsp_mmio_fifo32_write(unsigned int base,
void *buf,
unsigned long count)
{
//nsp_dbg(NSP_DEBUG_DATA_IO, "buf=0x%p, count=0x%lx*4", buf, count);
nsp_mmio_multi_write_4(base, FIFODATA, buf, count);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Alan Cox | 30 | 96.77% | 1 | 50.00% |
Linus Torvalds | 1 | 3.23% | 1 | 50.00% |
Total | 31 | 100.00% | 2 | 100.00% |
#endif
/* end */
Overall Contributors
Person | Tokens | Prop | Commits | CommitProp |
Linus Torvalds | 608 | 57.52% | 3 | 75.00% |
Alan Cox | 449 | 42.48% | 1 | 25.00% |
Total | 1057 | 100.00% | 4 | 100.00% |
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.