Re: libata hotplug question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

On 12/01/2009 08:44 AM, Benjamin Herrenschmidt wrote:
> On Mon, 2009-11-30 at 17:04 +1100, Benjamin Herrenschmidt wrote:
>> So pata_macio is starting to look good, it even suspends and resumes on
>> a couple of test laptops, now is time to sort out the last piece of the
>> puzzle, which is the hotplug media-bay.
>>
>> The old code use to call directly into drivers/ide ide_port_scan()
>> etc... from within the mediabay driver. Pretty filthy.
>>
>> I'm changing that to something that's even simpler: the macio_driver
>> gets a new callback for plug/unplug events from the bay, so it will be
>> easy to keep the old driver do whatever drivers/ide cruft it wants
>> locally and do something different in libata.
>>
>> Now, for libata, I haven't totally figured out what to do though.
>>
>> It seems like when the state "changes", I can do something like ahci and
>> call ata_ehi_hotplugged() followed by something like ata_port_freeze()
>> to kick the EH... at least that's my rough understanding.
> 
> One idea that comes to mind (I will try hacking something later today)
> is to make ata_link_online() and ata_link_offline() use optional hooks
> in the port ops so my driver can replace them instead of using the SATA
> PHY stuff. Would that fly ?

Oh... yeah, that was the original intention when adding those
functions but you wouldn't need them for hot plug/unplug.  Just set
probe mask and freeze the port.  EH will do the right thing.

-- 
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux