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
drivers
media
platform
s5p-g2d
g2d.h
Go to the documentation of this file.
1
/*
2
* Samsung S5P G2D - 2D Graphics Accelerator Driver
3
*
4
* Copyright (c) 2011 Samsung Electronics Co., Ltd.
5
* Kamil Debski, <
[email protected]
>
6
*
7
* This program is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by the
9
* Free Software Foundation; either version 2 of the
10
* License, or (at your option) any later version
11
*/
12
13
#include <
media/v4l2-device.h
>
14
#include <
media/v4l2-ctrls.h
>
15
16
#define G2D_NAME "s5p-g2d"
17
18
struct
g2d_dev
{
19
struct
v4l2_device
v4l2_dev
;
20
struct
v4l2_m2m_dev
*
m2m_dev
;
21
struct
video_device
*
vfd
;
22
struct
mutex
mutex
;
23
spinlock_t
ctrl_lock
;
24
atomic_t
num_inst
;
25
struct
vb2_alloc_ctx *
alloc_ctx
;
26
void
__iomem
*
regs
;
27
struct
clk
*
clk
;
28
struct
clk
*
gate
;
29
struct
g2d_ctx
*
curr
;
30
int
irq
;
31
wait_queue_head_t
irq_queue
;
32
};
33
34
struct
g2d_frame
{
35
/* Original dimensions */
36
u32
width
;
37
u32
height
;
38
/* Crop size */
39
u32
c_width
;
40
u32
c_height
;
41
/* Offset */
42
u32
o_width
;
43
u32
o_height
;
44
/* Image format */
45
struct
g2d_fmt
*
fmt
;
46
/* Variables that can calculated once and reused */
47
u32
stride
;
48
u32
bottom
;
49
u32
right
;
50
u32
size
;
51
};
52
53
struct
g2d_ctx
{
54
struct
v4l2_fh
fh
;
55
struct
g2d_dev
*
dev
;
56
struct
v4l2_m2m_ctx
*
m2m_ctx
;
57
struct
g2d_frame
in
;
58
struct
g2d_frame
out
;
59
struct
v4l2_ctrl
*
ctrl_hflip
;
60
struct
v4l2_ctrl
*
ctrl_vflip
;
61
struct
v4l2_ctrl_handler
ctrl_handler
;
62
u32
rop
;
63
u32
flip
;
64
};
65
66
struct
g2d_fmt
{
67
char
*
name
;
68
u32
fourcc
;
69
int
depth
;
70
u32
hw
;
71
};
72
73
74
void
g2d_reset
(
struct
g2d_dev
*
d
);
75
void
g2d_set_src_size
(
struct
g2d_dev
*
d
,
struct
g2d_frame
*
f
);
76
void
g2d_set_src_addr
(
struct
g2d_dev
*
d
,
dma_addr_t
a
);
77
void
g2d_set_dst_size
(
struct
g2d_dev
*
d
,
struct
g2d_frame
*
f
);
78
void
g2d_set_dst_addr
(
struct
g2d_dev
*
d
,
dma_addr_t
a
);
79
void
g2d_start
(
struct
g2d_dev
*
d
);
80
void
g2d_clear_int
(
struct
g2d_dev
*
d
);
81
void
g2d_set_rop4
(
struct
g2d_dev
*
d
,
u32
r
);
82
void
g2d_set_flip
(
struct
g2d_dev
*
d
,
u32
r
);
83
u32
g2d_cmd_stretch
(
u32
e
);
84
void
g2d_set_cmd
(
struct
g2d_dev
*
d
,
u32
c
);
85
86
Generated on Thu Jan 10 2013 13:49:40 for Linux Kernel by
1.8.2