[#3874] SPORT in PIO and DITFS low hangs driver
Submitted By: Jim Lee
Open Date
2008-01-30 14:54:33 Close Date
2008-04-03 18:42:36
Priority:
Medium Assignee:
Cliff Cai
Status:
Closed Fixed In Release:
N/A
Found In Release:
2006R2-RC2 Release:
2.6.16.27-ADI-2006R2
Category:
Drivers Board:
Custom
Processor:
BF532 Silicon Revision:
Is this bug repeatable?:
Yes Resolution:
Fixed
Uboot version or rev.:
U-Boot-1.1.3-ADI Toolchain version or rev.:
gcc 4.1.1
App binary format:
N/A
Summary: SPORT in PIO and DITFS low hangs driver
Details:
In file :
../linux2.6.x/drivers/char/bfin_sport.c
The PIO mode sport tx function:
static irqreturn_t sport_tx_handler(int irq, void *dev_id, struct pt_regs *regs)
apparently needs some clean up code so it doesn't hang the driver when DITFS is low. Adding lines from the dma version of the tx function
static irqreturn_t dma_tx_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
seem to fix the problem. The lines clear the tx enable bit and handle the queue; suggested fix is to add these lines:
dev->regs->tcr1 &= ~TSPEN;
__builtin_bfin_ssync();
dev->wait_con = 1;
wake_up(&dev->waitq);
to the function
static irqreturn_t sport_tx_handler(int irq, void *dev_id, struct pt_regs *regs)
Jim
Follow-ups
--- Cliff Cai 2008-02-01 03:57:56
Thanks a lot,actually,we've added these code in the later release.
Cliff
Files
Changes
Commits
Dependencies
Duplicates
Associations
Tags
File Name File Type File Size Posted By
No Files Were Found