/* cx_device_probe - Look for matching device. Call driver probe routine if found. @cx_driver: driver table (cx_drv struct) from driver @cx_device: part/mfg id for the device  */
static int cx_device_probe(struct device *dev)
/* cx_device_probe - Look for matching device. Call driver probe routine if found. @cx_driver: driver table (cx_drv struct) from driver @cx_device: part/mfg id for the device  */
static int cx_device_probe(struct device *dev)
{
	const struct cx_device_id *id;
	struct cx_drv *cx_drv = to_cx_driver(dev->driver);
	struct cx_dev *cx_dev = to_cx_dev(dev);
	int error = 0;
	if (!cx_dev->driver && cx_drv->probe) {
		id = cx_device_match(cx_drv->id_table, cx_dev);
		if (id) {
			if ((error = cx_drv->probe(cx_dev, id)) < 0)
				return error;
			else
				cx_dev->driver = cx_drv;
		}
	}
	return error;
}