/* Initializes the SpeedStep support. Returns -ENODEV on unsupported devices, -EINVAL on problems during initiatization, and zero on success.  */
static int __init speedstep_init(void)
/* Initializes the SpeedStep support. Returns -ENODEV on unsupported devices, -EINVAL on problems during initiatization, and zero on success.  */
static int __init speedstep_init(void)
{
	speedstep_processor = speedstep_detect_processor();
	if (!speedstep_processor) {
		dprintk("Intel(R) SpeedStep(TM) capable processor "
				"not found\n");
		return -ENODEV;
	}
	if (!speedstep_detect_chipset()) {
		dprintk("Intel(R) SpeedStep(TM) for this chipset not "
				"(yet) available.\n");
		return -ENODEV;
	}
	if (speedstep_activate()) {
		pci_dev_put(speedstep_chipset_dev);
		return -EINVAL;
	}
	if (speedstep_find_register())
		return -ENODEV;
	return cpufreq_register_driver(&speedstep_driver);
}