[U-Boot] [PATCH v1 19/41] net: mvpp2: adjust mvpp2_{rxq, txq}_init for PPv2.2
Stefan Roese
sr at denx.de
Wed Mar 22 07:17:03 UTC 2017
On 21.03.2017 18:25, Joe Hershberger wrote:
> On Tue, Mar 21, 2017 at 9:27 AM, Stefan Roese <sr at denx.de> wrote:
>> From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>>
>> In PPv2.2, the MVPP2_RXQ_DESC_ADDR_REG and MVPP2_TXQ_DESC_ADDR_REG
>> registers have a slightly different layout, because they need to contain
>> a 64-bit address for the RX and TX descriptor arrays. This commit
>> adjusts those functions accordingly.
>>
>> Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>> Signed-off-by: Stefan Roese <sr at denx.de>
>
> Acked-by: Joe Hershberger <joe.hershberger at ni.com>
>
>>
>> drivers/net/mvpp2.c | 26 +++++++++++++++++++++-----
>> 1 file changed, 21 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/net/mvpp2.c b/drivers/net/mvpp2.c
>> index ca663ce822..c297097c3a 100644
>> --- a/drivers/net/mvpp2.c
>> +++ b/drivers/net/mvpp2.c
>> @@ -143,6 +143,7 @@ do { \
>> /* Descriptor Manager Top Registers */
>> #define MVPP2_RXQ_NUM_REG 0x2040
>> #define MVPP2_RXQ_DESC_ADDR_REG 0x2044
>> +#define MVPP22_DESC_ADDR_OFFS 8
>> #define MVPP2_RXQ_DESC_SIZE_REG 0x2048
>> #define MVPP2_RXQ_DESC_SIZE_MASK 0x3ff0
>> #define MVPP2_RXQ_STATUS_UPDATE_REG(rxq) (0x3000 + 4 * (rxq))
>> @@ -184,6 +185,7 @@ do { \
>> #define MVPP2_TXQ_RSVD_CLR_REG 0x20b8
>> #define MVPP2_TXQ_RSVD_CLR_OFFSET 16
>> #define MVPP2_AGGR_TXQ_DESC_ADDR_REG(cpu) (0x2100 + 4 * (cpu))
>> +#define MVPP22_AGGR_TXQ_DESC_ADDR_OFFS 8
>> #define MVPP2_AGGR_TXQ_DESC_SIZE_REG(cpu) (0x2140 + 4 * (cpu))
>> #define MVPP2_AGGR_TXQ_DESC_SIZE_MASK 0x3ff0
>> #define MVPP2_AGGR_TXQ_STATUS_REG(cpu) (0x2180 + 4 * (cpu))
>> @@ -3108,6 +3110,8 @@ static int mvpp2_aggr_txq_init(struct udevice *dev,
>> int desc_num, int cpu,
>> struct mvpp2 *priv)
>> {
>> + u32 txq_dma;
>> +
>> /* Allocate memory for TX descriptors */
>> aggr_txq->descs = buffer_loc.aggr_tx_descs;
>> aggr_txq->descs_dma = (dma_addr_t)buffer_loc.aggr_tx_descs;
>> @@ -3124,10 +3128,16 @@ static int mvpp2_aggr_txq_init(struct udevice *dev,
>> aggr_txq->next_desc_to_proc = mvpp2_read(priv,
>> MVPP2_AGGR_TXQ_INDEX_REG(cpu));
>>
>> - /* Set Tx descriptors queue starting address */
>> - /* indirect access */
>> - mvpp2_write(priv, MVPP2_AGGR_TXQ_DESC_ADDR_REG(cpu),
>> - aggr_txq->descs_dma);
>> + /* Set Tx descriptors queue starting address indirect
>> + * access
>> + */
>
> Single line comment?
Again, I would like to keep it this way to keep the driver in sync
with the Linux version.
Thanks,
Stefan
More information about the U-Boot
mailing list