[#5653] Error happens when play audio with ssm2603 on bf527-ezkit
Submitted By: Vivi Li
Open Date
2009-11-02 03:13:29 Close Date
2010-05-11 02:52:48
Priority:
Medium Assignee:
Cliff Cai
Status:
Closed Fixed In Release:
N/A
Found In Release:
2010R1 Release:
Category:
Audio Board:
N/A
Processor:
BF527 Silicon Revision:
Is this bug repeatable?:
Yes Resolution:
Rejected
Uboot version or rev.:
Toolchain version or rev.:
gcc4.1-09r1-rc9
App binary format:
N/A
Summary: Error happens when play audio with ssm2603 on bf527-ezkit
Details:
Error happens when play audio with ssm2603 on bf527-ezkit.
--
Linux version 2.6.31.5-ADI-2010R1-pre-svn7738 (test@uclinux63-527-usbdev) (gcc version 4.1.2 (ADI svn)) #24 Mon Nov 2 06:08:17 C9
register early platform devices
bootconsole [early_shadow0] enabled
bootconsole [early_BFuart1] enabled
early printk enabled on early_BFuart1
Board Memory: 64MB
Kernel Managed Memory: 64MB
Memory map:
fixedcode = 0x00000400-0x00000490
text = 0x00001000-0x00157ee0
rodata = 0x00157ee0-0x001cdd68
bss = 0x001ce000-0x001dfd3c
data = 0x001dfd3c-0x001f6000
stack = 0x001f4000-0x001f6000
init = 0x001f6000-0x00956000
available = 0x00956000-0x03dff000
DMA Zone = 0x03e00000-0x04000000
Hardware Trace Active and Enabled
Boot Mode: 1
Blackfin support (C) 2004-2009 Analog Devices, Inc.
Compiled for ADSP-BF527 Rev 0.2
Blackfin Linux support by http://blackfin.uclinux.org/
Processor Speed: 525 MHz core clock and 131 MHz System Clock
NOMPU: setting up cplb tables
Instruction Cache Enabled for CPU0
External memory: cacheable in instruction cache
Data Cache Enabled for CPU0
External memory: cacheable (write-back) in data cache
Built 1 zonelists in Zone order, mobility grouping off. Total pages: 15747
Kernel command line: root=/dev/mtdblock0 rw clkin_hz=25000000 earlyprintk=serial,uart1,57600 console=tty0 console=ttyBF1,57600 if
PID hash table entries: 256 (order: 8, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory available: 53356k/65536k RAM, (7552k init code, 1371k kernel code, 633k data, 2048k dma, 572k reserved)
NR_IRQS:119
Configuring Blackfin Priority Driven Interrupts
console [ttyBF1] enabled, bootconsole disabled
console [ttyBF1] enabled, bootconsole disabled
Calibrating delay loop... 1046.52 BogoMIPS (lpj=2093056)
Security Framework initialized
Mount-cache hash table entries: 512
Blackfin Scratchpad data SRAM: 4 KB
Blackfin L1 Data A SRAM: 16 KB (16 KB free)
Blackfin L1 Data B SRAM: 16 KB (16 KB free)
Blackfin L1 Instruction SRAM: 48 KB (42 KB free)
NET: Registered protocol family 16
Blackfin DMA Controller
ezkit_init(): registering device resources
bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
musb_hdrc: version 6.0, musb-dma, host, debug=0
musb_hdrc: USB Host mode controller at ffc03800 using DMA, IRQ 59
musb_hdrc musb_hdrc.0: MUSB HDRC host driver
musb_hdrc musb_hdrc.0: new USB bus registered, assigned bus number 1
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
dma_alloc_init: dma_page @ 0x02041000 - 512 pages at 0x03e00000
hub 1-0:1.0: 1 port detected
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
NEmsgmni has been set to 104
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler cfq registered
bfin-t350mcqb: 320x240 24-bit RGB FrameBuffer initializing...
bfin-otp: initialized
bfin-uart: Blackfin serial driver
bfin-uart.1: ttyBF1 at MMIO 0xffc02000 (irq = 31) is a BFIN-UART
brd: module loaded
bfin_mii_bus: probed
bfin_mac: attached PHY driver [Generic PHY] (mii_bus:phy_addr=0:01, irq=-1, mdc_clk=2500000Hz(mdc_div=25)@sclk=131MHz)
bfin_mac bfin_mac.0: Blackfin on-chip Ethernet MAC driver, Version 1.1
m25p80 spi0.1: unrecognized JEDEC id ffffff
m25p80 spi0.1: found UNKNOWN, expected m25p16
bfin-spi bfin-spi.0: Blackfin on-chip SPI Controller Driver, Version 1.0, regs_base@ffc00500, dma channel@7
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
rtc-bfin rtc-bfin: rtc core: registered rtc-bfin as rtc0
i2c-bfin-twi i2c-bfin-twi.0: Blackfin BF5xx on-chip I2C TWI Contoller, regs_base@ffc01400
bfin-wdt: initialized: timeout=20 sec (nowayout=0)
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
Advanced Linux Sound Architecture Driver Version 1.0.20.
No device for DAI SSM2602
dma rx:3 tx:4, err irq:15, regs:ffc00800
ssm2602 Audio Codec 0.1
asoc: SSM2602 <-> bf5xx-i2s mapping ok
ALSA device list:
#0: bf5xx_ssm2602 (SSM2602)
TCP cubic registered
NET: Registered protocol family 17
rtc-bfin rtc-bfin: setting system clock to 1981-01-14 14:11:16 UTC (348329476)
IP-Config: Complete:
device=eth0, addr=10.100.4.50, mask=255.255.255.0, gw=10.100.4.174,
host=bf527-ezkit, domain=, nis-domain=(none),
bootserver=10.100.4.174, rootserver=10.100.4.174, rootpath=
Freeing unused kernel memory: 7552k freed
_____________________________________
a8888b. / Welcome to the uClinux distribution \
d888888b. / _ _ \
8P"YP"Y88 / | | |_| __ __ (TM) |
8|o||o|88 _____/ | | _ ____ _ _ \ \/ / |
8' .88 \ | | | | _ \| | | | \ / |
8`._.' Y8. \ | |__ | | | | | |_| | / \ |
d/ `8b. \ \____||_|_| |_|\____|/_/\_\ |
dP . Y8b. \ For embedded processors including |
d8:' " `::88b \ the Analog Devices Blackfin /
d8" 'Y88b \___________________________________/
:8P ' :888
8a. : _a88P For further information, check out:
._/"Yaa_: .| 88P| - http://blackfin.uclinux.org/
\ YP" `| 8P `. - http://docs.blackfin.uclinux.org/
/ \.___.d| .' - http://www.uclinux.org/
`--..__)8888P`._.' jgs/a:f - https://www.analog.com/blackfin
Have a lot of fun...
BusyBox v1.15.2 (2009-11-02 06:04:15 CST) hush - the humble shell
root:/> PHY: 0:01 - Link is Up - 100/Full
root:/> arecord -t wav -c 2 -f S16_LE -r 8000 -d 5 wav
Recording WAVE 'wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Stereo
root:/> arecord -d 5 wav2
Recording WAVE 'wav2' : Unsigned 8 bit, Rate 8000 Hz, Mono
__ratelimit: 4 callbacks suppressed
root:/>
root:/> aplay wav
Playing WAVE 'wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Stereo
(Can not stop, only can exit by Ctrl+C)
root:/> vrec -w -S -b 16 -s 48000 -t 5|vplay
Recording WAVE : 16 bit, Speed 48000 Hz Stereo ...
Playing WAVE : 16 bit, Speed 48000 Hz Stereo ...
__ratelimit: 13 callbacks suppressed
/dev/dsp: Input/output error
root:/>
--
Follow-ups
--- Michael Hennerich 2009-11-04 11:37:06
Cliff and Vivi,
Can you try this patch?
Does is fix the hang?
Index: drivers/i2c/busses/i2c-bfin-twi.c
===================================================================
--- drivers/i2c/busses/i2c-bfin-twi.c (revision 7752)
+++ drivers/i2c/busses/i2c-bfin-twi.c (working copy)
@@ -19,6 +19,7 @@
#include <linux/completion.h>
#include <linux/interrupt.h>
#include <linux/platform_device.h>
+#include <linux/delay.h>
#include <asm/blackfin.h>
#include <asm/portmux.h>
@@ -84,7 +85,8 @@
unsigned short twi_int_status)
{
unsigned short mast_stat = read_MASTER_STAT(iface);
-
+ int cnt;
+
if (twi_int_status & XMTSERV) {
/* Transmit next data */
if (iface->writeNum > 0) {
@@ -158,6 +160,23 @@
if (mast_stat & BUFWRERR)
dev_dbg(&iface->adap.dev, "Buffer Write
Error\n");
+
+ if ((read_MASTER_STAT(iface) & SDASEN)) {
+ cnt = 0;
+ do {
+ write_MASTER_CTL(iface, SCLOVR);
+ udelay(6);
+ write_MASTER_CTL(iface, 0);
+ udelay(6);
+ } while ((read_MASTER_STAT(iface) & SDASEN)
&& (cnt++ < 8));
+
+ write_MASTER_CTL(iface, SDAOVR | SCLOVR);
+ udelay(6);
+ write_MASTER_CTL(iface, SDAOVR);
+ udelay(6);
+ write_MASTER_CTL(iface, 0);
+ }
+
/* If it is a quick transfer, only address without data,
* not an err, return 1.
*/
--- Cliff Cai 2009-11-04 23:04:04
Michael,
I've tried this patch,but it didn't seem to work.
Cliff
--- Julien Vermillard 2010-04-02 09:07:42
I got the same issue here when using alsa with my own app :
snd_pcm_update_hw_ptr_pos: 9 callbacks suppressed
snd_pcm_update_hw_ptr_pos: 9 callbacks suppressed
snd_pcm_update_hw_ptr_pos: 8 callbacks suppressed
snd_pcm_update_hw_ptr_pos: 9 callbacks suppressed
snd_pcm_update_hw_ptr_pos: 9 callbacks suppressed
snd_pcm_update_hw_ptr_pos: 9 callbacks suppressed
snd_pcm_update_hw_ptr_pos: 9 callbacks suppressed
snd_pcm_update_hw_ptr_pos: 8 callbacks suppressed
snd_pcm_update_hw_ptr_pos: 9 callbacks suppressed
snd_pcm_update_hw_ptr_pos: 9 callbacks suppressed
snd_pcm_update_hw_ptr_pos: 9 callbacks suppressed
snd_pcm_update_hw_ptr_pos: 9 callbacks suppressed
and so on..
--- Cliff Cai 2010-04-22 05:59:40
please add ssm2603 card on SPORT1.
see:
Cliff
--- Vivi Li 2010-05-11 02:50:44
It can work on SPORT1. Close this bug.
Files
Changes
Commits
Dependencies
Duplicates
Associations
Tags
File Name File Type File Size Posted By
config.audio_ssm2603 application/octet-stream 41401 Vivi Li