Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1539163 > unrolled thread

[PATCH v2 0/8] power: supply: tps65217: Support USB charger feature

Started byMilo Kim <woogyom.kim@gmail.com>
First post2016-12-09 08:50 +0100
Last post2016-12-09 09:00 +0100
Articles 4 — 1 participant

Back to article view | Back to linux.kernel


Contents

  [PATCH v2 0/8] power: supply: tps65217: Support USB charger feature Milo Kim <woogyom.kim@gmail.com> - 2016-12-09 08:50 +0100
    [PATCH v2 7/8] power: supply: tps65217: Use generic name for get_property() Milo Kim <woogyom.kim@gmail.com> - 2016-12-09 09:00 +0100
    [PATCH v2 5/8] power: supply: tps65217: Use generic name for power supply structure Milo Kim <woogyom.kim@gmail.com> - 2016-12-09 09:00 +0100
    [PATCH v2 2/8] power: supply: tps65217: Use 'poll_task' on unloading the module Milo Kim <woogyom.kim@gmail.com> - 2016-12-09 09:00 +0100

#1539163 — [PATCH v2 0/8] power: supply: tps65217: Support USB charger feature

FromMilo Kim <woogyom.kim@gmail.com>
Date2016-12-09 08:50 +0100
Subject[PATCH v2 0/8] power: supply: tps65217: Support USB charger feature
Message-ID<sMo6l-ug-5@gated-at.bofh.it>
TPS65217 device supports two charger inputs - AC and USB.
Currently, only AC charger is supported. This patch-set adds USB charger 
feature. Tested on Beaglebone black.

Patch 1: Main patch
Patch 2, 3: Clean up for charger driver data
Patch 4 ~ 8: Naming changes for generic power supply class structure

v2:
  Regenerate the patchset for better code review

Milo Kim (8):
  power: supply: tps65217: Support USB charger interrupt
  power: supply: tps65217: Use 'poll_task' on unloading the module
  power: supply: tps65217: Remove IRQ data from driver data
  power: supply: tps65217: Use generic name for charger online
  power: supply: tps65217: Use generic name for power supply structure
  power: supply: tps65217: Use generic name for power supply property
  power: supply: tps65217: Use generic name for get_property()
  power: supply: tps65217: Use generic charger name

 drivers/power/supply/tps65217_charger.c | 99 ++++++++++++++++++---------------
 1 file changed, 53 insertions(+), 46 deletions(-)

-- 
2.9.3

[toc] | [next] | [standalone]


#1539167 — [PATCH v2 7/8] power: supply: tps65217: Use generic name for get_property()

FromMilo Kim <woogyom.kim@gmail.com>
Date2016-12-09 09:00 +0100
Subject[PATCH v2 7/8] power: supply: tps65217: Use generic name for get_property()
Message-ID<sMog1-xv-3@gated-at.bofh.it>
In reply to#1539163
Rename it as tps65217_charger_get_property().

Signed-off-by: Milo Kim <woogyom.kim@gmail.com>
---
 drivers/power/supply/tps65217_charger.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/power/supply/tps65217_charger.c b/drivers/power/supply/tps65217_charger.c
index 79afeca..63c5556 100644
--- a/drivers/power/supply/tps65217_charger.c
+++ b/drivers/power/supply/tps65217_charger.c
@@ -115,9 +115,9 @@ static int tps65217_enable_charging(struct tps65217_charger *charger)
 	return 0;
 }
 
