Displaying 7 results from an estimated 7 matches for "tegra_mc_find_swgroup".
2015 Jan 06
2
[PATCH nouveau 06/11] platform: complete the power up/down sequence
...ch_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_swgro...
2015 Jan 06
0
[PATCH nouveau 06/11] platform: complete the power up/down sequence
...gt;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...
2015 Jan 06
2
[PATCH nouveau 06/11] platform: complete the power up/down sequence
...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:
unsigned int swgroup = mc->soc->clients[i].swgroup;
struct tegra_mc_swgroup *group;
group = tegra_mc_find_swgroup(mc, swgroup);
if (!group) {
/* allocates and adds to mc->swgroups */
group = tegra_...
2015 Jan 06
0
[PATCH nouveau 06/11] platform: complete the power up/down sequence
...gt; 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.
>
> unsigned int swgroup = mc->soc->client...
2015 Jan 05
2
[PATCH nouveau 06/11] platform: complete the power up/down sequence
...Where tegra_mc_swgroup.clients is a list of struct tegra_mc_client
structures, each representing a memory client pertaining to the
SWGROUP.
We probably don't want to expose these structures publicly, an opaque
type should be enough. Then you can use functions like:
struct tegra_mc_swgroup *tegra_mc_find_swgroup(struct device_node *node);
At some point we may even need something like:
struct tegra_mc_client *tegra_mc_find_client(struct device_node *node,
const char *name);
And DT content like this:
gpu at 0,57000000 {
...
nvidia,memory-clients = <&mc 0x58>, <&mc 0x59&g...
2015 Jan 06
0
[PATCH nouveau 06/11] platform: complete the power up/down sequence
...}
list_add_tail(&mc->soc->clients[i].head, &sg->clients);
}
return 0;
}
>
> We probably don't want to expose these structures publicly, an opaque
> type should be enough. Then you can use functions like:
>
> struct tegra_mc_swgroup *tegra_mc_find_swgroup(struct device_node *node);
And then I can use the tegra_find_swgroup() in GK20A driver to get the
swgroup
and flush the memory clients by tegra_mc_flush(swgroup).
One problem is that the mc_soc and mc_clients are are defined as const.
To build
the swgroup list dynamically, I have to discard the...
2014 Dec 24
2
[PATCH nouveau 06/11] platform: complete the power up/down sequence
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 at nvidia.com>
> ---
> drm/nouveau_platform.c | 42 ++++++++++++++++++++++++++++++++++++++++++
> drm/nouveau_platform.h | 3 +++
> 2 files changed, 45