From: Vince Hsu <vinceh@nvidia.com>
To: Thierry Reding <thierry.reding@gmail.com>
Cc: Lucas Stach <dev@lynxeye.de>,
swarren@wwwdotorg.org, gnurou@gmail.com, bskeggs@redhat.com,
martin.peres@free.fr, seven@nimrod-online.com,
samuel.pitoiset@gmail.com, nouveau@lists.freedesktop.org,
linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH nouveau 06/11] platform: complete the power up/down sequence
Date: Tue, 6 Jan 2015 22:19:49 +0800 [thread overview]
Message-ID: <20150106141948.GA18598@nvidia.com> (raw)
In-Reply-To: <20150106135551.GI31830@ulmo.nvidia.com>
On 02:55:52PM Jan 06, Thierry Reding wrote:
> * PGP Signed by an unknown key
>
> On Tue, Jan 06, 2015 at 08:13:01PM +0800, Vince Hsu wrote:
> >
> > On 01/06/2015 07:36 PM, Thierry Reding wrote:
> > >> Old Signed by an unknown key
> > >
> > >On Tue, Jan 06, 2015 at 05:34:01PM +0800, Vince Hsu wrote:
> > >>On 01/05/2015 11:25 PM, Thierry Reding wrote:
> > >>>>Old Signed by an unknown key
> > >>>On Thu, Dec 25, 2014 at 10:42:58AM +0800, Vince Hsu wrote:
> > >>>>On 12/24/2014 09:23 PM, Lucas Stach wrote:
> > >>>>>Am Dienstag, den 23.12.2014, 18:39 +0800 schrieb Vince Hsu:
> > >>>>>>This patch adds some missing pieces of the rail gaing/ungating sequence that
> > >>>>>>can improve the stability in theory.
> > >>>>>>
> > >>>>>>Signed-off-by: Vince Hsu <vinceh@nvidia.com>
> > >>>>>>---
> > >>>>>> drm/nouveau_platform.c | 42 ++++++++++++++++++++++++++++++++++++++++++
> > >>>>>> drm/nouveau_platform.h | 3 +++
> > >>>>>> 2 files changed, 45 insertions(+)
> > >>>>>>
> > >>>>>>diff --git a/drm/nouveau_platform.c b/drm/nouveau_platform.c
> > >>>>>>index 68788b17a45c..527fe2358fc9 100644
> > >>>>>>--- a/drm/nouveau_platform.c
> > >>>>>>+++ b/drm/nouveau_platform.c
> > >>>>>>@@ -25,9 +25,11 @@
> > >>>>>> #include <linux/module.h>
> > >>>>>> #include <linux/platform_device.h>
> > >>>>>> #include <linux/of.h>
> > >>>>>>+#include <linux/of_platform.h>
> > >>>>>> #include <linux/reset.h>
> > >>>>>> #include <linux/regulator/consumer.h>
> > >>>>>> #include <soc/tegra/fuse.h>
> > >>>>>>+#include <soc/tegra/mc.h>
> > >>>>>> #include <soc/tegra/pmc.h>
> > >>>>>> #include "nouveau_drm.h"
> > >>>>>>@@ -61,6 +63,9 @@ static int nouveau_platform_power_up(struct nouveau_platform_gpu *gpu)
> > >>>>>> reset_control_deassert(gpu->rst);
> > >>>>>> udelay(10);
> > >>>>>>+ tegra_mc_flush(gpu->mc, gpu->swgroup, false);
> > >>>>>>+ udelay(10);
> > >>>>>>+
> > >>>>>> return 0;
> > >>>>>> err_clamp:
> > >>>>>>@@ -77,6 +82,14 @@ static int nouveau_platform_power_down(struct nouveau_platform_gpu *gpu)
> > >>>>>> {
> > >>>>>> int err;
> > >>>>>>+ tegra_mc_flush(gpu->mc, gpu->swgroup, true);
> > >>>>>>+ udelay(10);
> > >>>>>>+
> > >>>>>>+ err = tegra_powergate_gpu_set_clamping(true);
> > >>>>>>+ if (err)
> > >>>>>>+ return err;
> > >>>>>>+ udelay(10);
> > >>>>>>+
> > >>>>>> reset_control_assert(gpu->rst);
> > >>>>>> udelay(10);
> > >>>>>>@@ -91,6 +104,31 @@ static int nouveau_platform_power_down(struct nouveau_platform_gpu *gpu)
> > >>>>>> return 0;
> > >>>>>> }
> > >>>>>>+static int nouveau_platform_get_mc(struct device *dev,
> > >>>>>>+ struct tegra_mc **mc, unsigned int *swgroup)
> > >>>>>Uhm, no. If this is needed this has to be a Tegra MC function and not
> > >>>>>burried into nouveau code. You are using knowledge about the internal
> > >>>>>workings of the MC driver here.
> > >>>>>
> > >>>>>Also this should probably only take the Dt node pointer as argument and
> > >>>>>return a something like a tegra_mc_client struct that contains both the
> > >>>>>MC device pointer and the swgroup so you can pass that to
> > >>>>>tegra_mc_flush().
> > >>>>Good idea. I will have something as below in V2 if there is no other
> > >>>>comments for this.
> > >>>>
> > >>>>tegra_mc_client *tegra_mc_find_client(struct device_node *node)
> > >>>>{
> > >>>> ...
> > >>>> ret = of_parse_phandle_with_args(node, "nvidia,memory-client", ...)
> > >>>> ...
> > >>>>}
> > >>>>
> > >>>>There were some discussion about this few weeks ago. I'm not sure whether we
> > >>>>have some conclusion/implementation though. Thierry?
> > >>>>
> > >>>>http://lists.infradead.org/pipermail/linux-arm-kernel/2014-December/308703.html
> > >>>I don't think client is a good fit here. Flushing is done per SWGROUP
> > >>>(on all clients of the SWGROUP). So I think we'll want something like:
> > >>>
> > >>> gpu@0,57000000 {
> > >>> ...
> > >>> nvidia,swgroup = <&mc TEGRA_SWGROUP_GPU>;
> > >>> ...
> > >>> };
> > >>>
> > >>>In the DT and return a struct tegra_mc_swgroup along the lines of:
> > >>>
> > >>> struct tegra_mc_client {
> > >>> unsigned int id;
> > >>> unsigned int swgroup;
> > >>>
> > >>> struct list_head list;
> > >>> };
> > >>>
> > >>> struct tegra_mc_swgroup {
> > >>> struct list_head clients;
> > >>> unsigned int id;
> > >>> };
> > >>>
> > >>>Where tegra_mc_swgroup.clients is a list of struct tegra_mc_client
> > >>>structures, each representing a memory client pertaining to the
> > >>>SWGROUP.
> > >>Based on your suggestion above, I created a struct tegra_mc_swgroup:
> > >>
> > >>struct tegra_mc_swgroup {
> > >> unsigned int id;
> > >> struct tegra_mc *mc;
> > >> struct list_head head;
> > >> struct list_head clients;
> > >>};
> > >>
> > >>And added the list head in the struct tegra_mc_soc.
> > >>
> > >>struct tegra_mc_soc {
> > >> struct tegra_mc_client *clients;
> > >> unsigned int num_clients;
> > >>
> > >> struct tegra_mc_hr *hr_clients;
> > >> unsigned int num_hr_clients;
> > >Why do you still need these?
> > This part is added in "[PATCH 2/11] memory: tegra: add mc flush support" and
> > "[PATCH 3/11] memory: tegra: add flush operation for Tegra124 memory
> > clients"
> > for the hotreset registers.
>
> Right. Perhaps calling this structure tegra_mc_hotreset and the
> variables *_hotresets would be a good idea to clarify that they aren't
> actually per-client but per-SWGROUP.
Okay.
>
> > >>Created one function to build the swgroup list.
> > >>
> > >>static int tegra_mc_build_swgroup(struct tegra_mc *mc)
> > >>{
> > >> int i;
> > >>
> > >> for (i = 0; i < mc->soc->num_clients; i++) {
> > >> struct tegra_mc_swgroup *sg;
> > >> bool found = false;
> > >>
> > >> list_for_each_entry(sg, &mc->soc->swgroups, head) {
> > >> if (sg->id == mc->soc->clients[i].swgroup) {
> > >> found = true;
> > >> break;
> > >> }
> > >> }
> > >Can't you use your new tegra_mc_find_swgroup() function here? That way
> > >you could turn it into something slightly more readable:
> > The tegra_mc_build_swgroup() is called during driver probe, and after that
> > the swgroup list is established and then the tegra_mc_find_swgroup() can
> > work.
>
> But you can reuse tegra_mc_find_swgroup() instead of open-coding it to
> search the partial list. The code will be exactly the same, won't it?
That depends on how you define the tegra_mc_find_swgroup().
>
> > > unsigned int swgroup = mc->soc->clients[i].swgroup;
> > > struct tegra_mc_swgroup *group;
> > >
> > > group = tegra_mc_find_swgroup(mc, swgroup);
> > The tegra_mc_find_swgroup() is expected to be called outside the mc driver
> > and
> > can only take the device node as argument because other drivers do not have
> > the mc instance information unless they call tegra_mc_find_swgroup() or
> > tegra_mc_find_client().
>
> You can do that by making a low-level function that works on the struct
> tegra_mc * and an unsigned int swgroup which is only used internally and
> then wrap a public function around it that deals with looking up the
> struct tegra_mc * and SWGROUP ID.
Now the tegra_mc_find_swgroup() looks like below:
struct tegra_mc_swgroup *tegra_mc_find_swgroup(struct device_node *node)
{
struct of_phandle_args args;
struct platform_device *pdev;
struct tegra_mc *mc;
struct tegra_mc_swgroup *sg;
int ret;
ret = of_parse_phandle_with_fixed_args(node, "nvidia,swgroup",
1, 0, &args);
if (ret)
return ERR_PTR(ret);
pdev = of_find_device_by_node(args.np);
if (!pdev)
return NULL;
mc = platform_get_drvdata(pdev);
if (!mc)
return NULL;
list_for_each_entry(sg, &mc->soc->swgroups, head) {
if (sg->id == args.args[0])
return sg;
}
return NULL;
}
EXPORT_SYMBOL(tegra_mc_find_swgroup);
I will add a find_swgroup() as internal funcion and add the add_swgroup()
per your suggestion. And keep the tegra_mc_find_swgroup() public. Is that
okay for you?
Thanks,
Vince
WARNING: multiple messages have this Message-ID (diff)
From: Vince Hsu <vinceh@nvidia.com>
To: Thierry Reding <thierry.reding@gmail.com>
Cc: Lucas Stach <dev@lynxeye.de>, <swarren@wwwdotorg.org>,
<gnurou@gmail.com>, <bskeggs@redhat.com>, <martin.peres@free.fr>,
<seven@nimrod-online.com>, <samuel.pitoiset@gmail.com>,
<nouveau@lists.freedesktop.org>, <linux-tegra@vger.kernel.org>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH nouveau 06/11] platform: complete the power up/down sequence
Date: Tue, 6 Jan 2015 22:19:49 +0800 [thread overview]
Message-ID: <20150106141948.GA18598@nvidia.com> (raw)
In-Reply-To: <20150106135551.GI31830@ulmo.nvidia.com>
On 02:55:52PM Jan 06, Thierry Reding wrote:
> * PGP Signed by an unknown key
>
> On Tue, Jan 06, 2015 at 08:13:01PM +0800, Vince Hsu wrote:
> >
> > On 01/06/2015 07:36 PM, Thierry Reding wrote:
> > >> Old Signed by an unknown key
> > >
> > >On Tue, Jan 06, 2015 at 05:34:01PM +0800, Vince Hsu wrote:
> > >>On 01/05/2015 11:25 PM, Thierry Reding wrote:
> > >>>>Old Signed by an unknown key
> > >>>On Thu, Dec 25, 2014 at 10:42:58AM +0800, Vince Hsu wrote:
> > >>>>On 12/24/2014 09:23 PM, Lucas Stach wrote:
> > >>>>>Am Dienstag, den 23.12.2014, 18:39 +0800 schrieb Vince Hsu:
> > >>>>>>This patch adds some missing pieces of the rail gaing/ungating sequence that
> > >>>>>>can improve the stability in theory.
> > >>>>>>
> > >>>>>>Signed-off-by: Vince Hsu <vinceh@nvidia.com>
> > >>>>>>---
> > >>>>>> drm/nouveau_platform.c | 42 ++++++++++++++++++++++++++++++++++++++++++
> > >>>>>> drm/nouveau_platform.h | 3 +++
> > >>>>>> 2 files changed, 45 insertions(+)
> > >>>>>>
> > >>>>>>diff --git a/drm/nouveau_platform.c b/drm/nouveau_platform.c
> > >>>>>>index 68788b17a45c..527fe2358fc9 100644
> > >>>>>>--- a/drm/nouveau_platform.c
> > >>>>>>+++ b/drm/nouveau_platform.c
> > >>>>>>@@ -25,9 +25,11 @@
> > >>>>>> #include <linux/module.h>
> > >>>>>> #include <linux/platform_device.h>
> > >>>>>> #include <linux/of.h>
> > >>>>>>+#include <linux/of_platform.h>
> > >>>>>> #include <linux/reset.h>
> > >>>>>> #include <linux/regulator/consumer.h>
> > >>>>>> #include <soc/tegra/fuse.h>
> > >>>>>>+#include <soc/tegra/mc.h>
> > >>>>>> #include <soc/tegra/pmc.h>
> > >>>>>> #include "nouveau_drm.h"
> > >>>>>>@@ -61,6 +63,9 @@ static int nouveau_platform_power_up(struct nouveau_platform_gpu *gpu)
> > >>>>>> reset_control_deassert(gpu->rst);
> > >>>>>> udelay(10);
> > >>>>>>+ tegra_mc_flush(gpu->mc, gpu->swgroup, false);
> > >>>>>>+ udelay(10);
> > >>>>>>+
> > >>>>>> return 0;
> > >>>>>> err_clamp:
> > >>>>>>@@ -77,6 +82,14 @@ static int nouveau_platform_power_down(struct nouveau_platform_gpu *gpu)
> > >>>>>> {
> > >>>>>> int err;
> > >>>>>>+ tegra_mc_flush(gpu->mc, gpu->swgroup, true);
> > >>>>>>+ udelay(10);
> > >>>>>>+
> > >>>>>>+ err = tegra_powergate_gpu_set_clamping(true);
> > >>>>>>+ if (err)
> > >>>>>>+ return err;
> > >>>>>>+ udelay(10);
> > >>>>>>+
> > >>>>>> reset_control_assert(gpu->rst);
> > >>>>>> udelay(10);
> > >>>>>>@@ -91,6 +104,31 @@ static int nouveau_platform_power_down(struct nouveau_platform_gpu *gpu)
> > >>>>>> return 0;
> > >>>>>> }
> > >>>>>>+static int nouveau_platform_get_mc(struct device *dev,
> > >>>>>>+ struct tegra_mc **mc, unsigned int *swgroup)
> > >>>>>Uhm, no. If this is needed this has to be a Tegra MC function and not
> > >>>>>burried into nouveau code. You are using knowledge about the internal
> > >>>>>workings of the MC driver here.
> > >>>>>
> > >>>>>Also this should probably only take the Dt node pointer as argument and
> > >>>>>return a something like a tegra_mc_client struct that contains both the
> > >>>>>MC device pointer and the swgroup so you can pass that to
> > >>>>>tegra_mc_flush().
> > >>>>Good idea. I will have something as below in V2 if there is no other
> > >>>>comments for this.
> > >>>>
> > >>>>tegra_mc_client *tegra_mc_find_client(struct device_node *node)
> > >>>>{
> > >>>> ...
> > >>>> ret = of_parse_phandle_with_args(node, "nvidia,memory-client", ...)
> > >>>> ...
> > >>>>}
> > >>>>
> > >>>>There were some discussion about this few weeks ago. I'm not sure whether we
> > >>>>have some conclusion/implementation though. Thierry?
> > >>>>
> > >>>>http://lists.infradead.org/pipermail/linux-arm-kernel/2014-December/308703.html
> > >>>I don't think client is a good fit here. Flushing is done per SWGROUP
> > >>>(on all clients of the SWGROUP). So I think we'll want something like:
> > >>>
> > >>> gpu@0,57000000 {
> > >>> ...
> > >>> nvidia,swgroup = <&mc TEGRA_SWGROUP_GPU>;
> > >>> ...
> > >>> };
> > >>>
> > >>>In the DT and return a struct tegra_mc_swgroup along the lines of:
> > >>>
> > >>> struct tegra_mc_client {
> > >>> unsigned int id;
> > >>> unsigned int swgroup;
> > >>>
> > >>> struct list_head list;
> > >>> };
> > >>>
> > >>> struct tegra_mc_swgroup {
> > >>> struct list_head clients;
> > >>> unsigned int id;
> > >>> };
> > >>>
> > >>>Where tegra_mc_swgroup.clients is a list of struct tegra_mc_client
> > >>>structures, each representing a memory client pertaining to the
> > >>>SWGROUP.
> > >>Based on your suggestion above, I created a struct tegra_mc_swgroup:
> > >>
> > >>struct tegra_mc_swgroup {
> > >> unsigned int id;
> > >> struct tegra_mc *mc;
> > >> struct list_head head;
> > >> struct list_head clients;
> > >>};
> > >>
> > >>And added the list head in the struct tegra_mc_soc.
> > >>
> > >>struct tegra_mc_soc {
> > >> struct tegra_mc_client *clients;
> > >> unsigned int num_clients;
> > >>
> > >> struct tegra_mc_hr *hr_clients;
> > >> unsigned int num_hr_clients;
> > >Why do you still need these?
> > This part is added in "[PATCH 2/11] memory: tegra: add mc flush support" and
> > "[PATCH 3/11] memory: tegra: add flush operation for Tegra124 memory
> > clients"
> > for the hotreset registers.
>
> Right. Perhaps calling this structure tegra_mc_hotreset and the
> variables *_hotresets would be a good idea to clarify that they aren't
> actually per-client but per-SWGROUP.
Okay.
>
> > >>Created one function to build the swgroup list.
> > >>
> > >>static int tegra_mc_build_swgroup(struct tegra_mc *mc)
> > >>{
> > >> int i;
> > >>
> > >> for (i = 0; i < mc->soc->num_clients; i++) {
> > >> struct tegra_mc_swgroup *sg;
> > >> bool found = false;
> > >>
> > >> list_for_each_entry(sg, &mc->soc->swgroups, head) {
> > >> if (sg->id == mc->soc->clients[i].swgroup) {
> > >> found = true;
> > >> break;
> > >> }
> > >> }
> > >Can't you use your new tegra_mc_find_swgroup() function here? That way
> > >you could turn it into something slightly more readable:
> > The tegra_mc_build_swgroup() is called during driver probe, and after that
> > the swgroup list is established and then the tegra_mc_find_swgroup() can
> > work.
>
> But you can reuse tegra_mc_find_swgroup() instead of open-coding it to
> search the partial list. The code will be exactly the same, won't it?
That depends on how you define the tegra_mc_find_swgroup().
>
> > > unsigned int swgroup = mc->soc->clients[i].swgroup;
> > > struct tegra_mc_swgroup *group;
> > >
> > > group = tegra_mc_find_swgroup(mc, swgroup);
> > The tegra_mc_find_swgroup() is expected to be called outside the mc driver
> > and
> > can only take the device node as argument because other drivers do not have
> > the mc instance information unless they call tegra_mc_find_swgroup() or
> > tegra_mc_find_client().
>
> You can do that by making a low-level function that works on the struct
> tegra_mc * and an unsigned int swgroup which is only used internally and
> then wrap a public function around it that deals with looking up the
> struct tegra_mc * and SWGROUP ID.
Now the tegra_mc_find_swgroup() looks like below:
struct tegra_mc_swgroup *tegra_mc_find_swgroup(struct device_node *node)
{
struct of_phandle_args args;
struct platform_device *pdev;
struct tegra_mc *mc;
struct tegra_mc_swgroup *sg;
int ret;
ret = of_parse_phandle_with_fixed_args(node, "nvidia,swgroup",
1, 0, &args);
if (ret)
return ERR_PTR(ret);
pdev = of_find_device_by_node(args.np);
if (!pdev)
return NULL;
mc = platform_get_drvdata(pdev);
if (!mc)
return NULL;
list_for_each_entry(sg, &mc->soc->swgroups, head) {
if (sg->id == args.args[0])
return sg;
}
return NULL;
}
EXPORT_SYMBOL(tegra_mc_find_swgroup);
I will add a find_swgroup() as internal funcion and add the add_swgroup()
per your suggestion. And keep the tegra_mc_find_swgroup() public. Is that
okay for you?
Thanks,
Vince
next prev parent reply other threads:[~2015-01-06 14:19 UTC|newest]
Thread overview: 139+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-23 10:39 [PATCH 0/11] Add suspend/resume support for GK20A Vince Hsu
2014-12-23 10:39 ` Vince Hsu
[not found] ` <1419331204-26679-1-git-send-email-vinceh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-12-23 10:39 ` [PATCH 1/11] ARM: tegra: add function to control the GPU rail clamp Vince Hsu
2014-12-23 10:39 ` Vince Hsu
[not found] ` <1419331204-26679-2-git-send-email-vinceh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-12-24 13:16 ` Lucas Stach
2014-12-24 13:16 ` Lucas Stach
[not found] ` <1419426990.2179.7.camel-8ppwABl0HbeELgA04lAiVw@public.gmane.org>
2014-12-25 2:28 ` Vince Hsu
2014-12-25 2:28 ` Vince Hsu
[not found] ` <549B7638.2010405-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-12-25 20:34 ` Lucas Stach
2014-12-25 20:34 ` Lucas Stach
[not found] ` <1419539683.2165.6.camel-8ppwABl0HbeELgA04lAiVw@public.gmane.org>
2014-12-29 2:49 ` Vince Hsu
2014-12-29 2:49 ` Vince Hsu
[not found] ` <54A0C148.6030400-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-12-30 16:42 ` Lucas Stach
2014-12-30 16:42 ` Lucas Stach
[not found] ` <1419957752.4082.2.camel-8ppwABl0HbeELgA04lAiVw@public.gmane.org>
2015-01-05 6:55 ` Vince Hsu
2015-01-05 6:55 ` Vince Hsu
2015-01-05 15:09 ` Thierry Reding
2015-01-05 15:09 ` Thierry Reding
[not found] ` <20150105150932.GG12010-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2015-01-06 2:11 ` Vince Hsu
2015-01-06 2:11 ` Vince Hsu
[not found] ` <54AB445D.7010303-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-01-06 11:15 ` Thierry Reding
2015-01-06 11:15 ` Thierry Reding
[not found] ` <20150106111538.GB31830-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2015-01-06 12:03 ` Vince Hsu
2015-01-06 12:03 ` Vince Hsu
2015-01-06 13:29 ` Thierry Reding
2015-01-06 13:51 ` Vince Hsu
2015-01-06 13:51 ` Vince Hsu
[not found] ` <20150106135110.GA18076-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-01-06 14:23 ` Thierry Reding
2015-01-06 14:23 ` Thierry Reding
2015-01-07 10:19 ` Peter De Schrijver
2015-01-07 10:19 ` Peter De Schrijver
[not found] ` <20150107101900.GP10073-Rysk9IDjsxmJz7etNGeUX8VPkgjIgRvpAL8bYrjMMd8@public.gmane.org>
2015-01-07 10:49 ` Vince Hsu
2015-01-07 10:49 ` Vince Hsu
2015-01-07 13:27 ` Thierry Reding
2015-01-07 14:08 ` Peter De Schrijver
2015-01-07 14:08 ` Peter De Schrijver
2015-01-07 14:28 ` Vince Hsu
2015-01-07 14:28 ` Vince Hsu
[not found] ` <20150107142828.GB7392-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-01-07 14:48 ` Thierry Reding
2015-01-07 14:48 ` Thierry Reding
2015-01-08 4:25 ` Vince Hsu
2015-01-08 4:25 ` Vince Hsu
[not found] ` <54AE06AE.8080603-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-01-08 8:03 ` Thierry Reding
2015-01-08 8:03 ` Thierry Reding
2015-01-07 14:12 ` Peter De Schrijver
2015-01-07 14:12 ` Peter De Schrijver
2015-01-07 14:19 ` Vince Hsu
2015-01-07 14:19 ` Vince Hsu
2015-01-07 15:12 ` Thierry Reding
2015-01-08 4:23 ` Vince Hsu
2015-01-08 4:23 ` Vince Hsu
2015-01-08 9:32 ` Peter De Schrijver
2015-01-08 9:32 ` Peter De Schrijver
[not found] ` <20150108093205.GV10073-Rysk9IDjsxmJz7etNGeUX8VPkgjIgRvpAL8bYrjMMd8@public.gmane.org>
2015-01-08 11:41 ` Thierry Reding
2015-01-08 11:41 ` Thierry Reding
[not found] ` <20150108114153.GL1987-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2015-01-08 12:41 ` Peter De Schrijver
2015-01-08 12:41 ` Peter De Schrijver
2015-01-08 9:39 ` Peter De Schrijver
2015-01-08 9:39 ` Peter De Schrijver
[not found] ` <20150108093957.GW10073-Rysk9IDjsxmJz7etNGeUX8VPkgjIgRvpAL8bYrjMMd8@public.gmane.org>
2015-01-08 11:44 ` Thierry Reding
2015-01-08 11:44 ` Thierry Reding
2014-12-24 13:52 ` Dmitry Osipenko
2014-12-24 13:52 ` Dmitry Osipenko
[not found] ` <549AC511.5040507-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-12-25 2:05 ` Vince Hsu
2014-12-25 2:05 ` Vince Hsu
2014-12-23 10:39 ` [PATCH 2/11] memory: tegra: add mc flush support Vince Hsu
2014-12-23 10:39 ` Vince Hsu
2015-01-06 14:18 ` Thierry Reding
[not found] ` <20150106141821.GJ31830-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2015-01-07 10:08 ` Peter De Schrijver
2015-01-07 10:08 ` Peter De Schrijver
[not found] ` <20150107100804.GO10073-Rysk9IDjsxmJz7etNGeUX8VPkgjIgRvpAL8bYrjMMd8@public.gmane.org>
2015-01-07 13:34 ` Thierry Reding
2015-01-07 13:34 ` Thierry Reding
2014-12-23 10:39 ` [PATCH 3/11] memory: tegra: add flush operation for Tegra124 memory clients Vince Hsu
2014-12-23 10:39 ` Vince Hsu
2015-01-06 14:30 ` Thierry Reding
2015-01-06 15:07 ` Vince Hsu
2015-01-06 15:07 ` Vince Hsu
2015-01-06 15:27 ` Thierry Reding
[not found] ` <20150106152750.GR31830-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2015-01-06 15:53 ` Vince Hsu
2015-01-06 15:53 ` Vince Hsu
2014-12-23 10:39 ` [PATCH 4/11] ARM: tegra: add mc node for Tegra124 GPU Vince Hsu
2014-12-23 10:39 ` Vince Hsu
2014-12-23 10:39 ` [PATCH nouveau 05/11] platform: switch to the new gpu rail clamping function Vince Hsu
2014-12-23 10:39 ` Vince Hsu
2014-12-23 10:39 ` [PATCH nouveau 06/11] platform: complete the power up/down sequence Vince Hsu
2014-12-23 10:39 ` Vince Hsu
[not found] ` <1419331204-26679-7-git-send-email-vinceh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-12-24 13:23 ` Lucas Stach
2014-12-24 13:23 ` Lucas Stach
[not found] ` <1419427385.2179.13.camel-8ppwABl0HbeELgA04lAiVw@public.gmane.org>
2014-12-25 2:42 ` Vince Hsu
2014-12-25 2:42 ` Vince Hsu
[not found] ` <549B79B2.6010301-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-01-05 15:25 ` Thierry Reding
2015-01-05 15:25 ` Thierry Reding
[not found] ` <20150105152552.GH12010-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2015-01-06 9:34 ` Vince Hsu
2015-01-06 9:34 ` Vince Hsu
2015-01-06 11:36 ` Thierry Reding
2015-01-06 12:13 ` Vince Hsu
2015-01-06 12:13 ` Vince Hsu
[not found] ` <54ABD14D.30003-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-01-06 13:55 ` Thierry Reding
2015-01-06 13:55 ` Thierry Reding
2015-01-06 14:19 ` Vince Hsu [this message]
2015-01-06 14:19 ` Vince Hsu
[not found] ` <20150106141948.GA18598-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-01-06 14:24 ` Thierry Reding
2015-01-06 14:24 ` Thierry Reding
2014-12-23 10:40 ` [PATCH nouveau 07/11] instmem: make nv50_instmem_priv public Vince Hsu
2014-12-23 10:40 ` Vince Hsu
2014-12-23 10:40 ` [PATCH nouveau 08/11] instmem: add dummy support for GK20A Vince Hsu
2014-12-23 10:40 ` Vince Hsu
[not found] ` <1419331204-26679-9-git-send-email-vinceh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-12-23 16:39 ` Ilia Mirkin
2014-12-23 16:39 ` [Nouveau] " Ilia Mirkin
[not found] ` <CAKb7UvgCizkaK2aZeWp=mgH34Ur3hi0hSFghopkpkkBeuqzsoQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-12-24 2:44 ` Vince Hsu
2014-12-24 2:44 ` [Nouveau] " Vince Hsu
2014-12-23 10:40 ` [PATCH nouveau 09/11] drm: export some variable and functions to resue the PM functions Vince Hsu
2014-12-23 10:40 ` Vince Hsu
[not found] ` <1419331204-26679-10-git-send-email-vinceh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-12-30 2:34 ` Emil Velikov
2014-12-30 2:34 ` [Nouveau] " Emil Velikov
[not found] ` <54A20F4D.4040100-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-12-30 3:18 ` Vince Hsu
2014-12-30 3:18 ` [Nouveau] " Vince Hsu
[not found] ` <54A2198A.4000707-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-01-05 15:32 ` Thierry Reding
2015-01-05 15:32 ` [Nouveau] " Thierry Reding
[not found] ` <20150105153252.GI12010-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2015-01-05 19:50 ` Alexandre Courbot
2015-01-05 19:50 ` [Nouveau] " Alexandre Courbot
[not found] ` <CAAVeFuK-SgUbtHADX4-pXN5_ayzvEd+1KxJOBcRe2tmDfHaLEA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-06 9:36 ` Vince Hsu
2015-01-06 9:36 ` [Nouveau] " Vince Hsu
2015-01-06 11:49 ` Thierry Reding
2015-01-06 11:49 ` [Nouveau] " Thierry Reding
2015-01-06 12:27 ` Vince Hsu
2015-01-06 12:27 ` Vince Hsu
[not found] ` <54ABD49A.6080501-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-01-06 14:37 ` Thierry Reding
2015-01-06 14:37 ` [Nouveau] " Thierry Reding
2015-01-06 14:44 ` Ilia Mirkin
[not found] ` <CAKb7UvgomyQkiwfGTdyuU-muE-_pPxOSmeXh9uQ6-ri0HHxLrQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-06 14:50 ` Thierry Reding
2015-01-06 14:50 ` Thierry Reding
[not found] ` <20150106145054.GO31830-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2015-01-06 15:03 ` Ilia Mirkin
2015-01-06 15:03 ` [Nouveau] " Ilia Mirkin
2015-01-06 15:35 ` Thierry Reding
2014-12-23 10:40 ` [PATCH nouveau 10/11] platform: add suspend/resume support Vince Hsu
2014-12-23 10:40 ` Vince Hsu
2014-12-23 10:40 ` [PATCH nouveau 11/11] platform: add PM runtime " Vince Hsu
2014-12-23 10:40 ` Vince Hsu
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=20150106141948.GA18598@nvidia.com \
--to=vinceh@nvidia.com \
--cc=bskeggs@redhat.com \
--cc=dev@lynxeye.de \
--cc=gnurou@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=martin.peres@free.fr \
--cc=nouveau@lists.freedesktop.org \
--cc=samuel.pitoiset@gmail.com \
--cc=seven@nimrod-online.com \
--cc=swarren@wwwdotorg.org \
--cc=thierry.reding@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.