Skip to contentSkip to conversation

Firmware loading of FF cards is broken

linux-dvb e9hack 3 participants 4 messages Jun 3, 2008 – Jun 5, 2008 Media (V4L/DVB)

lore
Share & tools
lore

e9hack

author
#0 lore raw

Hi,

changsets 7973/7958 break the firmware loading of the TT-C2300 card. I get the following message:

Linux video capture interface: v2.00
saa7146: register extension 'dvb'.
ACPI: PCI Interrupt 0000:04:06.0[A] -> Link [LNKA] -> GSI 18 (level, low) -> IRQ 21
saa7146: found saa7146 @ mem f98f6c00 (revision 1, irq 21) (0x13c2,0x000a).
dvb-ttpci: crc32 of dpram file does not match.
ACPI: PCI interrupt for device 0000:04:06.0 disabled

It seems, that get_unaligned_be32() is broken. The definition in compat.h is:

#define get_unaligned_be32(a)                                   \
         be32_to_cpu(get_unaligned((unsigned short *)(a)))

'unsigned short *' is wrong. It should be 'unsigned long *'.

put_unaligned_be32(), get_unaligned_le32() and put_unaligned_le32() are also wrong.

-Hartmut

_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

#1 lore raw

I demand that e9hack may or may not have written...

[snip]

Quoted 6 lines

It seems, that get_unaligned_be32() is broken. The definition in compat.h is:

#define get_unaligned_be32(a)                                   \
         be32_to_cpu(get_unaligned((unsigned short *)(a)))

'unsigned short *' is wrong. It should be 'unsigned long *'.

That could be a 64-bit type. You want unsigned int or uint32_t.

[snip]

Signature · 10 lines
| Darren Salt    | linux or ds at              | nr. Ashington, | Toon
| RISC OS, Linux | youmustbejoking,demon,co,uk | Northumberland | Army
| + Buy local produce. Try to walk or cycle. TRANSPORT CAUSES GLOBAL WARMING.

Succumb to natural tendencies. Be hateful and boring.

_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
#2 lore raw
In reply to e9hack
Quoted 12 lines · On Tue, 03 Jun 2008 18:45:57 +0200 e9hack <[email protected]> wrote:

Hi,

changsets 7973/7958 break the firmware loading of the TT-C2300 card. I get the following message:

Linux video capture interface: v2.00
saa7146: register extension 'dvb'.
ACPI: PCI Interrupt 0000:04:06.0[A] -> Link [LNKA] -> GSI 18 (level, low) -> IRQ 21
saa7146: found saa7146 @ mem f98f6c00 (revision 1, irq 21) (0x13c2,0x000a).
dvb-ttpci: crc32 of dpram file does not match.
ACPI: PCI interrupt for device 0000:04:06.0 disabled

Quoted 8 lines

It seems, that get_unaligned_be32() is broken. The definition in compat.h is:

#define get_unaligned_be32(a)                                   \
         be32_to_cpu(get_unaligned((unsigned short *)(a)))

'unsigned short *' is wrong. It should be 'unsigned long *'.

put_unaligned_be32(), get_unaligned_le32() and put_unaligned_le32() are also wrong.

Argh! cut-and-past error. Sorry.

I've just commit a fix about this. Please test.

Cheers,
Mauro

_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb