linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "nibble.max" <nibble.max@gmail.com>
To: "Luis Alves" <ljalvs@gmail.com>
Cc: "mchehab" <mchehab@infradead.org>, "crope" <crope@iki.fi>,
	"awalls" <awalls@md.metrocast.net>,
	"Luis Alves" <ljalvs@gmail.com>,
	"linux-media" <linux-media@vger.kernel.org>
Subject: Re: [PATCH] cx23885[v2]: Fix IR interrupt storm.
Date: Fri, 19 Jul 2013 11:37:54 +0800	[thread overview]
Message-ID: <201307191137522969679@gmail.com> (raw)

Hello Luis,
The internel interrupts are rounted as follow:
flatiron(include ADC)--->HammerHead(include IR inside)--->Pecos(PCIe)
The flatiron interrupt is enabled when chip power up.
When HammerHead interrupt is enalbe in Pecos, the most of interrupts are coming from flatiron.
The more accurate code is that reading back these left and right registers(0x1f, 0x23), set its bit-7 to "1" , then write back.
So that it does not touch other bits.
BR,
Max

>Hi all,
>This path is meant to be up-streamed.
>
>Andy has a nice explanation for the interrupt storm when
>enabling the IR interrupt:
>
>The flatiron core (the audio adc) signals the end of its self-test
>with an interrupt. Since the flatiron irq seems OR-wired
>with the IR irq the result is this interrupt storm.
>This i2c tranfers will clear the flatiron interrupts - the left
>and right channels self-tests.
>
>Also as suggested by Andy I moved the i2c transfers to the
>cx23885 av core interrupt handling worker. If any spurious
>interrupt happens we silence them.
>
>The flatiron has some dedicated register read/write functions but are
>not exported so Antti just suggested to call the i2c_transfer directly.
>
>Tested in the TBS6981 Dual DVB-S2 card.
>
>PS: I've found this i2c_transfers in TBS media tree, more precisely
>in the cx23885-i2c.c file.
>
>Regards,
>Luis
>
>
>Signed-off-by: Luis Alves <ljalvs@gmail.com>
>---
> drivers/media/pci/cx23885/cx23885-av.c |   17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
>diff --git a/drivers/media/pci/cx23885/cx23885-av.c b/drivers/media/pci/cx23885/cx23885-av.c
>index e958a01..d33570f 100644
>--- a/drivers/media/pci/cx23885/cx23885-av.c
>+++ b/drivers/media/pci/cx23885/cx23885-av.c
>@@ -29,8 +29,25 @@ void cx23885_av_work_handler(struct work_struct *work)
> 	struct cx23885_dev *dev =
> 			   container_of(work, struct cx23885_dev, cx25840_work);
> 	bool handled;
>+	char buffer[2];
>+	struct i2c_msg msg = {
>+		.addr = 0x98 >> 1,
>+		.flags = 0,
>+		.len = 2,
>+		.buf = buffer,
>+	};
> 
> 	v4l2_subdev_call(dev->sd_cx25840, core, interrupt_service_routine,
> 			 PCI_MSK_AV_CORE, &handled);
>+
>+	if (!handled) {
>+		/* clear any pending flatiron interrupts */
>+		buffer[0] = 0x1f;
>+		buffer[1] = 0x80;
>+		i2c_transfer(&dev->i2c_bus[2].i2c_adap, &msg, 1);
>+		buffer[0] = 0x23;
>+		i2c_transfer(&dev->i2c_bus[2].i2c_adap, &msg, 1);
>+	}
>+
> 	cx23885_irq_enable(dev, PCI_MSK_AV_CORE);
> }
>-- 
>1.7.9.5
>
>--
>To unsubscribe from this list: send the line "unsubscribe linux-media" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at  http://vger.kernel.org/majordomo-info.html


             reply	other threads:[~2013-07-19  3:37 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-19  3:37 nibble.max [this message]
2013-07-19  8:53 ` [PATCH] cx23885[v2]: Fix IR interrupt storm Luis Alves
2013-07-19  9:08   ` Andy Walls
  -- strict thread matches above, loose matches on Subject: below --
2013-07-18 22:41 Luis Alves

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201307191137522969679@gmail.com \
    --to=nibble.max@gmail.com \
    --cc=awalls@md.metrocast.net \
    --cc=crope@iki.fi \
    --cc=linux-media@vger.kernel.org \
    --cc=ljalvs@gmail.com \
    --cc=mchehab@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).