+#if CONFIG_I7300_IDLE_IOAT_CHANNELI still think this lone decrement looks fishy. Can there please be some
+ device->common.chancnt--;
+#endif
explanation how it exactly relates to the i7300 idle driver, where the
matching increment is, etc.?
No. This is not a increment/decrement thing. It is basically telling other
Users of IOAT that they have one IOAT channel less that they can use.
The last IOAT channel is used by i7300 idle driver to get the throttling to
work.
udelay may be more power efficient than polling.
+/* Check for known platforms with I/O-AT */Is there a specific reason you cannot match this by pci vendor/devid
+static int __init i7300_idle_platform_probe(void)
+{
+ int i;
+
+ fbd_dev = pci_get_bus_and_slot(MEMCTL_BUS, MEMCTL_DEVFN)
like all standard drivers do?
If there is a good reason add a comment.
They have to match vendor device and function. Its not unique to
just vendor and device id.
;+static void __exit i7300_idle_exit(void)I still think this needs some kind of idle synchronization.
+{
+ idle_notifier_unregister(&i7300_idle_nb);
This unregister uses atomic_notifier_chain_unregister() which
uses RCU and handles the race conditions that way.