int Set_D_PhyFmtValue(struct us_data *us) { if (Set_D_SsfdcModel(us->SM_DeviceID)) return(ERROR); return(SMSUCCESS); }
//SmartMedia Physical Format Check Local Subroutine //----- Set_D_PhyFmtValue() -------------------------------------------- int Set_D_PhyFmtValue(struct us_data *us) { // PPDO_DEVICE_EXTENSION pdoExt; // BYTE idcode[4]; // DWORD UserDefData_1, UserDefData_2, Data, mask; // // //if (!fdoExt->ChildDeviceObject) return(ERROR); // //pdoExt = fdoExt->ChildDeviceObject->DeviceExtension; // // Ssfdc_D_ReadID(idcode, READ_ID_1); // //if (Set_D_SsfdcModel(idcode[1])) if (Set_D_SsfdcModel(us->SM_DeviceID)) return(ERROR); // //Use Multi-function pin to differentiate SM and xD. // UserDefData_1 = ReadPCIReg(fdoExt->BusID, fdoExt->DevID, fdoExt->FuncID, PCI_REG_USER_DEF) & 0x80; // if (UserDefData_1) // { // if ( READ_PORT_BYTE(SM_REG_INT_STATUS) & 0x80 ) fdoExt->DiskType = DISKTYPE_XD; // if ( READ_PORT_BYTE(SM_REG_INT_STATUS) & 0x40 ) fdoExt->DiskType = DISKTYPE_SM; // // if ( IsXDCompliance && (fdoExt->DiskType == DISKTYPE_XD) ) // { // Ssfdc_D_ReadID(idcode, READ_ID_3); // if (idcode[2] != 0xB5) // return(ERROR); // } // } // // //Use GPIO to differentiate SM and xD. // UserDefData_2 = ReadPCIReg(fdoExt->BusID, fdoExt->DevID, fdoExt->FuncID, PCI_REG_USER_DEF) >> 8; // if ( UserDefData_2 ) // { // Data = ReadPCIReg(fdoExt->BusID, fdoExt->DevID, 0, 0xAC); // // mask = 1 << (UserDefData_2-1); // // 1 : xD , 0 : SM // if ( Data & mask) // fdoExt->DiskType = DISKTYPE_XD; // else // fdoExt->DiskType = DISKTYPE_SM; // // if ( IsXDCompliance && (fdoExt->DiskType == DISKTYPE_XD) ) // { // Ssfdc_D_ReadID(idcode, READ_ID_3); // if (idcode[2] != 0xB5) // return(ERROR); // } // } // // if ( !(UserDefData_1 | UserDefData_2) ) // { // // Use UserDefine Register to differentiate SM and xD. // Ssfdc_D_ReadID(idcode, READ_ID_3); // // if (idcode[2] == 0xB5) // fdoExt->DiskType = DISKTYPE_XD; // else // { // if (!IsXDCompliance) // fdoExt->DiskType = DISKTYPE_SM; // else // return(ERROR); // } // // if (fdoExt->UserDef_DiskType == 0x04) fdoExt->DiskType = DISKTYPE_XD; // if (fdoExt->UserDef_DiskType == 0x08) fdoExt->DiskType = DISKTYPE_SM; // } // // if (!fdoExt->UserDef_DisableWP) // { // if (fdoExt->DiskType == DISKTYPE_SM) // { // if (Check_D_SsfdcWP()) // Ssfdc.Attribute|=WP; // } // } return(SMSUCCESS); }