From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933521AbcHBDGW (ORCPT ); Mon, 1 Aug 2016 23:06:22 -0400 Received: from mailout3.samsung.com ([203.254.224.33]:42264 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756024AbcHBDGK convert rfc822-to-8bit (ORCPT ); Mon, 1 Aug 2016 23:06:10 -0400 X-AuditID: cbfee68d-f79286d000007a9a-a4-579ffcc7fefc MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8BIT Message-id: <579FFCC7.6000409@samsung.com> Date: Tue, 02 Aug 2016 10:52:07 +0900 From: Chanwoo Choi Organization: Samsung Electronics User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 To: Guenter Roeck Cc: linux-kernel , myungjoo.ham@samsung.com, Chris Zhong , Guenter Roeck , chanwoo@kernel.org, "cpgs (cpgs@samsung.com)" Subject: Re: [PATCH v2 0/6] extcon: Add the support for extcon type and property References: <1470030654-6641-1-git-send-email-cw00.choi@samsung.com> In-reply-to: X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrGIsWRmVeSWpSXmKPExsWyRsSkUPf4n/nhBg1r9Cwm3rjCYvHykKbF qVfLmC16Fy1hsbi8aw6bxe3GFWwW8x/sYHZg95jdcJHFY8GmUo9NqzrZPP7O2s/i0bdlFaPH 501yAWxRXDYpqTmZZalF+nYJXBn/ZxoUnNav+HX+PVMD4zPVLkZODgkBE4mbxy6zQdhiEhfu rQeyuTiEBFYwSmxb+JEVpmj9+ndMEImljBK/2i6zgCR4BQQlfky+B2RzcDALqEtMmZILYYpI ND3IAqlgFtCWWLbwNTOILSTwgFFi5TUfiE4tiX0n5oPtZRFQlTh/8z/YRDag+P4XN8Di/AKK Eld/PGYEGSkqECHRfaISJCwCVH7q6XGwM5kFrjFKLLu3GGy+sECAxKRpa6Duv88ose/oGnaQ BKdAsMS9Ay2MIAkJgUfsEteWPGaF2Cwg8W3yIbD7JQRkJTYdYIb4V1Li4IobLBMYJWYh+XIW wpezEL6cheTLBYwsqxhFUwuSC4qT0osM9YoTc4tL89L1kvNzNzECo/f0v2e9OxhvH7A+xCjA wajEwxuQOz9ciDWxrLgy9xCjKdA9E5mlRJPzgSkiryTe0NjMyMLUxNTYyNzSTEmcV1HqZ7CQ QHpiSWp2ampBalF8UWlOavEhRiYOTqkGRoZwn3UnBbf59H3fY+X6Q4ubpfQN/x6Tmgff38es 0NaLMZmaye6/9bf+vsPHflZM8fi1cJ+5H4fDvNDulNoJzkdPLXrEdSdii6CSavuv6w9OnVTV CmudLXGyRr/wwP3elWzRQQtTt5stuss67fAhud63pY1cVXPElOc9azg54/iUGqVTa1zbepVY ijMSDbWYi4oTAaLwkBHZAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrDIsWRmVeSWpSXmKPExsVy+t9jAd3jf+aHG5zr17CYeOMKi8XLQ5oW p14tY7boXbSExeLyrjlsFrcbV7BZzH+wg9mB3WN2w0UWjwWbSj02repk8/g7az+LR9+WVYwe nzfJBbBFNTDaZKQmpqQWKaTmJeenZOal2yp5B8c7x5uaGRjqGlpamCsp5CXmptoqufgE6Lpl 5gCdoqRQlphTChQKSCwuVtK3wzQhNMRN1wKmMULXNyQIrsfIAA0krGHMaJ65lbFgp37Fzb8r GBsYr6h2MXJySAiYSKxf/44JwhaTuHBvPVsXIxeHkMBSRolfbZdZQBK8AoISPybfA7I5OJgF 5CWOXMqGMNUlpkzJBakQEnjAKLHymg9EtZbEvhPz2UBsFgFVifM3/4NNYQOK739xAyzOL6Ao cfXHY0aQMaICERLdJypBwiJA5aeeHge7gFngGqPEsnuLmUESwgIBEpOmrYE67T6jxL6ja9hB EpwCwRL3DrQwTmAUnIXk0lkIl85CuHQBI/MqRonUguSC4qT0XMO81HK94sTc4tK8dL3k/NxN jOCYfya1g/HgLvdDjAIcjEo8vBbv5ocLsSaWFVfmHmKU4GBWEuFl+AwU4k1JrKxKLcqPLyrN SS0+xGgK9OtEZinR5HxgOsoriTc0NjEzsjQyN7QwMjZXEud9/H9dmJBAemJJanZqakFqEUwf EwenVANjEbtT9BIukb8CHSsPBlvnOE387cUju+Tbs8Msy1Rvl98+s33F5umJldHnGQsXi3QG ic6Rm8BiYm747tkBH91P5XEL/YzC5PexzNqnqWHg8zT6rU2V2akreczlnteex/TuaDSb1/Du V0D/6a1J3FXvE+UzVkyITt8tuLglOvd0hunV/DuJx04qsRRnJBpqMRcVJwIAjhd5NQ8DAAA= DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Guenter, On 2016년 08월 02일 03:18, Guenter Roeck wrote: > On Sun, Jul 31, 2016 at 10:50 PM, Chanwoo Choi wrote: >> This patch-set add the support the extcon type, extcon property >> and the synchronization functions. >> >> The each external connector has the common characters. So, the external >> connectors are able to gather in the specific type. And the each external >> connectors has the specific H/W desigin to support the multiple features >> throught h/w lines. There are the requirement to express the each h/w >> character of each external connector. Lastly, when the state and property >> are changed, the extcon notify the extcon client driver of the changed >> information. To support the notification on extcon provider drivers, >> this patches support the three sync functions. >> >> Changes from v1: >> - Expand the size (+1) of the property array for each extcon type. >> - Use the memset() to initialize the property when connector is detached. >> - Wrap the data of struct extcon_dev in the lock mechanism. >> - Don't send the notification if connector state is not changed in >> extcon_set_state_sync() >> - Fix the minor issue. >> - Add Tested-by tag of Chris Zhong for these patches. >> - Add Signed-off tag of Myungjoo Ham for patch1. >> - Add Reviewed-by tag of Guenter Roeck for patch6. >> >> Depends on: >> This patch depend on the extcon git repository[2]. (branch : extcon-next) >> > > For the series: > > Tested-by: Guenter Roeck Thanks for your test and review. I'll modify the minor issue of your comment. I'll send next version(v3) and then merged patches on extcon-next branch. Regards, Chanwoo Choi > >> [1] https://en.wikipedia.org/wiki/DisplayPort >> [2] https://git.kernel.org/cgit/linux/kernel/git/chanwoo/extcon.git/ >> >> [Detailed description of these patches] >> 1. Add the extcon type to group the each external connector. >> There are five categories unitl now as following: >> - EXTCON_TYPE_USB : USB connector >> - EXTCON_TYPE_CHG : Charger connector >> - EXTCON_TYPE_JACK : Jack connector >> - EXTCON_TYPE_DISP : Display connector >> - EXTCON_TYPE_MISC : Miscellaneous connector >> >> 2. Add the extcon property to support the multiple characteristic >> for the specific H/W design. >> - EXTCON_PROP_USB_[property name] >> - EXTCON_PROP_CHG_[property name] >> - EXTCON_PROP_JACK_[property name] >> - EXTCON_PROP_DISP_[property name] >> e.g., EXTCON_PROP_USB_ID and EXTCON_PROP_USB_VBUS >> The list of the new extcon APIs for the property as following: >> - int extcon_get_property(struct extcon_dev *edev, >> unsigned int id, unsigned int prop, >> union extcon_property_value *prop_val) >> - int extcon_set_property(struct extcon_dev *edev, >> unsigned int id, unsigned int prop, >> union extcon_property_value prop_val) >> - int extcon_get_property_capability(struct extcon_dev *edev, >> unsigned int id, unsigned int prop); >> - int extcon_set_property_capability(struct extcon_dev *edev, >> unsigned int id, unsigned int prop); >> >> 3. Add the sync functions to synchronize the data of each external connector >> between an extcon provider driver and the extcon client drivers. >> The list of the new extcon sync APIs as following: >> - extcon_sync() : Send the notification for each external connector to >> synchronize the information between and extcon provider driver >> and the extcon client drivers. >> - extcon_set_state_sync() : Set the state of external connector with noti. >> - extcon_set_property_sync() : Set the property of external connector with noti. >> >> 4. Add the new external connector definition. The EXTCON_DISP_DP >> means the Display external connector[1]. >> The list of new external connector as following: >> - EXTCON_DISP_DP >> The list of new property of USB connector as following: >> - EXTCON_PROP_USB_TYPEC_POLARITY >> >> 5. Rename the renames the existing extcon_get/set_cable_state_() >> to maintain the function naming pattern like as extcon APIs for property. >> - extcon_set_cable_state_() -> extcon_set_state() >> - extcon_get_cable_state_() -> extcon_get_state() >> >> For example, >> case 1, change the state of external connector and synchronized the data. >> extcon_set_state_sync(edev, EXTCON_USB, 1); >> case 2, change both the state and property of external connector >> and synchronized the data. >> extcon_set_state(edev, EXTCON_USB, 1); >> extcon_set_property(edev, EXTCON_USB, EXTCON_PROP_USB_ID, 1); >> extcon_set_property(edev, EXTCON_USB, EXTCON_PROP_USB_VBUS, 0); >> extcon_sync(edev, EXTCON_USB); >> case 3, change the property of external connector and synchronized the data. >> extcon_set_property(edev, EXTCON_USB, EXTCON_PROP_USB_VBUS, 0); >> extcon_set_property(edev, EXTCON_USB, EXTCON_PROP_USB_ID, 1); >> extcon_sync(edev, EXTCON_USB); >> case 4, change the property of external connector and synchronized the data. >> extcon_set_property_sync(edev, EXTCON_USB, EXTCON_PROP_USB_VBUS, 0); >> >> >> Chanwoo Choi (5): >> extcon: Add the extcon_type to gather each connector into five category >> extcon: Add the support for extcon property according to extcon type >> extcon: Add the support for the capability of each property >> extcon: Rename the extcon_set/get_state() to maintain the function naming pattern >> extcon: Add the synchronization extcon APIs to support the notification >> >> Chris Zhong (1): >> extcon: Add EXTCON_DISP_DP and the property for USB Type-C >> >> drivers/extcon/extcon.c | 730 ++++++++++++++++++++++++++++++++++++++++-------- >> include/linux/extcon.h | 176 +++++++++++- >> 2 files changed, 786 insertions(+), 120 deletions(-) >> >> -- >> 1.9.1 >> > > >