[alsa-devel] firewire-lib: an issue to generate packet with 'no data' in blocking mode
Clemens,
I have a question about generate packet with 'no data' in blocking mode. I think there is out of specification in current firewire-lib.
If this is a qurk for some devices, I'll prepare patches to switch generating mode because BeBoB cannot sound with current firewire-lib. If this is a bug, then I want to discuss which is better for firewire-lib.
In my understanding of IEC 61883-6, there are two ways:
1. generate 'empty packet' defined in IEC 61883-1 - size of packet is 2 quadlets - FDF = sfc - packet includes just CIP headers
2. generate 'special non-empty packet' defined in IEC 61883-6 - size of packet is following to blocking mode - FDF = 0xff ('NO-DATA' code) - packet includes dummy data
But current implementation is a strange combination of them. - size of packet is 2 (way 1) - FDF = 0xff (way 2)
I attach two patches. 'empty.patch' is for 1 and 'special.patch' is for 2.
Regards
Takashi Sakamoto
Takashi Sakamoto wrote:
I have a question about generate packet with 'no data' in blocking mode. I think there is out of specification in current firewire-lib.
In my understanding of IEC 61883-6, there are two ways:
generate 'empty packet' defined in IEC 61883-1
- size of packet is 2 quadlets
- FDF = sfc
- packet includes just CIP headers
generate 'special non-empty packet' defined in IEC 61883-6
- size of packet is following to blocking mode
- FDF = 0xff ('NO-DATA' code)
- packet includes dummy data
But current implementation is a strange combination of them.
- size of packet is 2 (way 1)
- FDF = 0xff (way 2)
It's an empty NO-DATA packet. ;-)
I guess I just didn't notice that empty packets don't need to change their FDF field. This is a bug.
If this is a qurk for some devices, I'll prepare patches to switch generating mode because BeBoB cannot sound with current firewire-lib. If this is a bug, then I want to discuss which is better for firewire-lib.
Empty packets should be fine for all devices. (NO-DATA packets would waste DMA bandwidth.)
Regards, Clemens
Hi Clemens,
I guess I just didn't notice that empty packets don't need to change their FDF field. This is a bug.
I also paied no attension to empty packets. Then BeBoB chipset teach me.
Empty packets should be fine for all devices. (NO-DATA packets would waste DMA bandwidth.)
I completely agree with you. Would you review an attached patch?
Thanks
Takashi Sakamoto
(Nov 22 2013 20:47), Clemens Ladisch wrote:
Takashi Sakamoto wrote:
I have a question about generate packet with 'no data' in blocking mode. I think there is out of specification in current firewire-lib.
In my understanding of IEC 61883-6, there are two ways:
generate 'empty packet' defined in IEC 61883-1
- size of packet is 2 quadlets
- FDF = sfc
- packet includes just CIP headers
generate 'special non-empty packet' defined in IEC 61883-6
- size of packet is following to blocking mode
- FDF = 0xff ('NO-DATA' code)
- packet includes dummy data
But current implementation is a strange combination of them.
- size of packet is 2 (way 1)
- FDF = 0xff (way 2)
It's an empty NO-DATA packet. ;-)
I guess I just didn't notice that empty packets don't need to change their FDF field. This is a bug.
If this is a qurk for some devices, I'll prepare patches to switch generating mode because BeBoB cannot sound with current firewire-lib. If this is a bug, then I want to discuss which is better for firewire-lib.
Empty packets should be fine for all devices. (NO-DATA packets would waste DMA bandwidth.)
Regards, Clemens
Takashi Sakamoto wrote:
I guess I just didn't notice that empty packets don't need to change their FDF field. This is a bug.
I also paied no attension to empty packets. Then BeBoB chipset teach me.
Empty packets should be fine for all devices. (NO-DATA packets would waste DMA bandwidth.)
I completely agree with you. Would you review an attached patch?
Acked-by: Clemens Ladisch clemens@ladisch.de
At Fri, 22 Nov 2013 14:58:32 +0100, Clemens Ladisch wrote:
Takashi Sakamoto wrote:
I guess I just didn't notice that empty packets don't need to change their FDF field. This is a bug.
I also paied no attension to empty packets. Then BeBoB chipset teach me.
Empty packets should be fine for all devices. (NO-DATA packets would waste DMA bandwidth.)
I completely agree with you. Would you review an attached patch?
Acked-by: Clemens Ladisch clemens@ladisch.de
Applied now.
thanks,
Takashi
participants (3)
-
Clemens Ladisch
-
Takashi Iwai
-
Takashi Sakamoto