Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
media
soc_camera_platform.h
Go to the documentation of this file.
1
/*
2
* Generic Platform Camera Driver Header
3
*
4
* Copyright (C) 2008 Magnus Damm
5
*
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License version 2 as
8
* published by the Free Software Foundation.
9
*/
10
11
#ifndef __SOC_CAMERA_H__
12
#define __SOC_CAMERA_H__
13
14
#include <linux/videodev2.h>
15
#include <
media/soc_camera.h
>
16
#include <
media/v4l2-mediabus.h
>
17
18
struct
device
;
19
20
struct
soc_camera_platform_info
{
21
const
char
*
format_name
;
22
unsigned
long
format_depth
;
23
struct
v4l2_mbus_framefmt
format
;
24
unsigned
long
mbus_param
;
25
enum
v4l2_mbus_type
mbus_type
;
26
struct
soc_camera_device
*
icd
;
27
int
(*
set_capture
)(
struct
soc_camera_platform_info
*
info
,
int
enable
);
28
};
29
30
static
inline
void
soc_camera_platform_release(
struct
platform_device
**pdev)
31
{
32
*pdev =
NULL
;
33
}
34
35
static
inline
int
soc_camera_platform_add(
struct
soc_camera_device
*
icd
,
36
struct
platform_device
**pdev,
37
struct
soc_camera_link
*plink,
38
void
(*
release
)(
struct
device
*
dev
),
39
int
id
)
40
{
41
struct
soc_camera_platform_info
*
info
= plink->
priv
;
42
int
ret
;
43
44
if
(icd->
link
!= plink)
45
return
-
ENODEV
;
46
47
if
(*pdev)
48
return
-
EBUSY
;
49
50
*pdev =
platform_device_alloc
(
"soc_camera_platform"
,
id
);
51
if
(!*pdev)
52
return
-
ENOMEM
;
53
54
info->
icd
=
icd
;
55
56
(*pdev)->dev.platform_data =
info
;
57
(*pdev)->dev.release =
release
;
58
59
ret =
platform_device_add
(*pdev);
60
if
(ret < 0) {
61
platform_device_put
(*pdev);
62
*pdev =
NULL
;
63
info->
icd
=
NULL
;
64
}
65
66
return
ret
;
67
}
68
69
static
inline
void
soc_camera_platform_del(
const
struct
soc_camera_device
*icd,
70
struct
platform_device
*pdev,
71
const
struct
soc_camera_link
*plink)
72
{
73
if
(icd->
link
!= plink || !pdev)
74
return
;
75
76
platform_device_unregister
(pdev);
77
}
78
79
#endif
/* __SOC_CAMERA_H__ */
Generated on Thu Jan 10 2013 14:52:55 for Linux Kernel by
1.8.2