> It looks so, from the logs. The only problem is i can't disable the > interrupts, if i write "0" to 0x500, the interrupt/enable register, it > gives me a solid freeze. If i read from the handler, commenting out the > disable interrupts in init, that read also gives me a solid freeze. This > lead me to think that there could be some problem with the MMIO block > access.
OK, this looks reasonable: > #define saa716x_write(dat, addr) writel((dat), (saa716x->mmio)+(addr)) although a) your driver has no hope of working on a system with more than one device of this type; and b) there's really no point in obfuscating a simple use of writel() this way. Why does the device come up in a state where it generates a stream of interrupts as soon as you enable the PCI device? That's somewhat unusual behavior, although certainly not unheard of. This really has the feel of a typical driver bug to me, not anything related to general PCIe access. I've definitely wedged my system many times while trying to poke a device the right way. Also, where are you getting the offset of 0x500 from? Is it possible that the offset is really being given to you in bits (so you should use 0x500 / 8) or 32-bit words (so you should use an offset of 0x500 * 4)? Are the datasheet / programming docs available for this device? I actually have: 02:00.0 Multimedia controller: Philips Semiconductors Unknown device 7162 in one of my systems so I'd be somewhat interested in getting a driver working too. - R. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/