~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to include/media/soc_camera_platform.h

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
        int (*set_capture)(struct soc_camera_platform_info *info, int enable);
26
26
};
27
27
 
 
28
static inline void soc_camera_platform_release(struct platform_device **pdev)
 
29
{
 
30
        *pdev = NULL;
 
31
}
 
32
 
 
33
static inline int soc_camera_platform_add(const struct soc_camera_link *icl,
 
34
                                          struct device *dev,
 
35
                                          struct platform_device **pdev,
 
36
                                          struct soc_camera_link *plink,
 
37
                                          void (*release)(struct device *dev),
 
38
                                          int id)
 
39
{
 
40
        struct soc_camera_platform_info *info = plink->priv;
 
41
        int ret;
 
42
 
 
43
        if (icl != plink)
 
44
                return -ENODEV;
 
45
 
 
46
        if (*pdev)
 
47
                return -EBUSY;
 
48
 
 
49
        *pdev = platform_device_alloc("soc_camera_platform", id);
 
50
        if (!*pdev)
 
51
                return -ENOMEM;
 
52
 
 
53
        info->dev = dev;
 
54
 
 
55
        (*pdev)->dev.platform_data = info;
 
56
        (*pdev)->dev.release = release;
 
57
 
 
58
        ret = platform_device_add(*pdev);
 
59
        if (ret < 0) {
 
60
                platform_device_put(*pdev);
 
61
                *pdev = NULL;
 
62
                info->dev = NULL;
 
63
        }
 
64
 
 
65
        return ret;
 
66
}
 
67
 
 
68
static inline void soc_camera_platform_del(const struct soc_camera_link *icl,
 
69
                                           struct platform_device *pdev,
 
70
                                           const struct soc_camera_link *plink)
 
71
{
 
72
        if (icl != plink || !pdev)
 
73
                return;
 
74
 
 
75
        platform_device_unregister(pdev);
 
76
}
 
77
 
28
78
#endif /* __SOC_CAMERA_H__ */