Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 2338 → Rev 2337

/drivers/video/drm/i915/kms_display.c
File deleted
/drivers/video/drm/i915/i915_drv.c
46,9 → 46,7
 
#define __read_mostly
 
int init_display_kms(struct drm_device *dev);
 
 
int i915_panel_ignore_lid __read_mostly = 0;
 
unsigned int i915_powersave __read_mostly = 0;
272,15 → 270,166
 
ret = i915_driver_load(dev, ent->driver_data );
 
if (ret)
goto err_g4;
{
struct drm_connector *connector;
struct drm_connector_helper_funcs *connector_funcs;
 
ret = init_display_kms(dev);
struct drm_connector *def_connector = NULL;
struct drm_encoder *encoder;
struct drm_crtc *crtc;
 
if (ret)
goto err_g4;
struct drm_framebuffer *fb;
char *con_name;
char *enc_name;
 
list_for_each_entry(connector, &dev->mode_config.connector_list, head)
{
if( connector->status != connector_status_connected)
continue;
 
connector_funcs = connector->helper_private;
encoder = connector_funcs->best_encoder(connector);
if( encoder == NULL)
{
dbgprintf("CONNECTOR %x ID: %d no active encoders\n",
connector, connector->base.id);
continue;
}
connector->encoder = encoder;
 
dbgprintf("CONNECTOR %x ID: %d status %d encoder %x\n crtc %x\n",
connector, connector->base.id,
connector->status, connector->encoder,
encoder->crtc);
 
def_connector = connector;
crtc = encoder->crtc;
 
break;
};
 
 
if(crtc == NULL)
{
struct drm_crtc *tmp_crtc;
int crtc_mask = 1;
 
list_for_each_entry(tmp_crtc, &dev->mode_config.crtc_list, head)
{
if (encoder->possible_crtcs & crtc_mask)
{
crtc = tmp_crtc;
encoder->crtc = crtc;
break;
};
crtc_mask <<= 1;
};
 
if(crtc == NULL)
{
dbgprintf("No CRTC for encoder %d\n", encoder->base.id);
goto out;
}
};
DRM_DEBUG_KMS("[CRTC:%d]\n", crtc->base.id);
 
drm_i915_private_t *dev_priv = dev->dev_private;
struct drm_fb_helper *fb_helper = &dev_priv->fbdev->helper;
struct drm_display_mode *mode = NULL, *tmpmode;
 
list_for_each_entry(tmpmode, &connector->modes, head)
{
if( (drm_mode_width(tmpmode) == 1024) &&
(drm_mode_height(tmpmode) == 768) &&
(drm_mode_vrefresh(tmpmode) == 60) )
{
mode = tmpmode;
goto do_set;
}
};
if( (mode == NULL) )
{
list_for_each_entry(tmpmode, &connector->modes, head)
{
if( (drm_mode_width(tmpmode) == 1024) &&
(drm_mode_height(tmpmode) == 768) )
{
mode = tmpmode;
goto do_set;
}
};
};
goto out;
 
do_set:
{
 
typedef struct tag_display display_t;
 
struct tag_display
{
int x;
int y;
int width;
int height;
int bpp;
int vrefresh;
int pitch;
int lfb;
 
int supported_modes;
struct drm_device *ddev;
struct drm_connector *connector;
struct drm_crtc *crtc;
 
};
 
display_t *rdisplay;
 
rdisplay = GetDisplay();
 
con_name = drm_get_connector_name(connector);
enc_name = drm_get_encoder_name(encoder);
 
dbgprintf("set mode %d %d connector %s encoder %s\n",
1024, 768, con_name, enc_name);
 
fb = fb_helper->fb;
 
fb->width = 1024;
fb->height = 768;
fb->pitch = ALIGN(1024* ((32 + 7) / 8), 64);
fb->bits_per_pixel = 32;
fb->depth == 24;
 
crtc->fb = fb;
crtc->enabled = true;
 
ret = drm_crtc_helper_set_mode(crtc, mode, 0, 0, fb);
 
if (ret == true)
{
rdisplay->width = fb->width;
rdisplay->height = fb->height;
rdisplay->pitch = fb->pitch;
rdisplay->vrefresh = drm_mode_vrefresh(mode);
 
sysSetScreen(fb->width, fb->height, fb->pitch);
 
dbgprintf("new mode %d x %d pitch %d\n",
fb->width, fb->height, fb->pitch);
}
else
DRM_ERROR("failed to set mode %d_%d on crtc %p\n",
fb->width, fb->height, crtc);
};
};
 
out:
 
// if (ret)
// goto err_g4;
 
