blob: ea367dab525c9c65fca1599a27f9cf0e6df39ace (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
#ifndef __SH7722__TYPES_H__
#define __SH7722__TYPES_H__
#include <core/layers.h>
#include <sh772x_gfx.h>
#define SH7722GFX_MAX_PREPARE 8192
typedef enum {
SH7722_LAYER_INPUT1,
SH7722_LAYER_INPUT2,
SH7722_LAYER_INPUT3,
SH7722_LAYER_MULTIWIN
} SH7722LayerID;
typedef struct {
SH7722LayerID layer;
} SH7722LayerData;
typedef struct {
int magic;
CoreLayerRegionConfig config;
CoreSurface *surface;
CorePalette *palette;
} SH7722RegionData;
typedef struct {
unsigned int added;
unsigned int visible;
} SH7722MultiLayerData;
typedef struct {
int magic;
int index;
CoreLayerRegionConfig config;
CoreSurface *surface;
CorePalette *palette;
} SH7722MultiRegionData;
typedef struct {
int sh772x;
int lcd_width;
int lcd_height;
int lcd_offset;
int lcd_pitch;
int lcd_size;
unsigned long lcd_phys;
DFBSurfacePixelFormat lcd_format;
/* state validation */
int v_flags;
/* prepared register values */
u32 ble_srcf;
u32 ble_dstf;
/* cached values */
unsigned long dst_phys;
int dst_pitch;
int dst_bpp;
int dst_index;
unsigned long src_phys;
int src_pitch;
int src_bpp;
int src_index;
unsigned long mask_phys;
int mask_pitch;
DFBSurfacePixelFormat mask_format;
int mask_index;
DFBPoint mask_offset;
DFBSurfaceMaskFlags mask_flags;
DFBSurfaceDrawingFlags dflags;
DFBSurfaceBlittingFlags bflags;
DFBSurfaceRenderOptions render_options;
bool ckey_b_enabled;
bool color_change_enabled;
bool mask_enabled;
unsigned int input_mask;
s32 matrix[6];
DFBColor color;
/* locking */
FusionSkirmish beu_lock;
/* sh7723 */
u32 rclr;
u32 color16;
} SH7722DeviceData;
typedef struct {
SH7722DeviceData *dev;
CoreDFB *core;
CoreGraphicsDevice *device;
CoreScreen *screen;
CoreLayer *multi;
CoreLayer *input1;
CoreLayer *input2;
CoreLayer *input3;
int gfx_fd;
SH772xGfxSharedArea *gfx_shared;
int prep_num;
__u32 prep_buf[SH7722GFX_MAX_PREPARE];
volatile void *mmio_base;
int num_inputs;
volatile void *lcd_virt;
} SH7722DriverData;
#endif
|