-static int tps65217_ac_get_property(struct power_supply *psy,
-			enum power_supply_property psp,
-			union power_supply_propval *val)
+static int tps65217_charger_get_property(struct power_supply *psy,
+					 enum power_supply_property psp,
+					 union power_supply_propval *val)
 {
 	struct tps65217_charger *charger = power_supply_get_drvdata(psy);
 
@@ -190,7 +190,7 @@ static int tps65217_charger_poll_task(void *data)
 static const struct power_supply_desc tps65217_charger_desc = {
 	.name			= "tps65217-ac",
 	.type			= POWER_SUPPLY_TYPE_MAINS,
-	.get_property		= tps65217_ac_get_property,
+	.get_property		= tps65217_charger_get_property,
 	.properties		= tps65217_charger_props,
 	.num_properties		= ARRAY_SIZE(tps65217_charger_props),
 };
-- 
2.9.3

[toc] | [prev] | [next] | [standalone]


#1539169 — [PATCH v2 5/8] power: supply: tps65217: Use generic name for power supply structure

FromMilo Kim <woogyom.kim@gmail.com>
Date2016-12-09 09:00 +0100
Subject[PATCH v2 5/8] power: supply: tps65217: Use generic name for power supply structure
Message-ID<sMog1-xv-13@gated-at.bofh.it>
In reply to#1539163
Replace 'ac' of tps65217_charger structure with 'psy'.

Signed-off-by: Milo Kim <woogyom.kim@gmail.com>
---
 drivers/power/supply/tps65217_charger.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/power/supply/tps65217_charger.c b/drivers/power/supply/tps65217_charger.c
index 424a6d3..5daf361 100644
--- a/drivers/power/supply/tps65217_charger.c
+++ b/drivers/power/supply/tps65217_charger.c
@@ -42,7 +42,7 @@
 struct tps65217_charger {
 	struct tps65217 *tps;
 	struct device *dev;
-	struct power_supply *ac;
+	struct power_supply *psy;
 
 	int	online;
 	int	prev_online;
@@ -157,7 +157,7 @@ static irqreturn_t tps65217_charger_irq(int irq, void *dev)
 	}
 
 	if (charger->prev_online != charger->online)
-		power_supply_changed(charger->ac);
+		power_supply_changed(charger->psy);
 
 	ret = tps65217_reg_read(charger->tps, TPS65217_REG_CHGCONFIG0, &val);
 	if (ret < 0) {
@@ -218,12 +218,12 @@ static int tps65217_charger_probe(struct platform_device *pdev)
 	cfg.of_node = pdev->dev.of_node;
 	cfg.drv_data = charger;
 
-	charger->ac = devm_power_supply_register(&pdev->dev,
-						 &tps65217_charger_desc,
-						 &cfg);
-	if (IS_ERR(charger->ac)) {
+	charger->psy = devm_power_supply_register(&pdev->dev,
+						  &tps65217_charger_desc,
+						  &cfg);
+	if (IS_ERR(charger->psy)) {
 		dev_err(&pdev->dev, "failed: power supply register\n");
-		return PTR_ERR(charger->ac);
+		return PTR_ERR(charger->psy);
 	}
 
 	irq[0] = platform_get_irq_byname(pdev, "USB");
-- 
2.9.3

[toc] | [prev] | [next] | [standalone]


#1539171 — [PATCH v2 2/8] power: supply: tps65217: Use 'poll_task' on unloading the module

FromMilo Kim <woogyom.kim@gmail.com>
Date2016-12-09 09:00 +0100
Subject[PATCH v2 2/8] power: supply: tps65217: Use 'poll_task' on unloading the module
Message-ID<sMog1-xv-15@gated-at.bofh.it>
In reply to#1539163
TPS65217 has two interrupt numbers so checking single IRQ number is not
appropriate when the module is removed.
Use the task_struct variable for running polling thread. If polling task
is activated, then use it to stop running thread.

Signed-off-by: Milo Kim <woogyom.kim@gmail.com>
---
 drivers/power/supply/tps65217_charger.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/power/supply/tps65217_charger.c b/drivers/power/supply/tps65217_charger.c
index 2000e59..55371d6 100644
--- a/drivers/power/supply/tps65217_charger.c
+++ b/drivers/power/supply/tps65217_charger.c
@@ -202,6 +202,7 @@ static int tps65217_charger_probe(struct platform_device *pdev)
 	struct tps65217 *tps = dev_get_drvdata(pdev->dev.parent);
 	struct tps65217_charger *charger;
 	struct power_supply_config cfg = {};
+	struct task_struct *poll_task;
 	int irq[NUM_CHARGER_IRQS];
 	int ret;
 	int i;
@@ -238,15 +239,16 @@ static int tps65217_charger_probe(struct platform_device *pdev)
 
 	/* Create a polling thread if an interrupt is invalid */
 	if (irq[0] < 0 || irq[1] < 0) {
-		charger->poll_task = kthread_run(tps65217_charger_poll_task,
-						charger, "ktps65217charger");
-		if (IS_ERR(charger->poll_task)) {
-			ret = PTR_ERR(charger->poll_task);
+		poll_task = kthread_run(tps65217_charger_poll_task,
+					charger, "ktps65217charger");
+		if (IS_ERR(poll_task)) {
+			ret = PTR_ERR(poll_task);
 			dev_err(charger->dev,
 				"Unable to run kthread err %d\n", ret);
 			return ret;
 		}
 
+		charger->poll_task = poll_task;
 		return 0;
 	}
 
@@ -274,7 +276,7 @@ static int tps65217_charger_remove(struct platform_device *pdev)
 {
 	struct tps65217_charger *charger = platform_get_drvdata(pdev);
 
-	if (charger->irq == -ENXIO)
+	if (charger->poll_task)
 		kthread_stop(charger->poll_task);
 
 	return 0;
-- 
2.9.3

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web