From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] drivers: Change calls to mdelay to msleep in order to stop CPU busy looping in mdfld_dsi_pkg_sender.c Date: Mon, 17 Nov 2014 10:40:43 +0200 Message-ID: <87ioieusms.fsf@intel.com> References: <1416075673-23281-1-git-send-email-xerofoify@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 2F5226E7E3 for ; Mon, 17 Nov 2014 00:40:45 -0800 (PST) In-Reply-To: <1416075673-23281-1-git-send-email-xerofoify@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Nicholas Krause , airlied@linux.ie Cc: airlied@redhat.com, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gU2F0LCAxNSBOb3YgMjAxNCwgTmljaG9sYXMgS3JhdXNlIDx4ZXJvZm9pZnlAZ21haWwuY29t PiB3cm90ZToKPiBDaGFuZ2VzIHRoZSBjYWxscyBvZiBtZGVsYXkgdG8gbXNsZWVwIGluIHRoZSBk cml2ZXIgZmlsZSBtZGZsZF9kc2lfcGtnX3NlbmRlci5jCj4gaW4gb3JkZXIgdG8gcHJldmVudCBD UFUgYnVzeSBsb29waW5nIGluIG9yZGVyIHRvIHNhdmUgQ1BVIGN5Y2xlcyBhcyB0aGlzIGlzCj4g Y29uc2lkZXJlZCBiYWQgZm9ybSBvdmVyIHNsZWVwaW5nIHRoZSBDUFUgZm9yIGhpZ2ggcmVzb2x1 dGlvbiB0aW1lciBmdW5jdGlvbgo+IGNhbGxzIGFzIHRoaXMgZHJpdmVyIG5lZWRzIGluIG9yZGVy IHRvIGZ1bmN0aW9uIHByb3Blcmx5LgoKVGhlIGNvZGUgcGF0aHMgYXJlIGNhbGxlZCB3aXRoIHNl bmRlci0+bG9jayBzcGlubG9jayBoZWxkLgoKQlIsCkphbmkuCgo+Cj4gU2lnbmVkLW9mZi1ieTog TmljaG9sYXMgS3JhdXNlIDx4ZXJvZm9pZnlAZ21haWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dw dS9kcm0vZ21hNTAwL21kZmxkX2RzaV9wa2dfc2VuZGVyLmMgfCAxNSArKysrKy0tLS0tLS0tLS0K PiAgMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCj4KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9tZGZsZF9kc2lfcGtnX3NlbmRlci5j IGIvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9tZGZsZF9kc2lfcGtnX3NlbmRlci5jCj4gaW5kZXgg ODc4ODVkOC4uNzdjNjU2YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL21k ZmxkX2RzaV9wa2dfc2VuZGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL21kZmxk X2RzaV9wa2dfc2VuZGVyLmMKPiBAQCAtMzM1LDEzICszMzUsMTEgQEAgc3RhdGljIGludCBzZW5k X3BrZ19wcmVwYXJlKHN0cnVjdCBtZGZsZF9kc2lfcGtnX3NlbmRlciAqc2VuZGVyLCB1OCBkYXRh X3R5cGUsCj4gIAo+ICAJLyp3YWl0IGZvciAxMjAgbWlsbGlzZWNvbmRzIGluIGNhc2UgZXhpdF9z bGVlcF9tb2RlIGp1c3QgYmUgc2VudCovCj4gIAlpZiAodW5saWtlbHkoY21kID09IERDU19FTlRF Ul9TTEVFUF9NT0RFKSkgewo+IC0JCS8qVE9ETzogcmVwbGFjZSBpdCB3aXRoIG1zbGVlcCBsYXRl ciovCj4gLQkJbWRlbGF5KDEyMCk7Cj4gKwkJbXNsZWVwKDEyMCk7Cj4gIAl9Cj4gIAo+ICAJaWYg KHVubGlrZWx5KGNtZCA9PSBEQ1NfRVhJVF9TTEVFUF9NT0RFKSkgewo+IC0JCS8qVE9ETzogcmVw bGFjZSBpdCB3aXRoIG1zbGVlcCBsYXRlciovCj4gLQkJbWRlbGF5KDEyMCk7Cj4gKwkJbXNsZWVw KDEyMCk7Cj4gIAl9Cj4gIAlyZXR1cm4gMDsKPiAgfQo+IEBAIC0zNjQsMTUgKzM2MiwxMiBAQCBz dGF0aWMgaW50IHNlbmRfcGtnX2RvbmUoc3RydWN0IG1kZmxkX2RzaV9wa2dfc2VuZGVyICpzZW5k ZXIsIHU4IGRhdGFfdHlwZSwKPiAgCS8qdXBkYXRlIHBhbmVsIHN0YXR1cyovCj4gIAlpZiAodW5s aWtlbHkoY21kID09IERDU19FTlRFUl9TTEVFUF9NT0RFKSkgewo+ICAJCXNlbmRlci0+cGFuZWxf bW9kZSB8PSBNREZMRF9EU0lfUEFORUxfTU9ERV9TTEVFUDsKPiAtCQkvKlRPRE86IHJlcGxhY2Ug aXQgd2l0aCBtc2xlZXAgbGF0ZXIqLwo+IC0JCW1kZWxheSgxMjApOwo+ICsJCW1zbGVlcCgxMjAp Owo+ICAJfSBlbHNlIGlmICh1bmxpa2VseShjbWQgPT0gRENTX0VYSVRfU0xFRVBfTU9ERSkpIHsK PiAgCQlzZW5kZXItPnBhbmVsX21vZGUgJj0gfk1ERkxEX0RTSV9QQU5FTF9NT0RFX1NMRUVQOwo+ IC0JCS8qVE9ETzogcmVwbGFjZSBpdCB3aXRoIG1zbGVlcCBsYXRlciovCj4gLQkJbWRlbGF5KDEy MCk7Cj4gKwkJbXNsZWVwKDEyMCk7Cj4gIAl9IGVsc2UgaWYgKHVubGlrZWx5KGNtZCA9PSBEQ1Nf U09GVF9SRVNFVCkpIHsKPiAtCQkvKlRPRE86IHJlcGxhY2UgaXQgd2l0aCBtc2xlZXAgbGF0ZXIq Lwo+IC0JCW1kZWxheSg1KTsKPiArCQltc2xlZXAoNSk7Cj4gIAl9Cj4gIAo+ICAJc2VuZGVyLT5z dGF0dXMgPSBNREZMRF9EU0lfUEtHX1NFTkRFUl9GUkVFOwo+IC0tIAo+IDEuOS4xCj4KPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKLS0gCkphbmkg TmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751625AbaKQIkn (ORCPT ); Mon, 17 Nov 2014 03:40:43 -0500 Received: from mga14.intel.com ([192.55.52.115]:60498 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751090AbaKQIkm (ORCPT ); Mon, 17 Nov 2014 03:40:42 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.97,862,1389772800"; d="scan'208";a="417498481" From: Jani Nikula To: Nicholas Krause , airlied@linux.ie Cc: airlied@redhat.com, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org Subject: Re: [PATCH] drivers: Change calls to mdelay to msleep in order to stop CPU busy looping in mdfld_dsi_pkg_sender.c In-Reply-To: <1416075673-23281-1-git-send-email-xerofoify@gmail.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <1416075673-23281-1-git-send-email-xerofoify@gmail.com> User-Agent: Notmuch/0.19~rc1+1~g08b4944 (http://notmuchmail.org) Emacs/24.4.1 (x86_64-pc-linux-gnu) Date: Mon, 17 Nov 2014 10:40:43 +0200 Message-ID: <87ioieusms.fsf@intel.com> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, 15 Nov 2014, Nicholas Krause wrote: > Changes the calls of mdelay to msleep in the driver file mdfld_dsi_pkg_sender.c > in order to prevent CPU busy looping in order to save CPU cycles as this is > considered bad form over sleeping the CPU for high resolution timer function > calls as this driver needs in order to function properly. The code paths are called with sender->lock spinlock held. BR, Jani. > > Signed-off-by: Nicholas Krause > --- > drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c | 15 +++++---------- > 1 file changed, 5 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c b/drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c > index 87885d8..77c656a 100644 > --- a/drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c > +++ b/drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c > @@ -335,13 +335,11 @@ static int send_pkg_prepare(struct mdfld_dsi_pkg_sender *sender, u8 data_type, > > /*wait for 120 milliseconds in case exit_sleep_mode just be sent*/ > if (unlikely(cmd == DCS_ENTER_SLEEP_MODE)) { > - /*TODO: replace it with msleep later*/ > - mdelay(120); > + msleep(120); > } > > if (unlikely(cmd == DCS_EXIT_SLEEP_MODE)) { > - /*TODO: replace it with msleep later*/ > - mdelay(120); > + msleep(120); > } > return 0; > } > @@ -364,15 +362,12 @@ static int send_pkg_done(struct mdfld_dsi_pkg_sender *sender, u8 data_type, > /*update panel status*/ > if (unlikely(cmd == DCS_ENTER_SLEEP_MODE)) { > sender->panel_mode |= MDFLD_DSI_PANEL_MODE_SLEEP; > - /*TODO: replace it with msleep later*/ > - mdelay(120); > + msleep(120); > } else if (unlikely(cmd == DCS_EXIT_SLEEP_MODE)) { > sender->panel_mode &= ~MDFLD_DSI_PANEL_MODE_SLEEP; > - /*TODO: replace it with msleep later*/ > - mdelay(120); > + msleep(120); > } else if (unlikely(cmd == DCS_SOFT_RESET)) { > - /*TODO: replace it with msleep later*/ > - mdelay(5); > + msleep(5); > } > > sender->status = MDFLD_DSI_PKG_SENDER_FREE; > -- > 1.9.1 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel -- Jani Nikula, Intel Open Source Technology Center