/* chip specific phase */
        share->accel.de_wait = (share->revid == SM750LE_REVISION_ID) ?
                                hw_sm750le_deWait : hw_sm750_deWait;
-       switch (sm750_dev->state.dataflow) {
+       switch (sm750_dev->dataflow) {
        case sm750_simul_pri:
                output->paths = sm750_pnc;
                crtc->channel = sm750_primary;
 #endif
        swap = 0;
 
-       sm750_dev->state.initParm.chip_clk = 0;
-       sm750_dev->state.initParm.mem_clk = 0;
-       sm750_dev->state.initParm.master_clk = 0;
-       sm750_dev->state.initParm.powerMode = 0;
-       sm750_dev->state.initParm.setAllEngOff = 0;
-       sm750_dev->state.initParm.resetMemory = 1;
+       sm750_dev->initParm.chip_clk = 0;
+       sm750_dev->initParm.mem_clk = 0;
+       sm750_dev->initParm.master_clk = 0;
+       sm750_dev->initParm.powerMode = 0;
+       sm750_dev->initParm.setAllEngOff = 0;
+       sm750_dev->initParm.resetMemory = 1;
 
        /* defaultly turn g_hwcursor on for both view */
        g_hwcursor = 3;
                if (!strncmp(opt, "swap", strlen("swap")))
                        swap = 1;
                else if (!strncmp(opt, "nocrt", strlen("nocrt")))
-                       sm750_dev->state.nocrt = 1;
+                       sm750_dev->nocrt = 1;
                else if (!strncmp(opt, "36bit", strlen("36bit")))
-                       sm750_dev->state.pnltype = sm750_doubleTFT;
+                       sm750_dev->pnltype = sm750_doubleTFT;
                else if (!strncmp(opt, "18bit", strlen("18bit")))
-                       sm750_dev->state.pnltype = sm750_dualTFT;
+                       sm750_dev->pnltype = sm750_dualTFT;
                else if (!strncmp(opt, "24bit", strlen("24bit")))
-                       sm750_dev->state.pnltype = sm750_24TFT;
+                       sm750_dev->pnltype = sm750_24TFT;
 #ifdef CAP_EXPANSION
                else if (!strncmp(opt, "exp:", strlen("exp:")))
                        exp_res = opt + strlen("exp:");
        }
 #ifdef CAP_EXPANSION
        if (getExpRes(exp_res,
-                     &sm750_dev->state.xLCD,
-                     &sm750_dev->state.yLCD)) {
+                     &sm750_dev->xLCD,
+                     &sm750_dev->yLCD)) {
                /* seems exp_res is not valid */
-               sm750_dev->state.xLCD = sm750_dev->state.yLCD = 0;
+               sm750_dev->xLCD = sm750_dev->yLCD = 0;
        }
 #endif
 
        if (share->revid != SM750LE_REVISION_ID) {
                if (share->dual) {
                        if (swap)
-                               sm750_dev->state.dataflow = sm750_dual_swap;
+                               sm750_dev->dataflow = sm750_dual_swap;
                        else
-                               sm750_dev->state.dataflow = sm750_dual_normal;
+                               sm750_dev->dataflow = sm750_dual_normal;
                } else {
                        if (swap)
-                               sm750_dev->state.dataflow = sm750_simul_sec;
+                               sm750_dev->dataflow = sm750_simul_sec;
                        else
-                               sm750_dev->state.dataflow = sm750_simul_pri;
+                               sm750_dev->dataflow = sm750_simul_pri;
                }
        } else {
                /* SM750LE only have one crt channel */
-               sm750_dev->state.dataflow = sm750_simul_sec;
+               sm750_dev->dataflow = sm750_simul_sec;
                /* sm750le do not have complex attributes */
-               sm750_dev->state.nocrt = 0;
+               sm750_dev->nocrt = 0;
        }
 }
 
 
        struct init_status *parm;
 
        sm750_dev = container_of(share, struct sm750_dev, share);
-       parm = &sm750_dev->state.initParm;
+       parm = &sm750_dev->initParm;
        if (parm->chip_clk == 0)
                parm->chip_clk = (getChipType() == SM750LE) ?
                                                DEFAULT_SM750LE_CHIP_CLOCK :
        if (parm->master_clk == 0)
                parm->master_clk = parm->chip_clk/3;
 
-       ddk750_initHw((initchip_param_t *)&sm750_dev->state.initParm);
+       ddk750_initHw((initchip_param_t *)&sm750_dev->initParm);
        /* for sm718,open pci burst */
        if (share->devid == 0x718) {
                POKE32(SYSTEM_CTRL,
 
        if (getChipType() != SM750LE) {
                /* does user need CRT ?*/
-               if (sm750_dev->state.nocrt) {
+               if (sm750_dev->nocrt) {
                        POKE32(MISC_CTRL,
                                        FIELD_SET(PEEK32(MISC_CTRL),
                                        MISC_CTRL,
                                        DPMS, VPHP));
                }
 
-               switch (sm750_dev->state.pnltype) {
+               switch (sm750_dev->pnltype) {
                case sm750_doubleTFT:
                case sm750_24TFT:
                case sm750_dualTFT:
                        FIELD_VALUE(PEEK32(PANEL_DISPLAY_CTRL),
                                                PANEL_DISPLAY_CTRL,
                                                TFT_DISP,
-                                               sm750_dev->state.pnltype));
+                                               sm750_dev->pnltype));
                break;
                }
        } else {