Comments

The clock turnaround code still doesn't work for several reasons:
- 'USE_DPLL' flag in 'ap->host->private_data' is never initialized or updated,
so the driver can only set the chip to the DPLL clock mode, not the PCI mode;
- the driver doesn't serialize access to the channels depending on the current
clock mode like the vendor drivers, so the clock turnaround is only executed
"optionally", not always as it should be;
- the wrong ports are written to when hpt3x2n_set_clock() is called for the
secondary channel;
- hpt3x2n_set_clock() can inadvertently enable the disabled channels when
resetting the channel state machines.
Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Cc: stable@kernel.org
---
Resending with the corrected subject...
The patch is against the recent Linus' tree. It's intended to go into all
stable kernels starting with 2.6.19, when the PATA drivers were first merged --
the version change hunks could be dropped when merging to the older kernels...
drivers/ata/pata_hpt3x2n.c | 64 ++++++++++++++++++++++++---------------------
1 files changed, 35 insertions(+), 29 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

On 12/07/2009 08:52 AM, Sergei Shtylyov wrote:
> The clock turnaround code still doesn't work for several reasons:>> - 'USE_DPLL' flag in 'ap->host->private_data' is never initialized or updated,> so the driver can only set the chip to the DPLL clock mode, not the PCI mode;>> - the driver doesn't serialize access to the channels depending on the current> clock mode like the vendor drivers, so the clock turnaround is only executed> "optionally", not always as it should be;>> - the wrong ports are written to when hpt3x2n_set_clock() is called for the> secondary channel;>> - hpt3x2n_set_clock() can inadvertently enable the disabled channels when> resetting the channel state machines.>> Signed-off-by: Sergei Shtylyov<sshtylyov@ru.mvista.com>> Cc: stable@kernel.org>> ---> Resending with the corrected subject...>> The patch is against the recent Linus' tree. It's intended to go into all> stable kernels starting with 2.6.19, when the PATA drivers were first merged --> the version change hunks could be dropped when merging to the older kernels...>> drivers/ata/pata_hpt3x2n.c | 64 ++++++++++++++++++++++++---------------------> 1 files changed, 35 insertions(+), 29 deletions(-)
FWIW, I am basically waiting on Linus's pull before opening
#upstream-fixes (2.6.33) and #upstream (2.5.34) branches of libata-dev.git.
As soon as the merge happens, I'll immediately apply the patches from
you and others...
Jeff
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

On 12/07/2009 08:52 AM, Sergei Shtylyov wrote:
> The clock turnaround code still doesn't work for several reasons:>> - 'USE_DPLL' flag in 'ap->host->private_data' is never initialized or updated,> so the driver can only set the chip to the DPLL clock mode, not the PCI mode;>> - the driver doesn't serialize access to the channels depending on the current> clock mode like the vendor drivers, so the clock turnaround is only executed> "optionally", not always as it should be;>> - the wrong ports are written to when hpt3x2n_set_clock() is called for the> secondary channel;>> - hpt3x2n_set_clock() can inadvertently enable the disabled channels when> resetting the channel state machines.>> Signed-off-by: Sergei Shtylyov<sshtylyov@ru.mvista.com>> Cc:stable@kernel.org
applied, after fixing this newly-appearing niggle:
drivers/ata/pata_hpt3x2n.c: In function ‘hpt3x2n_qc_issue’:
drivers/ata/pata_hpt3x2n.c:327: warning: cast to pointer from integer of
different size
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html