Message ID | 20200707213233.v2.21.Iabbdf4b844a81d8ba0382c512fa2becc47d6ed94@changeid |
---|---|
State | Superseded |
Headers | show |
Series | x86: Programmatic generation of ACPI tables (Part C) | expand |
Hi Simon, -----"Simon Glass" <sjg at chromium.org> schrieb: ----- > Betreff: [PATCH v2 21/44] x86: pinctrl: Set up itss in the probe() method > > At present the itss is probed in the ofdata_to_platdata() method. This is > incorrect since itss is a child of p2sb which itself needs to probe the > pinctrl device. This means that p2sb is effectively not probed when the > itss is probed, so we get the wrong register address from p2sb. > > Fix this by moving the itss probe to the correct place. > > Signed-off-by: Simon Glass <sjg at chromium.org> > Reviewed-by: Bin Meng <bmeng.cn at gmail.com> > --- > > (no changes since v1) > > drivers/pinctrl/intel/pinctrl.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) Reviewed-by: Wolfgang Wallner <wolfgang.wallner at br-automation.com>
On Wed, Jul 8, 2020 at 11:33 AM Simon Glass <sjg at chromium.org> wrote: > > At present the itss is probed in the ofdata_to_platdata() method. This is > incorrect since itss is a child of p2sb which itself needs to probe the > pinctrl device. This means that p2sb is effectively not probed when the > itss is probed, so we get the wrong register address from p2sb. > > Fix this by moving the itss probe to the correct place. > > Signed-off-by: Simon Glass <sjg at chromium.org> > Reviewed-by: Bin Meng <bmeng.cn at gmail.com> > --- > > (no changes since v1) > > drivers/pinctrl/intel/pinctrl.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > Reviewed-by: Bin Meng <bmeng.cn at gmail.com>
diff --git a/drivers/pinctrl/intel/pinctrl.c b/drivers/pinctrl/intel/pinctrl.c index 32ca303b27..ba21c9dcc2 100644 --- a/drivers/pinctrl/intel/pinctrl.c +++ b/drivers/pinctrl/intel/pinctrl.c @@ -619,15 +619,11 @@ int intel_pinctrl_ofdata_to_platdata(struct udevice *dev, { struct p2sb_child_platdata *pplat = dev_get_parent_platdata(dev); struct intel_pinctrl_priv *priv = dev_get_priv(dev); - int ret; if (!comm) { log_err("Cannot find community for pid %d\n", pplat->pid); return -EDOM; } - ret = irq_first_device_type(X86_IRQT_ITSS, &priv->itss); - if (ret) - return log_msg_ret("Cannot find ITSS", ret); priv->comm = comm; priv->num_cfgs = num_cfgs; @@ -637,8 +633,12 @@ int intel_pinctrl_ofdata_to_platdata(struct udevice *dev, int intel_pinctrl_probe(struct udevice *dev) { struct intel_pinctrl_priv *priv = dev_get_priv(dev); + int ret; priv->itss_pol_cfg = true; + ret = irq_first_device_type(X86_IRQT_ITSS, &priv->itss); + if (ret) + return log_msg_ret("Cannot find ITSS", ret); return 0; }