2008-04-09 03:39:30     blackfin spi bus concurrency

2008-04-09 03:39:30     blackfin spi bus concurrency

Denis Grigoriev (RUSSIAN FEDERATION)

Message: 53882   

Hi All! I have bf533 custom board with mtd dataflash enable_dma=0 and spi_mmc driver with enable_dma=1 connected to the spi bus.

Attempt to mount mmc card results dataflash data corruption.

I'm looking into svn trunk drivers/spi/spi_bfin5xx.c:

static void cs_active(..)

{

    u16 flag = read_FLAG(drv_data);

    flag |= chip->flag;

    flag &= ~(chip->flag << 8);

    write_FLAG(drv_data, flag);

}

static void cs_deactive(..)

{

    u16 flag = read_FLAG(drv_data);

    flag |= (chip->flag << 8);

    write_FLAG(drv_data, flag);

    ...

}

When spi_mmc dma transfer is started CS of dataflash is also affected. Why chip->flag is OR'ed with FLAG?

static void cs_active(..)

{

    write_FLAG(drv_data, chip->flag);

}

and

static void cs_deactive(..)

{

    write_FLAG(drv_data, 0xff00);

    ...

}

works much better for me!

QuoteReplyEditDelete

2008-04-15 06:14:33     Re: blackfin spi bus concurrency

Yi Li (CHINA)

Message: 54251    I don't know the details of this issue, but I will add a bug in the tracker so someone can have a look.

  • Created
Was this helpful?

Before You Switch


Switching languages will make ADI Explorer unavailable. Resume your session by switching back to English and reopening ADI Explorer.