)]}'
{
  "commit": "3c293f4e08b58ad5b78f78d89ca1fd41f87f8729",
  "tree": "8bc84d37da7078197afe2e0fe8baab8e78f1373e",
  "parents": [
    "8ce48623f0cf3d632e32448411feddccb693d351"
  ],
  "author": {
    "name": "Andrew Lunn",
    "email": "andrew@lunn.ch",
    "time": "Wed Oct 12 22:14:53 2016 +0200"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Thu Oct 13 12:03:47 2016 -0400"
  },
  "message": "net: phy: Trigger state machine on state change and not polling.\n\nThe phy_start() is used to indicate the PHY is now ready to do its\nwork. The state is changed, normally to PHY_UP which means that both\nthe MAC and the PHY are ready.\n\nIf the phy driver is using polling, when the next poll happens, the\nstate machine notices the PHY is now in PHY_UP, and kicks off\nauto-negotiation, if needed.\n\nIf however, the PHY is using interrupts, there is no polling. The phy\nis stuck in PHY_UP until the next interrupt comes along. And there is\nno reason for the PHY to interrupt.\n\nHave phy_start() schedule the state machine to run, which both speeds\nup the polling use case, and makes the interrupt use case actually\nwork.\n\nThis problems exists whenever there is a state change which will not\ncause an interrupt. Trigger the state machine in these cases,\ne.g. phy_error().\n\nSigned-off-by: Andrew Lunn \u003candrew@lunn.ch\u003e\nCc: Kyle Roeschley \u003ckyle.roeschley@ni.com\u003e\nTested-by: Kyle Roeschley \u003ckyle.roeschley@ni.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c6f66832a1a641e387fe093b4e6aa61115e6abfa",
      "old_mode": 33188,
      "old_path": "drivers/net/phy/phy.c",
      "new_id": "f424b867f73e0fb4675c16e565cdeab0af8af0c8",
      "new_mode": 33188,
      "new_path": "drivers/net/phy/phy.c"
    }
  ]
}
