static int omap34_xx_bridge_probe(struct platform_device *pdev) { int err; dev_t dev = 0; #ifdef CONFIG_TIDSPBRIDGE_DVFS int i = 0; #endif omap_dspbridge_dev = pdev; /* Global bridge device */ bridge = &omap_dspbridge_dev->dev; /* Bridge low level initializations */ err = omap3_bridge_startup(pdev); if (err) goto err1; /* use 2.6 device model */ err = alloc_chrdev_region(&dev, 0, 1, "DspBridge"); if (err) { pr_err("%s: Can't get major %d\n", __func__, driver_major); goto err1; } cdev_init(&bridge_cdev, &bridge_fops); bridge_cdev.owner = THIS_MODULE; err = cdev_add(&bridge_cdev, dev, 1); if (err) { pr_err("%s: Failed to add bridge device\n", __func__); goto err2; } /* udev support */ bridge_class = class_create(THIS_MODULE, "ti_bridge"); if (IS_ERR(bridge_class)) { pr_err("%s: Error creating bridge class\n", __func__); err = PTR_ERR(bridge_class); goto err3; } driver_major = MAJOR(dev); device_create(bridge_class, NULL, MKDEV(driver_major, 0), NULL, "DspBridge"); pr_info("DSP Bridge driver loaded\n"); return 0; err3: cdev_del(&bridge_cdev); err2: unregister_chrdev_region(dev, 1); err1: return err; }
static int __devinit omap34_xx_bridge_probe(struct platform_device *pdev) { int status; dev_t dev = 0; omap_dspbridge_dev = pdev; /* Global bridge device */ bridge = &omap_dspbridge_dev->dev; /* Bridge low level initializations */ status = omap3_bridge_startup(pdev); if (status) goto err1; /* use 2.6 device model */ status = alloc_chrdev_region(&dev, 0, 1, driver_name); if (status < 0) { pr_err("%s: Can't get major %d\n", __func__, driver_major); goto err1; } driver_major = MAJOR(dev); cdev_init(&bridge_cdev, &bridge_fops); bridge_cdev.owner = THIS_MODULE; status = cdev_add(&bridge_cdev, dev, 1); if (status) { pr_err("%s: Failed to add bridge device\n", __func__); goto err2; } /* udev support */ bridge_class = class_create(THIS_MODULE, "ti_bridge"); if (IS_ERR(bridge_class)) pr_err("%s: Error creating bridge class\n", __func__); bridge_create_sysfs(); DBC_ASSERT(status == 0); device_create(bridge_class, NULL, MKDEV(driver_major, 0), NULL, "DspBridge"); return 0; err2: unregister_chrdev_region(dev, 1); err1: return status; }