static int __init pl111_platform_drm_init(void) { int ret; pr_info("DRM %s\n", __func__); pl111_drm_device = platform_device_register_full(&pl111_drm_pdevinfo); if (pl111_drm_device == NULL) { pr_err("DRM platform_device_register_full() failed\n"); return -ENOMEM; } ret = amba_driver_register(&pl111_amba_driver); if (ret != 0) { pr_err("DRM amba_driver_register() failed %d\n", ret); goto err_amba_reg; } ret = platform_driver_register(&platform_drm_driver); if (ret != 0) { pr_err("DRM platform_driver_register() failed %d\n", ret); goto err_pdrv_reg; } return 0; err_pdrv_reg: amba_driver_unregister(&pl111_amba_driver); err_amba_reg: platform_device_unregister(pl111_drm_device); return ret; }
static void __exit pl111_platform_drm_exit(void) { pr_info("DRM %s\n", __func__); platform_device_unregister(pl111_drm_device); amba_driver_unregister(&pl111_amba_driver); platform_driver_unregister(&platform_drm_driver); }
static int __init etm_init(void) { int retval; retval = amba_driver_register(&etb_driver); if (retval) { printk(KERN_ERR "Failed to register etb\n"); return retval; } retval = amba_driver_register(&etm_driver); if (retval) { amba_driver_unregister(&etb_driver); printk(KERN_ERR "Failed to probe etm\n"); return retval; } /* not being able to install this handler is not fatal */ (void)register_sysrq_key('v', &sysrq_etm_op); return 0; }
static void __exit pl010_exit(void) { amba_driver_unregister(&pl010_driver); uart_unregister_driver(&amba_reg); }
static void __exit mmci_exit(void) { amba_driver_unregister(&mmci_driver); }
static void __exit pl031_exit(void) { amba_driver_unregister(&pl031_driver); }
static void __exit amba_kmi_exit(void) { amba_driver_unregister(&ambakmi_driver); }
static void __exit sp805_wdt_exit(void) { amba_driver_unregister(&sp805_wdt_driver); }
static void __devexit nmk_rng_exit(void) { amba_driver_unregister(&nmk_rng_driver); }
static void __exit integrator_rtc_exit(void) { amba_driver_unregister(&rtc_driver); }