NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: port-evbarm/54696: Kernel panic in bus_dma.c on Raspberry Pi 3B/3B+



The following reply was made to PR port-arm/54696; it has been noted by GNATS.

From: sc.dying%gmail.com@localhost
To: Nick Hudson <nick.hudson%gmx.co.uk@localhost>, gnats-bugs%netbsd.org@localhost,
 port-evbarm-maintainer%netbsd.org@localhost, gnats-admin%netbsd.org@localhost,
 netbsd-bugs%netbsd.org@localhost, dhop%nwlink.com@localhost
Cc: 
Subject: Re: port-evbarm/54696: Kernel panic in bus_dma.c on Raspberry Pi
 3B/3B+
Date: Sat, 23 Nov 2019 14:10:45 +0000

 On 2019/11/23 10:25, Nick Hudson wrote:
 > On 14/11/2019 22:35, sc.dying%gmail.com@localhost wrote:
 > [snip]
 > 
 >>   But the transfer length of isoc xfer is sum of xfer->ux_frlengths[i]
 >>   where i = 0.. xfer->ux_nframes - 1, not zero.
 >>   dwc2 should do this usb_syncmem if xfertype == UE_{INTERRUPT,BULK},
 >>   UE_CONTROL that has data phase (that is, len != 0), or if xfertype ==
 >>   UE_ISOCHRONOUS, should do usb_syncmem for each chunk of ux_frlengths.
 >>
 >>   However, the uaudio works with dwc2 even if avobe usb_syncmem is ignored.
 >>   I think dwc2 does usb_syncmem for isoc data buf somewhere else, but
 >>   I'm not sure where it is.
 > 
 > Please try this patch
 
 I did s/ux_ux_nframes/ux_nframes/.
 
 It works with one of my uaudio devices.
 
 # audiocfg list
 0: [*] audio0 @ uaudio0: USB audio
        playback: 2ch, 44100Hz
        record:   2ch, 44100Hz
        (-R) slinear_le 16/16, 2ch, { 44100 }
        (P-) slinear_le 16/16, 2ch, { 44100 }
 
 With another one
 
 0: [*] audio0 @ uaudio0: USB audio
        playback: 2ch, 48000Hz
        record:   unavailable
        (P-) slinear_le 16/16, 2ch, { 48000, 44100 }
 
 the kernel prints number of messages, as David reported.
 
 > uaudio_chan_pintr: count(40) != size(1920)
 
 The length of each chunk in this transfer is
 48000(kHz) x 2(bytes/chan) x 2(chans) / 1000(frames/s) = 192.
 dwc2_get_actual_xfer_length() should return 192, but 4.
 nframes is 10, so ux_length is 40.
 
 If !DIAGNOSTIC, this messages are suppresssed and the kernel
 plays music clearly.
 
 
 > 
 > thanks,
 > Nick
 


Home | Main Index | Thread Index | Old Index