From patchwork Wed Aug 27 14:29:35 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajay Kumar X-Patchwork-Id: 4788691 Return-Path: X-Original-To: patchwork-linux-samsung-soc@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id A78CD9F2A9 for ; Wed, 27 Aug 2014 14:35:49 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 4EF6920145 for ; Wed, 27 Aug 2014 14:35:48 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B227920127 for ; Wed, 27 Aug 2014 14:35:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934675AbaH0Ofq (ORCPT ); Wed, 27 Aug 2014 10:35:46 -0400 Received: from mailout2.samsung.com ([203.254.224.25]:9721 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933802AbaH0Ofp (ORCPT ); Wed, 27 Aug 2014 10:35:45 -0400 Received: from epcpsbgr1.samsung.com (u141.gpu120.samsung.co.kr [203.254.230.141]) by mailout2.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0NAY002BIZ7JITD0@mailout2.samsung.com> for linux-samsung-soc@vger.kernel.org; Wed, 27 Aug 2014 23:35:43 +0900 (KST) Received: from epcpsbgm2.samsung.com ( [172.20.52.122]) by epcpsbgr1.samsung.com (EPCPMTA) with SMTP id 65.50.02948.FBCEDF35; Wed, 27 Aug 2014 23:35:43 +0900 (KST) X-AuditID: cbfee68d-f79c46d000000b84-7b-53fdecbf8d4a Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id AF.A8.05196.FBCEDF35; Wed, 27 Aug 2014 23:35:43 +0900 (KST) Received: from chromebld-server.sisodomain.com ([107.108.73.106]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0NAY00EVDZ3VVJ90@mmp1.samsung.com>; Wed, 27 Aug 2014 23:35:43 +0900 (KST) From: Ajay Kumar To: dri-devel@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org Cc: inki.dae@samsung.com, thierry.reding@gmail.com, robdclark@gmail.com, daniel.vetter@ffwll.ch, seanpaul@google.com, ajaynumb@gmail.com, jg1.han@samsung.com, joshi@samsung.com, prashanth.g@samsung.com, Ajay Kumar Subject: [PATCH V7 01/12] drm/bridge: ptn3460: Few trivial cleanups Date: Wed, 27 Aug 2014 19:59:35 +0530 Message-id: <1409149783-12416-2-git-send-email-ajaykumar.rs@samsung.com> X-Mailer: git-send-email 1.7.9.5 In-reply-to: <1409149783-12416-1-git-send-email-ajaykumar.rs@samsung.com> References: <1409149783-12416-1-git-send-email-ajaykumar.rs@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrOLMWRmVeSWpSXmKPExsWyRsSkSnf/m7/BBiemqVkceH+QxWLDm4XM Fgsf3mW2uPL1PZvFpPsTWCwuL7zEavF91xd2ixnn9zFZrDq8gd3i+cIfzBZzD+Za/Nw1j8WB x2PvtwUsHjtn3WX3WLCp1ON+93Emj74tqxg9Pm+SC2CL4rJJSc3JLEst0rdL4Mo4fP44U8Ep r4pDN0+zNjD+tO1i5OSQEDCROHV0LyOELSZx4d56ti5GLg4hgaWMEkv3vGKEKWpfsIoFIrGI UWLn43dQVROYJJ78XcAOUsUmoC2xbfpNFhBbRMBNounwTFaQImaBb4wSFxauYwNJCAs4S6x4 8x1sLIuAqsSMzVvAGngFPCROfL8G1MABtE5BYs4kG5Awp4CnxMMd+1lBbCGgkiWPr7JBXHSM XWLyZ0eIMQIS3yYfYoFolZXYdIAZokRS4uCKGywTGIUXMDKsYhRNLUguKE5KLzLUK07MLS7N S9dLzs/dxAiMj9P/nvXuYLx9wPoQowAHoxIP74cFf4KFWBPLiitzDzGaAm2YyCwlmpwPjMK8 knhDYzMjC1MTU2Mjc0szJXFeRamfwUIC6YklqdmpqQWpRfFFpTmpxYcYmTg4pRoYUwQfJmxo 5LByDhA9xJMtvM/gRLdIciZXVWvvdeMLgv76wu+P/BQ/zBXz5uUz7o/MOfUHH89zVzavcXJe t7xI7BJPo1HOkeMHuvU94xSaEj8bW597LbRWr6NDY7OzxZW/OelFFYUTsw4rT5AsOaiq863S f1e5tWz6B76+hcaP7szfl/ejyl+JpTgj0VCLuag4EQARE41aigIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrEIsWRmVeSWpSXmKPExsVy+t9jAd39b/4GG5z9KmVx4P1BFosNbxYy Wyx8eJfZ4srX92wWk+5PYLG4vPASq8X3XV/YLWac38dkserwBnaL5wt/MFvMPZhr8XPXPBYH Ho+93xaweOycdZfdY8GmUo/73ceZPPq2rGL0+LxJLoAtqoHRJiM1MSW1SCE1Lzk/JTMv3VbJ OzjeOd7UzMBQ19DSwlxJIS8xN9VWycUnQNctMwfoRiWFssScUqBQQGJxsZK+HaYJoSFuuhYw jRG6viFBcD1GBmggYQ1jxuHzx5kKTnlVHLp5mrWB8adtFyMnh4SAiUT7glUsELaYxIV769m6 GLk4hAQWMUrsfPwOypnAJPHk7wJ2kCo2AW2JbdNvgnWICLhJNB2eyQpSxCzwjVHiwsJ1bCAJ YQFniRVvvjOC2CwCqhIzNm8Ba+AV8JA48f0aUAMH0DoFiTmTbEDCnAKeEg937GcFsYWASpY8 vso2gZF3ASPDKkbR1ILkguKk9FwjveLE3OLSvHS95PzcTYzg+HsmvYNxVYPFIUYBDkYlHt4P C/4EC7EmlhVX5h5ilOBgVhLhLTvwN1iINyWxsiq1KD++qDQntfgQoynQUROZpUST84GpIa8k 3tDYxNzU2NTSxMLEzFJJnPdgq3WgkEB6YklqdmpqQWoRTB8TB6dUA2PhnpfKPh9uRIv3cnV+ 0D3Czc/Bpzq91Yebp+ebftVBfybDOzYvVq7TcJ4WpKPcZ+HDw6Sk9Hn1lt2TKt9MNGr8LCVr 5euv1WR1a/sj3jn5QvZmmebX25vUTipkppxY8W79rb9p/ffj34hGra8TDAkL9TeI2FElx78y IvOrX+f11SHT9U+EKLEUZyQaajEXFScCAD79wMjVAgAA DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Sender: linux-samsung-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-samsung-soc@vger.kernel.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This patch does the following changes: -- Use usleep_range instead of udelay. -- Remove driver_private member from ptn3460 structure. -- Make all possible functions and structures static. -- Use dev_err for non-DRM errors. -- Arrange header files alphabetically. -- s/edid/EDID in all error messages. Signed-off-by: Ajay Kumar --- drivers/gpu/drm/bridge/ptn3460.c | 95 +++++++++++++++++++------------------- 1 file changed, 48 insertions(+), 47 deletions(-) diff --git a/drivers/gpu/drm/bridge/ptn3460.c b/drivers/gpu/drm/bridge/ptn3460.c index d466696..4db38e1 100644 --- a/drivers/gpu/drm/bridge/ptn3460.c +++ b/drivers/gpu/drm/bridge/ptn3460.c @@ -13,19 +13,19 @@ * GNU General Public License for more details. */ +#include +#include +#include #include #include #include -#include -#include -#include -#include "drmP.h" -#include "drm_edid.h" +#include "bridge/ptn3460.h" + #include "drm_crtc.h" #include "drm_crtc_helper.h" - -#include "bridge/ptn3460.h" +#include "drm_edid.h" +#include "drmP.h" #define PTN3460_EDID_ADDR 0x0 #define PTN3460_EDID_EMULATION_ADDR 0x84 @@ -37,7 +37,7 @@ struct ptn3460_bridge { struct drm_connector connector; struct i2c_client *client; struct drm_encoder *encoder; - struct drm_bridge *bridge; + struct drm_bridge bridge; struct edid *edid; int gpio_pd_n; int gpio_rst_n; @@ -45,6 +45,18 @@ struct ptn3460_bridge { bool enabled; }; +static inline struct ptn3460_bridge * + bridge_to_ptn3460(struct drm_bridge *bridge) +{ + return container_of(bridge, struct ptn3460_bridge, bridge); +} + +static inline struct ptn3460_bridge * + connector_to_ptn3460(struct drm_connector *connector) +{ + return container_of(connector, struct ptn3460_bridge, connector); +} + static int ptn3460_read_bytes(struct ptn3460_bridge *ptn_bridge, char addr, u8 *buf, int len) { @@ -92,7 +104,7 @@ static int ptn3460_select_edid(struct ptn3460_bridge *ptn_bridge) ret = ptn3460_write_byte(ptn_bridge, PTN3460_EDID_SRAM_LOAD_ADDR, ptn_bridge->edid_emulation); if (ret) { - DRM_ERROR("Failed to transfer edid to sram, ret=%d\n", ret); + DRM_ERROR("Failed to transfer EDID to sram, ret=%d\n", ret); return ret; } @@ -102,7 +114,7 @@ static int ptn3460_select_edid(struct ptn3460_bridge *ptn_bridge) ret = ptn3460_write_byte(ptn_bridge, PTN3460_EDID_EMULATION_ADDR, val); if (ret) { - DRM_ERROR("Failed to write edid value, ret=%d\n", ret); + DRM_ERROR("Failed to write EDID value, ret=%d\n", ret); return ret; } @@ -111,7 +123,7 @@ static int ptn3460_select_edid(struct ptn3460_bridge *ptn_bridge) static void ptn3460_pre_enable(struct drm_bridge *bridge) { - struct ptn3460_bridge *ptn_bridge = bridge->driver_private; + struct ptn3460_bridge *ptn_bridge = bridge_to_ptn3460(bridge); int ret; if (ptn_bridge->enabled) @@ -122,7 +134,7 @@ static void ptn3460_pre_enable(struct drm_bridge *bridge) if (gpio_is_valid(ptn_bridge->gpio_rst_n)) { gpio_set_value(ptn_bridge->gpio_rst_n, 0); - udelay(10); + usleep_range(10, 20); gpio_set_value(ptn_bridge->gpio_rst_n, 1); } @@ -135,7 +147,7 @@ static void ptn3460_pre_enable(struct drm_bridge *bridge) ret = ptn3460_select_edid(ptn_bridge); if (ret) - DRM_ERROR("Select edid failed ret=%d\n", ret); + DRM_ERROR("Select EDID failed ret=%d\n", ret); ptn_bridge->enabled = true; } @@ -146,7 +158,7 @@ static void ptn3460_enable(struct drm_bridge *bridge) static void ptn3460_disable(struct drm_bridge *bridge) { - struct ptn3460_bridge *ptn_bridge = bridge->driver_private; + struct ptn3460_bridge *ptn_bridge = bridge_to_ptn3460(bridge); if (!ptn_bridge->enabled) return; @@ -164,9 +176,9 @@ static void ptn3460_post_disable(struct drm_bridge *bridge) { } -void ptn3460_bridge_destroy(struct drm_bridge *bridge) +static void ptn3460_bridge_destroy(struct drm_bridge *bridge) { - struct ptn3460_bridge *ptn_bridge = bridge->driver_private; + struct ptn3460_bridge *ptn_bridge = bridge_to_ptn3460(bridge); drm_bridge_cleanup(bridge); if (gpio_is_valid(ptn_bridge->gpio_pd_n)) @@ -176,7 +188,7 @@ void ptn3460_bridge_destroy(struct drm_bridge *bridge) /* Nothing else to free, we've got devm allocated memory */ } -struct drm_bridge_funcs ptn3460_bridge_funcs = { +static struct drm_bridge_funcs ptn3460_bridge_funcs = { .pre_enable = ptn3460_pre_enable, .enable = ptn3460_enable, .disable = ptn3460_disable, @@ -184,24 +196,24 @@ struct drm_bridge_funcs ptn3460_bridge_funcs = { .destroy = ptn3460_bridge_destroy, }; -int ptn3460_get_modes(struct drm_connector *connector) +static int ptn3460_get_modes(struct drm_connector *connector) { struct ptn3460_bridge *ptn_bridge; u8 *edid; - int ret, num_modes; + int ret, num_modes = 0; bool power_off; - ptn_bridge = container_of(connector, struct ptn3460_bridge, connector); + ptn_bridge = connector_to_ptn3460(connector); if (ptn_bridge->edid) return drm_add_edid_modes(connector, ptn_bridge->edid); power_off = !ptn_bridge->enabled; - ptn3460_pre_enable(ptn_bridge->bridge); + ptn3460_pre_enable(&ptn_bridge->bridge); edid = kmalloc(EDID_LENGTH, GFP_KERNEL); if (!edid) { - DRM_ERROR("Failed to allocate edid\n"); + DRM_ERROR("Failed to allocate EDID\n"); return 0; } @@ -209,7 +221,6 @@ int ptn3460_get_modes(struct drm_connector *connector) EDID_LENGTH); if (ret) { kfree(edid); - num_modes = 0; goto out; } @@ -220,37 +231,35 @@ int ptn3460_get_modes(struct drm_connector *connector) out: if (power_off) - ptn3460_disable(ptn_bridge->bridge); + ptn3460_disable(&ptn_bridge->bridge); return num_modes; } -struct drm_encoder *ptn3460_best_encoder(struct drm_connector *connector) +static struct drm_encoder *ptn3460_best_encoder(struct drm_connector *connector) { - struct ptn3460_bridge *ptn_bridge; - - ptn_bridge = container_of(connector, struct ptn3460_bridge, connector); + struct ptn3460_bridge *ptn_bridge = connector_to_ptn3460(connector); return ptn_bridge->encoder; } -struct drm_connector_helper_funcs ptn3460_connector_helper_funcs = { +static struct drm_connector_helper_funcs ptn3460_connector_helper_funcs = { .get_modes = ptn3460_get_modes, .best_encoder = ptn3460_best_encoder, }; -enum drm_connector_status ptn3460_detect(struct drm_connector *connector, +static enum drm_connector_status ptn3460_detect(struct drm_connector *connector, bool force) { return connector_status_connected; } -void ptn3460_connector_destroy(struct drm_connector *connector) +static void ptn3460_connector_destroy(struct drm_connector *connector) { drm_connector_cleanup(connector); } -struct drm_connector_funcs ptn3460_connector_funcs = { +static struct drm_connector_funcs ptn3460_connector_funcs = { .dpms = drm_helper_connector_dpms, .fill_modes = drm_helper_probe_single_connector_modes, .detect = ptn3460_detect, @@ -261,30 +270,22 @@ int ptn3460_init(struct drm_device *dev, struct drm_encoder *encoder, struct i2c_client *client, struct device_node *node) { int ret; - struct drm_bridge *bridge; struct ptn3460_bridge *ptn_bridge; - bridge = devm_kzalloc(dev->dev, sizeof(*bridge), GFP_KERNEL); - if (!bridge) { - DRM_ERROR("Failed to allocate drm bridge\n"); - return -ENOMEM; - } - ptn_bridge = devm_kzalloc(dev->dev, sizeof(*ptn_bridge), GFP_KERNEL); if (!ptn_bridge) { - DRM_ERROR("Failed to allocate ptn bridge\n"); return -ENOMEM; } ptn_bridge->client = client; ptn_bridge->encoder = encoder; - ptn_bridge->bridge = bridge; ptn_bridge->gpio_pd_n = of_get_named_gpio(node, "powerdown-gpio", 0); if (gpio_is_valid(ptn_bridge->gpio_pd_n)) { ret = gpio_request_one(ptn_bridge->gpio_pd_n, GPIOF_OUT_INIT_HIGH, "PTN3460_PD_N"); if (ret) { - DRM_ERROR("Request powerdown-gpio failed (%d)\n", ret); + dev_err(&client->dev, + "Request powerdown-gpio failed (%d)\n", ret); return ret; } } @@ -298,7 +299,8 @@ int ptn3460_init(struct drm_device *dev, struct drm_encoder *encoder, ret = gpio_request_one(ptn_bridge->gpio_rst_n, GPIOF_OUT_INIT_LOW, "PTN3460_RST_N"); if (ret) { - DRM_ERROR("Request reset-gpio failed (%d)\n", ret); + dev_err(&client->dev, + "Request reset-gpio failed (%d)\n", ret); gpio_free(ptn_bridge->gpio_pd_n); return ret; } @@ -307,18 +309,17 @@ int ptn3460_init(struct drm_device *dev, struct drm_encoder *encoder, ret = of_property_read_u32(node, "edid-emulation", &ptn_bridge->edid_emulation); if (ret) { - DRM_ERROR("Can't read edid emulation value\n"); + dev_err(&client->dev, "Can't read EDID emulation value\n"); goto err; } - ret = drm_bridge_init(dev, bridge, &ptn3460_bridge_funcs); + ret = drm_bridge_init(dev, &ptn_bridge->bridge, &ptn3460_bridge_funcs); if (ret) { DRM_ERROR("Failed to initialize bridge with drm\n"); goto err; } - bridge->driver_private = ptn_bridge; - encoder->bridge = bridge; + encoder->bridge = &ptn_bridge->bridge; ret = drm_connector_init(dev, &ptn_bridge->connector, &ptn3460_connector_funcs, DRM_MODE_CONNECTOR_LVDS);