Skip to content

Commit

Permalink
Merge pull request #25 from s40in/master
Browse files Browse the repository at this point in the history
Fixed video device initialization
  • Loading branch information
diversys authored Apr 13, 2021
2 parents 7a153f4 + f3daee5 commit aed6f60
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 2 deletions.
2 changes: 1 addition & 1 deletion vmware_video/accelerant/GetAccelerantHook.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ get_accelerant_hook(uint32 feature, void *data)
HOOK(ACCELERANT_CLONE_INFO_SIZE);
HOOK(GET_ACCELERANT_CLONE_INFO);
HOOK(UNINIT_ACCELERANT);
//HOOK(GET_ACCELERANT_DEVICE_INFO);
HOOK(GET_ACCELERANT_DEVICE_INFO);
HOOK(ACCELERANT_RETRACE_SEMAPHORE);

/* mode configuration */
Expand Down
24 changes: 24 additions & 0 deletions vmware_video/accelerant/GetDeviceInfo.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/*
Author:
s40in, 2021
*/

#include <stdio.h>
#include <sys/ioctl.h>
#include <Accelerant.h>

/* Get some info about the device */
status_t GET_ACCELERANT_DEVICE_INFO(accelerant_device_info * adi)
{

/* no info on version is provided, so presumably this is for my info */
adi->version = 1;

sprintf(adi->name, "VMware SVGA");
sprintf(adi->chipset, "VM");
sprintf(adi->serial_no, "None");
//adi->memory = (si->ps.memory_size * 1024);
//adi->dac_speed = si->ps.max_dac1_clock;

return B_OK;
}
1 change: 1 addition & 0 deletions vmware_video/accelerant/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ SRCS= Acceleration.c \
EngineManagment.c \
Fifo.c \
GetAccelerantHook.c \
GetDeviceInfo.c \
GetModeInfo.c \
GlobalData.c \
InitAccelerant.c \
Expand Down
2 changes: 2 additions & 0 deletions vmware_video/accelerant/ProposeDisplayMode.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ static const display_mode kModeList[] =
{ { 86730, 1440, 1472, 1800, 1832, 900, 919, 927, 946, 0 }, B_RGB32_LITTLE, 1440, 900, 0, 0, MODE_FLAGS }, /* 1440x900@50Hz */
{ { 90890, 1280, 1312, 1656, 1688, 1024, 1045, 1054, 1076, 0 }, B_RGB32_LITTLE, 1280, 1024, 0, 0, MODE_FLAGS }, /* 1280x1024@50Hz */
{ { 102150, 1400, 1432, 1816, 1848, 1050, 1072, 1081, 1103, 0 }, B_RGB32_LITTLE, 1400, 1050, 0, 0, MODE_FLAGS }, /* 1400x1050@50Hz */
{ { 108000, 1600, 1700, 1800, 1900, 900, 1000, 1100, 1200, 0 }, B_RGB32_LITTLE, 1600, 900, 0, 0, MODE_FLAGS }, /* 1600x900@60Hz */
{ { 121680, 1680, 1712, 2168, 2200, 1050, 1072, 1081, 1103, 0 }, B_RGB32_LITTLE, 1680, 1050, 0, 0, MODE_FLAGS }, /* 1680x1050@50Hz */
{ { 137970, 1600, 1632, 2152, 2184, 1200, 1225, 1235, 1261, 0 }, B_RGB32_LITTLE, 1600, 1200, 0, 0, MODE_FLAGS }, /* 1600x1200@50Hz */
{ { 164500, 1920, 1952, 2576, 2608, 1200, 1225, 1235, 1261, 0 }, B_RGB32_LITTLE, 1920, 1200, 0, 0, MODE_FLAGS }, /* 1920x1200@50Hz */
Expand All @@ -38,6 +39,7 @@ static const display_mode kModeList[] =
{ { 210640, 1920, 1952, 2752, 2784, 1440, 1470, 1482, 1513, 0 }, B_RGB32_LITTLE, 1920, 1440, 0, 0, MODE_FLAGS }, /* 1920x1440@50Hz */
{ { 245600, 2048, 2080, 3008, 3040, 1536, 1568, 1581, 1613, 0 }, B_RGB32_LITTLE, 2048, 1536, 0, 0, MODE_FLAGS }, /* 2048x1536@50Hz */
{ { 319750, 3440, 3488, 3520, 3600, 1440, 1443, 1453, 1481, 0 }, B_RGB32_LITTLE, 3440, 1440, 0, 0, MODE_FLAGS }, /* 3440x1440@60Hz */
{ { 505490, 3072, 3320, 3656, 4240, 1920, 1921, 1924, 1987, 0 }, B_RGB32_LITTLE, 3072, 1920, 0, 0, MODE_FLAGS }, /* 3072x1920@60Hz */
};


Expand Down
3 changes: 2 additions & 1 deletion vmware_video/kernel/device.c
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,7 @@ ControlHook(void *dev, uint32 msg, void *buf, size_t len)
return B_OK;

case VMWARE_FIFO_START:
WriteReg(SVGA_REG_ENABLE, 1);
//WriteReg(SVGA_REG_ENABLE, 1);
WriteReg(SVGA_REG_CONFIG_DONE, 1);
return B_OK;

Expand All @@ -310,6 +310,7 @@ ControlHook(void *dev, uint32 msg, void *buf, size_t len)
WriteReg(SVGA_REG_WIDTH, dm->virtual_width);
WriteReg(SVGA_REG_HEIGHT, dm->virtual_height);
WriteReg(SVGA_REG_BITS_PER_PIXEL, BppForSpace(dm->space));
WriteReg(SVGA_REG_ENABLE, 1); //HAKILO
si->fbOffset = ReadReg(SVGA_REG_FB_OFFSET);
si->bytesPerRow = ReadReg(SVGA_REG_BYTES_PER_LINE);
ReadReg(SVGA_REG_DEPTH);
Expand Down

0 comments on commit aed6f60

Please sign in to comment.