[alsa-devel] MTP-AV Bugs

Holger Dehnhardt dehnhardt at ahdehnhardt.de
Wed Feb 11 14:18:59 CET 2009


Dear Takashi,

thank you for your quick response!
See my inline comments.

Am Mittwoch, 11. Februar 2009 13:08:22 schrieb Takashi Iwai:
> At Tue, 10 Feb 2009 21:54:32 +0100,
>
> Holger Dehnhardt wrote:
> > After some time I found the following bug:
> >
> > static void snd_mtpav_inmidi_h(struct mtpav *mcrd, u8 inbyte)
> > {
> >         if (inbyte >= 0xf8) {
> >                 /* real-time midi code */
> > -->                snd_mtpav_inmidi_process(mcrd, inbyte);
> > 	//here the inmidiport is not translated to the prtnumber, so
> > 	// snd_mtpav_inmidi_process the port with an index of some 80000
> > 	// in the ports array of the mtpav struct was called
>
> Good catch.  I think the patch below should fix the problem
>
> > The following change made the driver work:
> > static void snd_mtpav_inmidi_h(struct mtpav *mcrd, u8 inbyte)
> > {
> >         if (inbyte >= 0xf8) {
> >                 /* real-time midi code */
> > 		mcrd->inmidiport = translate_hwport_to_subdevice(mcrd, inbyte);
>
> This isn't correct since inbyte is supposed to be under 0x13.

Sorry, I don't understand what you mean: inbyte should always be lower than 
0x13 or is the real time midi code always lower then 0x13? 

>
> > After that I realised, that with the recent driver - even without my
> > change - playing midi files din not work anymore.
> > Only the first midi event was sent to the interface, everything else was
> > dropped somewhere.
> >
> > So a diff between the last workin version and the recent version showed
> > only one change:
>
> What was the last working version exactly?

1.0.18 (from the debian experimental repository)

--snip

Holger




More information about the Alsa-devel mailing list