Helo, On 06/28/2010 12:42 PM, su henry wrote: >> What prevents you from walking the acpi device tree from sr_probe()? >> Or even if you need to walk it from sr_init(), you still need to store >> the result and associate it with a specific cdrom device. It is >> something which is specific to single device. You can't use single >> global data structure for all devices like this. > > In order to make sure we walk the name space one time only. > > Because when the host starts the power supply to ODD, the driver will > start from sr_probe. I think it unnecessary to walk the acpi name > space when driver probes the device, so I walk the acpi name space > from sr_init. I don't think it would matter at all whether you walk the ACPI tree once during boot or on every sr_probe(). sr_probe() isn't exactly hot path nor is ACPI tree walking a very expensive operation. Even if it is expensive, the right thing to do is to walk it in sr_init(), store the result and _associate_ it with the appropriate device once the device is probed. It isn't a system global property. It simply can't live in a single global data structure shared by every device. I mean, what happens if there are multiple devices w/ ODDZ support? >>> This is a problem, any suggestions? Especially when the system goes to >>> S3/S4 state. >> >> Associate with specific device and using timer should work. > > Considering the S3/S4 state, if we add a new timer for this, we should > also add the suspend/resume callbacks for the driver, and modify the > timer timeout(mod_timer) in the callback function. I don't see why that would be necessary but if so, yeah, sure. Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html