Re: [PATCH net-next 4/4] net: dsa: bcm_sf2: Configure IMP port TC2QOS mapping

2017-09-02 Thread Florian Fainelli


On 09/02/2017 10:47 AM, Andrew Lunn wrote:
> On Sat, Sep 02, 2017 at 09:32:08AM -0700, Florian Fainelli wrote:
>>
>>
>> On 09/02/2017 09:30 AM, Andrew Lunn wrote:
 @@ -129,6 +130,14 @@ static void bcm_sf2_imp_setup(struct dsa_switch *ds, 
 int port)
reg |= MII_DUMB_FWDG_EN;
core_writel(priv, reg, CORE_SWITCH_CTRL);
  
 +  /* Configure Traffic Class to QoS mapping, allow each priority to map
 +   * to a different queue number
 +   */
 +  reg = core_readl(priv, CORE_PORT_TC2_QOS_MAP_PORT(port));
 +  for (i = 0; i < 8; i++)
 +  reg |= i << (PRT_TO_QID_SHIFT * i);
>>>
>>> Hi Florian
>>>
>>> Rather than 8, would ds->num_tx_queues be more descriptive?
>>
>> I actually have a patch on top of this which defines a constant for the
>> number of queues instead of open coding 8 here. Thanks!
> 
> Hi Florian
> 
> It sounds like it should be part of 3/4?

Right, let me re-submit with that change included. Thanks
-- 
Florian


Re: [PATCH net-next 4/4] net: dsa: bcm_sf2: Configure IMP port TC2QOS mapping

2017-09-02 Thread Andrew Lunn
On Sat, Sep 02, 2017 at 09:32:08AM -0700, Florian Fainelli wrote:
> 
> 
> On 09/02/2017 09:30 AM, Andrew Lunn wrote:
> >> @@ -129,6 +130,14 @@ static void bcm_sf2_imp_setup(struct dsa_switch *ds, 
> >> int port)
> >>reg |= MII_DUMB_FWDG_EN;
> >>core_writel(priv, reg, CORE_SWITCH_CTRL);
> >>  
> >> +  /* Configure Traffic Class to QoS mapping, allow each priority to map
> >> +   * to a different queue number
> >> +   */
> >> +  reg = core_readl(priv, CORE_PORT_TC2_QOS_MAP_PORT(port));
> >> +  for (i = 0; i < 8; i++)
> >> +  reg |= i << (PRT_TO_QID_SHIFT * i);
> > 
> > Hi Florian
> > 
> > Rather than 8, would ds->num_tx_queues be more descriptive?
> 
> I actually have a patch on top of this which defines a constant for the
> number of queues instead of open coding 8 here. Thanks!

Hi Florian

It sounds like it should be part of 3/4?

   Andrew


Re: [PATCH net-next 4/4] net: dsa: bcm_sf2: Configure IMP port TC2QOS mapping

2017-09-02 Thread Florian Fainelli


On 09/02/2017 09:30 AM, Andrew Lunn wrote:
>> @@ -129,6 +130,14 @@ static void bcm_sf2_imp_setup(struct dsa_switch *ds, 
>> int port)
>>  reg |= MII_DUMB_FWDG_EN;
>>  core_writel(priv, reg, CORE_SWITCH_CTRL);
>>  
>> +/* Configure Traffic Class to QoS mapping, allow each priority to map
>> + * to a different queue number
>> + */
>> +reg = core_readl(priv, CORE_PORT_TC2_QOS_MAP_PORT(port));
>> +for (i = 0; i < 8; i++)
>> +reg |= i << (PRT_TO_QID_SHIFT * i);
> 
> Hi Florian
> 
> Rather than 8, would ds->num_tx_queues be more descriptive?

I actually have a patch on top of this which defines a constant for the
number of queues instead of open coding 8 here. Thanks!
-- 
Florian


Re: [PATCH net-next 4/4] net: dsa: bcm_sf2: Configure IMP port TC2QOS mapping

2017-09-02 Thread Andrew Lunn
> @@ -129,6 +130,14 @@ static void bcm_sf2_imp_setup(struct dsa_switch *ds, int 
> port)
>   reg |= MII_DUMB_FWDG_EN;
>   core_writel(priv, reg, CORE_SWITCH_CTRL);
>  
> + /* Configure Traffic Class to QoS mapping, allow each priority to map
> +  * to a different queue number
> +  */
> + reg = core_readl(priv, CORE_PORT_TC2_QOS_MAP_PORT(port));
> + for (i = 0; i < 8; i++)
> + reg |= i << (PRT_TO_QID_SHIFT * i);

Hi Florian

Rather than 8, would ds->num_tx_queues be more descriptive?

   Andrew


[PATCH net-next 4/4] net: dsa: bcm_sf2: Configure IMP port TC2QOS mapping

2017-09-01 Thread Florian Fainelli
Even though TC2QOS mapping is for switch egress queues, we need to
configure it correclty in order for the Broadcom tag ingress (CPU ->
switch) queue selection to work correctly since there is a 1:1 mapping
between switch egress queues and ingress queues.

Signed-off-by: Florian Fainelli 
---
 drivers/net/dsa/bcm_sf2.c | 9 +
 1 file changed, 9 insertions(+)

diff --git a/drivers/net/dsa/bcm_sf2.c b/drivers/net/dsa/bcm_sf2.c
index 3f1ad9d5d7c5..fc9f9f171e55 100644
--- a/drivers/net/dsa/bcm_sf2.c
+++ b/drivers/net/dsa/bcm_sf2.c
@@ -103,6 +103,7 @@ static void bcm_sf2_brcm_hdr_setup(struct bcm_sf2_priv 
*priv, int port)
 static void bcm_sf2_imp_setup(struct dsa_switch *ds, int port)
 {
struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds);
+   unsigned int i;
u32 reg, offset;
 
if (priv->type == BCM7445_DEVICE_ID)
@@ -129,6 +130,14 @@ static void bcm_sf2_imp_setup(struct dsa_switch *ds, int 
port)
reg |= MII_DUMB_FWDG_EN;
core_writel(priv, reg, CORE_SWITCH_CTRL);
 
+   /* Configure Traffic Class to QoS mapping, allow each priority to map
+* to a different queue number
+*/
+   reg = core_readl(priv, CORE_PORT_TC2_QOS_MAP_PORT(port));
+   for (i = 0; i < 8; i++)
+   reg |= i << (PRT_TO_QID_SHIFT * i);
+   core_writel(priv, reg, CORE_PORT_TC2_QOS_MAP_PORT(port));
+
bcm_sf2_brcm_hdr_setup(priv, port);
 
/* Force link status for IMP port */
-- 
1.9.1