From: Jisheng Zhang <jszhang@marvell.com>
To: Gabriele Paoloni <gabriele.paoloni@huawei.com>
Cc: "jingoohan1@gmail.com" <jingoohan1@gmail.com>,
"pratyush.anand@gmail.com" <pratyush.anand@gmail.com>,
"bhelgaas@google.com" <bhelgaas@google.com>,
"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v2] PCI: designware: move remaining rc setup code to dw_pcie_setup_rc()
Date: Thu, 7 Apr 2016 16:34:43 +0800 [thread overview]
Message-ID: <20160407163443.291fbd49@xhacker> (raw)
In-Reply-To: <EE11001F9E5DDD47B7634E2F8A612F2E1ED43F95@lhreml503-mbs>
Hi Gabriele,
On Thu, 7 Apr 2016 08:20:28 +0000 Gabriele Paoloni wrote:
> Hi Jisheng
>
> Thanks for your reply
>
> > -----Original Message-----
> > From: Jisheng Zhang [mailto:jszhang@marvell.com]
> > Sent: 07 April 2016 03:38
> > To: Gabriele Paoloni; jingoohan1@gmail.com; pratyush.anand@gmail.com;
> > bhelgaas@google.com
> > Cc: linux-pci@vger.kernel.org; linux-kernel@vger.kernel.org; linux-arm-
> > kernel@lists.infradead.org
> > Subject: Re: [PATCH v2] PCI: designware: move remaining rc setup code
> > to dw_pcie_setup_rc()
> >
> > Hi Gabriele,
> >
> > On Wed, 6 Apr 2016 14:50:29 +0000 Gabriele Paoloni wrote:
> >
> > > Hi, sorry to be late on this
> > >
> > > > -----Original Message-----
> > > > From: linux-kernel-owner@vger.kernel.org [mailto:linux-kernel-
> > > > owner@vger.kernel.org] On Behalf Of Jisheng Zhang
> > > > Sent: 16 March 2016 11:41
> > > > To: jingoohan1@gmail.com; pratyush.anand@gmail.com;
> > bhelgaas@google.com
> > > > Cc: linux-pci@vger.kernel.org; linux-kernel@vger.kernel.org; linux-
> > arm-
> > > > kernel@lists.infradead.org; Jisheng Zhang
> > > > Subject: [PATCH v2] PCI: designware: move remaining rc setup code
> > to
> > > > dw_pcie_setup_rc()
> > > >
> > > > dw_pcie_setup_rc(), as its name indicates, setups the RC. But
> > current
> > > > dw_pcie_host_init() also contains some necessary rc setup code.
> > > >
> > > > Another reason: the host may lost power during suspend to ram, the
> > RC
> > > > need to be re-setup after resume. The rc can't be correctly resumed
> > > > without the rc setup code in dw_pcie_host_init().
> > > >
> > > > So this patch moves the code to dw_pcie_setup_rc() to address the
> > above
> > > > two issues. After this patch, each pcie designware driver users
> > could
> > > > call dw_pcie_setup_rc() to re-setup rc when resume back.
> > >
> > > I think this patch breaks the Hisilicon driver...
> > >
> > > Our driver performs linkup setup in UEFI therefore we do not call
> > > dw_pcie_setup_rc(), we only call dw_pcie_host_init().
> >
> > Thanks for the information. So pcie-hisi rely on UEFI to do something
> > similar
> > in dw_pcie_setup_rc(), this comes to a common driver implement
> > question: should
> > linux device driver rely on bootloader to configure HW device?
>
> I don't see any issue with this...
>
> >
> > Is it acceptable that pcie-hisi adds a call to dw_pcie_setup_rc() in
> > hisi_add_pcie_port()?
>
> I don't think so...that would try to overwrite what is already set by
> the bootloader; so it is wrong in principle and maybe it can lead to
> undefined behaviours...
make sense! This commit is intend to re-setup the rc when waken from s2ram (in
s2ram state, the host lost power)
I have no good solution but to introduce one function e.g
dw_pcie_setup_rc_after_linkup(), then move related code from dw_pcie_host_init
to it, then let my host driver resume hook to call.
Hi Pratyush, Jingoo and Bjorn etc.
any suggestions are appreciated!
Thanks,
Jisheng
WARNING: multiple messages have this Message-ID (diff)
From: jszhang@marvell.com (Jisheng Zhang)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2] PCI: designware: move remaining rc setup code to dw_pcie_setup_rc()
Date: Thu, 7 Apr 2016 16:34:43 +0800 [thread overview]
Message-ID: <20160407163443.291fbd49@xhacker> (raw)
In-Reply-To: <EE11001F9E5DDD47B7634E2F8A612F2E1ED43F95@lhreml503-mbs>
Hi Gabriele,
On Thu, 7 Apr 2016 08:20:28 +0000 Gabriele Paoloni wrote:
> Hi Jisheng
>
> Thanks for your reply
>
> > -----Original Message-----
> > From: Jisheng Zhang [mailto:jszhang at marvell.com]
> > Sent: 07 April 2016 03:38
> > To: Gabriele Paoloni; jingoohan1 at gmail.com; pratyush.anand at gmail.com;
> > bhelgaas at google.com
> > Cc: linux-pci at vger.kernel.org; linux-kernel at vger.kernel.org; linux-arm-
> > kernel at lists.infradead.org
> > Subject: Re: [PATCH v2] PCI: designware: move remaining rc setup code
> > to dw_pcie_setup_rc()
> >
> > Hi Gabriele,
> >
> > On Wed, 6 Apr 2016 14:50:29 +0000 Gabriele Paoloni wrote:
> >
> > > Hi, sorry to be late on this
> > >
> > > > -----Original Message-----
> > > > From: linux-kernel-owner at vger.kernel.org [mailto:linux-kernel-
> > > > owner at vger.kernel.org] On Behalf Of Jisheng Zhang
> > > > Sent: 16 March 2016 11:41
> > > > To: jingoohan1 at gmail.com; pratyush.anand at gmail.com;
> > bhelgaas at google.com
> > > > Cc: linux-pci at vger.kernel.org; linux-kernel at vger.kernel.org; linux-
> > arm-
> > > > kernel at lists.infradead.org; Jisheng Zhang
> > > > Subject: [PATCH v2] PCI: designware: move remaining rc setup code
> > to
> > > > dw_pcie_setup_rc()
> > > >
> > > > dw_pcie_setup_rc(), as its name indicates, setups the RC. But
> > current
> > > > dw_pcie_host_init() also contains some necessary rc setup code.
> > > >
> > > > Another reason: the host may lost power during suspend to ram, the
> > RC
> > > > need to be re-setup after resume. The rc can't be correctly resumed
> > > > without the rc setup code in dw_pcie_host_init().
> > > >
> > > > So this patch moves the code to dw_pcie_setup_rc() to address the
> > above
> > > > two issues. After this patch, each pcie designware driver users
> > could
> > > > call dw_pcie_setup_rc() to re-setup rc when resume back.
> > >
> > > I think this patch breaks the Hisilicon driver...
> > >
> > > Our driver performs linkup setup in UEFI therefore we do not call
> > > dw_pcie_setup_rc(), we only call dw_pcie_host_init().
> >
> > Thanks for the information. So pcie-hisi rely on UEFI to do something
> > similar
> > in dw_pcie_setup_rc(), this comes to a common driver implement
> > question: should
> > linux device driver rely on bootloader to configure HW device?
>
> I don't see any issue with this...
>
> >
> > Is it acceptable that pcie-hisi adds a call to dw_pcie_setup_rc() in
> > hisi_add_pcie_port()?
>
> I don't think so...that would try to overwrite what is already set by
> the bootloader; so it is wrong in principle and maybe it can lead to
> undefined behaviours...
make sense! This commit is intend to re-setup the rc when waken from s2ram (in
s2ram state, the host lost power)
I have no good solution but to introduce one function e.g
dw_pcie_setup_rc_after_linkup(), then move related code from dw_pcie_host_init
to it, then let my host driver resume hook to call.
Hi Pratyush, Jingoo and Bjorn etc.
any suggestions are appreciated!
Thanks,
Jisheng
next prev parent reply other threads:[~2016-04-07 8:39 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-16 11:40 [PATCH v2] PCI: designware: move remaining rc setup code to dw_pcie_setup_rc() Jisheng Zhang
2016-03-16 11:40 ` Jisheng Zhang
2016-03-17 4:28 ` Pratyush Anand
2016-03-17 4:28 ` Pratyush Anand
2016-04-05 23:12 ` Bjorn Helgaas
2016-04-05 23:12 ` Bjorn Helgaas
2016-04-06 14:50 ` Gabriele Paoloni
2016-04-06 14:50 ` Gabriele Paoloni
2016-04-07 2:37 ` Jisheng Zhang
2016-04-07 2:37 ` Jisheng Zhang
2016-04-07 8:20 ` Gabriele Paoloni
2016-04-07 8:20 ` Gabriele Paoloni
2016-04-07 8:34 ` Jisheng Zhang [this message]
2016-04-07 8:34 ` Jisheng Zhang
2016-04-07 10:06 ` Gabriele Paoloni
2016-04-07 10:06 ` Gabriele Paoloni
2016-04-07 11:42 ` Jisheng Zhang
2016-04-07 11:42 ` Jisheng Zhang
2016-04-07 14:05 ` Bjorn Helgaas
2016-04-07 14:05 ` Bjorn Helgaas
2016-04-08 13:33 ` Gabriele Paoloni
2016-04-08 13:33 ` Gabriele Paoloni
2016-04-08 16:01 ` Bjorn Helgaas
2016-04-08 16:01 ` Bjorn Helgaas
2016-04-12 9:43 ` Gabriele Paoloni
2016-04-12 9:43 ` Gabriele Paoloni
2016-04-13 5:51 ` Jingoo Han
2016-04-13 5:51 ` Jingoo Han
2016-04-13 7:57 ` Gabriele Paoloni
2016-04-13 7:57 ` Gabriele Paoloni
2016-04-14 11:52 ` Jingoo Han
2016-04-14 11:52 ` Jingoo Han
2016-04-14 13:08 ` Pratyush Anand
2016-04-14 13:08 ` Pratyush Anand
2016-04-14 13:13 ` Gabriele Paoloni
2016-04-14 13:13 ` Gabriele Paoloni
2016-04-14 13:13 ` Gabriele Paoloni
2016-04-21 15:48 ` Bjorn Helgaas
2016-04-21 15:48 ` Bjorn Helgaas
2016-04-21 15:53 ` Gabriele Paoloni
2016-04-21 15:53 ` Gabriele Paoloni
2016-04-07 6:59 ` Pratyush Anand
2016-04-07 6:59 ` Pratyush Anand
2016-04-07 8:14 ` Gabriele Paoloni
2016-04-07 8:14 ` Gabriele Paoloni
2016-04-07 8:14 ` Gabriele Paoloni
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=20160407163443.291fbd49@xhacker \
--to=jszhang@marvell.com \
--cc=bhelgaas@google.com \
--cc=gabriele.paoloni@huawei.com \
--cc=jingoohan1@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=pratyush.anand@gmail.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.