Hi Jean, >2009/7/13 Jean Delvare <khali at linux-fr.org>: >> intel-agp.c has 2432 LOC and only deals with AGP/GART table management. I >> don't think anybody would be amused to see other code in there. > > Well, the driver posted by Lu was rather small, and most of it is for > device management, not functionality. Adding temperature reading to > another driver would probably fit in 250 lines. I agree with you. While, as there is not GM965 North Bridge driver direct process MCHBAR_I965 (MCH Memory Mapped Register BAR), if any driver module try to support GM965 thermal sensor, it need to call "pci_get_device", read the MCHBAR base address, and do ioremap_nocache to access the Thermal sensor register. If it doesn't do on drivers/hwmon, it need to do on drivers/char/agp or some how. >2009/7/12 Jean Delvare <khali at linux-fr.org>: >It's a limitation of the device driver model to only let one driver bind to a given device at any given time. I understand what you means, it DID has PCI driver conflict when two driver register as PCI device. While, apggart-intel is registed as PCI driver, gm965temp is as Platfrom devices driver. Gm965temp uses "pseudo-bus". Take a "tree -d /sys/device" snapshot: |-- pci0000:00 | ? |-- 0000:00:00.0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*** | ? | ? |-- bus -> ../../../bus/pci ? ? ? ? ? ? ? ? ? ? ? ?*** | ? | ? |-- driver -> ../../../bus/pci/drivers/agpgart-intel ? *** | ? | ? |-- firmware_node -> ../../LNXSYSTM:00/device:00/PNP0A08:00/PNP0C02:00 | ? | ? |-- power | ? | ? `-- subsystem -> ../../../bus/pci | ? |-- 0000:00:02.0 | ? | ? |-- bus -> ../../../bus/pci | ? | ? |-- driver -> ../../../bus/pci/drivers/i915 | ? | ? |-- drm:card0 -> ../../../class/drm/card0 | ? | ? |-- drm:controlD64 -> ../../../class/drm/controlD64 | ? | ? |-- firmware_node -> ../../LNXSYSTM:00/device:00/PNP0A08:00/device:07 | ? | ? |-- graphics:fb1 -> ../../../class/graphics/fb1 | ? | ? |-- i2c-adapter:i2c-1 -> ../../../class/i2c-adapter/i2c-1 | ? | ? |-- i2c-adapter:i2c-2 -> ../../../class/i2c-adapter/i2c-2 | ? | ? |-- power | ? | ? `-- subsystem -> ../../../bus/pci ... |-- platform | ? |-- gm965temp.0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *** | ? | ? |-- bus -> ../../../bus/platform ? ? ? ? ? ? ? ? ? ** | ? | ? |-- driver -> ../../../bus/platform/drivers/gm965temp ?*** | ? | ? |-- hwmon:hwmon1 -> ../../../class/hwmon/hwmon1 | ? | ? |-- power | ? | ? `-- subsystem -> ../../../bus/platform ... In this sysfs layout, I don't think agpgart-intel and gm965temp will conflict. -- Thx Lu Zhihe