video: tegra: host: Register devices in SoC files
[linux-2.6.git] / drivers / video / tegra / host / isp / isp.c
1 /*
2  * drivers/video/tegra/host/isp/isp.c
3  *
4  * Tegra Graphics ISP
5  *
6  * Copyright (c) 2012, NVIDIA Corporation.
7  *
8  * This program is free software; you can redistribute it and/or modify it
9  * under the terms and conditions of the GNU General Public License,
10  * version 2, as published by the Free Software Foundation.
11  *
12  * This program is distributed in the hope it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
15  * more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
19  */
20
21 #include <linux/export.h>
22 #include <linux/resource.h>
23
24 #include <mach/iomap.h>
25
26 #include "dev.h"
27 #include "bus_client.h"
28
29 static int __devinit isp_probe(struct nvhost_device *dev,
30         struct nvhost_device_id *id_table)
31 {
32         int err = 0;
33
34         err = nvhost_client_device_get_resources(dev);
35         if (err)
36                 return err;
37
38         return nvhost_client_device_init(dev);
39 }
40
41 static int __exit isp_remove(struct nvhost_device *dev)
42 {
43         /* Add clean-up */
44         return 0;
45 }
46
47 static int isp_suspend(struct nvhost_device *dev, pm_message_t state)
48 {
49         return nvhost_client_device_suspend(dev);
50 }
51
52 static int isp_resume(struct nvhost_device *dev)
53 {
54         dev_info(&dev->dev, "resuming\n");
55         return 0;
56 }
57
58 static struct nvhost_driver isp_driver = {
59         .probe = isp_probe,
60         .remove = __exit_p(isp_remove),
61 #ifdef CONFIG_PM
62         .suspend = isp_suspend,
63         .resume = isp_resume,
64 #endif
65         .driver = {
66                 .owner = THIS_MODULE,
67                 .name = "isp",
68         }
69 };
70
71 static int __init isp_init(void)
72 {
73         return nvhost_driver_register(&isp_driver);
74 }
75
76 static void __exit isp_exit(void)
77 {
78         nvhost_driver_unregister(&isp_driver);
79 }
80
81 module_init(isp_init);
82 module_exit(isp_exit);