|
@@ -223,11 +223,25 @@ static struct platform_device rtc_device = {
|
|
static __init int add_rtc_cmos(void)
|
|
static __init int add_rtc_cmos(void)
|
|
{
|
|
{
|
|
#ifdef CONFIG_PNP
|
|
#ifdef CONFIG_PNP
|
|
- if (!pnp_platform_devices)
|
|
|
|
- platform_device_register(&rtc_device);
|
|
|
|
-#else
|
|
|
|
|
|
+ static const char *ids[] __initconst =
|
|
|
|
+ { "PNP0b00", "PNP0b01", "PNP0b02", };
|
|
|
|
+ struct pnp_dev *dev;
|
|
|
|
+ struct pnp_id *id;
|
|
|
|
+ int i;
|
|
|
|
+
|
|
|
|
+ pnp_for_each_dev(dev) {
|
|
|
|
+ for (id = dev->id; id; id = id->next) {
|
|
|
|
+ for (i = 0; i < ARRAY_SIZE(ids); i++) {
|
|
|
|
+ if (compare_pnp_id(id, ids[i]) != 0)
|
|
|
|
+ return 0;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+#endif
|
|
|
|
+
|
|
platform_device_register(&rtc_device);
|
|
platform_device_register(&rtc_device);
|
|
-#endif /* CONFIG_PNP */
|
|
|
|
|
|
+ dev_info(&rtc_device.dev,
|
|
|
|
+ "registered platform RTC device (no PNP device found)\n");
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
device_initcall(add_rtc_cmos);
|
|
device_initcall(add_rtc_cmos);
|