added recognition for the first two GeForce 7800 cards: a 7800 GT PCIe and a 7800 GTX Go PCIe. Acceleration is currently disabled. Note please that these cards are not yet tested! (feedback very welcome)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14508 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Rudolf Cornelissen
2005-10-25 09:50:09 +00:00
parent 1ae9567747
commit 63c982f412
3 changed files with 48 additions and 11 deletions
@@ -4,7 +4,7 @@
Other authors:
Mark Watson,
Rudolf Cornelissen 10/2002-2/2005
Rudolf Cornelissen 10/2002-10/2005
*/
#define MODULE_BIT 0x08000000
@@ -176,19 +176,34 @@ status_t check_overlay_capability(uint32 feature)
}
/* all supported cards have a bes, but... */
if ((si->ps.card_arch >= NV40A) &&
(si->ps.card_type != NV40) && (si->ps.card_type != NV45))
switch (si->ps.card_arch)
{
/* all NV40 architecture cards have a new HDTV capable bes except for
* GeForce 6800's. Unfortunately we have no info about the new bes yet. */
LOG(4, ("Overlay: Not exporting hook %s.\n", msg));
return B_ERROR;
}
else
{
/* all other cards have a supported bes */
case NV04A:
case NV10A:
case NV20A:
case NV30A:
/* all older cards have a supported bes */
LOG(4, ("Overlay: Exporting hook %s.\n", msg));
return B_OK;
break;
case NV40A:
default:
switch (si->ps.card_type)
{
case NV40:
case NV45:
/* all GeForce 6800's cards have a supported bes */
LOG(4, ("Overlay: Exporting hook %s.\n", msg));
return B_OK;
break;
default:
/* all NV40 architecture cards have a new HDTV capable bes except for
* GeForce 6800's. Unfortunately we have no info about the new bes yet. */
LOG(4, ("Overlay: Not exporting hook %s.\n", msg));
return B_ERROR;
break;
}
break;
}
}
@@ -87,6 +87,9 @@ status_t GET_ACCELERANT_DEVICE_INFO(accelerant_device_info * adi)
case NV45:
sprintf(adi->chipset, "NV45");
break;
case NV47:
sprintf(adi->chipset, "NV47");
break;
default:
sprintf(adi->chipset, "unknown");
break;
@@ -167,6 +167,21 @@ status_t nv_general_powerup()
LOG(4,("POWERUP: Detected Nvidia Quadro FX 4000/4400 (NV40)\n"));
status = nvxx_general_powerup();
break;
//fixme: reported, but yet untested card..
case 0x009210de: /* Nvidia Geforce 7800 GT PCIe */
si->ps.card_type = NV47;
si->ps.card_arch = NV40A;
LOG(4,("POWERUP: Detected Nvidia Geforce 7800 GT PCIe (NV47)\n"));
status = nvxx_general_powerup();
break;
//fixme: reported, but yet untested card..
case 0x009910de: /* Nvidia Geforce 7800 GTX Go PCIe */
si->ps.card_type = NV47;
si->ps.card_arch = NV40A;
si->ps.laptop = true;
LOG(4,("POWERUP: Detected Nvidia Geforce 7800 GTX Go PCIe (NV47)\n"));
status = nvxx_general_powerup();
break;
case 0x00a010de: /* Nvidia Aladdin TNT2 */
si->ps.card_type = NV05;
si->ps.card_arch = NV04A;
@@ -1587,6 +1602,8 @@ status_t nv_general_validate_pic_size (display_mode *target, uint32 *bytes_per_r
{
/* check if we can setup this mode with acceleration */
*acc_mode = true;
//temporary disabling ACC on NV47:
if (si->ps.card_type == NV47) *acc_mode = false;
/* virtual_width */
if (target->virtual_width > max_acc_width) *acc_mode = false;
/* virtual_height */
@@ -1619,6 +1636,8 @@ status_t nv_general_validate_pic_size (display_mode *target, uint32 *bytes_per_r
{
/* check if we can setup this mode with acceleration */
*acc_mode = true;
//temporary disabling ACC on NV47:
if (si->ps.card_type == NV47) *acc_mode = false;
/* (we already know virtual_width will be no problem) */
/* virtual_height */
/* (NV cards can even do more than this(?)...