// if( radeon_modeset )
// init_display_kms(dev->dev_private, &usermode);
// else
/drivers/video/drm/i915/i915_drv.h
1403,12 → 1403,5
#define POSTING_READ(reg) (void)I915_READ_NOTRACE(reg)
#define POSTING_READ16(reg) (void)I915_READ16_NOTRACE(reg)
 
typedef struct
{
int width;
int height;
int bpp;
int freq;
}videomode_t;
 
#endif
/drivers/video/drm/i915/intel_ringbuffer.c
141,6 → 141,7
return I915_READ(acthd_reg);
}
 
 
static int init_ring_common(struct intel_ring_buffer *ring)
{
drm_i915_private_t *dev_priv = ring->dev->dev_private;
294,6 → 295,7
 
int ret = init_ring_common(ring);
 
 
if (INTEL_INFO(dev)->gen > 3) {
int mode = VS_TIMER_DISPATCH << 16 | VS_TIMER_DISPATCH;
if (IS_GEN6(dev) || IS_GEN7(dev))
1367,3 → 1369,7
 
return intel_init_ring_buffer(dev, ring);
}
 
 
 
 
/drivers/video/drm/i915/intel_bios.c
633,6 → 633,8
struct bdb_header *bdb = NULL;
u8 __iomem *bios = NULL;
 
ENTER();
 
init_vbt_defaults(dev_priv);
 
/* XXX Should this validation be moved to intel_opregion.c? */
685,6 → 687,8
if (bios)
pci_unmap_rom(pdev, bios);
 
LEAVE();
 
return 0;
}
 
/drivers/video/drm/i915/main.c
1,10 → 1,3
#include "drmP.h"
#include "drm.h"
#include "i915_drm.h"
#include "i915_drv.h"
#include "intel_drv.h"
 
 
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/mod_devicetable.h>
12,13 → 5,10
#include <linux/pci.h>
#include <syscall.h>
 
int _stdcall display_handler(ioctl_t *io);
int init_agp(void);
 
static char log[256];
 
int i915_modeset = 1;
 
u32_t drvEntry(int action, char *cmdline)
{
struct pci_device_id *ent;
50,96 → 40,16
 
err = i915_init();
 
if(err)
{
dbgprintf("Epic Fail :(/n");
// rdev = rdisplay->ddev->dev_private;
 
};
// err = RegService("DISPLAY", display_handler);
 
err = RegService("DISPLAY", display_handler);
// if( err != 0)
// dbgprintf("Set DISPLAY handler\n");
 
if( err != 0)
dbgprintf("Set DISPLAY handler\n");
 
return err;
};
 
#define API_VERSION 0x01000100
 
#define SRV_GETVERSION 0
#define SRV_ENUM_MODES 1
#define SRV_SET_MODE 2
 
#define SRV_CREATE_VIDEO 9
#define SRV_BLIT_VIDEO 10
#define SRV_CREATE_BITMAP 11
 
#define check_input(size) \
if( unlikely((inp==NULL)||(io->inp_size != (size))) ) \
break;
 
#define check_output(size) \
if( unlikely((outp==NULL)||(io->out_size != (size))) ) \
break;
 
int _stdcall display_handler(ioctl_t *io)
{
int retval = -1;
u32_t *inp;
u32_t *outp;
 
inp = io->input;
outp = io->output;
 
switch(io->io_code)
{
case SRV_GETVERSION:
check_output(4);
*outp = API_VERSION;
retval = 0;
break;
 
case SRV_ENUM_MODES:
dbgprintf("SRV_ENUM_MODES inp %x inp_size %x out_size %x\n",
inp, io->inp_size, io->out_size );
// check_output(4);
// check_input(*outp * sizeof(videomode_t));
if( i915_modeset)
retval = get_videomodes((videomode_t*)inp, outp);
break;
 
case SRV_SET_MODE:
dbgprintf("SRV_SET_MODE inp %x inp_size %x\n",
inp, io->inp_size);
check_input(sizeof(videomode_t));
if( i915_modeset )
retval = set_user_mode((videomode_t*)inp);
break;
 
/*
case SRV_CREATE_VIDEO:
retval = r600_create_video(inp[0], inp[1], outp);
break;
 
case SRV_BLIT_VIDEO:
r600_video_blit( ((uint64_t*)inp)[0], inp[2], inp[3],
inp[4], inp[5], inp[6]);
 
retval = 0;
break;
 
case SRV_CREATE_BITMAP:
check_input(8);
check_output(4);
retval = create_bitmap(outp, inp[0], inp[1]);
break;
*/
};
 
return retval;
}
 
 
#define PCI_CLASS_REVISION 0x08
#define PCI_CLASS_DISPLAY_VGA 0x0300
#define PCI_CLASS_BRIDGE_HOST 0x0600