diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2011-12-13 15:51:54 +0200 |
---|---|---|
committer | Varun Wadekar <vwadekar@nvidia.com> | 2011-12-21 12:06:23 +0530 |
commit | 6b8f0a7f661a54b776eec538b9cb0a7a2947f2b8 (patch) | |
tree | 3320d9043738bca98e088ec6f2b1381e669f8b43 /drivers/video/tegra/host/nvhost_acm.c | |
parent | b1d1c5875e46760a0123cc5b3b85a3cb7528ee79 (diff) |
video: tegra: host: Register all clients as devices
Register all host1x client modules as devices to kernel, and a matching
driver for each of them.
Change-Id: Id3ab2adc860fabfcc1595e0a5dbaeb07575e19e8
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/69996
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Ken Adams <kadams@nvidia.com>
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Diffstat (limited to 'drivers/video/tegra/host/nvhost_acm.c')
-rw-r--r-- | drivers/video/tegra/host/nvhost_acm.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/video/tegra/host/nvhost_acm.c b/drivers/video/tegra/host/nvhost_acm.c index 3d63dd62e2fa..c3b4085df738 100644 --- a/drivers/video/tegra/host/nvhost_acm.c +++ b/drivers/video/tegra/host/nvhost_acm.c @@ -348,6 +348,7 @@ void nvhost_module_preinit(const char *name, const struct nvhost_moduledesc *desc) { int i = 0; + /* initialize clocks to known state */ while (desc->clocks[i].name && i < NVHOST_MODULE_MAX_CLOCKS) { char devname[MAX_DEVID_LENGTH]; @@ -380,6 +381,14 @@ int nvhost_module_init(struct nvhost_module *mod, const char *name, struct device *dev) { int i = 0; + int err; + + /* register to kernel */ + mod->drv.driver.name = name; + mod->drv.driver.owner = THIS_MODULE; + err = nvhost_driver_register(&mod->drv); + if (err) + return err; nvhost_module_preinit(name, desc); mod->name = name; @@ -488,6 +497,8 @@ void nvhost_module_deinit(struct device *dev, struct nvhost_module *mod) { int i; + nvhost_driver_unregister(&mod->drv); + if (mod->desc->deinit) mod->desc->deinit(dev, mod); |