[linux-dvb] 2.6.20 -> saa i2c messages

e9hack e9hack at googlemail.com
Sat Feb 17 12:33:12 CET 2007


Udo van den Heuvel wrote:
> Udo van den Heuvel wrote:
>   
>> With an unmodified kernel (.flags = SAA7146_USE_I2C_IRQ, in place) but
>> with debugging I get:
>>     
> (cut)
>
> With the ISR patch I see:
>
> saa7146: saa7146_i2c_writeout(): before: 0xa00000c0 (status: 0x00000000), 1
> saa7146_i2c_writeout: ISR = 00020000
> saa7146_i2c_writeout: timed out waiting for end of xfer
>   
The saa7146 does hit the i2c-status-interrupt. Depend on the status it
may be a successful transfer. The transfer timed out. The interrupt
wasn't delivered to the interrupt handler.
> saa7146: saa7146_i2c_writeout(): before: 0xa20000c0 (status: 0x00000000), 1
> saa7146_i2c_writeout: ISR = 00010000
> saa7146_i2c_writeout: timed out waiting for end of xfer
>   
The saa7146 does hit the i2c-error-interrupt. The transfer timed out.
The interrupt wasn't delivered to the interrupt handler. It may be an
address error, because it doesn't exist an i2c device on address 0x51
(0xa2).
> saa7146: saa7146_i2c_writeout(): before: 0xa00000c0 (status: 0x00000000), 0
> saa7146: interrupt_hw(): irq: i2c, status: 0x00000000, psr:0x00, ssr:0x00).
> saa7146: saa7146_i2c_writeout(): after: 0xa000d1c0
>   
The saa7146 does hit the i2c-status-interrupt. The interrupt is
delivered to the handler. The transfer was successful.
> saa7146: saa7146_i2c_writeout(): before: 0xa20000c0 (status: 0x00000000), 0
> saa7146: interrupt_hw(): irq: i2c, status: 0x00000023, psr:0x02, ssr:0x10).
> saa7146: interrupt_hw(): unexpected irq: i2c, status: 0x00000023, isr: 0x10000
> saa7146: saa7146_i2c_writeout(): error in address phase.
>   
The saa7146 does hit the i2c-error-interrupt. The interrupt is delivered
to the handler. It is an address error, because it doesn't exist an i2c
device on address 0x51 (0xa2).


Something is wrong in your hardware configuration. Your system doesn't
see interrupts from one of your pci devices (from one of your dvb
cards). If you are changing back to the i2c-polling mode, the dvb driver
may access the frontend of the dvb card. But without interrupts you
can't get TS data from your card.

- Hartmut




More information about the linux-dvb mailing list