亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? promise_ide.c

?? promise20265的驅動源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:

    case 2:    
      drive_pci = 0x68;
      status = pciConfigInLong(
                        BusNo,       /* bus number */
                        DeviceNo,    /* device number */
                        FuncNo,      /* function number */
                        drive_pci,   /* offset into the configuration space */
                        &drive_conf  /* data write from offset */
                         );
#if 0
      if ((drive_conf != 0x004ff304) && (drive_conf != 0x004ff3c4)) {
        goto chipset_is_set;
      }
#endif
      status = pciConfigInByte(
                        BusNo,       /* bus number */
                        DeviceNo,    /* device number */
                        FuncNo,      /* function number */
                        drive_pci,   /* offset into the configuration space */
                        &test1       /* data write from offset */
                        );

#if 1
      if (!(test1 & SYNC_ERRDY_EN)) {
        status = pciConfigOutByte(
                          BusNo,              /* bus number */
                          DeviceNo,           /* device number */
                          FuncNo,             /* function number */
                          drive_pci,          /* offset into the configuration space */
                          test1|SYNC_ERRDY_EN /* data write from offset */
                          );

      }
#endif
      break;

    case 3:    
      drive_pci = 0x6c;
      status = pciConfigInLong(
                        BusNo,       /* bus number */
                        DeviceNo,    /* device number */
                        FuncNo,      /* function number */
                        drive_pci,   /* offset into the configuration space */
                        &drive_conf  /* data write from offset */
                        );
#if 0
      if ((drive_conf != 0x004ff304) && (drive_conf != 0x004ff3c4)) {
        goto chipset_is_set;
      }
#endif

      status = pciConfigInByte(
                        BusNo,       /* bus number */
                        DeviceNo,    /* device number */
                        FuncNo,      /* function number */
                        0x68,        /* offset into the configuration space */
                        &test1       /* data write from offset */
                        );
      status = pciConfigInByte(
                        BusNo,       /* bus number */
                        DeviceNo,    /* device number */
                        FuncNo,      /* function number */
                        drive_pci,   /* offset into the configuration space */
                        &test2       /* data write from offset */
                        );

      if ((test1 & SYNC_ERRDY_EN) && !(test2 & SYNC_ERRDY_EN)) {
        status = pciConfigOutByte(
                          BusNo,              /* bus number */
                          DeviceNo,           /* device number */
                          FuncNo,             /* function number */
                          drive_pci,          /* offset into the configuration space */
                          test2|SYNC_ERRDY_EN /* data write from offset */
                       );
      }
      break;

    default:
      return ide_dma_off;
    }

chipset_is_set:

//    if (drive->media != ide_disk)  
//              return ide_dma_off_quietly;
       
  status = pciConfigInByte(
                BusNo,          /* bus number */
                DeviceNo,       /* device number */
                FuncNo,         /* function number */
                drive_pci,      /* offset into the configuration space */
                &AP             /* data write from offset */
                );
  status = pciConfigInByte(
                BusNo,          /* bus number */
                DeviceNo,       /* device number */
                FuncNo,         /* function number */
                drive_pci|0x01, /* offset into the configuration space */
                &BP             /* data write from offset */
                );
  status = pciConfigInByte(
                BusNo,          /* bus number */
                DeviceNo,       /* device number */
                FuncNo,         /* function number */
                drive_pci|0x02, /* offset into the configuration space */
                &CP             /* data write from offset */
                );
  status = pciConfigInByte(
                BusNo,          /* bus number */
                DeviceNo,       /* device number */
                FuncNo,         /* function number */
                drive_pci|0x03, /* offset into the configuration space */
                &DP             /* data write from offset */
                );
  if (pDrive->okIordy) {      /* IORDY_EN */
    status = pciConfigOutByte(
                   BusNo,       /* bus number */
                   DeviceNo,    /* device number */
                   FuncNo,      /* function number */
                   drive_pci,   /* offset into the configuration space */
                   AP|IORDY_EN  /* data write from offset */
                   );

    status = pciConfigInByte(
                   BusNo,       /* bus number */
                   DeviceNo,    /* device number */
                   FuncNo,      /* function number */
                   drive_pci,   /* offset into the configuration space */
                   &AP          /* data write from offset */
                   );
    
  }

// look in id->word0 ?????
//    if (drive->media == ide_disk) {}        /* PREFETCH_EN */
if (pDrive->type == ATA_TYPE_ATA) {
  status = pciConfigOutByte(
                  BusNo,         /* bus number */
                  DeviceNo,      /* device number */
                  FuncNo,        /* function number */
                  drive_pci,     /* offset into the configuration space */
                  AP|PREFETCH_EN /* data write from offset */
                  );
  status = pciConfigInByte(
                  BusNo,         /* bus number */
                  DeviceNo,      /* device number */
                  FuncNo,        /* function number */
                  drive_pci,     /* offset into the configuration space */
                  &AP            /* data write from offset */
                  );
}


