Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1410039 > unrolled thread
| Started by | Chanwoo Choi <cw00.choi@samsung.com> |
|---|---|
| First post | 2016-05-31 11:40 +0200 |
| Last post | 2016-06-10 04:00 +0200 |
| Articles | 4 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH v3 1/2] power: axp288_charger: Replace deprecatd API of extcon Chanwoo Choi <cw00.choi@samsung.com> - 2016-05-31 11:40 +0200
Re: [PATCH v3 1/2] power: axp288_charger: Replace deprecatd API of extcon Chanwoo Choi <cw00.choi@samsung.com> - 2016-06-09 03:20 +0200
Re: [PATCH v3 1/2] power: axp288_charger: Replace deprecatd API of extcon Sebastian Reichel <sre@kernel.org> - 2016-06-10 03:50 +0200
Re: [PATCH v3 1/2] power: axp288_charger: Replace deprecatd API of extcon Chanwoo Choi <cw00.choi@samsung.com> - 2016-06-10 04:00 +0200
| From | Chanwoo Choi <cw00.choi@samsung.com> |
|---|---|
| Date | 2016-05-31 11:40 +0200 |
| Subject | [PATCH v3 1/2] power: axp288_charger: Replace deprecatd API of extcon |
| Message-ID | <rEOjw-Ur-17@gated-at.bofh.it> |
This patch removes the deprecated notifier API of extcon framework and then use
the new extcon API[2] with the unique id[1] to indicate the each external
connector. Alter deprecated API as following:
- extcon_register_interest() -> extcon_register_notifier()
- extcon_unregister_interest() -> extcon_unregister_notifier()
- extcon_get_cable_state() -> extcon_get_cable_state_()
And, extcon alters the name of USB charger connector in patch[3] as following:
- EXTCON_CHG_USB_SDP /* Standard Downstream Port */
- EXTCON_CHG_USB_DCP /* Dedicated Charging Port */
- EXTCON_CHG_USB_CDP /* Charging Downstream Port */
- EXTCON_CHG_USB_ACA /* Accessory Charger Adapter */
[1] Commit 2a9de9c0f08d61
- ("extcon: Use the unique id for external connector instead of string)
[2] Commit 046050f6e623e4
- ("extcon: Update the prototype of extcon_register_notifier() with enum extcon
[3] Commit 11eecf910bd81d
- ("extcon: Modify the id and name of external connector")
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
---
drivers/power/axp288_charger.c | 77 +++++++++++++++++++++++++++++-------------
1 file changed, 53 insertions(+), 24 deletions(-)
diff --git a/drivers/power/axp288_charger.c b/drivers/power/axp288_charger.c
index e4d569f57acc..4030eeb7cf65 100644
--- a/drivers/power/axp288_charger.c
+++ b/drivers/power/axp288_charger.c
@@ -129,10 +129,6 @@
#define AXP288_EXTCON_DEV_NAME "axp288_extcon"
-#define AXP288_EXTCON_SLOW_CHARGER "SLOW-CHARGER"
-#define AXP288_EXTCON_DOWNSTREAM_CHARGER "CHARGE-DOWNSTREAM"
-#define AXP288_EXTCON_FAST_CHARGER "FAST-CHARGER"
-
enum {
VBUS_OV_IRQ = 0,
CHARGE_DONE_IRQ,
@@ -158,7 +154,7 @@ struct axp288_chrg_info {
/* OTG/Host mode */
struct {
struct work_struct work;
- struct extcon_specific_cable_nb cable;
+ struct extcon_dev *cable;
struct notifier_block id_nb;
bool id_short;
} otg;
@@ -586,17 +582,15 @@ static void axp288_charger_extcon_evt_worker(struct work_struct *work)
bool old_connected = info->cable.connected;
/* Determine cable/charger type */
- if (extcon_get_cable_state(edev, AXP288_EXTCON_SLOW_CHARGER) > 0) {
+ if (extcon_get_cable_state_(edev, EXTCON_CHG_USB_SDP) > 0) {
dev_dbg(&info->pdev->dev, "USB SDP charger is connected");
info->cable.connected = true;
info->cable.chg_type = POWER_SUPPLY_TYPE_USB;
- } else if (extcon_get_cable_state(edev,
- AXP288_EXTCON_DOWNSTREAM_CHARGER) > 0) {
+ } else if (extcon_get_cable_state_(edev, EXTCON_CHG_USB_CDP) > 0) {
dev_dbg(&info->pdev->dev, "USB CDP charger is connected");
info->cable.connected = true;
info->cable.chg_type = POWER_SUPPLY_TYPE_USB_CDP;
- } else if (extcon_get_cable_state(edev,
- AXP288_EXTCON_FAST_CHARGER) > 0) {
+ } else if (extcon_get_cable_state_(edev, EXTCON_CHG_USB_DCP) > 0) {
dev_dbg(&info->pdev->dev, "USB DCP charger is connected");
info->cable.connected = true;
info->cable.chg_type = POWER_SUPPLY_TYPE_USB_DCP;
@@ -692,8 +686,8 @@ static int axp288_charger_handle_otg_evt(struct notifier_block *nb,
{
struct axp288_chrg_info *info =
container_of(nb, struct axp288_chrg_info, otg.id_nb);
- struct extcon_dev *edev = param;
- int usb_host = extcon_get_cable_state(edev, "USB-Host");
+ struct extcon_dev *edev = info->otg.cable;
+ int usb_host = extcon_get_cable_state_(edev, EXTCON_USB_HOST);
dev_dbg(&info->pdev->dev, "external connector USB-Host is %s\n",
usb_host ? "attached" : "detached");
@@ -848,10 +842,33 @@ static int axp288_charger_probe(struct platform_device *pdev)
/* Register for extcon notification */
INIT_WORK(&info->cable.work, axp288_charger_extcon_evt_worker);
info->cable.nb.notifier_call = axp288_charger_handle_cable_evt;
- ret = extcon_register_notifier(info->cable.edev, EXTCON_NONE, &info->cable.nb);
+ ret = extcon_register_notifier(info->cable.edev, EXTCON_CHG_USB_SDP,
+ &info->cable.nb);
+ if (ret) {
+ dev_err(&info->pdev->dev,
+ "failed to register extcon notifier for SDP %d\n", ret);
+ return ret;
+ }
+
+ ret = extcon_register_notifier(info->cable.edev, EXTCON_CHG_USB_CDP,
+ &info->cable.nb);
+ if (ret) {
+ dev_err(&info->pdev->dev,
+ "failed to register extcon notifier for CDP %d\n", ret);
+ extcon_unregister_notifier(info->cable.edev,
+ EXTCON_CHG_USB_SDP, &info->cable.nb);
+ return ret;
+ }
+
+ ret = extcon_register_notifier(info->cable.edev, EXTCON_CHG_USB_DCP,
+ &info->cable.nb);
if (ret) {
dev_err(&info->pdev->dev,
- "failed to register extcon notifier %d\n", ret);
+ "failed to register extcon notifier for DCP %d\n", ret);
+ extcon_unregister_notifier(info->cable.edev,
+ EXTCON_CHG_USB_SDP, &info->cable.nb);
+ extcon_unregister_notifier(info->cable.edev,
+ EXTCON_CHG_USB_CDP, &info->cable.nb);
return ret;
}
@@ -871,14 +888,14 @@ static int axp288_charger_probe(struct platform_device *pdev)
/* Register for OTG notification */
INIT_WORK(&info->otg.work, axp288_charger_otg_evt_worker);
info->otg.id_nb.notifier_call = axp288_charger_handle_otg_evt;
- ret = extcon_register_interest(&info->otg.cable, NULL, "USB-Host",
+ ret = extcon_register_notifier(info->otg.cable, EXTCON_USB_HOST,
&info->otg.id_nb);
if (ret)
dev_warn(&pdev->dev, "failed to register otg notifier\n");
- if (info->otg.cable.edev)
- info->otg.id_short = extcon_get_cable_state(
- info->otg.cable.edev, "USB-Host");
+ if (info->otg.cable)
+ info->otg.id_short = extcon_get_cable_state_(
+ info->otg.cable, EXTCON_USB_HOST);
/* Register charger interrupts */
for (i = 0; i < CHRG_INTR_END; i++) {
@@ -905,11 +922,17 @@ static int axp288_charger_probe(struct platform_device *pdev)
return 0;
intr_reg_failed:
- if (info->otg.cable.edev)
- extcon_unregister_interest(&info->otg.cable);
+ if (info->otg.cable)
+ extcon_unregister_notifier(info->otg.cable, EXTCON_USB_HOST,
+ &info->otg.id_nb);
power_supply_unregister(info->psy_usb);
psy_reg_failed:
- extcon_unregister_notifier(info->cable.edev, EXTCON_NONE, &info->cable.nb);
+ extcon_unregister_notifier(info->cable.edev, EXTCON_CHG_USB_SDP,
+ &info->cable.nb);
+ extcon_unregister_notifier(info->cable.edev, EXTCON_CHG_USB_CDP,
+ &info->cable.nb);
+ extcon_unregister_notifier(info->cable.edev, EXTCON_CHG_USB_DCP,
+ &info->cable.nb);
return ret;
}
@@ -917,10 +940,16 @@ static int axp288_charger_remove(struct platform_device *pdev)
{
struct axp288_chrg_info *info = dev_get_drvdata(&pdev->dev);
- if (info->otg.cable.edev)
- extcon_unregister_interest(&info->otg.cable);
+ if (info->otg.cable)
+ extcon_unregister_notifier(info->otg.cable, EXTCON_USB_HOST,
+ &info->otg.id_nb);
- extcon_unregister_notifier(info->cable.edev, EXTCON_NONE, &info->cable.nb);
+ extcon_unregister_notifier(info->cable.edev, EXTCON_CHG_USB_SDP,
+ &info->cable.nb);
+ extcon_unregister_notifier(info->cable.edev, EXTCON_CHG_USB_CDP,
+ &info->cable.nb);
+ extcon_unregister_notifier(info->cable.edev, EXTCON_CHG_USB_DCP,
+ &info->cable.nb);
power_supply_unregister(info->psy_usb);
return 0;
--
1.9.1
[toc] | [next] | [standalone]
| From | Chanwoo Choi <cw00.choi@samsung.com> |
|---|---|
| Date | 2016-06-09 03:20 +0200 |
| Subject | Re: [PATCH v3 1/2] power: axp288_charger: Replace deprecatd API of extcon |
| Message-ID | <rHWNA-7Lv-7@gated-at.bofh.it> |
| In reply to | #1410039 |
Ping.
Hi Sebastian,
This patch just remove the deprecated extcon API without any improvement.
Could you just review this patch?
Thanks,
Chanwoo Choi
On 2016년 05월 31일 18:34, Chanwoo Choi wrote:
> This patch removes the deprecated notifier API of extcon framework and then use
> the new extcon API[2] with the unique id[1] to indicate the each external
> connector. Alter deprecated API as following:
> - extcon_register_interest() -> extcon_register_notifier()
> - extcon_unregister_interest() -> extcon_unregister_notifier()
> - extcon_get_cable_state() -> extcon_get_cable_state_()
>
> And, extcon alters the name of USB charger connector in patch[3] as following:
> - EXTCON_CHG_USB_SDP /* Standard Downstream Port */
> - EXTCON_CHG_USB_DCP /* Dedicated Charging Port */
> - EXTCON_CHG_USB_CDP /* Charging Downstream Port */
> - EXTCON_CHG_USB_ACA /* Accessory Charger Adapter */
>
> [1] Commit 2a9de9c0f08d61
> - ("extcon: Use the unique id for external connector instead of string)
> [2] Commit 046050f6e623e4
> - ("extcon: Update the prototype of extcon_register_notifier() with enum extcon
> [3] Commit 11eecf910bd81d
> - ("extcon: Modify the id and name of external connector")
>
> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
> ---
> drivers/power/axp288_charger.c | 77 +++++++++++++++++++++++++++++-------------
> 1 file changed, 53 insertions(+), 24 deletions(-)
>
> diff --git a/drivers/power/axp288_charger.c b/drivers/power/axp288_charger.c
> index e4d569f57acc..4030eeb7cf65 100644
> --- a/drivers/power/axp288_charger.c
> +++ b/drivers/power/axp288_charger.c
> @@ -129,10 +129,6 @@
>
> #define AXP288_EXTCON_DEV_NAME "axp288_extcon"
>
> -#define AXP288_EXTCON_SLOW_CHARGER "SLOW-CHARGER"
> -#define AXP288_EXTCON_DOWNSTREAM_CHARGER "CHARGE-DOWNSTREAM"
> -#define AXP288_EXTCON_FAST_CHARGER "FAST-CHARGER"
> -
> enum {
> VBUS_OV_IRQ = 0,
> CHARGE_DONE_IRQ,
> @@ -158,7 +154,7 @@ struct axp288_chrg_info {
> /* OTG/Host mode */
> struct {
> struct work_struct work;
> - struct extcon_specific_cable_nb cable;
> + struct extcon_dev *cable;
> struct notifier_block id_nb;
> bool id_short;
> } otg;
> @@ -586,17 +582,15 @@ static void axp288_charger_extcon_evt_worker(struct work_struct *work)
> bool old_connected = info->cable.connected;
>
> /* Determine cable/charger type */
> - if (extcon_get_cable_state(edev, AXP288_EXTCON_SLOW_CHARGER) > 0) {
> + if (extcon_get_cable_state_(edev, EXTCON_CHG_USB_SDP) > 0) {
> dev_dbg(&info->pdev->dev, "USB SDP charger is connected");
> info->cable.connected = true;
> info->cable.chg_type = POWER_SUPPLY_TYPE_USB;
> - } else if (extcon_get_cable_state(edev,
> - AXP288_EXTCON_DOWNSTREAM_CHARGER) > 0) {
> + } else if (extcon_get_cable_state_(edev, EXTCON_CHG_USB_CDP) > 0) {
> dev_dbg(&info->pdev->dev, "USB CDP charger is connected");
> info->cable.connected = true;
> info->cable.chg_type = POWER_SUPPLY_TYPE_USB_CDP;
> - } else if (extcon_get_cable_state(edev,
> - AXP288_EXTCON_FAST_CHARGER) > 0) {
> + } else if (extcon_get_cable_state_(edev, EXTCON_CHG_USB_DCP) > 0) {
> dev_dbg(&info->pdev->dev, "USB DCP charger is connected");
> info->cable.connected = true;
> info->cable.chg_type = POWER_SUPPLY_TYPE_USB_DCP;
> @@ -692,8 +686,8 @@ static int axp288_charger_handle_otg_evt(struct notifier_block *nb,
> {
> struct axp288_chrg_info *info =
> container_of(nb, struct axp288_chrg_info, otg.id_nb);
> - struct extcon_dev *edev = param;
> - int usb_host = extcon_get_cable_state(edev, "USB-Host");
> + struct extcon_dev *edev = info->otg.cable;
> + int usb_host = extcon_get_cable_state_(edev, EXTCON_USB_HOST);
>
> dev_dbg(&info->pdev->dev, "external connector USB-Host is %s\n",
> usb_host ? "attached" : "detached");
> @@ -848,10 +842,33 @@ static int axp288_charger_probe(struct platform_device *pdev)
> /* Register for extcon notification */
> INIT_WORK(&info->cable.work, axp288_charger_extcon_evt_worker);
> info->cable.nb.notifier_call = axp288_charger_handle_cable_evt;
> - ret = extcon_register_notifier(info->cable.edev, EXTCON_NONE, &info->cable.nb);
> + ret = extcon_register_notifier(info->cable.edev, EXTCON_CHG_USB_SDP,
> + &info->cable.nb);
> + if (ret) {
> + dev_err(&info->pdev->dev,
> + "failed to register extcon notifier for SDP %d\n", ret);
> + return ret;
> + }
> +
> + ret = extcon_register_notifier(info->cable.edev, EXTCON_CHG_USB_CDP,
> + &info->cable.nb);
> + if (ret) {
> + dev_err(&info->pdev->dev,
> + "failed to register extcon notifier for CDP %d\n", ret);
> + extcon_unregister_notifier(info->cable.edev,
> + EXTCON_CHG_USB_SDP, &info->cable.nb);
> + return ret;
> + }
> +
> + ret = extcon_register_notifier(info->cable.edev, EXTCON_CHG_USB_DCP,
> + &info->cable.nb);
> if (ret) {
> dev_err(&info->pdev->dev,
> - "failed to register extcon notifier %d\n", ret);
> + "failed to register extcon notifier for DCP %d\n", ret);
> + extcon_unregister_notifier(info->cable.edev,
> + EXTCON_CHG_USB_SDP, &info->cable.nb);
> + extcon_unregister_notifier(info->cable.edev,
> + EXTCON_CHG_USB_CDP, &info->cable.nb);
> return ret;
> }
>
> @@ -871,14 +888,14 @@ static int axp288_charger_probe(struct platform_device *pdev)
> /* Register for OTG notification */
> INIT_WORK(&info->otg.work, axp288_charger_otg_evt_worker);
> info->otg.id_nb.notifier_call = axp288_charger_handle_otg_evt;
> - ret = extcon_register_interest(&info->otg.cable, NULL, "USB-Host",
> + ret = extcon_register_notifier(info->otg.cable, EXTCON_USB_HOST,
> &info->otg.id_nb);
> if (ret)
> dev_warn(&pdev->dev, "failed to register otg notifier\n");
>
> - if (info->otg.cable.edev)
> - info->otg.id_short = extcon_get_cable_state(
> - info->otg.cable.edev, "USB-Host");
> + if (info->otg.cable)
> + info->otg.id_short = extcon_get_cable_state_(
> + info->otg.cable, EXTCON_USB_HOST);
>
> /* Register charger interrupts */
> for (i = 0; i < CHRG_INTR_END; i++) {
> @@ -905,11 +922,17 @@ static int axp288_charger_probe(struct platform_device *pdev)
> return 0;
>
> intr_reg_failed:
> - if (info->otg.cable.edev)
> - extcon_unregister_interest(&info->otg.cable);
> + if (info->otg.cable)
> + extcon_unregister_notifier(info->otg.cable, EXTCON_USB_HOST,
> + &info->otg.id_nb);
> power_supply_unregister(info->psy_usb);
> psy_reg_failed:
> - extcon_unregister_notifier(info->cable.edev, EXTCON_NONE, &info->cable.nb);
> + extcon_unregister_notifier(info->cable.edev, EXTCON_CHG_USB_SDP,
> + &info->cable.nb);
> + extcon_unregister_notifier(info->cable.edev, EXTCON_CHG_USB_CDP,
> + &info->cable.nb);
> + extcon_unregister_notifier(info->cable.edev, EXTCON_CHG_USB_DCP,
> + &info->cable.nb);
> return ret;
> }
>
> @@ -917,10 +940,16 @@ static int axp288_charger_remove(struct platform_device *pdev)
> {
> struct axp288_chrg_info *info = dev_get_drvdata(&pdev->dev);
>
> - if (info->otg.cable.edev)
> - extcon_unregister_interest(&info->otg.cable);
> + if (info->otg.cable)
> + extcon_unregister_notifier(info->otg.cable, EXTCON_USB_HOST,
> + &info->otg.id_nb);
>
> - extcon_unregister_notifier(info->cable.edev, EXTCON_NONE, &info->cable.nb);
> + extcon_unregister_notifier(info->cable.edev, EXTCON_CHG_USB_SDP,
> + &info->cable.nb);
> + extcon_unregister_notifier(info->cable.edev, EXTCON_CHG_USB_CDP,
> + &info->cable.nb);
> + extcon_unregister_notifier(info->cable.edev, EXTCON_CHG_USB_DCP,
> + &info->cable.nb);
> power_supply_unregister(info->psy_usb);
>
> return 0;
>
[toc] | [prev] | [next] | [standalone]
| From | Sebastian Reichel <sre@kernel.org> |
|---|---|
| Date | 2016-06-10 03:50 +0200 |
| Subject | Re: [PATCH v3 1/2] power: axp288_charger: Replace deprecatd API of extcon |
| Message-ID | <rIjK9-6lV-1@gated-at.bofh.it> |
| In reply to | #1410039 |
[Multipart message — attachments visible in raw view] — view raw
Hi,
On Tue, May 31, 2016 at 06:34:39PM +0900, Chanwoo Choi wrote:
> This patch removes the deprecated notifier API of extcon framework and then use
> the new extcon API[2] with the unique id[1] to indicate the each external
> connector. Alter deprecated API as following:
> - extcon_register_interest() -> extcon_register_notifier()
> - extcon_unregister_interest() -> extcon_unregister_notifier()
> - extcon_get_cable_state() -> extcon_get_cable_state_()
>
> And, extcon alters the name of USB charger connector in patch[3] as following:
> - EXTCON_CHG_USB_SDP /* Standard Downstream Port */
> - EXTCON_CHG_USB_DCP /* Dedicated Charging Port */
> - EXTCON_CHG_USB_CDP /* Charging Downstream Port */
> - EXTCON_CHG_USB_ACA /* Accessory Charger Adapter */
>
> [1] Commit 2a9de9c0f08d61
> - ("extcon: Use the unique id for external connector instead of string)
> [2] Commit 046050f6e623e4
> - ("extcon: Update the prototype of extcon_register_notifier() with enum extcon
> [3] Commit 11eecf910bd81d
> - ("extcon: Modify the id and name of external connector")
>
> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
> ---
> drivers/power/axp288_charger.c | 77 +++++++++++++++++++++++++++++-------------
> 1 file changed, 53 insertions(+), 24 deletions(-)
Acked-By: Sebastian Reichel <sre@kernel.org>
-- Sebastian
[toc] | [prev] | [next] | [standalone]
| From | Chanwoo Choi <cw00.choi@samsung.com> |
|---|---|
| Date | 2016-06-10 04:00 +0200 |
| Subject | Re: [PATCH v3 1/2] power: axp288_charger: Replace deprecatd API of extcon |
| Message-ID | <rIjTP-6q1-1@gated-at.bofh.it> |
| In reply to | #1418984 |
Hi,
On 2016년 06월 10일 10:46, Sebastian Reichel wrote:
> Hi,
>
> On Tue, May 31, 2016 at 06:34:39PM +0900, Chanwoo Choi wrote:
>> This patch removes the deprecated notifier API of extcon framework and then use
>> the new extcon API[2] with the unique id[1] to indicate the each external
>> connector. Alter deprecated API as following:
>> - extcon_register_interest() -> extcon_register_notifier()
>> - extcon_unregister_interest() -> extcon_unregister_notifier()
>> - extcon_get_cable_state() -> extcon_get_cable_state_()
>>
>> And, extcon alters the name of USB charger connector in patch[3] as following:
>> - EXTCON_CHG_USB_SDP /* Standard Downstream Port */
>> - EXTCON_CHG_USB_DCP /* Dedicated Charging Port */
>> - EXTCON_CHG_USB_CDP /* Charging Downstream Port */
>> - EXTCON_CHG_USB_ACA /* Accessory Charger Adapter */
>>
>> [1] Commit 2a9de9c0f08d61
>> - ("extcon: Use the unique id for external connector instead of string)
>> [2] Commit 046050f6e623e4
>> - ("extcon: Update the prototype of extcon_register_notifier() with enum extcon
>> [3] Commit 11eecf910bd81d
>> - ("extcon: Modify the id and name of external connector")
>>
>> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
>> ---
>> drivers/power/axp288_charger.c | 77 +++++++++++++++++++++++++++++-------------
>> 1 file changed, 53 insertions(+), 24 deletions(-)
>
> Acked-By: Sebastian Reichel <sre@kernel.org>
>
To prevent the build error on linux-next, this patchset should be merged on one repository.
So, I think that there are two solution.
First, I'll make the immutable branch for them and send pull request to you.
Second, I'll apply this patchset on extcon git repository.
Which would you prefer? If you answer, I'll do right now.
Thanks,
Chanwoo Choi
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web