/* mpt_device_driver_register - Register device driver hooks @dd_cbfunc: driver callbacks struct @cb_idx: MPT protocol driver index  */
int mpt_device_driver_register(struct mpt_pci_driver *dd_cbfunc, u8 cb_idx)
/* mpt_device_driver_register - Register device driver hooks @dd_cbfunc: driver callbacks struct @cb_idx: MPT protocol driver index  */
int mpt_device_driver_register(struct mpt_pci_driver *dd_cbfunc, u8 cb_idx)
{
	MPT_ADAPTER	*ioc;
	const struct pci_device_id *id;
	if (!cb_idx || cb_idx >= MPT_MAX_PROTOCOL_DRIVERS)
		return -EINVAL;
	MptDeviceDriverHandlers[cb_idx] = dd_cbfunc;
	list_for_each_entry(ioc, &ioc_list, list) {
		id = ioc->pcidev->driver ?
		    ioc->pcidev->driver->id_table : NULL;
		if (dd_cbfunc->probe)
			dd_cbfunc->probe(ioc->pcidev, id);
	 }
	return 0;
}