/* hack set PIO mode 4 here */
  AP = AP | 0x01;
  BP = BP | 0x04;
  status = pciConfigOutByte(
                  BusNo,         /* bus number */
                  DeviceNo,      /* device number */
                  FuncNo,        /* function number */
                  drive_pci,     /* offset into the configuration space */
                  AP             /* data write from offset */
                  );

  status = pciConfigOutByte(
                  BusNo,         /* bus number */
                  DeviceNo,      /* device number */
                  FuncNo,        /* function number */
                  drive_pci+1,     /* offset into the configuration space */
                  BP             /* data write from offset */
                  );

  status = pciConfigInByte(
                  BusNo,         /* bus number */
                  DeviceNo,      /* device number */
                  FuncNo,        /* function number */
                  drive_pci,     /* offset into the configuration space */
                  &AP             /* data write from offset */
                  );

  status = pciConfigInByte(
                  BusNo,         /* bus number */
                  DeviceNo,      /* device number */
                  FuncNo,        /* function number */
                  drive_pci+1,     /* offset into the configuration space */
                  &BP             /* data write from offset */
                  );



  if ((BP & 0xF0) && (CP & 0x0F)) {
    /* clear DMA modes of upper 842 bits of B Register */
    /* clear PIO forced mode upper 1 bit of B Register */
    status = pciConfigOutByte(
                    BusNo,          /* bus number */
                    DeviceNo,       /* device number */
                    FuncNo,         /* function number */
                    drive_pci|0x01, /* offset into the configuration space */
                    BP & ~0xF0      /* data write from offset */
                    );
    status = pciConfigInByte(
                    BusNo,          /* bus number */
                    DeviceNo,       /* device number */
                    FuncNo,         /* function number */
                    drive_pci|0x01, /* offset into the configuration space */
                    &BP             /* data write from offset */
                    );


    /* clear DMA modes of lower 8421 bits of C Register */
    status = pciConfigOutByte(
                    BusNo,         /* bus number */
                    DeviceNo,      /* device number */
                    FuncNo,        /* function number */
                    drive_pci|0x02,/* offset into the configuration space */
                    CP & ~0x0F     /* data write from offset */
                    );

    status = pciConfigInByte(
                    BusNo,         /* bus number */
                    DeviceNo,      /* device number */
                    FuncNo,        /* function number */
                    drive_pci|0x02,/* offset into the configuration space */
                    &CP            /* data write from offset */
                    );
  }

  status = pciConfigInByte(
                BusNo,         /* bus number */
                DeviceNo,      /* device number */
                FuncNo,        /* function number */
                drive_pci,     /* offset into the configuration space */
                &AP            /* data write from offset */
                );

  status = pciConfigInByte(
                BusNo,         /* bus number */
                DeviceNo,      /* device number */
                FuncNo,        /* function number */
                drive_pci|0x01,/* offset into the configuration space */
                &BP            /* data write from offset */
                );

  status = pciConfigInByte(
                BusNo,         /* bus number */
                DeviceNo,      /* device number */
                FuncNo,        /* function number */
                drive_pci|0x02,/* offset into the configuration space */
                &CP            /* data write from offset */
                );
      
        
  udma_66 = 1;
  udma_33 = (udma) ? udma_33 : 0;

  if ((id->ultraDma & 0x0010) && (udma_66) && (udma_33)) {
    if (!((id->ultraDma >> 8) & 16)) {
      id->ultraDma &= ~0xFF00;
      id->ultraDma |= 0x1010;
      id->multiDma &= ~0x0F00;
      id->singleDma &= ~0x0F00;
    }
    
    /* speed 8 == UDMA mode 4 == speed 6 plus cable */
    status = pciConfigOutByte(
                    BusNo,           /* bus number */
                    DeviceNo,        /* device number */
                    FuncNo,          /* function number */
                    drive_pci|0x01,  /* offset into the configuration space */
                    BP|0x20          /* data write from offset */
                    );


    status = pciConfigOutByte(
                    BusNo,           /* bus number */
                    DeviceNo,        /* device number */
                    FuncNo,          /* function number */
                    drive_pci|0x02,  /* offset into the configuration space */
                    CP|0x01          /* data write from offset */
                    );

    speed = ATA_DMA_ULTRA_W_4;

  } else if ((id->ultraDma & 0x0008) && (udma_66) && (udma_33)) {
    if (!((id->ultraDma >> 8) & 8)) {
      id->ultraDma &= ~0xFF00;
      id->ultraDma |= 0x0808;
      id->multiDma &= ~0x0F00;
      id->singleDma &= ~0x0F00;
    }

    /* speed 7 == UDMA mode 3 == speed 5 plus cable */
    status = pciConfigOutByte(
                    BusNo,          /* bus number */
                    DeviceNo,       /* device number */
                    FuncNo,         /* function number */
                    drive_pci|0x01, /* offset into the configuration space */
                    BP|0x40         /* data write from offset */
                    );

    status = pciConfigOutByte(
                    BusNo,          /* bus number */
                    DeviceNo,       /* device number */
                    FuncNo,         /* function number */
                    drive_pci|0x02, /* offset into the configuration space */
                    CP|0x02         /* data write from offset */
                );

    speed = ATA_DMA_ULTRA_W_3;
  } else if ((id->ultraDma & 0x0004) && (udma_33)) {
    if (!((id->ultraDma >> 8) & 4)) {
      id->ultraDma &= ~0x0F00;
      id->ultraDma |= 0x0404;
      id->multiDma &= ~0x0F00;
      id->singleDma &= ~0x0F00;
    }
    
    /* speed 6 == UDMA mode 2 */
    status = pciConfigOutByte(
                    BusNo,         /* bus number */
                    DeviceNo,      /* device number */
                    FuncNo,        /* function number */
                    drive_pci|0x01,/* offset into the configuration space */
                    BP|0x20        /* data write from offset */
                    );

    status = pciConfigOutByte(
                    BusNo,         /* bus number */
                    DeviceNo,      /* device number */
                    FuncNo,        /* function number */
                    drive_pci|0x02,/* offset into the configuration space */
                    CP|0x01        /* data write from offset */
                    );

    speed = ATA_DMA_ULTRA_W_2;
  } else if ((id->ultraDma & 0x0002) && (udma_33)) {
    if (!((id->ultraDma >> 8) & 2)) {
      id->ultraDma &= ~0x0F00;
      id->ultraDma |= 0x0202;
      id->multiDma &= ~0x0F00;
      id->singleDma &= ~0x0F00;
    }
    
    /* speed 5 == UDMA mode 1 */
    status = pciConfigOutByte(
                    BusNo,         /* bus number */
                    DeviceNo,      /* device number */
                    FuncNo,        /* function number */
                    drive_pci|0x01,/* offset into the configuration space */
                    BP|0x40        /* data write from offset */
                    );

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲天堂精品在线观看| 韩国精品在线观看| 国产视频一区在线观看| 亚洲国产精品ⅴa在线观看| 国产午夜精品一区二区三区视频 | 欧美精品九九99久久| 欧美一级一级性生活免费录像| 日韩一区国产二区欧美三区| 精品国产污网站| 中文字幕一区二区三区不卡| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲影院久久精品| 国内欧美视频一区二区| 色综合久久六月婷婷中文字幕| 日韩视频在线一区二区| 在线免费一区三区| 欧美日韩中文国产| 国产无遮挡一区二区三区毛片日本| 一区二区在线观看免费| 蜜桃视频一区二区| 99精品久久只有精品| 久久先锋影音av鲁色资源网| 夜夜嗨av一区二区三区中文字幕| 国产在线精品国自产拍免费| 欧美精品日韩一本| 亚洲尤物在线视频观看| www.激情成人| 中文字幕亚洲电影| 国模娜娜一区二区三区| 美女性感视频久久| 高清av一区二区| 久久综合色综合88| 亚洲福利国产精品| 色激情天天射综合网| 国产精品久久久一区麻豆最新章节| 欧美一区二区三区在| 久久久99精品久久| 欧美中文字幕不卡| 国产精品美女一区二区三区| 国产资源精品在线观看| 日韩精品一区二区三区视频| 亚洲黄色录像片| 91精品一区二区三区久久久久久 | 国产精品国产馆在线真实露脸| 国产麻豆欧美日韩一区| 久久亚洲欧美国产精品乐播| 成人黄色小视频在线观看| 中文字幕一区二区三区四区| 色婷婷综合中文久久一本| 午夜电影一区二区| 久久久www成人免费无遮挡大片| 国产精品香蕉一区二区三区| 精品一区二区三区视频在线观看 | 日韩免费成人网| 亚洲第一二三四区| 精品国产伦一区二区三区观看方式| 国模冰冰炮一区二区| 美女www一区二区| 欧美日韩精品一区二区三区四区 | 欧美一区二区三区日韩| 久久99精品国产麻豆婷婷| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 久久嫩草精品久久久久| 亚洲大型综合色站| 欧美精品视频www在线观看| 国产精品成人网| 91久久精品一区二区三| 亚洲精品日产精品乱码不卡| 精品三级在线观看| 欧美日免费三级在线| 日韩在线一二三区| 一区二区视频在线| 日一区二区三区| 久久国产精品免费| 老司机精品视频线观看86| 有码一区二区三区| 中文字幕色av一区二区三区| 亚洲男人天堂av| 亚洲国产精品99久久久久久久久| 精品美女一区二区| 欧美老人xxxx18| 在线观看视频一区| 91麻豆视频网站| 日本韩国精品一区二区在线观看| 国产精品一区二区在线观看不卡 | 久久精品在线免费观看| 亚洲女同一区二区| 欧美影院午夜播放| 91老师国产黑色丝袜在线| 精品一区二区三区免费视频| 久久精品二区亚洲w码| 午夜国产精品一区| 日韩综合一区二区| 日韩av在线播放中文字幕| 亚洲成人av电影在线| 亚洲成av人片在线| 亚洲一区二区三区四区五区黄| 午夜不卡av免费| 日韩电影在线看| 精品午夜久久福利影院| 国产永久精品大片wwwapp | 国产精品1024| 成人综合在线网站| 不卡av电影在线播放| 99久久婷婷国产精品综合| 91网站最新网址| 在线看不卡av| 91精品一区二区三区在线观看| 日韩精品一区二区三区四区视频 | 久久国产福利国产秒拍| 国产精品亚洲第一区在线暖暖韩国 | 久久9热精品视频| 国产成人午夜精品影院观看视频| 成人毛片在线观看| 色婷婷国产精品| 欧美一级艳片视频免费观看| 精品久久久久久久一区二区蜜臀| 国产精品久久久久影院老司| 亚洲色图一区二区三区| 日欧美一区二区| 经典一区二区三区| 成人免费黄色大片| 欧美另类z0zxhd电影| 欧美国产精品久久| 图片区日韩欧美亚洲| 国产精品一区久久久久| 色婷婷综合中文久久一本| 欧美一区二区在线观看| 久久精品视频一区二区三区| 亚洲国产精品ⅴa在线观看| 日精品一区二区三区| 国产999精品久久久久久绿帽| 91国内精品野花午夜精品| 日韩精品一区二区在线观看| 国产精品久久久久久久久快鸭| 午夜精品久久久久久久蜜桃app| 国产中文一区二区三区| 欧美日韩一区二区三区在线| 国产午夜精品一区二区| 五月婷婷综合激情| 成人一区二区三区中文字幕| 在线不卡中文字幕| 亚洲欧洲制服丝袜| 国产剧情av麻豆香蕉精品| 精品视频在线免费观看| 国产精品久久久久影院亚瑟| 免费看日韩精品| 色乱码一区二区三区88| 亚洲精品在线免费播放| 亚洲国产精品尤物yw在线观看| 国产黄色91视频| 日韩三级视频中文字幕| 亚洲色图另类专区| 国产精品一级在线| 日韩区在线观看| 亚洲成人中文在线| 91欧美激情一区二区三区成人| 欧美丝袜自拍制服另类| 久久精品水蜜桃av综合天堂| 日韩专区欧美专区| 欧美亚洲丝袜传媒另类| 欧美国产精品专区| 国产剧情一区在线| 日韩精品在线一区| 国产又粗又猛又爽又黄91精品| 欧美日本乱大交xxxxx| 亚洲精品一二三| eeuss国产一区二区三区| 久久久久亚洲蜜桃| 日韩中文字幕1| 欧美一卡二卡三卡四卡| 午夜精品一区二区三区电影天堂| 日本精品一级二级| 亚洲三级免费观看| 99国产精品一区| 亚洲免费电影在线| 91麻豆免费视频| 亚洲人成网站色在线观看| 91色综合久久久久婷婷| 亚洲摸摸操操av| 在线观看亚洲一区| 亚洲码国产岛国毛片在线| av色综合久久天堂av综合| 亚洲男人天堂av网| 欧美午夜不卡视频| 午夜av一区二区三区| 欧美一区二区在线视频| 国产精品乡下勾搭老头1| 国产无一区二区| 成年人午夜久久久| 亚洲精品成人在线| 欧美丝袜丝交足nylons| 韩国欧美国产一区| 久久久一区二区| 成人av网站在线观看免费| 国产精品色婷婷久久58| 欧美亚洲动漫精品| 久久精品国产亚洲高清剧情介绍| 久久综合网色—综合色88| 国产精品一区二区在线观看不卡 |