All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Lord <liml@rtr.ca>
To: Tejun Heo <htejun@gmail.com>
Cc: IDE/ATA development list <linux-ide@vger.kernel.org>,
	Saeed Bishara <saeed@marvell.com>
Subject: Re: What's needed for PMP support?
Date: Thu, 21 Feb 2008 19:31:06 -0500	[thread overview]
Message-ID: <47BE17CA.6060406@rtr.ca> (raw)
In-Reply-To: <47BC798F.6070900@pobox.com>

Tejun Heo wrote:
>>
>> The following things are needed for a LLD to support PMP.
> ..
>> I think that's about it.  Feel free to ask if something isn't clear.
..

I think we need better semantics around sata_scr_{read,write}(),
or more specifically 

These need to be moved into ata_port_operations
so that LLDs can wrap them to properly manage
the host controller's global link->pmp value.

The problem I've been debugging here for the past 24hrs,
is that sata_mv sets the pmp number globally in hardware,
but then libata does a call to sata_scr_read()
which causes it to change.  Without ever changing it back.

Subsequent accesses of shadow registers now point at
the pmp==15 instead of the original PM port.

Doh!  No wonder device detection fails for me.

The LLD needs a way to properly manage the current pmp selection,
without having to clone all of the reset logic from libata-core.

I'd like to just re-use that code, but I cannot if it's going
to muck up the pmp selection.

I *think* ata_link_online() is my immediate problem.
It gets called from inside ata_std_softreset(),
and it invokes sata_scr_read().

This prevents me from re-using ata_std_softreset(),
and all of the non-exported functions that *it* calls.

There's very little that's special in the LLD for pmp support,
but the amount of code required seems huge, just to cope with
this simple problem caused.

Ugh.

If sata_scr_{read,write}() were in ata_port_operations,
then I could wrap them to save/restore the original pmp value.
But I'm not sure if that would result in a race against
other command-issue paths on the same port (?).

Tejun ???

For now, I'll try to hack it into sata_mv locally, somehow.

Suggestions?


  parent reply	other threads:[~2008-02-22  0:31 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-06 21:56 only one drive in a port multiplier system is being recognized Greg Hennessy
2007-11-12  2:58 ` Tejun Heo
     [not found]   ` <4738827D.9060405@pobox.com>
2007-11-13  1:09     ` What's needed for PMP support? Tejun Heo
2008-02-20 19:03       ` Mark Lord
2008-02-21  3:39         ` Tejun Heo
2008-02-21 15:07           ` Mark Lord
2008-02-21 20:52             ` [PATCH] libata-pmp: clear hob for pmp register accesses Mark Lord
2008-02-21 21:51               ` saeed bishara
2008-02-22  1:40               ` Tejun Heo
2008-02-24  5:29               ` Jeff Garzik
2008-02-22  0:31         ` Mark Lord [this message]
2008-02-22  0:32           ` What's needed for PMP support? Mark Lord
2008-02-22  1:57             ` Tejun Heo
2008-02-22  2:04               ` Mark Lord
2008-02-22  2:12                 ` Tejun Heo
2008-02-22  2:25                   ` Mark Lord
2008-02-22  2:27                     ` Mark Lord
2008-02-22  3:52                       ` Mark Lord
2008-02-22  4:22                         ` new ata_port_operations for .pmp_{read,write} ? Mark Lord
2008-02-22 14:23                           ` Mark Lord
2008-02-22 14:28                             ` Mark Lord
2008-02-23  0:38                               ` Mark Lord
2008-02-23  2:49                                 ` Tejun Heo
2008-02-23  2:43                             ` Tejun Heo
2008-02-23  2:59                               ` Jeff Garzik
2008-02-23  5:15                             ` Mark Lord
2008-02-24  7:03                               ` Tejun Heo
2008-02-24  7:14                                 ` Jeff Garzik
2008-02-25  4:34                                   ` Mark Lord
2008-02-25  4:46                                     ` Jeff Garzik
2008-02-25  4:31                                 ` Mark Lord
2008-02-25  4:49                                 ` Mark Lord
2008-02-25  4:56                                   ` Jeff Garzik
2008-02-25  5:20                                   ` Tejun Heo
2008-02-25 16:55                                     ` Mark Lord
2008-02-25 23:44                                       ` Tejun Heo
2008-02-26  0:12                                         ` Mark Lord
2008-02-26  2:01                                           ` Tejun Heo
2008-02-22  9:57             ` What's needed for PMP support? Alan Cox

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=47BE17CA.6060406@rtr.ca \
    --to=liml@rtr.ca \
    --cc=htejun@gmail.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=saeed@marvell.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.