Message ID | 20220127194602.21987-1-gerhard@engleder-embedded.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Revert "pinctrl: zynqmp: Unify pin naming" | expand |
On Thu, Jan 27, 2022 at 08:46:02PM +0100, Gerhard Engleder wrote: > From: Gerhard Engleder <gerhard@engleder-embedded.com> Thanks for your report, my comments below. > This reverts commit 54784ff24971ed5bd3f1056edce998148709d0a7. > > This patch changes the pin names from "MIO%d" to "MIO-%d", but all dts > in arch/arm64/boot/dts/xilinx still use the old name. As a result my > ZCU104 has no output on serial terminal and is not reachable over > network. And question here again, is the pin names ABI or not? If it's an ABI, then it should be clarified in the documentation. Otherwise, I'm wondering how this even may break anything.
On Fri, Jan 28, 2022 at 04:45:14PM +0200, Andy Shevchenko wrote: > On Thu, Jan 27, 2022 at 08:46:02PM +0100, Gerhard Engleder wrote: > > From: Gerhard Engleder <gerhard@engleder-embedded.com> > > Thanks for your report, my comments below. > > > This reverts commit 54784ff24971ed5bd3f1056edce998148709d0a7. > > > > This patch changes the pin names from "MIO%d" to "MIO-%d", but all dts > > in arch/arm64/boot/dts/xilinx still use the old name. As a result my > > ZCU104 has no output on serial terminal and is not reachable over > > network. > > And question here again, is the pin names ABI or not? > If it's an ABI, then it should be clarified in the documentation. > Otherwise, I'm wondering how this even may break anything. Meanwhile I apply this to my tree and send as fix PR to Linus.
diff --git a/drivers/pinctrl/pinctrl-zynqmp.c b/drivers/pinctrl/pinctrl-zynqmp.c index 42da6bd399ee..e14012209992 100644 --- a/drivers/pinctrl/pinctrl-zynqmp.c +++ b/drivers/pinctrl/pinctrl-zynqmp.c @@ -809,7 +809,6 @@ static int zynqmp_pinctrl_prepare_pin_desc(struct device *dev, unsigned int *npins) { struct pinctrl_pin_desc *pins, *pin; - char **pin_names; int ret; int i; @@ -821,14 +820,13 @@ static int zynqmp_pinctrl_prepare_pin_desc(struct device *dev, if (!pins) return -ENOMEM; - pin_names = devm_kasprintf_strarray(dev, ZYNQMP_PIN_PREFIX, *npins); - if (IS_ERR(pin_names)) - return PTR_ERR(pin_names); - for (i = 0; i < *npins; i++) { pin = &pins[i]; pin->number = i; - pin->name = pin_names[i]; + pin->name = devm_kasprintf(dev, GFP_KERNEL, "%s%d", + ZYNQMP_PIN_PREFIX, i); + if (!pin->name) + return -ENOMEM; } *zynqmp_pins = pins;