[PATCH v8 3/4] ata: Add APM X-Gene SoC SATA host controller driver
Tejun Heo
tj at kernel.org
Tue Jan 14 11:03:12 EST 2014
Hey,
On Tue, Jan 14, 2014 at 07:57:19AM -0800, Loc Ho wrote:
> > No, they don't and the comments in your driver don't really explain
> > what's going on. Why are we having retry loops inside hardreset
> > itself? This can prolong recovery time significantly in corner cases.
> > Why is this necessary?
>
> There are two retry in the hardreset. The first retry is due to the
> requirement to have slightly modified PHY setting for different speed
> of the attached disk. The default is Gen3. If it is Gen1 or Gen2 disk
> attached, HW will require slightly modified PHY setting. The second
> retry is due to the fact that link may not link up the first time due
> to HW errata. For the initial version, I will remove the second retry
> and submit an separate patch.
And please explain what's going on in more detail in the comments.
> > * If your driver needs to append or prepent something to the existing
> > one, export the existing one and then wrap that one with the extra
> > logic around it. Do not copy function body unnecessarily. Even for
> > the port_interrupt, it looks like you can just call the flush after
> > invoking the normal ahci_handle_port_interrupt(), no?
>
> As mentioned, the flush requires immediately after reading the CI.
> Otherwise, there is still an chance that the command is completed and
> the OS notified the upper layer while the data is still in flight. For
> the initial version, I will remove the flush (IRQ wrapper) and submit
> separate patch.
The function is called with ap->lock held. Nothing can happen
inbetween.
Thanks.
--
tejun
More information about the linux-arm-kernel
mailing list