viafb: Determine type of 2D engine and store it in chip_info
authorHarald Welte <laforge@gnumonks.org>
Tue, 19 May 2009 17:36:03 +0000 (01:36 +0800)
committerJonathan Corbet <corbet@lwn.net>
Tue, 20 Apr 2010 20:23:19 +0000 (14:23 -0600)
This will help us for the upcoming support for 2D acceleration using
the M1 engine.

[jc: fixed merge conflicts]
Signed-off-by: Harald Welte <HaraldWelte@viatech.com>
drivers/video/via/chip.h
drivers/video/via/hw.c

index 8c06bd3..d9b6e06 100644 (file)
@@ -121,9 +121,17 @@ struct lvds_chip_information {
        int i2c_port;
 };
 
+/* The type of 2D engine */
+enum via_2d_engine {
+       VIA_2D_ENG_H2,
+       VIA_2D_ENG_H5,
+       VIA_2D_ENG_M1,
+};
+
 struct chip_information {
        int gfx_chip_name;
        int gfx_chip_revision;
+       enum via_2d_engine twod_engine;
        struct tmds_chip_information tmds_chip_info;
        struct lvds_chip_information lvds_chip_info;
        struct lvds_chip_information lvds_chip_info2;
index c94bcce..ae664fb 100644 (file)
@@ -2016,6 +2016,21 @@ static void init_gfx_chip_info(struct pci_dev *pdev,
                                CX700_REVISION_700;
                }
        }
+
+       /* Determine which 2D engine we have */
+       switch (viaparinfo->chip_info->gfx_chip_name) {
+       case UNICHROME_VX800:
+       case UNICHROME_VX855:
+               viaparinfo->chip_info->twod_engine = VIA_2D_ENG_M1;
+               break;
+       case UNICHROME_K8M890:
+       case UNICHROME_P4M900:
+               viaparinfo->chip_info->twod_engine = VIA_2D_ENG_H5;
+               break;
+       default:
+               viaparinfo->chip_info->twod_engine = VIA_2D_ENG_H2;
+               break;
+       }
 }
 
 static void init_tmds_chip_info(void)