[pulseaudio-discuss] HSP profile - poor quality over UART (BCM4354 chip)

Paweł B blizniukp at gmail.com
Thu Nov 30 14:31:46 UTC 2017


Hello.

After solve this issue
https://lists.freedesktop.org/archives/pulseaudio-discuss/2017-November/029023.html
I have next.problem.

In HSP profile voice quality is very poor (only on BCM4354 chip. In Asus
BT-400 quality is good).
After play wav file, sound run slowly (in A2DP speed is normal).

I have BCM4354 chip.

[root at localhost ~]# hciconfig -a
hci1:   Type: BR/EDR  Bus: UART
        BD Address: C0:97:27:4C:2E:65  ACL MTU: 1021:8  SCO MTU: 64:1
        UP RUNNING PSCAN
        RX bytes:24493015 acl:94 sco:382514 events:1122 errors:0
        TX bytes:19902340 acl:95 sco:382499 commands:809 errors:0
        Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
        Link policy: RSWITCH SNIFF
        Link mode: SLAVE ACCEPT
        Name: 'ARTIK10'
        Class: 0x0c0000
        Service Classes: Rendering, Capturing
        Device Class: Miscellaneous,
        HCI Version: 4.1 (0x7)  Revision: 0x1000
        LMP Version: 4.1 (0x7)  Subversion: 0x610c
        Manufacturer: Broadcom Corporation (15)

hci0:   Type: BR/EDR  Bus: SDIO
        BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0
        DOWN
        RX bytes:0 acl:0 sco:0 events:0 errors:0
        TX bytes:0 acl:0 sco:0 commands:0 errors:0
        Features: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
        Packet type: DM1 DH1 HV1
        Link policy:
        Link mode: SLAVE ACCEPT



I try :
- change SCO MTU to 64:8,
- use different parameter in command hcitool cmd 0x3F 0x01C X X X X X
-change baudrate from 3000000 to 1500000 in brcm_patchram_plus script.

./brcm_patchram_plus --patchram
BCM4354_003.001.012.0353.0745c_Samsung_Artik_ORC.hcd \
        --no2bytes --baudrate 3000000 \
        -d \
        --use_baudrate_for_download /dev/ttySAC${TTY_NUM} \
        --bd_addr ${BD_ADDR} \
        --scopcm=1,2,0,0,0,0,0,0,0,0 \
        --enable_hci > /dev/null &



I have Asus BT-400, and there is everything OK (quality is good, speed is
normal).

[root at localhost ~]# hciconfig -a
hci2:   Type: BR/EDR  Bus: USB
        BD Address: 5C:F3:70:72:F8:BB  ACL MTU: 1021:8  SCO MTU: 64:1
        UP RUNNING PSCAN
        RX bytes:583 acl:0 sco:0 events:33 errors:0
        TX bytes:898 acl:0 sco:0 commands:33 errors:0
        Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
        Link policy: RSWITCH SNIFF
        Link mode: SLAVE ACCEPT
        Name: 'ARTIK10'
        Class: 0x0c0000
        Service Classes: Rendering, Capturing
        Device Class: Miscellaneous,
        HCI Version: 4.0 (0x6)  Revision: 0x1000
        LMP Version: 4.0 (0x6)  Subversion: 0x220e
        Manufacturer: Broadcom Corporation (15)


More info:

[root at localhost ~]# uname -a
Linux localhost 3.10.93-dirty #1 SMP PREEMPT Mon Sep 4 15:39:15 CEST 2017
armv7l armv7l armv7l GNU/Linux

[root at localhost ~]# lsmod
Module                  Size  Used by
ip6t_rpfilter           1550  1
ip6t_REJECT             2706  2
ipt_REJECT              2369  2
rfcomm                 32430  7
hci_uart               21843  1
ebtable_nat             1656  1
ebtable_broute          1373  1
bridge                 91458  1 ebtable_broute
ebtable_filter          1702  1
ebtables               17617  3 ebtable_broute,ebtable_nat,ebtable_filter
ip6table_nat            2685  1
nf_conntrack_ipv6       8069  8
nf_defrag_ipv6         14454  1 nf_conntrack_ipv6
nf_nat_ipv6             3622  1 ip6table_nat
ip6table_mangle         1611  1
ip6table_raw            1270  1
ip6table_filter         1472  1
ip6_tables             11392  4
ip6table_filter,ip6table_mangle,ip6table_nat,ip6table_raw
iptable_raw             1321  1
iptable_nat             2537  1
nf_conntrack_ipv4      13743  7
nf_defrag_ipv4          1244  1 nf_conntrack_ipv4
nf_nat_ipv4             3512  1 iptable_nat
nf_nat                 15371  4
nf_nat_ipv4,nf_nat_ipv6,ip6table_nat,iptable_nat
iptable_mangle          1482  1
iptable_filter          1523  1
bnep                   10855  2
leds_pca9632            2071  0
leds_pca963x            1848  0
smsc95xx               17900  0
usbnet                 22141  1 smsc95xx
hid_cp2112             11909  0
hid_generic              954  0
btusb                  15997  0
snd_soc_artik_ak4953     3467  3
cp210x                  9353  1
usbhid                 20253  0
bcm4354                 5540  0
snd_soc_i2s            14483  2
snd_soc_lpass          13073  1 snd_soc_i2s
snd_soc_s3c24xx         5032  2 snd_soc_i2s,snd_soc_lpass
spidev                  5496  0
snd_soc_ak4953         19021  1
btsdio                  2842  0
bluetooth             210761  56 bnep,btusb,btsdio,hci_uart,rfcomm
dhd                   746331  0
cfg80211              393598  1 dhd
rfkill                 17000  8 dhd,cfg80211,bcm4354,bluetooth
ip_tables              11092  4
iptable_filter,iptable_mangle,iptable_nat,iptable_raw

[root at localhost bluetooth]#.stty -a -F /dev/ttySAC2
speed 3000000 baud; rows 0; columns 0; line = 15;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2
= <undef>; swtch = <undef>; start = ^Q;
stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min
= 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread clocal crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon
-ixoff -iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0
vt0 ff0
-isig -icanon -iexten -echo echoe echok -echonl -noflsh -xcase -tostop
-echoprt echoctl echoke

In device specyfication I have:
1.5x channel high-speed UART (up to 3 Mbps data rate for Bluetooth 2.1 EDR
and IrDA 1.0 SIR)

Any suggestions?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20171130/b1e67534/attachment.html>


More information about the pulseaudio-discuss mailing list