slicoss: a hardware debugging question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I've been working on the staging slicoss driver (for an ethernet NIC).
I haven't been able to find any detailed documentation about the card
online, all I have is the source code.

During the PCI probe routine slic_entry_probe(), the driver attempts
to load some configuration data from the card. The driver disables
interrupts from the deviece and polls the ISR which signals the
completed transfer.

The relevant code is in
drivers/staging/slicoss/slicoss.c:slic_card_init:
[...]
slic_config_get(adapter, phys_configl, phys_configh);

for (;;) {
        if (adapter->pshmem->isr) {
                [...]
        } else {
                mdelay(1);
                i++;
                if (i > 5000) {
                        dev_err(&adapter->pcidev->dev,
                                "%d config data fetch timed out!\n",
                                adapter->port);
                        [...]
                }
        }
}
[...]

The only problem is, this times out more than half the time. And when it
succeeds, it [seemingly] always takes 22 cycles. I have tried increasing
5000 to various higher numbers (up to 50000) with no effect. I thought it
might be a compiler optimization or coherence issue so I threw a mb() in
the loop and that seemed to have no effect as well.

Any recommendations on debugging?

Thanks.
--David

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies




[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux