summaryrefslogtreecommitdiffstats
path: root/drivers/net/phy
diff options
context:
space:
mode:
authorStefan Sørensen <stefan.sorensen@spectralink.com>2014-06-27 12:05:31 +0200
committerDavid S. Miller <davem@davemloft.net>2014-07-01 18:52:53 -0700
commit6f39eb87de043ce778f584f4ae1b23c6db415a33 (patch)
tree7960dcde7fc810f6b0b5b3cc4e19cf20b84c1265 /drivers/net/phy
parentad01577aeb92d7cc72bb945aeb28def3749065da (diff)
downloadop-kernel-dev-6f39eb87de043ce778f584f4ae1b23c6db415a33.zip
op-kernel-dev-6f39eb87de043ce778f584f4ae1b23c6db415a33.tar.gz
dp83640: Verify calibration pin assignment
This constraints the pin assignment to not allow the calibration function to be reassigned and only allow reassigning the calibratin pin if only one phy is connected. Signed-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/phy')
-rw-r--r--drivers/net/phy/dp83640.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/phy/dp83640.c b/drivers/net/phy/dp83640.c
index eabecff..ab48112 100644
--- a/drivers/net/phy/dp83640.c
+++ b/drivers/net/phy/dp83640.c
@@ -510,6 +510,16 @@ static int ptp_dp83640_enable(struct ptp_clock_info *ptp,
static int ptp_dp83640_verify(struct ptp_clock_info *ptp, unsigned int pin,
enum ptp_pin_function func, unsigned int chan)
{
+ struct dp83640_clock *clock =
+ container_of(ptp, struct dp83640_clock, caps);
+
+ if (clock->caps.pin_config[pin].func == PTP_PF_PHYSYNC &&
+ !list_empty(&clock->phylist))
+ return 1;
+
+ if (func == PTP_PF_PHYSYNC)
+ return 1;
+
return 0;
}
OpenPOWER on IntegriCloud