From mboxrd@z Thu Jan 1 00:00:00 1970 From: MyungJoo Ham Subject: Re: [PATCH v2] PM / devfreq: Use freq_table for available_frequencies Date: Mon, 28 Apr 2014 01:41:55 +0000 (GMT) Message-ID: <4324793.197151398649314597.JavaMail.weblogic@epv6ml10> Reply-To: myungjoo.ham@samsung.com Mime-Version: 1.0 Content-Type: text/plain; charset=euc-kr Content-Transfer-Encoding: base64 Return-path: MIME-version: 1.0 Sender: linux-kernel-owner@vger.kernel.org To: Saravana Kannan , =?euc-kr?Q?=B9=DA=B0=E6=B9=CE?= Cc: "linux-pm@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-msm@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" List-Id: linux-arm-msm@vger.kernel.org PiBTb21lIGRldmljZXMgdXNlIGZyZXFfdGFibGUgaW5zdGVhZCBvZiBPUFAuIEZvciB0aG9zZSBk ZXZpY2VzLCB0aGUNCj4gYXZhaWxhYmxlX2ZyZXF1ZW5jaWVzIGZpbGUgc2hvd3MgdXAgZW1wdHku IEZpeCB0aGF0IGJ5IHVzaW5nIGZyZXFfdGFibGUgdG8NCj4gZ2VuZXJhdGUgdGhlIGF2YWlsYWJs ZV9mcmVxdWVuY2llcyBkYXRhIHdoZW4gaXQncyBhdmFpbGFibGUuDQo+IA0KPiBPUFAgZmluZCBm cmVxdWVuY3kgQVBJcyBhbHNvIHNraXBzIGZyZXF1ZW5jaWVzIHRoYXQgaGF2ZSBiZWVuIHRlbXBv cmFyaWx5DQo+IGRpc2FibGVkIChzYXksIGR1ZSB0byB0aGVybWFsLCBldGMpLiBTaW5jZSBhdmFp bGFibGVfZnJlcXVlbmNpZXMgaXMNCj4gc3VwcG9zZWQgdG8gc2hvdyB0aGUgZW50aXJlIGxpc3Qg b2YgYXZhaWxhYmxlIGZyZXF1ZW5jaWVzIHdpdGhvdXQgdGFraW5nDQo+IHRlbXBvcmFyeSBsaW1p dHMgaW50byBjb25zaWRlcmF0aW9uLCBwcmVmZXJlbmNlIGlzIGdpdmVuIHRvIGZyZXFfdGFibGUg d2hlbg0KPiBhdmFpbGFibGUuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBTYXJhdmFuYSBLYW5uYW4g PHNrYW5uYW5AY29kZWF1cm9yYS5vcmc+DQo+IC0tLQ0KPiAgZHJpdmVycy9kZXZmcmVxL2RldmZy ZXEuYyB8IDI5ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tDQo+ICAxIGZpbGUgY2hhbmdl ZCwgMTggaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9kZXZmcmVxL2RldmZyZXEuYyBiL2RyaXZlcnMvZGV2ZnJlcS9kZXZmcmVxLmMNCj4g aW5kZXggMjA0MmVjMy4uNTI3Y2JlMiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9kZXZmcmVxL2Rl dmZyZXEuYw0KPiArKysgYi9kcml2ZXJzL2RldmZyZXEvZGV2ZnJlcS5jDQo+IEBAIC05MTIsMjAg KzkxMiwyNyBAQCBzdGF0aWMgc3NpemVfdCBhdmFpbGFibGVfZnJlcXVlbmNpZXNfc2hvdyhzdHJ1 Y3QgZGV2aWNlICpkLA0KPiAgCXN0cnVjdCBkZXZmcmVxICpkZiA9IHRvX2RldmZyZXEoZCk7DQo+ ICAJc3RydWN0IGRldmljZSAqZGV2ID0gZGYtPmRldi5wYXJlbnQ7DQo+ICAJc3RydWN0IGRldl9w bV9vcHAgKm9wcDsNCj4gKwl1bnNpZ25lZCBpbnQgaSA9IDA7DQo+ICAJc3NpemVfdCBjb3VudCA9 IDA7DQo+ICAJdW5zaWduZWQgbG9uZyBmcmVxID0gMDsNCj4gIA0KPiAtCXJjdV9yZWFkX2xvY2so KTsNCj4gLQlkbyB7DQo+IC0JCW9wcCA9IGRldl9wbV9vcHBfZmluZF9mcmVxX2NlaWwoZGV2LCAm ZnJlcSk7DQo+IC0JCWlmIChJU19FUlIob3BwKSkNCj4gLQkJCWJyZWFrOw0KPiAtDQo+IC0JCWNv dW50ICs9IHNjbnByaW50ZigmYnVmW2NvdW50XSwgKFBBR0VfU0laRSAtIGNvdW50IC0gMiksDQo+ IC0JCQkJICAgIiVsdSAiLCBmcmVxKTsNCj4gLQkJZnJlcSsrOw0KPiAtCX0gd2hpbGUgKDEpOw0K PiAtCXJjdV9yZWFkX3VubG9jaygpOw0KPiArCWlmIChkZi0+cHJvZmlsZS0+ZnJlcV90YWJsZSkg ew0KPiArCQlmb3IgKGkgPSAwOyBpIDwgZGYtPnByb2ZpbGUtPm1heF9zdGF0ZTsgaSsrKQ0KPiAr CQkJY291bnQgKz0gc2NucHJpbnRmKCZidWZbY291bnRdLCAoUEFHRV9TSVpFIC0gY291bnQgLSAy KSwNCj4gKwkJCQkJICAgIiV1ICIsIGRmLT5wcm9maWxlLT5mcmVxX3RhYmxlW2ldKTsNCg0KWW91 IGFyZSBoZXJlYnkgY2hhbmdpbmcgdGhlIHNlbW1hbnRpY3Mgb2YgdGhlIG9yaWdpbmFsDQphdmFp bGFibGVfZnJlcXVlbmNpZXMgbm9kZS4NCg0KV2hlbiBhIGZyZXF1ZW5jeS92b2x0YWdlIHBhaXIg aGFzIGJlZW4gZGlzYWJsZWQgKG9wcF9kaXNhYmxlKSwgcHJvYmFibHkNCmJ5IG9wcF9kaXNhYmxl KCksIHRoZSBmcmVxdWVuY3kgaXMgbm8gbW9yZSAiYXZhaWxhYmxlIi4NCkhvd2V2ZXIsIHdoZW4g dGhlIGRyaXZlciBhdXRob3Igc3VwcGxpZWQgZnJlcV90YWJsZSBhcyB3ZWxsIGFzIE9QUA0KaW4g b3JkZXIgdG8gc2VlIHRoZSBzdGF0aXN0aWNzLCB0aGUgbm9kZSB3aWxsIGJlaGF2ZSBkaWZmZXJl bnRseS4NCg0KUGxlYXNlIGRvIG5vdCBhZmZlY3QgdGhlIGN1cnJlbnQgdXNlcnMgYXMgbG9uZyBh cyBpdCBkb2VzIG5vdCBnaXZlDQphZGRpdGlvbmFsIGJlbmVmaXQgb3IgZml4IGEgYnVnLg0KDQoN CkNoZWVycywNCk15dW5nSm9vLg0KDQoNCj4gKwl9IGVsc2Ugew0KPiArCQlyY3VfcmVhZF9sb2Nr KCk7DQo+ICsJCWRvIHsNCj4gKwkJCW9wcCA9IGRldl9wbV9vcHBfZmluZF9mcmVxX2NlaWwoZGV2 LCAmZnJlcSk7DQo+ICsJCQlpZiAoSVNfRVJSKG9wcCkpDQo+ICsJCQkJYnJlYWs7DQo+ICsNCj4g KwkJCWNvdW50ICs9IHNjbnByaW50ZigmYnVmW2NvdW50XSwgKFBBR0VfU0laRSAtIGNvdW50IC0g MiksDQo+ICsJCQkJCSAgICIlbHUgIiwgZnJlcSk7DQo+ICsJCQlmcmVxKys7DQo+ICsJCX0gd2hp bGUgKDEpOw0KPiArCQlyY3VfcmVhZF91bmxvY2soKTsNCj4gKwl9DQo+ICANCj4gIAkvKiBUcnVu Y2F0ZSB0aGUgdHJhaWxpbmcgc3BhY2UgKi8NCj4gIAlpZiAoY291bnQpDQo+IC0tIA0KPiBUaGUg UXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gaXMgYSBtZW1iZXIgb2YgdGhlIENvZGUg QXVyb3JhIEZvcnVtLA0KPiBob3N0ZWQgYnkgVGhlIExpbnV4IEZvdW5kYXRpb24NCj4gDQo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755628AbaD1BmE (ORCPT ); Sun, 27 Apr 2014 21:42:04 -0400 Received: from mailout2.samsung.com ([203.254.224.25]:39418 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753015AbaD1Bl6 (ORCPT ); Sun, 27 Apr 2014 21:41:58 -0400 X-AuditID: cbfee690-b7fcd6d0000026e0-c2-535db1e3184f Date: Mon, 28 Apr 2014 01:41:55 +0000 (GMT) From: MyungJoo Ham Subject: Re: [PATCH v2] PM / devfreq: Use freq_table for available_frequencies To: Saravana Kannan , =?euc-kr?Q?=B9=DA=B0=E6=B9=CE?= Cc: "linux-pm@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-msm@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Reply-to: myungjoo.ham@samsung.com MIME-version: 1.0 X-MTR: 20140428013700674@myungjoo.ham Msgkey: 20140428013700674@myungjoo.ham X-EPLocale: ko_KR.euc-kr X-Priority: 3 X-EPWebmail-Msg-Type: personal X-EPWebmail-Reply-Demand: 0 X-EPApproval-Locale: X-EPHeader: ML X-EPTrCode: X-EPTrName: X-MLAttribute: X-RootMTR: 20140428013700674@myungjoo.ham X-ParentMTR: X-ArchiveUser: X-CPGSPASS: N Content-type: text/plain; charset=euc-kr MIME-version: 1.0 Message-id: <4324793.197151398649314597.JavaMail.weblogic@epv6ml10> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupnleLIzCtJLcpLzFFi42JZI2JSovt4Y2ywwbajxhaXd81hc2D0+LxJ LoAxissmJTUnsyy1SN8ugSvj4owljAUtMhV7pqxmbWBcIt3FyMkhJKAusWjJSTYQW0LARGJ2 Zy8zhC0mceHeeqA4F1DNUkaJxxPesMAUfb73CSoxh1Fi0pRPYN0sAqoSmz7uB+rm4GAT0JOY +TkZJCws4Ccx++91VhBbRCBfonfnTSaQXmaBPiaJlfMfsUFcoSSxZt8rsAW8AoISJ2c+gVqm KnH98AFWiLiaxM1fM6Cuk5CYNf0CK4TNKzGj/SlUvZzEtK9roGqkJc7P2sAI883i74+h4vwS x27vYAK5E6T3yf1gmDG7N3+BBoSAxNQzB6FatSQaO59CtfJJrFn4lgVmzK5Ty5lheu9vmcsE YjMLKEpM6X7IDmFrSXz5sY8N3Vu8As4S+9f0s09gVJ6FJDULSfssJO3IahYwsqxiFE0tSC4o TkovMtErTswtLs1L10vOz93ECEwMp/89m7CD8d4B60OMycAomcgsJZqcD0wseSXxhsZmRham JqbGRuaWZqQJK4nzqj1KChISSE8sSc1OTS1ILYovKs1JLT7EyMTBKdXA2H5Y+/qr638fvZiw wF3f6MqXSRJvVf5HB892MbqSObtbJvh++pofqwNZ26RTvtUxWv7ZGWooUF86JzngBUt2j9B2 vStBTmfuqty6JL1nVmlT7KJbPSlitV0/Fq3b2n3w6d+FTmnzX5zKKzDTaJB0XfxZLuvMp2N2 /F6xpo/UtGX8WVbMiAu9rcRSnJFoqMVcVJwIAIuNXkIiAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpgk+LIzCtJLcpLzFFi42I5/e92v+7jjbHBBk9e6Vhc3jWHzYHR4/Mm uQDGqDSbjNTElNQihdS85PyUzLx0WyXv4HjneFMzA0NdQ0sLcyWFvMTcVFslF58AXbfMHKCh SgpliTmlQKGAxOJiJX07m6L80pJUhYz84hJbpWhDcyM9IwM9UyM9Q+NYK0MDAyNToJqEtIyL M5YwFrTIVOyZspq1gXGJdBcjJ4eQgLrEoiUn2UBsCQETic/3PkHZYhIX7q0HsrmAauYwSkya ApFgEVCV2PRxP3MXIwcHm4CexMzPySBhYQE/idl/r7OC2CIC+RK9O28ygfQyC/QxSayc/4gN YpmSxJp9r1hAbF4BQYmTM5+wQCxTlbh++AArRFxN4uavGcwQcQmJWdMvsELYvBIz2p9C1ctJ TPu6BqpGWuL8rA2MMEcv/v4YKs4vcez2DiaQO0F6n9wPhhmze/MXqB8FJKaeOQjVqiXR2PkU qpVPYs3CtywwY3adWs4M03t/y1wmEJtZQFFiSvdDdghbS+LLj31s6N7iFXCW2L+mn30Co9ws JKlZSNpnIWlHVrOAkWUVo2hqQXJBcVJ6haFecWJucWleul5yfu4mRnB6erZwB+OX89aHGAU4 GJV4eCPmxAYLsSaWFVfmHmKU4GBWEuFdPhcoxJuSWFmVWpQfX1Sak1p8iDEZGIETmaVEk/OB qTOvJN7Q2NjEzMTU0sTCwNScNGElcd67N5OChATSE0tSs1NTC1KLYLYwcXBKNTAmzG/2lJ+5 5GPSnn85h21FPkiF7082m3J3+0KbKsk/yxM0jb0bdfatzjh0veaQVdjj/wcKLt+xY+XzZDoc fcZVxnjrM5GMl6Grtp+8zSPZYvPr9GlOxt7slKPuaqrO1pfm7r00x+b5xe0s6za8F9/kF7Q3 Mlfy0KE7r4yTi4Sy9xvGZyZzrpJRYinOSDTUYi4qTgQACP6KXpMDAAA= DLP-Filter: Pass X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id s3S1gFFO019121 > Some devices use freq_table instead of OPP. For those devices, the > available_frequencies file shows up empty. Fix that by using freq_table to > generate the available_frequencies data when it's available. > > OPP find frequency APIs also skips frequencies that have been temporarily > disabled (say, due to thermal, etc). Since available_frequencies is > supposed to show the entire list of available frequencies without taking > temporary limits into consideration, preference is given to freq_table when > available. > > Signed-off-by: Saravana Kannan > --- > drivers/devfreq/devfreq.c | 29 ++++++++++++++++++----------- > 1 file changed, 18 insertions(+), 11 deletions(-) > > diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c > index 2042ec3..527cbe2 100644 > --- a/drivers/devfreq/devfreq.c > +++ b/drivers/devfreq/devfreq.c > @@ -912,20 +912,27 @@ static ssize_t available_frequencies_show(struct device *d, > struct devfreq *df = to_devfreq(d); > struct device *dev = df->dev.parent; > struct dev_pm_opp *opp; > + unsigned int i = 0; > ssize_t count = 0; > unsigned long freq = 0; > > - rcu_read_lock(); > - do { > - opp = dev_pm_opp_find_freq_ceil(dev, &freq); > - if (IS_ERR(opp)) > - break; > - > - count += scnprintf(&buf[count], (PAGE_SIZE - count - 2), > - "%lu ", freq); > - freq++; > - } while (1); > - rcu_read_unlock(); > + if (df->profile->freq_table) { > + for (i = 0; i < df->profile->max_state; i++) > + count += scnprintf(&buf[count], (PAGE_SIZE - count - 2), > + "%u ", df->profile->freq_table[i]); You are hereby changing the semmantics of the original available_frequencies node. When a frequency/voltage pair has been disabled (opp_disable), probably by opp_disable(), the frequency is no more "available". However, when the driver author supplied freq_table as well as OPP in order to see the statistics, the node will behave differently. Please do not affect the current users as long as it does not give additional benefit or fix a bug. Cheers, MyungJoo. > + } else { > + rcu_read_lock(); > + do { > + opp = dev_pm_opp_find_freq_ceil(dev, &freq); > + if (IS_ERR(opp)) > + break; > + > + count += scnprintf(&buf[count], (PAGE_SIZE - count - 2), > + "%lu ", freq); > + freq++; > + } while (1); > + rcu_read_unlock(); > + } > > /* Truncate the trailing space */ > if (count) > -- > The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, > hosted by The Linux Foundation > {.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I