Subversion Repositories Kolibri OS

Rev

Rev 2330 | Rev 2340 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2330 Rev 2338
Line -... Line 1...
-
 
1
#include "drmP.h"
-
 
2
#include "drm.h"
-
 
3
#include "i915_drm.h"
-
 
4
#include "i915_drv.h"
-
 
5
#include "intel_drv.h"
-
 
6
 
-
 
7
 
1
#include 
8
#include 
2
#include 
9
#include 
3
#include 
10
#include 
4
#include 
11
#include 
5
#include 
12
#include 
6
#include 
13
#include 
Line -... Line 14...
-
 
14
 
7
 
15
int _stdcall display_handler(ioctl_t *io);
Line 8... Line 16...
8
int init_agp(void);
16
int init_agp(void);
Line -... Line 17...
-
 
17
 
-
 
18
static char  log[256];
9
 
19
 
10
static char  log[256];
20
int i915_modeset = 1;
11
 
21
 
Line 12... Line 22...
12
u32_t drvEntry(int action, char *cmdline)
22
u32_t drvEntry(int action, char *cmdline)
Line 38... Line 48...
38
 
48
 
Line 39... Line 49...
39
    enum_pci_devices();
49
    enum_pci_devices();
Line -... Line 50...
-
 
50
 
-
 
51
    err = i915_init();
40
 
52
 
-
 
53
    if(err)
-
 
54
    {
Line 41... Line 55...
41
    err = i915_init();
55
        dbgprintf("Epic Fail :(/n");
Line 42... Line 56...
42
 
56
 
43
//    rdev = rdisplay->ddev->dev_private;
57
    };
Line 44... Line 58...
44
 
58
 
45
//    err = RegService("DISPLAY", display_handler);
59
    err = RegService("DISPLAY", display_handler);
Line -... Line 60...
-
 
60
 
-
 
61
    if( err != 0)
-
 
62
        dbgprintf("Set DISPLAY handler\n");
-
 
63
 
-
 
64
    return err;
-
 
65
};
-
 
66
 
-
 
67
#define API_VERSION     0x01000100
-
 
68
 
-
 
69
#define SRV_GETVERSION      0
-
 
70
#define SRV_ENUM_MODES      1
-
 
71
#define SRV_SET_MODE        2
-
 
72
 
-
 
73
#define SRV_CREATE_VIDEO    9
-
 
74
#define SRV_BLIT_VIDEO     10
-
 
75
#define SRV_CREATE_BITMAP  11
-
 
76
 
-
 
77
#define check_input(size) \
-
 
78
    if( unlikely((inp==NULL)||(io->inp_size != (size))) )   \
-
 
79
        break;
-
 
80
 
-
 
81
#define check_output(size) \
-
 
82
    if( unlikely((outp==NULL)||(io->out_size != (size))) )   \
-
 
83
        break;
-
 
84
 
-
 
85
int _stdcall display_handler(ioctl_t *io)
-
 
86
{
-
 
87
    int    retval = -1;
-
 
88
    u32_t *inp;
-
 
89
    u32_t *outp;
-
 
90
 
-
 
91
    inp = io->input;
-
 
92
    outp = io->output;
-
 
93
 
-
 
94
    switch(io->io_code)
-
 
95
    {
-
 
96
        case SRV_GETVERSION:
-
 
97
            check_output(4);
-
 
98
            *outp  = API_VERSION;
-
 
99
            retval = 0;
-
 
100
            break;
-
 
101
 
-
 
102
        case SRV_ENUM_MODES:
-
 
103
            dbgprintf("SRV_ENUM_MODES inp %x inp_size %x out_size %x\n",
-
 
104
                       inp, io->inp_size, io->out_size );
-
 
105
//            check_output(4);
-
 
106
//            check_input(*outp * sizeof(videomode_t));
-
 
107
            if( i915_modeset)
-
 
108
                retval = get_videomodes((videomode_t*)inp, outp);
-
 
109
            break;
-
 
110
 
-
 
111
        case SRV_SET_MODE:
-
 
112
            dbgprintf("SRV_SET_MODE inp %x inp_size %x\n",
-
 
113
                       inp, io->inp_size);
-
 
114
            check_input(sizeof(videomode_t));
-
 
115
            if( i915_modeset )
-
 
116
                retval = set_user_mode((videomode_t*)inp);
-
 
117
            break;
-
 
118
 
-
 
119
/*
-
 
120
        case SRV_CREATE_VIDEO:
-
 
121
            retval = r600_create_video(inp[0], inp[1], outp);
-
 
122
            break;
-
 
123
 
-
 
124
        case SRV_BLIT_VIDEO:
-
 
125
            r600_video_blit( ((uint64_t*)inp)[0], inp[2], inp[3],
-
 
126
                    inp[4], inp[5], inp[6]);
-
 
127
 
-
 
128
            retval = 0;
-
 
129
            break;
-
 
130
 
-
 
131
        case SRV_CREATE_BITMAP:
-
 
132
            check_input(8);
-
 
133
            check_output(4);
-
 
134
            retval = create_bitmap(outp, inp[0], inp[1]);
-
 
135
            break;
46
 
136
*/
47
//    if( err != 0)
137
    };
48
//        dbgprintf("Set DISPLAY handler\n");
138
 
49
 
139
    return retval;