[#3874] SPORT in PIO and DITFS low hangs driver

Document created by Aaronwu Employee on Aug 28, 2013
Version 1Show Document
  • View in full screen mode

[#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

Attachments

    Outcomes