Mailing List archive

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

[linux-dvb] Re: AMD64 and DVB



Hi,
i applied the patch but it still doesnt work.
The small check programm gives me a size of 4 for uin32_t

/max

On Tue, 2004-02-10 at 13:16, Johannes Stezenbach wrote:
> Max Nickel wrote:
> > 
> > this is on my amd64 system.
> ...
> > av7110_fw_query error
> > DVB: AV711-887054330(0) - firm cb20a006, rtsl ffffffff, vid a96da005, app ffffffff
> 
> I guess the firmware is not loaded correctly.
> Please revert av7110.c to the state from CVS (or from 1.1.0), and apply
> the patch below:
> (u32 is 64 bit on amd64, but AFAIK uint32_t should always be 32bit
> according to ISO C99)
> 
> 
> Index: drivers/media/dvb/ttpci/av7110.c
> ===================================================================
> RCS file: /cvs/linuxtv/dvb-kernel/linux/drivers/media/dvb/ttpci/av7110.c,v
> retrieving revision 1.111
> diff -u -p -r1.111 av7110.c
> --- drivers/media/dvb/ttpci/av7110.c	31 Jan 2004 11:31:35 -0000	1.111
> +++ drivers/media/dvb/ttpci/av7110.c	10 Feb 2004 12:01:55 -0000
> @@ -1249,7 +1249,7 @@ static int master_xfer(struct dvb_i2c_bu
>  
>  static int check_firmware(struct av7110* av7110)
>  {
> -	u32 crc = 0, len = 0;
> +	uint32_t crc = 0, len = 0;
>  	unsigned char *ptr;
>  
>  	/* check for firmware magic */
> @@ -1262,9 +1262,9 @@ static int check_firmware(struct av7110*
>  	ptr += 4;
>  
>  	/* check dpram file */
> -	crc = ntohl(*(u32*) ptr);
> +	crc = ntohl(*(uint32_t*) ptr);
>  	ptr += 4;
> -	len = ntohl(*(u32*) ptr);
> +	len = ntohl(*(uint32_t*) ptr);
>  	ptr += 4;
>  	if (len >= 512) {
>  		printk("dvb-ttpci: dpram file is way to big.\n");
> @@ -1279,9 +1279,9 @@ static int check_firmware(struct av7110*
>  	ptr += len;
>  
>  	/* check root file */
> -	crc = ntohl(*(u32*) ptr);
> +	crc = ntohl(*(uint32_t*) ptr);
>  	ptr += 4;
> -	len = ntohl(*(u32*) ptr);
> +	len = ntohl(*(uint32_t*) ptr);
>  	ptr += 4;
>  
>  	if (len <= 200000 || len >= 300000 ||
> 
> If that doesn't fix it (because uint32_t is 64bit...) we need to do
> some more work.
> 
> If it doesn't work, can you run the following program and post its
> output:
> 
> -----
> #include <stdio.h>
> #include <stdint.h>
> int main()
> {
> 	printf("%u\n", sizeof(uint32_t));
> 	return 0;
> }
> -----
> 
> Johannes
> 



-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index