All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mika Westerberg <mika.westerberg@linux.intel.com>
To: Sanjay R Mehta <Sanju.Mehta@amd.com>
Cc: andreas.noever@gmail.com, michael.jamet@intel.com,
	YehezkelShB@gmail.com, Basavaraj.Natikar@amd.com,
	linux-usb@vger.kernel.org
Subject: Re: [PATCH v2 2/4] thunderbolt: Handle ring interrupt by reading intr status
Date: Wed, 4 Aug 2021 18:48:38 +0300	[thread overview]
Message-ID: <YQq21heIOiSeHqJ1@lahna> (raw)
In-Reply-To: <1627994096-99972-3-git-send-email-Sanju.Mehta@amd.com>

Hi,

On Tue, Aug 03, 2021 at 07:34:54AM -0500, Sanjay R Mehta wrote:
> From: Sanjay R Mehta <sanju.mehta@amd.com>
> 
> As per USB4 spec by default "Disable ISR Auto-Clear" bit is set to 0,
> and the Tx/Rx ring interrupt status is needs to be cleared.
> 
> Hence handling it by reading the "Interrupt status" register in the ISR.
> 
> Signed-off-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com>
> Signed-off-by: Sanjay R Mehta <sanju.mehta@amd.com>
> ---
>  drivers/thunderbolt/nhi.c | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/drivers/thunderbolt/nhi.c b/drivers/thunderbolt/nhi.c
> index ef01aa6..7ad2202 100644
> --- a/drivers/thunderbolt/nhi.c
> +++ b/drivers/thunderbolt/nhi.c
> @@ -373,11 +373,25 @@ void tb_ring_poll_complete(struct tb_ring *ring)
>  }
>  EXPORT_SYMBOL_GPL(tb_ring_poll_complete);
>  
> +static void check_and_clear_intr_status(struct tb_ring *ring)
> +{
> +	if (!(ring->nhi->pdev->vendor == PCI_VENDOR_ID_INTEL)) {
> +		if (ring->is_tx)
> +			ioread32(ring->nhi->iobase
> +				 + REG_RING_NOTIFY_BASE);
> +		else
> +			ioread32(ring->nhi->iobase
> +				 + REG_RING_NOTIFY_BASE
> +				 + 4 * (ring->nhi->hop_count / 32));
> +	}
> +}

I'm now playing with this series on Intel hardware. I wanted to check
from you whether the AMD controller implements the Auto-Clear feature? I
mean if we always clear bit 17 of the Host Interface Control register do
you still need to call the above or it is cleared automatically?

I'm hoping that we could make this work on all controllers without too
many special cases ;-)

  reply	other threads:[~2021-08-04 15:49 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-03 12:34 [PATCH v2 0/4] Added some bug fixes for USB4 Sanjay R Mehta
2021-08-03 12:34 ` [PATCH v2 1/4] thunderbolt: Intel controller uses BIT(2) for intr auto Sanjay R Mehta
2021-08-03 12:34 ` [PATCH v2 2/4] thunderbolt: Handle ring interrupt by reading intr status Sanjay R Mehta
2021-08-04 15:48   ` Mika Westerberg [this message]
2021-08-05 12:56     ` Mika Westerberg
2021-08-05 13:06       ` Sanjay R Mehta
2021-08-05 14:20         ` Mika Westerberg
2021-08-05 12:59     ` Sanjay R Mehta
2021-08-05 14:19       ` Mika Westerberg
2021-08-05 14:46         ` Mika Westerberg
2021-08-05 18:03           ` Sanjay R Mehta
2021-08-03 12:34 ` [PATCH v2 3/4] thunderbolt: Skip port init for control adapter(0) Sanjay R Mehta
2021-08-03 12:34 ` [PATCH v2 4/4] thunderbolt: Fix port linking by checking all adapters Sanjay R Mehta

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=YQq21heIOiSeHqJ1@lahna \
    --to=mika.westerberg@linux.intel.com \
    --cc=Basavaraj.Natikar@amd.com \
    --cc=Sanju.Mehta@amd.com \
    --cc=YehezkelShB@gmail.com \
    --cc=andreas.noever@gmail.com \
    --cc=linux-usb@vger.kernel.org \
    --cc=michael.jamet@intel.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.