* [PATCH v2 0/3] Misc qcom geni i2c driver fixes @ 2020-03-10 15:43 Stephen Boyd 2020-03-10 15:43 ` [PATCH v2 1/3] i2c: qcom-geni: Let firmware specify irq trigger flags Stephen Boyd ` (2 more replies) 0 siblings, 3 replies; 13+ messages in thread From: Stephen Boyd @ 2020-03-10 15:43 UTC (permalink / raw) To: Wolfram Sang Cc: linux-kernel, Andy Gross, Bjorn Andersson, linux-i2c, linux-arm-msm Here's a small collection of qcom geni i2c driver fixes that simplify the code and aid debugging. Changes from v1; - Simplified code some more and commented about platform_get_irq() in commit text for patch 2 - Picked up reviewed by tags - Fixed first patch to use &pdev->dev so it keeps compiling - Rebased to v5.6-rc5 Stephen Boyd (3): i2c: qcom-geni: Let firmware specify irq trigger flags i2c: qcom-geni: Grow a dev pointer to simplify code i2c: qcom-geni: Drop of_platform.h include drivers/i2c/busses/i2c-qcom-geni.c | 58 ++++++++++++++---------------- 1 file changed, 26 insertions(+), 32 deletions(-) base-commit: 2c523b344dfa65a3738e7039832044aa133c75fb -- Sent by a computer, using git, on the internet ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v2 1/3] i2c: qcom-geni: Let firmware specify irq trigger flags 2020-03-10 15:43 [PATCH v2 0/3] Misc qcom geni i2c driver fixes Stephen Boyd @ 2020-03-10 15:43 ` Stephen Boyd 2020-03-10 19:35 ` Bjorn Andersson ` (2 more replies) 2020-03-10 15:43 ` [PATCH v2 2/3] i2c: qcom-geni: Grow a dev pointer to simplify code Stephen Boyd 2020-03-10 15:43 ` [PATCH v2 3/3] i2c: qcom-geni: Drop of_platform.h include Stephen Boyd 2 siblings, 3 replies; 13+ messages in thread From: Stephen Boyd @ 2020-03-10 15:43 UTC (permalink / raw) To: Wolfram Sang Cc: linux-kernel, Andy Gross, Bjorn Andersson, linux-i2c, linux-arm-msm, Alok Chauhan, Douglas Anderson, Brendan Higgins We don't need to force IRQF_TRIGGER_HIGH here as the DT or ACPI tables should take care of this for us. Just use 0 instead so that we use the flags from the firmware. Also, remove specify dev_name() for the irq name so that we can get better information in /proc/interrupts about which device is generating interrupts. Cc: Alok Chauhan <alokc@codeaurora.org> Reviewed-by: Douglas Anderson <dianders@chromium.org> Reviewed-by: Brendan Higgins <brendanhiggins@google.com> Signed-off-by: Stephen Boyd <swboyd@chromium.org> --- drivers/i2c/busses/i2c-qcom-geni.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c index 17abf60c94ae..4efca130035a 100644 --- a/drivers/i2c/busses/i2c-qcom-geni.c +++ b/drivers/i2c/busses/i2c-qcom-geni.c @@ -549,8 +549,8 @@ static int geni_i2c_probe(struct platform_device *pdev) init_completion(&gi2c->done); spin_lock_init(&gi2c->lock); platform_set_drvdata(pdev, gi2c); - ret = devm_request_irq(&pdev->dev, gi2c->irq, geni_i2c_irq, - IRQF_TRIGGER_HIGH, "i2c_geni", gi2c); + ret = devm_request_irq(&pdev->dev, gi2c->irq, geni_i2c_irq, 0, + dev_name(&pdev->dev), gi2c); if (ret) { dev_err(&pdev->dev, "Request_irq failed:%d: err:%d\n", gi2c->irq, ret); -- Sent by a computer, using git, on the internet ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v2 1/3] i2c: qcom-geni: Let firmware specify irq trigger flags 2020-03-10 15:43 ` [PATCH v2 1/3] i2c: qcom-geni: Let firmware specify irq trigger flags Stephen Boyd @ 2020-03-10 19:35 ` Bjorn Andersson 2020-03-11 7:30 ` Amit Kucheria 2020-03-13 14:21 ` Wolfram Sang 2 siblings, 0 replies; 13+ messages in thread From: Bjorn Andersson @ 2020-03-10 19:35 UTC (permalink / raw) To: Stephen Boyd Cc: Wolfram Sang, linux-kernel, Andy Gross, linux-i2c, linux-arm-msm, Alok Chauhan, Douglas Anderson, Brendan Higgins On Tue 10 Mar 08:43 PDT 2020, Stephen Boyd wrote: > We don't need to force IRQF_TRIGGER_HIGH here as the DT or ACPI tables > should take care of this for us. Just use 0 instead so that we use the > flags from the firmware. Also, remove specify dev_name() for the irq > name so that we can get better information in /proc/interrupts about > which device is generating interrupts. > > Cc: Alok Chauhan <alokc@codeaurora.org> > Reviewed-by: Douglas Anderson <dianders@chromium.org> > Reviewed-by: Brendan Higgins <brendanhiggins@google.com> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> > Signed-off-by: Stephen Boyd <swboyd@chromium.org> > --- > drivers/i2c/busses/i2c-qcom-geni.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c > index 17abf60c94ae..4efca130035a 100644 > --- a/drivers/i2c/busses/i2c-qcom-geni.c > +++ b/drivers/i2c/busses/i2c-qcom-geni.c > @@ -549,8 +549,8 @@ static int geni_i2c_probe(struct platform_device *pdev) > init_completion(&gi2c->done); > spin_lock_init(&gi2c->lock); > platform_set_drvdata(pdev, gi2c); > - ret = devm_request_irq(&pdev->dev, gi2c->irq, geni_i2c_irq, > - IRQF_TRIGGER_HIGH, "i2c_geni", gi2c); > + ret = devm_request_irq(&pdev->dev, gi2c->irq, geni_i2c_irq, 0, > + dev_name(&pdev->dev), gi2c); > if (ret) { > dev_err(&pdev->dev, "Request_irq failed:%d: err:%d\n", > gi2c->irq, ret); > -- > Sent by a computer, using git, on the internet > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 1/3] i2c: qcom-geni: Let firmware specify irq trigger flags 2020-03-10 15:43 ` [PATCH v2 1/3] i2c: qcom-geni: Let firmware specify irq trigger flags Stephen Boyd 2020-03-10 19:35 ` Bjorn Andersson @ 2020-03-11 7:30 ` Amit Kucheria 2020-03-13 14:21 ` Wolfram Sang 2 siblings, 0 replies; 13+ messages in thread From: Amit Kucheria @ 2020-03-11 7:30 UTC (permalink / raw) To: Stephen Boyd Cc: Wolfram Sang, LKML, Andy Gross, Bjorn Andersson, linux-i2c, linux-arm-msm, Alok Chauhan, Douglas Anderson, Brendan Higgins On Tue, Mar 10, 2020 at 9:14 PM Stephen Boyd <swboyd@chromium.org> wrote: > > We don't need to force IRQF_TRIGGER_HIGH here as the DT or ACPI tables > should take care of this for us. Just use 0 instead so that we use the > flags from the firmware. Also, remove specify dev_name() for the irq > name so that we can get better information in /proc/interrupts about > which device is generating interrupts. > Reviewed-by: Amit Kucheria <amit.kucheria@linaro.org> > Cc: Alok Chauhan <alokc@codeaurora.org> > Reviewed-by: Douglas Anderson <dianders@chromium.org> > Reviewed-by: Brendan Higgins <brendanhiggins@google.com> > Signed-off-by: Stephen Boyd <swboyd@chromium.org> > --- > drivers/i2c/busses/i2c-qcom-geni.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c > index 17abf60c94ae..4efca130035a 100644 > --- a/drivers/i2c/busses/i2c-qcom-geni.c > +++ b/drivers/i2c/busses/i2c-qcom-geni.c > @@ -549,8 +549,8 @@ static int geni_i2c_probe(struct platform_device *pdev) > init_completion(&gi2c->done); > spin_lock_init(&gi2c->lock); > platform_set_drvdata(pdev, gi2c); > - ret = devm_request_irq(&pdev->dev, gi2c->irq, geni_i2c_irq, > - IRQF_TRIGGER_HIGH, "i2c_geni", gi2c); > + ret = devm_request_irq(&pdev->dev, gi2c->irq, geni_i2c_irq, 0, > + dev_name(&pdev->dev), gi2c); > if (ret) { > dev_err(&pdev->dev, "Request_irq failed:%d: err:%d\n", > gi2c->irq, ret); > -- > Sent by a computer, using git, on the internet > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 1/3] i2c: qcom-geni: Let firmware specify irq trigger flags 2020-03-10 15:43 ` [PATCH v2 1/3] i2c: qcom-geni: Let firmware specify irq trigger flags Stephen Boyd 2020-03-10 19:35 ` Bjorn Andersson 2020-03-11 7:30 ` Amit Kucheria @ 2020-03-13 14:21 ` Wolfram Sang 2 siblings, 0 replies; 13+ messages in thread From: Wolfram Sang @ 2020-03-13 14:21 UTC (permalink / raw) To: Stephen Boyd Cc: linux-kernel, Andy Gross, Bjorn Andersson, linux-i2c, linux-arm-msm, Alok Chauhan, Douglas Anderson, Brendan Higgins [-- Attachment #1: Type: text/plain, Size: 648 bytes --] On Tue, Mar 10, 2020 at 08:43:56AM -0700, Stephen Boyd wrote: > We don't need to force IRQF_TRIGGER_HIGH here as the DT or ACPI tables > should take care of this for us. Just use 0 instead so that we use the > flags from the firmware. Also, remove specify dev_name() for the irq > name so that we can get better information in /proc/interrupts about > which device is generating interrupts. > > Cc: Alok Chauhan <alokc@codeaurora.org> > Reviewed-by: Douglas Anderson <dianders@chromium.org> > Reviewed-by: Brendan Higgins <brendanhiggins@google.com> > Signed-off-by: Stephen Boyd <swboyd@chromium.org> Applied to for-next, thanks! [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v2 2/3] i2c: qcom-geni: Grow a dev pointer to simplify code 2020-03-10 15:43 [PATCH v2 0/3] Misc qcom geni i2c driver fixes Stephen Boyd 2020-03-10 15:43 ` [PATCH v2 1/3] i2c: qcom-geni: Let firmware specify irq trigger flags Stephen Boyd @ 2020-03-10 15:43 ` Stephen Boyd 2020-03-10 19:41 ` Bjorn Andersson ` (2 more replies) 2020-03-10 15:43 ` [PATCH v2 3/3] i2c: qcom-geni: Drop of_platform.h include Stephen Boyd 2 siblings, 3 replies; 13+ messages in thread From: Stephen Boyd @ 2020-03-10 15:43 UTC (permalink / raw) To: Wolfram Sang Cc: linux-kernel, Andy Gross, Bjorn Andersson, linux-i2c, linux-arm-msm, Alok Chauhan, Douglas Anderson, Brendan Higgins Some lines are long here. Use a struct dev pointer to shorten lines and simplify code. The clk_get() call can fail because of EPROBE_DEFER problems too, so just remove the error print message because it isn't useful. Finally, platform_get_irq() already prints an error so just remove that error message. Cc: Alok Chauhan <alokc@codeaurora.org> Reviewed-by: Douglas Anderson <dianders@chromium.org> Reviewed-by: Brendan Higgins <brendanhiggins@google.com> Signed-off-by: Stephen Boyd <swboyd@chromium.org> --- drivers/i2c/busses/i2c-qcom-geni.c | 57 ++++++++++++++---------------- 1 file changed, 26 insertions(+), 31 deletions(-) diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c index 4efca130035a..2f5fb2e83f95 100644 --- a/drivers/i2c/busses/i2c-qcom-geni.c +++ b/drivers/i2c/busses/i2c-qcom-geni.c @@ -502,45 +502,40 @@ static int geni_i2c_probe(struct platform_device *pdev) struct resource *res; u32 proto, tx_depth; int ret; + struct device *dev = &pdev->dev; - gi2c = devm_kzalloc(&pdev->dev, sizeof(*gi2c), GFP_KERNEL); + gi2c = devm_kzalloc(dev, sizeof(*gi2c), GFP_KERNEL); if (!gi2c) return -ENOMEM; - gi2c->se.dev = &pdev->dev; - gi2c->se.wrapper = dev_get_drvdata(pdev->dev.parent); + gi2c->se.dev = dev; + gi2c->se.wrapper = dev_get_drvdata(dev->parent); res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - gi2c->se.base = devm_ioremap_resource(&pdev->dev, res); + gi2c->se.base = devm_ioremap_resource(dev, res); if (IS_ERR(gi2c->se.base)) return PTR_ERR(gi2c->se.base); - gi2c->se.clk = devm_clk_get(&pdev->dev, "se"); - if (IS_ERR(gi2c->se.clk) && !has_acpi_companion(&pdev->dev)) { - ret = PTR_ERR(gi2c->se.clk); - dev_err(&pdev->dev, "Err getting SE Core clk %d\n", ret); - return ret; - } + gi2c->se.clk = devm_clk_get(dev, "se"); + if (IS_ERR(gi2c->se.clk) && !has_acpi_companion(dev)) + return PTR_ERR(gi2c->se.clk); - ret = device_property_read_u32(&pdev->dev, "clock-frequency", - &gi2c->clk_freq_out); + ret = device_property_read_u32(dev, "clock-frequency", + &gi2c->clk_freq_out); if (ret) { - dev_info(&pdev->dev, - "Bus frequency not specified, default to 100kHz.\n"); + dev_info(dev, "Bus frequency not specified, default to 100kHz.\n"); gi2c->clk_freq_out = KHZ(100); } - if (has_acpi_companion(&pdev->dev)) - ACPI_COMPANION_SET(&gi2c->adap.dev, ACPI_COMPANION(&pdev->dev)); + if (has_acpi_companion(dev)) + ACPI_COMPANION_SET(&gi2c->adap.dev, ACPI_COMPANION(dev)); gi2c->irq = platform_get_irq(pdev, 0); - if (gi2c->irq < 0) { - dev_err(&pdev->dev, "IRQ error for i2c-geni\n"); + if (gi2c->irq < 0) return gi2c->irq; - } ret = geni_i2c_clk_map_idx(gi2c); if (ret) { - dev_err(&pdev->dev, "Invalid clk frequency %d Hz: %d\n", + dev_err(dev, "Invalid clk frequency %d Hz: %d\n", gi2c->clk_freq_out, ret); return ret; } @@ -549,29 +544,29 @@ static int geni_i2c_probe(struct platform_device *pdev) init_completion(&gi2c->done); spin_lock_init(&gi2c->lock); platform_set_drvdata(pdev, gi2c); - ret = devm_request_irq(&pdev->dev, gi2c->irq, geni_i2c_irq, 0, - dev_name(&pdev->dev), gi2c); + ret = devm_request_irq(dev, gi2c->irq, geni_i2c_irq, 0, + dev_name(dev), gi2c); if (ret) { - dev_err(&pdev->dev, "Request_irq failed:%d: err:%d\n", + dev_err(dev, "Request_irq failed:%d: err:%d\n", gi2c->irq, ret); return ret; } /* Disable the interrupt so that the system can enter low-power mode */ disable_irq(gi2c->irq); i2c_set_adapdata(&gi2c->adap, gi2c); - gi2c->adap.dev.parent = &pdev->dev; - gi2c->adap.dev.of_node = pdev->dev.of_node; + gi2c->adap.dev.parent = dev; + gi2c->adap.dev.of_node = dev->of_node; strlcpy(gi2c->adap.name, "Geni-I2C", sizeof(gi2c->adap.name)); ret = geni_se_resources_on(&gi2c->se); if (ret) { - dev_err(&pdev->dev, "Error turning on resources %d\n", ret); + dev_err(dev, "Error turning on resources %d\n", ret); return ret; } proto = geni_se_read_proto(&gi2c->se); tx_depth = geni_se_get_tx_fifo_depth(&gi2c->se); if (proto != GENI_SE_I2C) { - dev_err(&pdev->dev, "Invalid proto %d\n", proto); + dev_err(dev, "Invalid proto %d\n", proto); geni_se_resources_off(&gi2c->se); return -ENXIO; } @@ -581,11 +576,11 @@ static int geni_i2c_probe(struct platform_device *pdev) true, true, true); ret = geni_se_resources_off(&gi2c->se); if (ret) { - dev_err(&pdev->dev, "Error turning off resources %d\n", ret); + dev_err(dev, "Error turning off resources %d\n", ret); return ret; } - dev_dbg(&pdev->dev, "i2c fifo/se-dma mode. fifo depth:%d\n", tx_depth); + dev_dbg(dev, "i2c fifo/se-dma mode. fifo depth:%d\n", tx_depth); gi2c->suspended = 1; pm_runtime_set_suspended(gi2c->se.dev); @@ -595,12 +590,12 @@ static int geni_i2c_probe(struct platform_device *pdev) ret = i2c_add_adapter(&gi2c->adap); if (ret) { - dev_err(&pdev->dev, "Error adding i2c adapter %d\n", ret); + dev_err(dev, "Error adding i2c adapter %d\n", ret); pm_runtime_disable(gi2c->se.dev); return ret; } - dev_dbg(&pdev->dev, "Geni-I2C adaptor successfully added\n"); + dev_dbg(dev, "Geni-I2C adaptor successfully added\n"); return 0; } -- Sent by a computer, using git, on the internet ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v2 2/3] i2c: qcom-geni: Grow a dev pointer to simplify code 2020-03-10 15:43 ` [PATCH v2 2/3] i2c: qcom-geni: Grow a dev pointer to simplify code Stephen Boyd @ 2020-03-10 19:41 ` Bjorn Andersson 2020-03-11 7:30 ` Amit Kucheria 2020-03-13 14:21 ` Wolfram Sang 2 siblings, 0 replies; 13+ messages in thread From: Bjorn Andersson @ 2020-03-10 19:41 UTC (permalink / raw) To: Stephen Boyd Cc: Wolfram Sang, linux-kernel, Andy Gross, linux-i2c, linux-arm-msm, Alok Chauhan, Douglas Anderson, Brendan Higgins On Tue 10 Mar 08:43 PDT 2020, Stephen Boyd wrote: > Some lines are long here. Use a struct dev pointer to shorten lines and > simplify code. The clk_get() call can fail because of EPROBE_DEFER > problems too, so just remove the error print message because it isn't > useful. Finally, platform_get_irq() already prints an error so just > remove that error message. > > Cc: Alok Chauhan <alokc@codeaurora.org> > Reviewed-by: Douglas Anderson <dianders@chromium.org> > Reviewed-by: Brendan Higgins <brendanhiggins@google.com> > Signed-off-by: Stephen Boyd <swboyd@chromium.org> > --- > drivers/i2c/busses/i2c-qcom-geni.c | 57 ++++++++++++++---------------- > 1 file changed, 26 insertions(+), 31 deletions(-) > > diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c > index 4efca130035a..2f5fb2e83f95 100644 > --- a/drivers/i2c/busses/i2c-qcom-geni.c > +++ b/drivers/i2c/busses/i2c-qcom-geni.c > @@ -502,45 +502,40 @@ static int geni_i2c_probe(struct platform_device *pdev) > struct resource *res; > u32 proto, tx_depth; > int ret; > + struct device *dev = &pdev->dev; > > - gi2c = devm_kzalloc(&pdev->dev, sizeof(*gi2c), GFP_KERNEL); > + gi2c = devm_kzalloc(dev, sizeof(*gi2c), GFP_KERNEL); > if (!gi2c) > return -ENOMEM; > > - gi2c->se.dev = &pdev->dev; > - gi2c->se.wrapper = dev_get_drvdata(pdev->dev.parent); > + gi2c->se.dev = dev; > + gi2c->se.wrapper = dev_get_drvdata(dev->parent); > res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - gi2c->se.base = devm_ioremap_resource(&pdev->dev, res); > + gi2c->se.base = devm_ioremap_resource(dev, res); > if (IS_ERR(gi2c->se.base)) > return PTR_ERR(gi2c->se.base); > > - gi2c->se.clk = devm_clk_get(&pdev->dev, "se"); > - if (IS_ERR(gi2c->se.clk) && !has_acpi_companion(&pdev->dev)) { > - ret = PTR_ERR(gi2c->se.clk); > - dev_err(&pdev->dev, "Err getting SE Core clk %d\n", ret); Afaict this line would still be useful, although it might need the usual probe deferral exception(?) Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> Regards, Bjorn > - return ret; > - } > + gi2c->se.clk = devm_clk_get(dev, "se"); > + if (IS_ERR(gi2c->se.clk) && !has_acpi_companion(dev)) > + return PTR_ERR(gi2c->se.clk); > > - ret = device_property_read_u32(&pdev->dev, "clock-frequency", > - &gi2c->clk_freq_out); > + ret = device_property_read_u32(dev, "clock-frequency", > + &gi2c->clk_freq_out); > if (ret) { > - dev_info(&pdev->dev, > - "Bus frequency not specified, default to 100kHz.\n"); > + dev_info(dev, "Bus frequency not specified, default to 100kHz.\n"); > gi2c->clk_freq_out = KHZ(100); > } > > - if (has_acpi_companion(&pdev->dev)) > - ACPI_COMPANION_SET(&gi2c->adap.dev, ACPI_COMPANION(&pdev->dev)); > + if (has_acpi_companion(dev)) > + ACPI_COMPANION_SET(&gi2c->adap.dev, ACPI_COMPANION(dev)); > > gi2c->irq = platform_get_irq(pdev, 0); > - if (gi2c->irq < 0) { > - dev_err(&pdev->dev, "IRQ error for i2c-geni\n"); > + if (gi2c->irq < 0) > return gi2c->irq; > - } > > ret = geni_i2c_clk_map_idx(gi2c); > if (ret) { > - dev_err(&pdev->dev, "Invalid clk frequency %d Hz: %d\n", > + dev_err(dev, "Invalid clk frequency %d Hz: %d\n", > gi2c->clk_freq_out, ret); > return ret; > } > @@ -549,29 +544,29 @@ static int geni_i2c_probe(struct platform_device *pdev) > init_completion(&gi2c->done); > spin_lock_init(&gi2c->lock); > platform_set_drvdata(pdev, gi2c); > - ret = devm_request_irq(&pdev->dev, gi2c->irq, geni_i2c_irq, 0, > - dev_name(&pdev->dev), gi2c); > + ret = devm_request_irq(dev, gi2c->irq, geni_i2c_irq, 0, > + dev_name(dev), gi2c); > if (ret) { > - dev_err(&pdev->dev, "Request_irq failed:%d: err:%d\n", > + dev_err(dev, "Request_irq failed:%d: err:%d\n", > gi2c->irq, ret); > return ret; > } > /* Disable the interrupt so that the system can enter low-power mode */ > disable_irq(gi2c->irq); > i2c_set_adapdata(&gi2c->adap, gi2c); > - gi2c->adap.dev.parent = &pdev->dev; > - gi2c->adap.dev.of_node = pdev->dev.of_node; > + gi2c->adap.dev.parent = dev; > + gi2c->adap.dev.of_node = dev->of_node; > strlcpy(gi2c->adap.name, "Geni-I2C", sizeof(gi2c->adap.name)); > > ret = geni_se_resources_on(&gi2c->se); > if (ret) { > - dev_err(&pdev->dev, "Error turning on resources %d\n", ret); > + dev_err(dev, "Error turning on resources %d\n", ret); > return ret; > } > proto = geni_se_read_proto(&gi2c->se); > tx_depth = geni_se_get_tx_fifo_depth(&gi2c->se); > if (proto != GENI_SE_I2C) { > - dev_err(&pdev->dev, "Invalid proto %d\n", proto); > + dev_err(dev, "Invalid proto %d\n", proto); > geni_se_resources_off(&gi2c->se); > return -ENXIO; > } > @@ -581,11 +576,11 @@ static int geni_i2c_probe(struct platform_device *pdev) > true, true, true); > ret = geni_se_resources_off(&gi2c->se); > if (ret) { > - dev_err(&pdev->dev, "Error turning off resources %d\n", ret); > + dev_err(dev, "Error turning off resources %d\n", ret); > return ret; > } > > - dev_dbg(&pdev->dev, "i2c fifo/se-dma mode. fifo depth:%d\n", tx_depth); > + dev_dbg(dev, "i2c fifo/se-dma mode. fifo depth:%d\n", tx_depth); > > gi2c->suspended = 1; > pm_runtime_set_suspended(gi2c->se.dev); > @@ -595,12 +590,12 @@ static int geni_i2c_probe(struct platform_device *pdev) > > ret = i2c_add_adapter(&gi2c->adap); > if (ret) { > - dev_err(&pdev->dev, "Error adding i2c adapter %d\n", ret); > + dev_err(dev, "Error adding i2c adapter %d\n", ret); > pm_runtime_disable(gi2c->se.dev); > return ret; > } > > - dev_dbg(&pdev->dev, "Geni-I2C adaptor successfully added\n"); > + dev_dbg(dev, "Geni-I2C adaptor successfully added\n"); > > return 0; > } > -- > Sent by a computer, using git, on the internet > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 2/3] i2c: qcom-geni: Grow a dev pointer to simplify code 2020-03-10 15:43 ` [PATCH v2 2/3] i2c: qcom-geni: Grow a dev pointer to simplify code Stephen Boyd 2020-03-10 19:41 ` Bjorn Andersson @ 2020-03-11 7:30 ` Amit Kucheria 2020-03-13 14:21 ` Wolfram Sang 2 siblings, 0 replies; 13+ messages in thread From: Amit Kucheria @ 2020-03-11 7:30 UTC (permalink / raw) To: Stephen Boyd Cc: Wolfram Sang, LKML, Andy Gross, Bjorn Andersson, linux-i2c, linux-arm-msm, Alok Chauhan, Douglas Anderson, Brendan Higgins On Tue, Mar 10, 2020 at 9:14 PM Stephen Boyd <swboyd@chromium.org> wrote: > > Some lines are long here. Use a struct dev pointer to shorten lines and > simplify code. The clk_get() call can fail because of EPROBE_DEFER > problems too, so just remove the error print message because it isn't > useful. Finally, platform_get_irq() already prints an error so just > remove that error message. > Reviewed-by: Amit Kucheria <amit.kucheria@linaro.org> > Cc: Alok Chauhan <alokc@codeaurora.org> > Reviewed-by: Douglas Anderson <dianders@chromium.org> > Reviewed-by: Brendan Higgins <brendanhiggins@google.com> > Signed-off-by: Stephen Boyd <swboyd@chromium.org> > --- > drivers/i2c/busses/i2c-qcom-geni.c | 57 ++++++++++++++---------------- > 1 file changed, 26 insertions(+), 31 deletions(-) > > diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c > index 4efca130035a..2f5fb2e83f95 100644 > --- a/drivers/i2c/busses/i2c-qcom-geni.c > +++ b/drivers/i2c/busses/i2c-qcom-geni.c > @@ -502,45 +502,40 @@ static int geni_i2c_probe(struct platform_device *pdev) > struct resource *res; > u32 proto, tx_depth; > int ret; > + struct device *dev = &pdev->dev; > > - gi2c = devm_kzalloc(&pdev->dev, sizeof(*gi2c), GFP_KERNEL); > + gi2c = devm_kzalloc(dev, sizeof(*gi2c), GFP_KERNEL); > if (!gi2c) > return -ENOMEM; > > - gi2c->se.dev = &pdev->dev; > - gi2c->se.wrapper = dev_get_drvdata(pdev->dev.parent); > + gi2c->se.dev = dev; > + gi2c->se.wrapper = dev_get_drvdata(dev->parent); > res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - gi2c->se.base = devm_ioremap_resource(&pdev->dev, res); > + gi2c->se.base = devm_ioremap_resource(dev, res); > if (IS_ERR(gi2c->se.base)) > return PTR_ERR(gi2c->se.base); > > - gi2c->se.clk = devm_clk_get(&pdev->dev, "se"); > - if (IS_ERR(gi2c->se.clk) && !has_acpi_companion(&pdev->dev)) { > - ret = PTR_ERR(gi2c->se.clk); > - dev_err(&pdev->dev, "Err getting SE Core clk %d\n", ret); > - return ret; > - } > + gi2c->se.clk = devm_clk_get(dev, "se"); > + if (IS_ERR(gi2c->se.clk) && !has_acpi_companion(dev)) > + return PTR_ERR(gi2c->se.clk); > > - ret = device_property_read_u32(&pdev->dev, "clock-frequency", > - &gi2c->clk_freq_out); > + ret = device_property_read_u32(dev, "clock-frequency", > + &gi2c->clk_freq_out); > if (ret) { > - dev_info(&pdev->dev, > - "Bus frequency not specified, default to 100kHz.\n"); > + dev_info(dev, "Bus frequency not specified, default to 100kHz.\n"); > gi2c->clk_freq_out = KHZ(100); > } > > - if (has_acpi_companion(&pdev->dev)) > - ACPI_COMPANION_SET(&gi2c->adap.dev, ACPI_COMPANION(&pdev->dev)); > + if (has_acpi_companion(dev)) > + ACPI_COMPANION_SET(&gi2c->adap.dev, ACPI_COMPANION(dev)); > > gi2c->irq = platform_get_irq(pdev, 0); > - if (gi2c->irq < 0) { > - dev_err(&pdev->dev, "IRQ error for i2c-geni\n"); > + if (gi2c->irq < 0) > return gi2c->irq; > - } > > ret = geni_i2c_clk_map_idx(gi2c); > if (ret) { > - dev_err(&pdev->dev, "Invalid clk frequency %d Hz: %d\n", > + dev_err(dev, "Invalid clk frequency %d Hz: %d\n", > gi2c->clk_freq_out, ret); > return ret; > } > @@ -549,29 +544,29 @@ static int geni_i2c_probe(struct platform_device *pdev) > init_completion(&gi2c->done); > spin_lock_init(&gi2c->lock); > platform_set_drvdata(pdev, gi2c); > - ret = devm_request_irq(&pdev->dev, gi2c->irq, geni_i2c_irq, 0, > - dev_name(&pdev->dev), gi2c); > + ret = devm_request_irq(dev, gi2c->irq, geni_i2c_irq, 0, > + dev_name(dev), gi2c); > if (ret) { > - dev_err(&pdev->dev, "Request_irq failed:%d: err:%d\n", > + dev_err(dev, "Request_irq failed:%d: err:%d\n", > gi2c->irq, ret); > return ret; > } > /* Disable the interrupt so that the system can enter low-power mode */ > disable_irq(gi2c->irq); > i2c_set_adapdata(&gi2c->adap, gi2c); > - gi2c->adap.dev.parent = &pdev->dev; > - gi2c->adap.dev.of_node = pdev->dev.of_node; > + gi2c->adap.dev.parent = dev; > + gi2c->adap.dev.of_node = dev->of_node; > strlcpy(gi2c->adap.name, "Geni-I2C", sizeof(gi2c->adap.name)); > > ret = geni_se_resources_on(&gi2c->se); > if (ret) { > - dev_err(&pdev->dev, "Error turning on resources %d\n", ret); > + dev_err(dev, "Error turning on resources %d\n", ret); > return ret; > } > proto = geni_se_read_proto(&gi2c->se); > tx_depth = geni_se_get_tx_fifo_depth(&gi2c->se); > if (proto != GENI_SE_I2C) { > - dev_err(&pdev->dev, "Invalid proto %d\n", proto); > + dev_err(dev, "Invalid proto %d\n", proto); > geni_se_resources_off(&gi2c->se); > return -ENXIO; > } > @@ -581,11 +576,11 @@ static int geni_i2c_probe(struct platform_device *pdev) > true, true, true); > ret = geni_se_resources_off(&gi2c->se); > if (ret) { > - dev_err(&pdev->dev, "Error turning off resources %d\n", ret); > + dev_err(dev, "Error turning off resources %d\n", ret); > return ret; > } > > - dev_dbg(&pdev->dev, "i2c fifo/se-dma mode. fifo depth:%d\n", tx_depth); > + dev_dbg(dev, "i2c fifo/se-dma mode. fifo depth:%d\n", tx_depth); > > gi2c->suspended = 1; > pm_runtime_set_suspended(gi2c->se.dev); > @@ -595,12 +590,12 @@ static int geni_i2c_probe(struct platform_device *pdev) > > ret = i2c_add_adapter(&gi2c->adap); > if (ret) { > - dev_err(&pdev->dev, "Error adding i2c adapter %d\n", ret); > + dev_err(dev, "Error adding i2c adapter %d\n", ret); > pm_runtime_disable(gi2c->se.dev); > return ret; > } > > - dev_dbg(&pdev->dev, "Geni-I2C adaptor successfully added\n"); > + dev_dbg(dev, "Geni-I2C adaptor successfully added\n"); > > return 0; > } > -- > Sent by a computer, using git, on the internet > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 2/3] i2c: qcom-geni: Grow a dev pointer to simplify code 2020-03-10 15:43 ` [PATCH v2 2/3] i2c: qcom-geni: Grow a dev pointer to simplify code Stephen Boyd 2020-03-10 19:41 ` Bjorn Andersson 2020-03-11 7:30 ` Amit Kucheria @ 2020-03-13 14:21 ` Wolfram Sang 2 siblings, 0 replies; 13+ messages in thread From: Wolfram Sang @ 2020-03-13 14:21 UTC (permalink / raw) To: Stephen Boyd Cc: linux-kernel, Andy Gross, Bjorn Andersson, linux-i2c, linux-arm-msm, Alok Chauhan, Douglas Anderson, Brendan Higgins [-- Attachment #1: Type: text/plain, Size: 633 bytes --] On Tue, Mar 10, 2020 at 08:43:57AM -0700, Stephen Boyd wrote: > Some lines are long here. Use a struct dev pointer to shorten lines and > simplify code. The clk_get() call can fail because of EPROBE_DEFER > problems too, so just remove the error print message because it isn't > useful. Finally, platform_get_irq() already prints an error so just > remove that error message. > > Cc: Alok Chauhan <alokc@codeaurora.org> > Reviewed-by: Douglas Anderson <dianders@chromium.org> > Reviewed-by: Brendan Higgins <brendanhiggins@google.com> > Signed-off-by: Stephen Boyd <swboyd@chromium.org> Applied to for-next, thanks! [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v2 3/3] i2c: qcom-geni: Drop of_platform.h include 2020-03-10 15:43 [PATCH v2 0/3] Misc qcom geni i2c driver fixes Stephen Boyd 2020-03-10 15:43 ` [PATCH v2 1/3] i2c: qcom-geni: Let firmware specify irq trigger flags Stephen Boyd 2020-03-10 15:43 ` [PATCH v2 2/3] i2c: qcom-geni: Grow a dev pointer to simplify code Stephen Boyd @ 2020-03-10 15:43 ` Stephen Boyd 2020-03-10 19:42 ` Bjorn Andersson ` (2 more replies) 2 siblings, 3 replies; 13+ messages in thread From: Stephen Boyd @ 2020-03-10 15:43 UTC (permalink / raw) To: Wolfram Sang Cc: linux-kernel, Andy Gross, Bjorn Andersson, linux-i2c, linux-arm-msm, Alok Chauhan, Douglas Anderson, Brendan Higgins This driver doesn't call any DT platform functions like of_platform_*(). Remove the include as it isn't used. Cc: Alok Chauhan <alokc@codeaurora.org> Reviewed-by: Douglas Anderson <dianders@chromium.org> Reviewed-by: Brendan Higgins <brendanhiggins@google.com> Signed-off-by: Stephen Boyd <swboyd@chromium.org> --- drivers/i2c/busses/i2c-qcom-geni.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c index 2f5fb2e83f95..18d1e4fd4cf3 100644 --- a/drivers/i2c/busses/i2c-qcom-geni.c +++ b/drivers/i2c/busses/i2c-qcom-geni.c @@ -10,7 +10,6 @@ #include <linux/io.h> #include <linux/module.h> #include <linux/of.h> -#include <linux/of_platform.h> #include <linux/platform_device.h> #include <linux/pm_runtime.h> #include <linux/qcom-geni-se.h> -- Sent by a computer, using git, on the internet ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v2 3/3] i2c: qcom-geni: Drop of_platform.h include 2020-03-10 15:43 ` [PATCH v2 3/3] i2c: qcom-geni: Drop of_platform.h include Stephen Boyd @ 2020-03-10 19:42 ` Bjorn Andersson 2020-03-11 7:30 ` Amit Kucheria 2020-03-13 14:21 ` Wolfram Sang 2 siblings, 0 replies; 13+ messages in thread From: Bjorn Andersson @ 2020-03-10 19:42 UTC (permalink / raw) To: Stephen Boyd Cc: Wolfram Sang, linux-kernel, Andy Gross, linux-i2c, linux-arm-msm, Alok Chauhan, Douglas Anderson, Brendan Higgins On Tue 10 Mar 08:43 PDT 2020, Stephen Boyd wrote: > This driver doesn't call any DT platform functions like of_platform_*(). > Remove the include as it isn't used. > > Cc: Alok Chauhan <alokc@codeaurora.org> > Reviewed-by: Douglas Anderson <dianders@chromium.org> > Reviewed-by: Brendan Higgins <brendanhiggins@google.com> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> > Signed-off-by: Stephen Boyd <swboyd@chromium.org> > --- > drivers/i2c/busses/i2c-qcom-geni.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c > index 2f5fb2e83f95..18d1e4fd4cf3 100644 > --- a/drivers/i2c/busses/i2c-qcom-geni.c > +++ b/drivers/i2c/busses/i2c-qcom-geni.c > @@ -10,7 +10,6 @@ > #include <linux/io.h> > #include <linux/module.h> > #include <linux/of.h> > -#include <linux/of_platform.h> > #include <linux/platform_device.h> > #include <linux/pm_runtime.h> > #include <linux/qcom-geni-se.h> > -- > Sent by a computer, using git, on the internet > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 3/3] i2c: qcom-geni: Drop of_platform.h include 2020-03-10 15:43 ` [PATCH v2 3/3] i2c: qcom-geni: Drop of_platform.h include Stephen Boyd 2020-03-10 19:42 ` Bjorn Andersson @ 2020-03-11 7:30 ` Amit Kucheria 2020-03-13 14:21 ` Wolfram Sang 2 siblings, 0 replies; 13+ messages in thread From: Amit Kucheria @ 2020-03-11 7:30 UTC (permalink / raw) To: Stephen Boyd Cc: Wolfram Sang, LKML, Andy Gross, Bjorn Andersson, linux-i2c, linux-arm-msm, Alok Chauhan, Douglas Anderson, Brendan Higgins On Tue, Mar 10, 2020 at 9:14 PM Stephen Boyd <swboyd@chromium.org> wrote: > > This driver doesn't call any DT platform functions like of_platform_*(). > Remove the include as it isn't used. > Reviewed-by: Amit Kucheria <amit.kucheria@linaro.org> > Cc: Alok Chauhan <alokc@codeaurora.org> > Reviewed-by: Douglas Anderson <dianders@chromium.org> > Reviewed-by: Brendan Higgins <brendanhiggins@google.com> > Signed-off-by: Stephen Boyd <swboyd@chromium.org> > --- > drivers/i2c/busses/i2c-qcom-geni.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c > index 2f5fb2e83f95..18d1e4fd4cf3 100644 > --- a/drivers/i2c/busses/i2c-qcom-geni.c > +++ b/drivers/i2c/busses/i2c-qcom-geni.c > @@ -10,7 +10,6 @@ > #include <linux/io.h> > #include <linux/module.h> > #include <linux/of.h> > -#include <linux/of_platform.h> > #include <linux/platform_device.h> > #include <linux/pm_runtime.h> > #include <linux/qcom-geni-se.h> > -- > Sent by a computer, using git, on the internet > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 3/3] i2c: qcom-geni: Drop of_platform.h include 2020-03-10 15:43 ` [PATCH v2 3/3] i2c: qcom-geni: Drop of_platform.h include Stephen Boyd 2020-03-10 19:42 ` Bjorn Andersson 2020-03-11 7:30 ` Amit Kucheria @ 2020-03-13 14:21 ` Wolfram Sang 2 siblings, 0 replies; 13+ messages in thread From: Wolfram Sang @ 2020-03-13 14:21 UTC (permalink / raw) To: Stephen Boyd Cc: linux-kernel, Andy Gross, Bjorn Andersson, linux-i2c, linux-arm-msm, Alok Chauhan, Douglas Anderson, Brendan Higgins [-- Attachment #1: Type: text/plain, Size: 430 bytes --] On Tue, Mar 10, 2020 at 08:43:58AM -0700, Stephen Boyd wrote: > This driver doesn't call any DT platform functions like of_platform_*(). > Remove the include as it isn't used. > > Cc: Alok Chauhan <alokc@codeaurora.org> > Reviewed-by: Douglas Anderson <dianders@chromium.org> > Reviewed-by: Brendan Higgins <brendanhiggins@google.com> > Signed-off-by: Stephen Boyd <swboyd@chromium.org> Applied to for-next, thanks! [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2020-03-13 14:21 UTC | newest] Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-03-10 15:43 [PATCH v2 0/3] Misc qcom geni i2c driver fixes Stephen Boyd 2020-03-10 15:43 ` [PATCH v2 1/3] i2c: qcom-geni: Let firmware specify irq trigger flags Stephen Boyd 2020-03-10 19:35 ` Bjorn Andersson 2020-03-11 7:30 ` Amit Kucheria 2020-03-13 14:21 ` Wolfram Sang 2020-03-10 15:43 ` [PATCH v2 2/3] i2c: qcom-geni: Grow a dev pointer to simplify code Stephen Boyd 2020-03-10 19:41 ` Bjorn Andersson 2020-03-11 7:30 ` Amit Kucheria 2020-03-13 14:21 ` Wolfram Sang 2020-03-10 15:43 ` [PATCH v2 3/3] i2c: qcom-geni: Drop of_platform.h include Stephen Boyd 2020-03-10 19:42 ` Bjorn Andersson 2020-03-11 7:30 ` Amit Kucheria 2020-03-13 14:21 ` Wolfram Sang
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).