/* DAC960_Probe verifies controller's existence and initializes the DAC960 Driver for that controller.  */
static int DAC960_Probe(struct pci_dev *dev, const struct pci_device_id *entry)
/* DAC960_Probe verifies controller's existence and initializes the DAC960 Driver for that controller.  */
static int DAC960_Probe(struct pci_dev *dev, const struct pci_device_id *entry)
{
  int disk;
  DAC960_Controller_T *Controller;
  if (DAC960_ControllerCount == DAC960_MaxControllers)
  {
	DAC960_Error("More than %d DAC960 Controllers detected - "
                       "ignoring from Controller at\n",
                       NULL, DAC960_MaxControllers);
	return -ENODEV;
  }
  Controller = DAC960_DetectController(dev, entry);
  if (!Controller)
	return -ENODEV;
  if (!DAC960_InitializeController(Controller)) {
  	DAC960_FinalizeController(Controller);
	return -ENODEV;
  }
  for (disk = 0; disk < DAC960_MaxLogicalDrives; disk++) {
        set_capacity(Controller->disks[disk], disk_size(Controller, disk));
        add_disk(Controller->disks[disk]);
  }
  DAC960_CreateProcEntries(Controller);
  return 0;
}