ptp: Allow reassigning calibration pin function
authorStefan Sørensen <stefan.sorensen@spectralink.com>
Fri, 27 Jun 2014 10:05:33 +0000 (12:05 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 2 Jul 2014 01:52:54 +0000 (18:52 -0700)
The ptp pin function programming does not allow calibration pin to change
function. This is problematic on hardware that uses the default calibration
pin for other purposes.

Removing this limitation does not impact calibration if userspace does not
reprogram the calibration pin.

Signed-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/ptp/ptp_chardev.c

index 419056d7887ec9f516e46699bdc0f46dfe85eeb7..f8a76090cbca1e8bbf694a4fbc16a54ef60490d5 100644 (file)
@@ -86,17 +86,12 @@ int ptp_set_pinfunc(struct ptp_clock *ptp, unsigned int pin,
                        return -EINVAL;
                break;
        case PTP_PF_PHYSYNC:
-               pr_err("sorry, cannot reassign the calibration pin\n");
-               return -EINVAL;
+               if (chan != 0)
+                       return -EINVAL;
        default:
                return -EINVAL;
        }
 
-       if (pin2->func == PTP_PF_PHYSYNC) {
-               pr_err("sorry, cannot reprogram the calibration pin\n");
-               return -EINVAL;
-       }
-
        if (info->verify(info, pin, func, chan)) {
                pr_err("driver cannot use function %u on pin %u\n", func, chan);
                return -EOPNOTSUPP;