The SW folks need to answer that question.

Gerald



On Fri, Jan 31, 2014 at 3:56 AM, <[email protected]> wrote:

> Hi Gerald,
>
> how can i check if i have this patch?
>
>
> Thx
> Attila
>
> On Friday, January 3, 2014 5:37:19 PM UTC+1, RobertCNelson wrote:
>
>> On Thu, Jan 2, 2014 at 10:08 PM, Eugene <[email protected]> wrote:
>> > I ran into the same problems. I hacked up a patch to 3.8.8 from this
>> patch:
>> > http://permalink.gmane.org/gmane.linux.network/267097
>> > and the ifdown/ifup issue went away for me.
>>
>> Nice find! This fixes my debian netinstall, gonna push it to the
>> default beagleboard.org kernel..
>>
>> >
>> > Here is my git diff for those who want to give it a try:
>> > diff --git a/drivers/net/ethernet/ti/cpsw.c 
>> > b/drivers/net/ethernet/ti/cpsw.c
>>
>> > index 21ba53e..67c7f74 100644
>> > --- a/drivers/net/ethernet/ti/cpsw.c
>> > +++ b/drivers/net/ethernet/ti/cpsw.c
>> > @@ -342,6 +342,7 @@ struct cpsw_priv {
>> >      /* snapshot of IRQ numbers */
>> >      u32 irqs_table[4];
>> >      u32 num_irqs;
>> > +        bool irq_enabled;
>> >      struct cpts cpts;
>> >  };
>> >
>> > @@ -458,7 +459,10 @@ static irqreturn_t cpsw_interrupt(int irq, void
>> > *dev_id)
>> >
>> >      if (likely(netif_running(priv->ndev))) {
>> >          cpsw_intr_disable(priv);
>> > -        cpsw_disable_irq(priv);
>> > +                if (priv->irq_enabled == true) {
>> > +                   cpsw_disable_irq(priv);
>> > +                   priv->irq_enabled = false;
>> > +                }
>> >          napi_schedule(&priv->napi);
>> >      }
>> >
>> > @@ -512,7 +516,11 @@ static int cpsw_poll(struct napi_struct *napi, int
>> > budget)
>> >      if ((num_total_rx + num_total_tx) < budget) {
>> >          napi_complete(napi);
>> >          cpsw_intr_enable(priv);
>> > -        cpsw_enable_irq(priv);
>> > +                if (priv->irq_enabled == false) {
>> > +                   cpsw_enable_irq(priv);
>> > +                   priv->irq_enabled = true;
>> > +                }
>> > +
>> >      }
>> >
>> >      return num_total_rx + num_total_rx;
>> > @@ -812,7 +820,10 @@ static int cpsw_ndo_stop(struct net_device *ndev)
>> >      struct cpsw_priv *priv = netdev_priv(ndev);
>> >
>> >      cpsw_info(priv, ifdown, "shutting down cpsw device\n");
>> > -    cpsw_disable_irq(priv);
>> > +        if (priv->irq_enabled == true) {
>> > +           cpsw_disable_irq(priv);
>> > +           priv->irq_enabled = false;
>> > +        }
>> >      netif_stop_queue(priv->ndev);
>> >      if (!priv->data.disable_napi)
>> >          napi_disable(&priv->napi);
>> > @@ -1307,6 +1318,8 @@ static int cpsw_probe(struct platform_device
>> *pdev)
>> >      priv->msg_enable = netif_msg_init(debug_level, CPSW_DEBUG);
>> >      priv->rx_packet_max = max(rx_packet_max, 128);
>> >
>> > +        priv->irq_enabled = false;
>> > +
>> >      /*
>> >       * This may be required here for child devices.
>> >       */
>> >
>> > --
>> > For more options, visit http://beagleboard.org/discuss
>> > ---
>> > You received this message because you are subscribed to the Google
>> Groups
>> > "BeagleBoard" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
>> an
>> > email to [email protected].
>> > For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>> --
>> Robert Nelson
>> http://www.rcn-ee.com/
>>
>  --
> For more options, visit http://beagleboard.org/discuss
> ---
> You received this message because you are subscribed to the Google Groups
> "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to