OpenCores
URL https://opencores.org/ocsvn/pcie_ds_dma/pcie_ds_dma/trunk

Subversion Repositories pcie_ds_dma

[/] [pcie_ds_dma/] [trunk/] [soft/] [linux/] [driver/] [pexdrv/] [pexproc.c] - Diff between revs 2 and 6

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 2 Rev 6
Line 29... Line 29...
        remove_proc_entry( name, NULL );
        remove_proc_entry( name, NULL );
}
}
 
 
//--------------------------------------------------------------------
//--------------------------------------------------------------------
 
 
 
int pex_show_capabilities( char *buf, struct pex_device *brd )
 
{
 
    int i = 0, res = -1;
 
    char *p = buf;
 
    u8 cap;
 
    u8 cap_id;
 
 
 
    p += sprintf(p,"\n" );
 
    p += sprintf(p,"  Device capabilities\n" );
 
    p += sprintf(p,"\n" );
 
 
 
    res = pci_read_config_byte(brd->m_pci, 0x34, &cap);
 
    if(res < 0) {
 
        p += sprintf(p, "  Error read capabilities pointer\n");
 
        goto err_exit;
 
    }
 
 
 
    res = pci_read_config_byte(brd->m_pci, cap, &cap_id);
 
    if(res < 0) {
 
        p += sprintf(p, "  Error read capabilities id\n");
 
        goto err_exit;
 
    }
 
 
 
    if(cap_id != 0x10) { //not PCI Express capabilities
 
 
 
        res = pci_read_config_byte(brd->m_pci, cap+1, &cap);
 
        if(res < 0) {
 
            p += sprintf(p, "  Error read capabilities id\n");
 
            goto err_exit;
 
        }
 
    }
 
 
 
    res = pci_read_config_byte(brd->m_pci, cap, &cap_id);
 
    if(res < 0) {
 
        p += sprintf(p, "  Error read capabilities id\n");
 
        goto err_exit;
 
    } else {
 
        p += sprintf(p, "  CAP_ID = 0x%X\n", cap_id);
 
    }
 
 
 
    if(cap_id != 0x10) {
 
        p += sprintf(p, "  Can't find PCI Express capabilities\n");
 
        goto err_exit;
 
    }
 
 
 
    for(i=0; i<9; i++) {
 
        u32 reg = 0;
 
        int j = cap + 4*i;
 
        res = pci_read_config_dword(brd->m_pci, j, &reg);
 
        if(res < 0) {
 
            p += sprintf(p, "  Error read capabilities sructure: offset %x\n", j);
 
            goto err_exit;
 
        }
 
        p += sprintf(p, "  %x: = 0x%X\n", j, reg);
 
    }
 
 
 
    err_exit:
 
 
 
    return (p-buf);
 
}
 
 
 
//--------------------------------------------------------------------
 
 
int pex_proc_info(  char *buf,
int pex_proc_info(  char *buf,
                    char **start,
                    char **start,
                    off_t off,
                    off_t off,
                    int count,
                    int count,
                    int *eof,
                    int *eof,
Line 46... Line 109...
            p += sprintf(p,"  Invalid device pointer\n" );
            p += sprintf(p,"  Invalid device pointer\n" );
            *eof = 1;
            *eof = 1;
            return p - buf;
            return p - buf;
        }
        }
 
 
 
    p += pex_show_capabilities(p, brd);
 
 
 
    p += sprintf(p,"\n" );
        p += sprintf(p,"  Device information\n" );
        p += sprintf(p,"  Device information\n" );
 
 
        p += sprintf(p, "  m_TotalIRQ = %d\n", atomic_read(&brd->m_TotalIRQ));
        p += sprintf(p, "  m_TotalIRQ = %d\n", atomic_read(&brd->m_TotalIRQ));
 
 
 
 
 
 
        for(iBlock = 0; iBlock < brd->m_BlockCnt; iBlock++)
        for(iBlock = 0; iBlock < brd->m_BlockCnt; iBlock++)
        {
        {
                u32 FifoAddr = 0;
                u32 FifoAddr = 0;
                u16 val = 0;
                u16 val = 0;
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.