devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Timur Tabi <timur@codeaurora.org>
To: Florian Fainelli <f.fainelli@gmail.com>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	sdharia@codeaurora.org,
	Shanker Donthineni <shankerd@codeaurora.org>,
	Greg Kroah-Hartman <greg@kroah.com>,
	vikrams@codeaurora.org, cov@codeaurora.org,
	gavidov@codeaurora.org, Rob Herring <robh+dt@kernel.org>,
	andrew@lunn.ch, bjorn.andersson@linaro.org,
	Mark Langsdorf <mlangsdo@redhat.com>,
	Jon Masters <jcm@redhat.com>, Andy Gross <agross@codeaurora.org>,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH 1/2] [v4] net: emac: emac gigabit ethernet controller driver
Date: Tue, 10 May 2016 18:18:28 -0500	[thread overview]
Message-ID: <57326C44.8020906@codeaurora.org> (raw)
In-Reply-To: <571A8207.60704@gmail.com>

Florian Fainelli wrote:
> Are you utilizing the PHYLIB APIs properly? You need at least a
> phy_start() to start the PHY state machine, and an adjust_link callback
> to be provided to phy_connect() (or of_phy_connect()) to manage link
> state changes. And that's the very basic minimum here, there could be
> additional APIs that you may end up using.
>
> There are tons of example in tree of drivers doing this, bcmgenet,
> bcmsysport, tg3 etc.

Thank you.  I think I finally got phylib working, more or less.

Unfortunately, it seems I have some kind of race condition.  The driver 
has a lot that's wrong with it, and I'm trying to fix it all.  One crazy 
the driver does is it create a workqueue to handle a lot of the tasks 
that would normally be handled in the interrupt handler itself.

With phylib support, I know my driver can call phy_mac_interrupt() when 
it gets a link status change interrupt.  I then have an .adjust_link 
callback which starts or stops the mac accordingly.

My problem is that I'm not really sure what adjust_link is supposed to 
be doing.  In addition, it seems that I need to keep the workqueue 
running, otherwise the interface will not function.  I bring the 
interface up, and the driver reports success, but pings do not work.

I'm getting really frustrated.  The sample code isn't really helping a 
whole lot, because I lack a fundamental understanding of what needs to 
be done.  None of the documentation I've read is helpful, and I don't 
know how to debug it.

Can you give me some advice on how to debug this?

-- 
Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora
Forum, a Linux Foundation collaborative project.

  reply	other threads:[~2016-05-10 23:18 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-13 17:59 [PATCH 1/2] [v4] net: emac: emac gigabit ethernet controller driver Timur Tabi
2016-04-13 17:59 ` [PATCH 2/2] MAINTAINERS: add Qualcomm EMAC network driver maintainer Timur Tabi
2016-04-13 19:22 ` [PATCH 1/2] [v4] net: emac: emac gigabit ethernet controller driver kbuild test robot
2016-04-13 19:31   ` Timur Tabi
2016-04-13 19:40     ` Shanker Donthineni
2016-04-13 19:55       ` Timur Tabi
2016-04-13 20:07         ` Bjørn Mork
2016-04-14 16:24     ` Rob Herring
2016-04-13 22:16 ` Florian Fainelli
2016-04-14 20:19   ` Timur Tabi
2016-04-14 21:19     ` Florian Fainelli
2016-04-14 22:00       ` Vikram Sethi
2016-04-14 23:34         ` Timur Tabi
2016-04-15 12:35           ` Rob Herring
2016-04-15 15:44             ` Timur Tabi
2016-04-15 15:59               ` Rob Herring
2016-04-15 17:23                 ` Timur Tabi
     [not found]           ` <57102920.7000104-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2016-04-15 16:44             ` Bjorn Andersson
2016-04-15 17:00               ` Timur Tabi
2016-04-15 17:35                 ` Bjorn Andersson
2016-04-15 18:22                   ` Timur Tabi
2016-04-21 18:03       ` Timur Tabi
2016-04-22 19:45         ` Timur Tabi
2016-04-22 19:56           ` Florian Fainelli
2016-05-10 23:18             ` Timur Tabi [this message]
2016-05-10 23:26               ` Florian Fainelli
2016-05-11  2:24                 ` Timur Tabi
2016-05-11 20:27                   ` Timur Tabi
2016-04-25 13:16         ` Andrew Lunn
2016-06-01 22:27   ` Timur Tabi
     [not found] ` <1460570393-19838-1-git-send-email-timur-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2016-04-14  3:27   ` kbuild test robot
2016-04-14 16:32 ` Rob Herring
2016-04-14 16:47   ` Timur Tabi
2016-04-14 17:18     ` Rob Herring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=57326C44.8020906@codeaurora.org \
    --to=timur@codeaurora.org \
    --cc=agross@codeaurora.org \
    --cc=andrew@lunn.ch \
    --cc=bjorn.andersson@linaro.org \
    --cc=cov@codeaurora.org \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=f.fainelli@gmail.com \
    --cc=gavidov@codeaurora.org \
    --cc=greg@kroah.com \
    --cc=jcm@redhat.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mlangsdo@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=sdharia@codeaurora.org \
    --cc=shankerd@codeaurora.org \
    --cc=vikrams@codeaurora.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).