Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 6102 → Rev 6103

/drivers/video/drm/drm_dp_helper.c
22,7 → 22,7
 
#include <linux/kernel.h>
#include <linux/module.h>
//#include <linux/delay.h>
#include <linux/delay.h>
#include <linux/init.h>
#include <linux/errno.h>
#include <linux/sched.h>
/drivers/video/drm/i915/i915_dma.c
44,7 → 44,7
//#include <linux/pnp.h>
//#include <linux/vga_switcheroo.h>
#include <linux/slab.h>
//#include <acpi/video.h>
#include <linux/pm.h>
#include <linux/pm_runtime.h>
 
void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen);
/drivers/video/drm/i915/i915_irq.c
28,6 → 28,7
 
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
#include <linux/sysrq.h>
#include <linux/slab.h>
#include <linux/circ_buf.h>
#include <drm/drmP.h>
/drivers/video/drm/i915/intel_dp.c
1085,7 → 1085,15
name, ret);
return;
}
 
ret = sysfs_create_link(&connector->base.kdev->kobj,
&intel_dp->aux.ddc.dev.kobj,
intel_dp->aux.ddc.dev.kobj.name);
if (ret < 0) {
DRM_ERROR("sysfs_create_link() for %s failed (%d)\n", name, ret);
drm_dp_aux_unregister(&intel_dp->aux);
}
}
 
static void
intel_dp_connector_unregister(struct intel_connector *intel_connector)
1092,6 → 1100,9
{
struct intel_dp *intel_dp = intel_attached_dp(&intel_connector->base);
 
if (!intel_connector->mst_port)
sysfs_remove_link(&intel_connector->base.kdev->kobj,
intel_dp->aux.ddc.dev.kobj.name);
intel_connector_unregister(intel_connector);
}
 
/drivers/video/drm/i915/intel_opregion.c
25,8 → 25,6
*
*/
 
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
#include <linux/acpi.h>
#include <acpi/video.h>
 
/drivers/video/drm/i915/intel_sdvo.c
2347,6 → 2347,8
drm_connector = &intel_connector->base;
sdvo_encoder = intel_attached_sdvo(&intel_connector->base);
 
sysfs_remove_link(&drm_connector->kdev->kobj,
sdvo_encoder->ddc.dev.kobj.name);
intel_connector_unregister(intel_connector);
}
 
2379,6 → 2381,12
if (ret < 0)
goto err1;
 
ret = sysfs_create_link(&drm_connector->kdev->kobj,
&encoder->ddc.dev.kobj,
encoder->ddc.dev.kobj.name);
if (ret < 0)
goto err2;
 
return 0;
 
err2:
/drivers/video/drm/i915/intel_sprite.c
85,9 → 85,8
enum pipe pipe = crtc->pipe;
long timeout = msecs_to_jiffies_timeout(1);
int scanline, min, max, vblank_start;
#if 0
// wait_queue_head_t *wq = drm_crtc_vblank_waitqueue(&crtc->base);
// DEFINE_WAIT(wait);
wait_queue_head_t *wq = drm_crtc_vblank_waitqueue(&crtc->base);
DEFINE_WAIT(wait);
 
vblank_start = adjusted_mode->crtc_vblank_start;
if (adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE)
97,11 → 96,13
min = vblank_start - usecs_to_scanlines(adjusted_mode, 100);
max = vblank_start - 1;
 
local_irq_disable();
 
if (min <= 0 || max <= 0)
return;
 
// if (WARN_ON(drm_vblank_get(dev, pipe)))
// return false;
if (WARN_ON(drm_crtc_vblank_get(&crtc->base)))
return;
 
crtc->debug.min_vbl = min;
crtc->debug.max_vbl = max;
125,16 → 126,22
break;
}
 
// local_irq_enable();
local_irq_enable();
 
schedule_timeout(timeout);
timeout = 0;
// local_irq_disable();
{
unsigned long expire;
expire = timeout + jiffies;
WaitEventTimeout(wait.evnt, timeout);;
timeout = expire - jiffies;
timeout = timeout < 0 ? 0 : timeout;
}
local_irq_disable();
}
 
