On Wed, 2013-07-17 at 22:41 -0400, Devin Heitmueller wrote: > On Wed, Jul 17, 2013 at 10:15 PM, Antti Palosaari <crope@xxxxxx> wrote: > > hmm, I looked again the cx23885 driver. > > > > 0x4c == [0x98 >> 1] = "flatiron" == some internal block of the chip > > Yeah, ok. Pretty sure Flatiron is the codename for the ADC for the SIF. > > > There is routine which dumps registers out, 0x00 - 0x23 > > cx23885_flatiron_dump() > > > > There is also existing routine to write those Flatiron registers. So, that > > direct I2C access could be shorten to: > > cx23885_flatiron_write(dev, 0x1f, 0x80); > > cx23885_flatiron_write(dev, 0x23, 0x80); > > Yeah, the internal register routines should be used to avoid confusion. > > > Unfortunately these two register names are not defined. Something clock or > > interrupt related likely. > > Strange. The ADC output is usually tied directly to the Merlin. I > wonder why it would ever generate interrupts. The CX2310[012] datasheet has a very short description of these Flatiron registers. Apparently the Flatiron genereates an interrupt after the built-in self test for each of its left and right channels has completed. Apparently Conexant wire-OR'ed the Flatiron's interrupt output with the interrupt output of the CX23885 A/V core. > No easy answers here. WIll probably have to take a closer look at the > datasheet, or just ask Andy. The I2C writes clear the interrupt status of the built in self test status interrupt for the left and right channels respectively. It would be best to do this after any spurious A/V core interrupt is detected from a CX23885. Since they are I2C writes, they have to be done in a non-IRQ context, as are the IR unit manipulations. Regards, Andy -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html