Re: [PATCH] PCIE: pcie_set_readrq must not be allowed by PCIE EP driver

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

 



Hello,

On 2/17/2011 8:40 PM, Pedanekar, Hemant wrote:
> Correction: outbound --> remote
> 
> linux-pci-owner@xxxxxxxxxxxxxxx wrote on :
> 
>> Hello,
>>
>> linux-pci-owner@xxxxxxxxxxxxxxx wrote on Thursday, February 17, 2011 3:44
>> PM: 
>>
>>> pcie_set_readrq modifies read request size in EP's capability register.
>>> Now considering a situation where this EP is to be connected to an RC
>>> whose implemented read buffer size is less than what this function
>>> programs. [As per pcie specification this buffer size can be 128-4096
>>> bytes. So an RC can have lesser buffer size]
>>> In this scenario there is no way that RC can revert this as
>>> per its capability.
>>> So , read capability should always be either programmed by enumeration
>>> during bootloader or by using postinit hook of base driver. I mean, it
>>> should be programmed by RC's driver not by EP's driver.
>>
>> I am also working on a RC device which supports max outbound
>> read request of
>> 256 bytes and have to modify this (sil) driver to set read
>> request size to
>> 256 bytes. This patch would probably help me.
>>
>> But I have one question: aren't the completors supposed to
>> respond with
>> multiple completions if the read request exceeds their buffer limit?
>>

I am also agreeing with this statement. But, I really do not know why 
does a read request fails , rather to be replied by multiple packets.

What happens in your case? Does it not work, if you do not modify sil driver?

Regards
Pratyush

>> Thanks.
>>    Hemant
>>
>>> Signed-off-by: Pratyush Anand <pratyush.anand@xxxxxx> ---
>>>  drivers/ata/sata_sil24.c |    5 -----
>>>  1 files changed, 0 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/drivers/ata/sata_sil24.c
>> b/drivers/ata/sata_sil24.c index
>>> af41c6f..bc45e01 100644 --- a/drivers/ata/sata_sil24.c
>>> +++ b/drivers/ata/sata_sil24.c
>>> @@ -1343,11 +1343,6 @@ static int sil24_init_one(struct
>>> pci_dev *pdev, const struct pci_device_id *ent)
>>>  		}
>>>  	}
>>>
>>> -	/* Set max read request size to 4096.  This slightly increases
>>> -	 * write throughput for pci-e variants.
>>> -	 */
>>> -	pcie_set_readrq(pdev, 4096);
>>> -
>>>  	sil24_init_controller(host);
>>>
>>>  	if (sata_sil24_msi && !pci_enable_msi(pdev)) {
>>> --
>>> 1.6.0.2--
>> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 
> 
>    Hemant.
> 

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


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux