Tino Keitel wrote:[...] For LKML: There was previous discussion on linux1394-user and LSML. http://marc.info/?t=120720546800001 The enclosure is a Raidsonic ICY Box. Responsible for the spindown behavior is the IDE-to-FireWire bridge controller which is a Prolific PL-3507, and its firmware which is different from the USB firmware. Also, there are different firmwares in the wild for PL-3507. The sdp->vendor string is assembled by the firmware from data gathered from the IDE device. It is therefore not suitable to detect affected devices. The traditional way to handle things like this is: - Implement this as a workaround in sd. - Make this workaround conditional on a quirks flag in struct scsi_device. - Switch this flag on in a place where it can be reliably detected that this device needs it. There is an interface to do this in userspace. But in this particular case, the best place is the sbp2 driver (ond firewire-sbp2 driver), because it can detect PL-3507 firmwares by means of firmware identifiers. Tino, to find the firmware marker you can for example: # echo 0x1000 > /sys/module/sbp2/parameters/workarounds Then plug in the disk and # dmesg | grep sbp2 On the other hand, perhaps we can enable the workaround unconditional for all firewire disks (switch in the flag in sbp2 and firewire-sbp2 without looking at the device) or for all RBC disks (switch on the flag in sd.c if sdev->type == TYPE_RBC). RBC clause 5.4.1 states that support of the following POWER CONDITION values in the START STOP UNIT cdb is mandatory: 0 = No change in power condition 1 = Place device in Active condition 2 = Place device in Idle condition 3 = Place device in Standby condition 5 = Place device in Sleep condition There is also optional support for 7 = Device Control, which is uninteresting for our purposes. According to the description of Active, Idle, Standby, Sleep in RBC, we do most certainly want code 1 on resume, and rather 3 than 2 on suspend. 5 instead of 3 or 2 might even be better from the POV of energy consumption but a "device reset may be required before access to the device is allowed" which I'd rather not deal with. Tino, does the scsi stack log the device as "Direct-Access-RBC" after it was plugged in? Note to self: Test sg_start --pc={1,3} with all the various SBP-2 bridges I have access to... -- Stefan Richter -=====-==--- -=-- ====- http://arcgraph.de/sr/ --
| Alan Cox | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Greg Kroah-Hartman | [PATCH 004/196] Chinese: add translation of SubmittingPatches |
| Bart Van Assche | Re: Integration of SCST in the mainstream Linux kernel |
| Andrew Morton | Re: [RFC/PATCH] Documentation of kernel messages |
git: | |
| Winkler, Tomas | RE: iwlwifi: fix build bug in "iwlwifi: fix LED stall" |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Mark Lord | Re: [BUG] New Kernel Bugs |