finish_wait(wq, &wait);
#endif
 
drm_crtc_vblank_put(&crtc->base);
 
crtc->debug.scanline_start = scanline;
crtc->debug.start_vbl_time = ktime_get();
crtc->debug.start_vbl_count =
162,7 → 169,7
 
trace_i915_pipe_update_end(crtc, end_vbl_count, scanline_end);
 
// local_irq_enable();
local_irq_enable();
 
if (crtc->debug.start_vbl_count &&
crtc->debug.start_vbl_count != end_vbl_count) {
/drivers/video/drm/i915/kms_display.c
74,8 → 74,6
int stride;
int ret;
 
ENTER();
 
drm_modeset_lock_all(dev);
 
list_for_each_entry(tmpc, &dev->mode_config.connector_list, head)
206,8 → 204,6
 
drm_modeset_unlock_all(dev);
 
LEAVE();
 
return ret;
}
 
223,8 → 219,6
int stride;
int ret;
 
ENTER();
 
drm_modeset_lock_all(dev);
 
list_for_each_entry(tmpc, &dev->mode_config.connector_list, head)
322,8 → 316,6
 
drm_modeset_unlock_all(dev);
 
LEAVE();
 
return ret;
}
 
422,10 → 414,7
static int choose_config(struct drm_device *dev, struct drm_connector **boot_connector,
struct drm_crtc **boot_crtc)
{
const struct drm_connector_helper_funcs *connector_funcs;
struct drm_connector *connector = NULL;
struct drm_encoder *encoder = NULL;
struct drm_crtc *crtc = NULL;
struct drm_connector *connector;
 
if((i915.cmdline_mode != NULL) && (*i915.cmdline_mode != 0))
{
451,6 → 440,7
return -ENOENT;
};
 
 
static int get_boot_mode(struct drm_connector *connector, videomode_t *usermode)
{
struct drm_display_mode *mode;
481,8 → 471,6
u32 ifl;
int ret;
 
ENTER();
 
mutex_lock(&dev->mode_config.mutex);
ret = choose_config(dev, &connector, &crtc);
if(ret)
571,8 → 559,6
err = init_bitmaps();
#endif
 
LEAVE();
 
return ret;
};
 
581,13 → 567,12
{
struct drm_connector_helper_funcs *connector_funcs;
struct drm_connector *connector;
struct drm_cmdline_mode cmd_mode;
struct drm_cmdline_mode cmd_mode = {0};
struct drm_display_mode *mode;
char *mode_option;
int retval = 0;
char con_edid[128];
 
ENTER();
if((cmdline == NULL) || (*cmdline == 0))
return EINVAL;
 
604,8 → 589,6
 
mode_option++;
 
__builtin_memset(&cmd_mode, 0, sizeof(cmd_mode));
 
if( !drm_mode_parse_command_line_for_connector(mode_option, connector, &cmd_mode))
return EINVAL;
 
633,10 → 616,69
 
drm_mode_destroy(dev, mode);
 
LEAVE();
return retval;
}
 
void list_connectors(struct drm_device *dev)
{
struct drm_connector *connector;
char con_edid[128];
 
mutex_lock(&dev->mode_config.mutex);
list_for_each_entry(connector, &dev->mode_config.connector_list, head)
{
if( connector->status != connector_status_connected)
continue;
 
memcpy(con_edid, connector->edid_blob_ptr->data, 128);
 
if(connector == os_display->connector)
{
printf("%s mode %dx%d connected %s model %x serial number %u\n",
connector->name, os_display->width, os_display->height,
manufacturer_name(con_edid + 0x08),
(unsigned short)(con_edid[0x0A] + (con_edid[0x0B] << 8)),
(unsigned int)(con_edid[0x0C] + (con_edid[0x0D] << 8)
+ (con_edid[0x0E] << 16) + (con_edid[0x0F] << 24)));
continue;
}
else
{
printf("%s connected: %s model %x serial number %u\n",
connector->name, manufacturer_name(con_edid + 0x08),
(unsigned short)(con_edid[0x0A] + (con_edid[0x0B] << 8)),
(unsigned int)(con_edid[0x0C] + (con_edid[0x0D] << 8)
+ (con_edid[0x0E] << 16) + (con_edid[0x0F] << 24)));
}
};
mutex_unlock(&dev->mode_config.mutex);
}
 
int list_connector_modes(struct drm_device *dev, const char* name)
{
struct drm_connector *connector;
struct drm_display_mode *drmmode;
 
mutex_lock(&dev->mode_config.mutex);
 
connector = get_cmdline_connector(dev, name);
if(connector == NULL)
{
mutex_unlock(&dev->mode_config.mutex);
return EINVAL;
};
 
printf("connector %s probed modes :\n", connector->name);
 
list_for_each_entry(drmmode, &connector->modes, head)
{
printf("%dx%d@%d\n", drmmode->hdisplay, drmmode->vdisplay, drm_mode_vrefresh(drmmode));
};
 
mutex_unlock(&dev->mode_config.mutex);
return 0;
};
 
int get_videomodes(videomode_t *mode, int *count)
{
int err = -1;
/drivers/video/drm/i915/main.c
277,6 → 277,7
char *cmdline;
int argc, i, c;
char **argv;
int retval = 0;
 
if( (usercmd == NULL) || (*usercmd == 0) )
return 1;
295,6 → 296,8
{
static struct option long_options[] =
{
{"list-connectors", no_argument, 0, OPTION_CONNECTORS},
{"list-connector-modes", required_argument, 0, OPTION_CONN_MODES},
{"video", required_argument, 0, 'v'},
{0, 0, 0, 0}
};
311,14 → 314,22
{
case 'v':
printf("cmdline_mode %s\n",optarg);
set_cmdline_mode_ext(main_device, optarg);
retval = set_cmdline_mode_ext(main_device, optarg);
break;
 
case OPTION_CONNECTORS:
list_connectors(main_device);
break;
 
case OPTION_CONN_MODES:
retval = list_connector_modes(main_device, optarg);
break;
}
}
__builtin_free(argv);
__builtin_free(cmdline);
 
return 0;
return retval;
};
 
#define CURRENT_API 0x0200 /* 2.00 */
856,31 → 867,3
return p;
};
 
