Messages in this thread | | | Date | Sun, 25 Apr 2004 23:05:11 +0100 | From | Kenn Humborg <> | Subject | Platform device matching |
| |
I'm looking at the code for binding platform devices with drivers. However, platform_match() doesn't seem to agree with its kerneldoc comment:
drivers/base/platform.c: 50 /** 51 * platform_match - bind platform device to platform driver. 52 * @dev: device. 53 * @drv: driver. 54 * 55 * Platform device IDs are assumed to be encoded like this: 56 * "<name><instance>", where <name> is a short description of the 57 * type of device, like "pci" or "floppy", and <instance> is the 58 * enumerated instance of the device, like '' or '42'. 59 * Driver IDs are simply "<name>". 60 * So, extract the <name> from the device, and compare it against 61 * the name of the driver. Return whether they match or not. 62 */ 63 64 static int platform_match(struct device * dev, struct device_driver * drv) 65 { 66 struct platform_device *pdev = container_of(dev, struct platform_device, dev); 67 68 return (strncmp(pdev->name, drv->name, BUS_ID_SIZE) == 0); 69 }
Shouldn't that really be
64 static int platform_match(struct device * dev, struct device_driver * drv) 65 { 66 struct platform_device *pdev = container_of(dev, struct platform_device, dev); 67 68 return (strncmp(pdev->name, drv->name, strlen(drv->name)) == 0); 69 }
So that, for example, the 'floppy' driver will match with any of the 'floppy', 'floppy0' and 'floppy1' devices?
Later, Kenn
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |