diff mbox

[RFC,1/3] libahci: save port map for forced port map

Message ID 1459257075-21393-2-git-send-email-srinivas.kandagatla@linaro.org (mailing list archive)
State New, archived
Headers show

Commit Message

Srinivas Kandagatla March 29, 2016, 1:11 p.m. UTC
In usecases where force_port_map is used saved_port_map is never set,
resulting in not programming the PORTS_IMPL register as part of intial
config. This patch fixes this by setting it to port_map even in case
where force_port_map is used, making it more inline with other parts of
the code.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/ata/libahci.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Tejun Heo March 30, 2016, 6:57 p.m. UTC | #1
Hello,

On Tue, Mar 29, 2016 at 02:11:13PM +0100, Srinivas Kandagatla wrote:
> In usecases where force_port_map is used saved_port_map is never set,
> resulting in not programming the PORTS_IMPL register as part of intial
> config. This patch fixes this by setting it to port_map even in case
> where force_port_map is used, making it more inline with other parts of
> the code.
> 
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> ---
>  drivers/ata/libahci.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
> index 3982054..a5d7c1c 100644
> --- a/drivers/ata/libahci.c
> +++ b/drivers/ata/libahci.c
> @@ -507,6 +507,7 @@ void ahci_save_initial_config(struct device *dev, struct ahci_host_priv *hpriv)
>  		dev_info(dev, "forcing port_map 0x%x -> 0x%x\n",
>  			 port_map, hpriv->force_port_map);
>  		port_map = hpriv->force_port_map;
> +		hpriv->saved_port_map = port_map;

So, the only change it'd cause is making the driver write the forced
value to the PI register.  Does that make sense?

Thanks.
Srinivas Kandagatla March 31, 2016, 3:58 p.m. UTC | #2
On 30/03/16 19:57, Tejun Heo wrote:
> Hello,
>
> On Tue, Mar 29, 2016 at 02:11:13PM +0100, Srinivas Kandagatla wrote:
>> In usecases where force_port_map is used saved_port_map is never set,
>> resulting in not programming the PORTS_IMPL register as part of intial
>> config. This patch fixes this by setting it to port_map even in case
>> where force_port_map is used, making it more inline with other parts of
>> the code.
>>
>> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
>> ---
>>   drivers/ata/libahci.c | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
>> index 3982054..a5d7c1c 100644
>> --- a/drivers/ata/libahci.c
>> +++ b/drivers/ata/libahci.c
>> @@ -507,6 +507,7 @@ void ahci_save_initial_config(struct device *dev, struct ahci_host_priv *hpriv)
>>   		dev_info(dev, "forcing port_map 0x%x -> 0x%x\n",
>>   			 port_map, hpriv->force_port_map);
>>   		port_map = hpriv->force_port_map;
>> +		hpriv->saved_port_map = port_map;
>
> So, the only change it'd cause is making the driver write the forced
> value to the PI register.  Does that make sense?

Yes, that is the intention, I guess, This was done exactly in case where 
the port number was fabricated too.

Without this I could not get the sata working on my board with forced 
port map option.

--srini


>
> Thanks.
>
Tejun Heo March 31, 2016, 4:43 p.m. UTC | #3
Hello,

On Thu, Mar 31, 2016 at 04:58:27PM +0100, Srinivas Kandagatla wrote:
> Yes, that is the intention, I guess, This was done exactly in case where the
> port number was fabricated too.
> 
> Without this I could not get the sata working on my board with forced port
> map option.

I see.  Looks good to me then.  Can you please respin the patches with
the updates for the review points in the second patch?  I'll apply
them to libata/for-3.6-fixes.

Thanks.
Srinivas Kandagatla March 31, 2016, 4:51 p.m. UTC | #4
On 31/03/16 17:43, Tejun Heo wrote:
> Hello,
>
> On Thu, Mar 31, 2016 at 04:58:27PM +0100, Srinivas Kandagatla wrote:
>> Yes, that is the intention, I guess, This was done exactly in case where the
>> port number was fabricated too.
>>
>> Without this I could not get the sata working on my board with forced port
>> map option.
>
> I see.  Looks good to me then.  Can you please respin the patches with
> the updates for the review points in the second patch?  I'll apply
> them to libata/for-3.6-fixes.

Thanks, I will do it now.

--srini
>
> Thanks.
>
diff mbox

Patch

diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
index 3982054..a5d7c1c 100644
--- a/drivers/ata/libahci.c
+++ b/drivers/ata/libahci.c
@@ -507,6 +507,7 @@  void ahci_save_initial_config(struct device *dev, struct ahci_host_priv *hpriv)
 		dev_info(dev, "forcing port_map 0x%x -> 0x%x\n",
 			 port_map, hpriv->force_port_map);
 		port_map = hpriv->force_port_map;
+		hpriv->saved_port_map = port_map;
 	}
 
 	if (hpriv->mask_port_map) {