[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