search for: tegra_mc_find_swgroup

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