#include <linux/math64.h>
 
u64 long_div(u64 dividend, u64 divisor)
{
#if 1
u32 high = divisor >> 32;
u64 quot;
 
if (high == 0) {
quot = div_u64(dividend, divisor);
} else {
int n = 1 + fls(high);
quot = div_u64(dividend >> n, divisor >> n);
 
if (quot != 0)
quot--;
if ((dividend - quot * divisor) >= divisor)
quot++;
}
 
return quot;
#endif
// return dividend / divisor;
};
 
 
 
 
/drivers/video/drm/i915/utils.c
973,34 → 973,6
return argc;
};
 
char *strstr(const char *cs, const char *ct)
{
int d0, d1;
register char *__res;
__asm__ __volatile__(
"movl %6,%%edi\n\t"
"repne\n\t"
"scasb\n\t"
"notl %%ecx\n\t"
"decl %%ecx\n\t" /* NOTE! This also sets Z if searchstring='' */
"movl %%ecx,%%edx\n"
"1:\tmovl %6,%%edi\n\t"
"movl %%esi,%%eax\n\t"
"movl %%edx,%%ecx\n\t"
"repe\n\t"
"cmpsb\n\t"
"je 2f\n\t" /* also works for empty string, see above */
"xchgl %%eax,%%esi\n\t"
"incl %%esi\n\t"
"cmpb $0,-1(%%eax)\n\t"
"jne 1b\n\t"
"xorl %%eax,%%eax\n\t"
"2:"
: "=a" (__res), "=&c" (d0), "=&S" (d1)
: "0" (0), "1" (0xffffffff), "2" (cs), "g" (ct)
: "dx", "di");
return __res;
}
 
fb_get_options(const char *name, char **option)
{