diff for duplicates of <4F053BCF.7030600@samsung.com> diff --git a/a/1.txt b/N1/1.txt index 65573f1..64c46b8 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,163 +1,104 @@ -Actually, the TMU driver is closely related to thermal layer. -I think it's okay to move it to the thermal. - -Thanks. --Donggeun - -On 2012년 01월 04일 19:14, Amit Kachhap wrote: -> Hi Guenter, -> -> The main idea of this work is to leave the current userspace based -> notification scheme and add the kernel based cooling scheme on top of -> it. Anyway, It is a good idea to move the file hwmon/exynos4_tmu.c as -> this creates 2 hwmon entries. -> Adding CC: Donggeun Kim to know his opinion. -> -> Thanks, -> Amit Daniel -> -> On 4 January 2012 03:55, Guenter Roeck <guenter.roeck@ericsson.com> wrote: ->> On Wed, 2011-12-21 at 06:59 -0500, Amit Daniel Kachhap wrote: ->>> Export and register information from the hwmon tmu sensor to the samsung ->>> exynos kernel thermal framework where different cooling devices and thermal ->>> zone are binded. The exported information is based according to the data ->>> structure thermal_sensor_conf present in exynos_thermal.h. HWMON sysfs ->>> functions are currently left although all of them are present in generic ->>> linux thermal layer. ->>> Also the platform data structure is modified to pass frequency cooling ->>> in percentages for each thermal level. ->>> ->> Hi Amit, ->> ->> wouldn't it make more sense to merge the code as necessary from ->> hwmon/exynos4_tmu.c into the new thermal/exynos_thermal.c, and drop ->> hwmon/exynos4_tmu.c entirely ? ->> ->> With that, you should get the hwmon entries for free, and we would not ->> have to maintain two drivers with overlapping functionality. ->> ->> Thanks, ->> Guenter ->> ->>> Signed-off-by: Amit Daniel Kachhap <amit.kachhap@linaro.org> ->>> --- ->>> drivers/hwmon/exynos4_tmu.c | 34 ++++++++++++++++++++++++++-- ->>> include/linux/platform_data/exynos4_tmu.h | 7 ++++++ ->>> 2 files changed, 38 insertions(+), 3 deletions(-) ->>> ->>> diff --git a/drivers/hwmon/exynos4_tmu.c b/drivers/hwmon/exynos4_tmu.c ->>> index f2359a0..6912a7f 100644 ->>> --- a/drivers/hwmon/exynos4_tmu.c ->>> +++ b/drivers/hwmon/exynos4_tmu.c ->>> @@ -37,6 +37,9 @@ ->>> #include <linux/hwmon-sysfs.h> ->>> ->>> #include <linux/platform_data/exynos4_tmu.h> ->>> +#ifdef CONFIG_SAMSUNG_THERMAL_INTERFACE ->>> +#include <linux/exynos_thermal.h> ->>> +#endif ->>> ->>> #define EXYNOS4_TMU_REG_TRIMINFO 0x0 ->>> #define EXYNOS4_TMU_REG_CONTROL 0x20 ->>> @@ -248,10 +251,13 @@ static void exynos4_tmu_work(struct work_struct *work) ->>> ->>> kobject_uevent(&data->hwmon_dev->kobj, KOBJ_CHANGE); ->>> ->>> - enable_irq(data->irq); ->>> ->>> clk_disable(data->clk); ->>> mutex_unlock(&data->lock); ->>> +#ifdef CONFIG_SAMSUNG_THERMAL_INTERFACE ->>> + exynos4_report_trigger(); ->>> +#endif ->>> + enable_irq(data->irq); ->>> } ->>> ->>> static irqreturn_t exynos4_tmu_irq(int irq, void *id) ->>> @@ -345,6 +351,14 @@ static const struct attribute_group exynos4_tmu_attr_group = { ->>> .attrs = exynos4_tmu_attributes, ->>> }; ->>> ->>> +#ifdef CONFIG_SAMSUNG_THERMAL_INTERFACE ->>> +static struct thermal_sensor_conf exynos4_sensor_conf = { ->>> + .name = "exynos4-therm", ->>> + .read_temperature = (int (*)(void *))exynos4_tmu_read, ->>> +}; ->>> +#endif ->>> +/*CONFIG_SAMSUNG_THERMAL_INTERFACE*/ ->>> + ->>> static int __devinit exynos4_tmu_probe(struct platform_device *pdev) ->>> { ->>> struct exynos4_tmu_data *data; ->>> @@ -432,9 +446,20 @@ static int __devinit exynos4_tmu_probe(struct platform_device *pdev) ->>> } ->>> ->>> exynos4_tmu_control(pdev, true); ->>> - ->>> +#ifdef CONFIG_SAMSUNG_THERMAL_INTERFACE ->>> + (&exynos4_sensor_conf)->private_data = data; ->>> + (&exynos4_sensor_conf)->sensor_data = pdata; ->>> + ret = exynos4_register_thermal(&exynos4_sensor_conf); ->>> + if (ret) { ->>> + dev_err(&pdev->dev, "Failed to register thermal interface\n"); ->>> + goto err_hwmon_device; ->>> + } ->>> +#endif ->>> return 0; ->>> - ->>> +#ifdef CONFIG_SAMSUNG_THERMAL_INTERFACE ->>> +err_hwmon_device: ->>> + hwmon_device_unregister(data->hwmon_dev); ->>> +#endif ->>> err_create_group: ->>> sysfs_remove_group(&pdev->dev.kobj, &exynos4_tmu_attr_group); ->>> err_clk: ->>> @@ -458,6 +483,9 @@ static int __devexit exynos4_tmu_remove(struct platform_device *pdev) ->>> ->>> exynos4_tmu_control(pdev, false); ->>> ->>> +#ifdef CONFIG_SAMSUNG_THERMAL_INTERFACE ->>> + exynos4_unregister_thermal(); ->>> +#endif ->>> hwmon_device_unregister(data->hwmon_dev); ->>> sysfs_remove_group(&pdev->dev.kobj, &exynos4_tmu_attr_group); ->>> ->>> diff --git a/include/linux/platform_data/exynos4_tmu.h b/include/linux/platform_data/exynos4_tmu.h ->>> index 39e038c..642c508 100644 ->>> --- a/include/linux/platform_data/exynos4_tmu.h ->>> +++ b/include/linux/platform_data/exynos4_tmu.h ->>> @@ -21,6 +21,7 @@ ->>> ->>> #ifndef _LINUX_EXYNOS4_TMU_H ->>> #define _LINUX_EXYNOS4_TMU_H ->>> +#include <linux/cpu_cooling.h> ->>> ->>> enum calibration_type { ->>> TYPE_ONE_POINT_TRIMMING, ->>> @@ -64,6 +65,9 @@ enum calibration_type { ->>> * in the positive-TC generator block ->>> * 0 <= reference_voltage <= 31 ->>> * @cal_type: calibration type for temperature ->>> + * @freq_pctg_table: Table representing frequency reduction percentage. ->>> + * @freq_tab_count: Count of the above table as frequency reduction may ->>> + * applicable to only some of the trigger levels. ->>> * ->>> * This structure is required for configuration of exynos4_tmu driver. ->>> */ ->>> @@ -79,5 +83,8 @@ struct exynos4_tmu_platform_data { ->>> u8 reference_voltage; ->>> ->>> enum calibration_type cal_type; ->>> + ->>> + struct freq_pctg_table freq_tab[4]; ->>> + unsigned int freq_tab_count; ->>> }; ->>> #endif /* _LINUX_EXYNOS4_TMU_H */ ->> ->> -> - --- -To unsubscribe from this list: send the line "unsubscribe linux-acpi" in -the body of a message to majordomo@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo-info.html +QWN0dWFsbHksIHRoZSBUTVUgZHJpdmVyIGlzIGNsb3NlbHkgcmVsYXRlZCB0byB0aGVybWFsIGxh +eWVyLgpJIHRoaW5rIGl0J3Mgb2theSB0byBtb3ZlIGl0IHRvIHRoZSB0aGVybWFsLgoKVGhhbmtz +LgotRG9uZ2dldW4KCk9uIDIwMTLrhYQgMDHsm5QgMDTsnbwgMTk6MTQsIEFtaXQgS2FjaGhhcCB3 +cm90ZToKPiBIaSBHdWVudGVyLAo+IAo+IFRoZSBtYWluIGlkZWEgb2YgdGhpcyB3b3JrIGlzIHRv +IGxlYXZlIHRoZSBjdXJyZW50IHVzZXJzcGFjZSBiYXNlZAo+IG5vdGlmaWNhdGlvbiBzY2hlbWUg +YW5kIGFkZCB0aGUga2VybmVsIGJhc2VkIGNvb2xpbmcgc2NoZW1lIG9uIHRvcCBvZgo+IGl0LiBB +bnl3YXksIEl0IGlzIGEgZ29vZCBpZGVhIHRvIG1vdmUgdGhlIGZpbGUgaHdtb24vZXh5bm9zNF90 +bXUuYyBhcwo+IHRoaXMgY3JlYXRlcyAyIGh3bW9uIGVudHJpZXMuCj4gQWRkaW5nIENDOiBEb25n +Z2V1biBLaW0gdG8ga25vdyBoaXMgb3Bpbmlvbi4KPiAKPiBUaGFua3MsCj4gQW1pdCBEYW5pZWwK +PiAKPiBPbiA0IEphbnVhcnkgMjAxMiAwMzo1NSwgR3VlbnRlciBSb2VjayA8Z3VlbnRlci5yb2Vj +a0Blcmljc3Nvbi5jb20+IHdyb3RlOgo+PiBPbiBXZWQsIDIwMTEtMTItMjEgYXQgMDY6NTkgLTA1 +MDAsIEFtaXQgRGFuaWVsIEthY2hoYXAgd3JvdGU6Cj4+PiBFeHBvcnQgYW5kIHJlZ2lzdGVyIGlu +Zm9ybWF0aW9uIGZyb20gdGhlIGh3bW9uIHRtdSBzZW5zb3IgdG8gdGhlIHNhbXN1bmcKPj4+IGV4 +eW5vcyBrZXJuZWwgdGhlcm1hbCBmcmFtZXdvcmsgd2hlcmUgZGlmZmVyZW50IGNvb2xpbmcgZGV2 +aWNlcyBhbmQgdGhlcm1hbAo+Pj4gem9uZSBhcmUgYmluZGVkLiBUaGUgZXhwb3J0ZWQgaW5mb3Jt +YXRpb24gaXMgYmFzZWQgYWNjb3JkaW5nIHRvIHRoZSBkYXRhCj4+PiBzdHJ1Y3R1cmUgdGhlcm1h +bF9zZW5zb3JfY29uZiBwcmVzZW50IGluIGV4eW5vc190aGVybWFsLmguIEhXTU9OIHN5c2ZzCj4+ +PiBmdW5jdGlvbnMgYXJlIGN1cnJlbnRseSBsZWZ0IGFsdGhvdWdoIGFsbCBvZiB0aGVtIGFyZSBw +cmVzZW50IGluIGdlbmVyaWMKPj4+IGxpbnV4IHRoZXJtYWwgbGF5ZXIuCj4+PiBBbHNvIHRoZSBw +bGF0Zm9ybSBkYXRhIHN0cnVjdHVyZSBpcyBtb2RpZmllZCB0byBwYXNzIGZyZXF1ZW5jeSBjb29s +aW5nCj4+PiBpbiBwZXJjZW50YWdlcyBmb3IgZWFjaCB0aGVybWFsIGxldmVsLgo+Pj4KPj4gSGkg +QW1pdCwKPj4KPj4gd291bGRuJ3QgaXQgbWFrZSBtb3JlIHNlbnNlIHRvIG1lcmdlIHRoZSBjb2Rl +IGFzIG5lY2Vzc2FyeSBmcm9tCj4+IGh3bW9uL2V4eW5vczRfdG11LmMgaW50byB0aGUgbmV3IHRo +ZXJtYWwvZXh5bm9zX3RoZXJtYWwuYywgYW5kIGRyb3AKPj4gaHdtb24vZXh5bm9zNF90bXUuYyBl +bnRpcmVseSA/Cj4+Cj4+IFdpdGggdGhhdCwgeW91IHNob3VsZCBnZXQgdGhlIGh3bW9uIGVudHJp +ZXMgZm9yIGZyZWUsIGFuZCB3ZSB3b3VsZCBub3QKPj4gaGF2ZSB0byBtYWludGFpbiB0d28gZHJp +dmVycyB3aXRoIG92ZXJsYXBwaW5nIGZ1bmN0aW9uYWxpdHkuCj4+Cj4+IFRoYW5rcywKPj4gR3Vl +bnRlcgo+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogQW1pdCBEYW5pZWwgS2FjaGhhcCA8YW1pdC5rYWNo +aGFwQGxpbmFyby5vcmc+Cj4+PiAtLS0KPj4+ICBkcml2ZXJzL2h3bW9uL2V4eW5vczRfdG11LmMg +ICAgICAgICAgICAgICB8ICAgMzQgKysrKysrKysrKysrKysrKysrKysrKysrKystLQo+Pj4gIGlu +Y2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS9leHlub3M0X3RtdS5oIHwgICAgNyArKysrKysKPj4+ +ICAyIGZpbGVzIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCj4+Pgo+ +Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vZXh5bm9zNF90bXUuYyBiL2RyaXZlcnMvaHdt +b24vZXh5bm9zNF90bXUuYwo+Pj4gaW5kZXggZjIzNTlhMC4uNjkxMmE3ZiAxMDA2NDQKPj4+IC0t +LSBhL2RyaXZlcnMvaHdtb24vZXh5bm9zNF90bXUuYwo+Pj4gKysrIGIvZHJpdmVycy9od21vbi9l +eHlub3M0X3RtdS5jCj4+PiBAQCAtMzcsNiArMzcsOSBAQAo+Pj4gICNpbmNsdWRlIDxsaW51eC9o +d21vbi1zeXNmcy5oPgo+Pj4KPj4+ICAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9leHlu +b3M0X3RtdS5oPgo+Pj4gKyNpZmRlZiBDT05GSUdfU0FNU1VOR19USEVSTUFMX0lOVEVSRkFDRQo+ +Pj4gKyNpbmNsdWRlIDxsaW51eC9leHlub3NfdGhlcm1hbC5oPgo+Pj4gKyNlbmRpZgo+Pj4KPj4+ +ICAjZGVmaW5lIEVYWU5PUzRfVE1VX1JFR19UUklNSU5GTyAgICAgMHgwCj4+PiAgI2RlZmluZSBF +WFlOT1M0X1RNVV9SRUdfQ09OVFJPTCAgICAgICAgICAgICAgMHgyMAo+Pj4gQEAgLTI0OCwxMCAr +MjUxLDEzIEBAIHN0YXRpYyB2b2lkIGV4eW5vczRfdG11X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0 +ICp3b3JrKQo+Pj4KPj4+ICAgICAgIGtvYmplY3RfdWV2ZW50KCZkYXRhLT5od21vbl9kZXYtPmtv +YmosIEtPQkpfQ0hBTkdFKTsKPj4+Cj4+PiAtICAgICBlbmFibGVfaXJxKGRhdGEtPmlycSk7Cj4+ +Pgo+Pj4gICAgICAgY2xrX2Rpc2FibGUoZGF0YS0+Y2xrKTsKPj4+ICAgICAgIG11dGV4X3VubG9j +aygmZGF0YS0+bG9jayk7Cj4+PiArI2lmZGVmIENPTkZJR19TQU1TVU5HX1RIRVJNQUxfSU5URVJG +QUNFCj4+PiArICAgICBleHlub3M0X3JlcG9ydF90cmlnZ2VyKCk7Cj4+PiArI2VuZGlmCj4+PiAr +ICAgICBlbmFibGVfaXJxKGRhdGEtPmlycSk7Cj4+PiAgfQo+Pj4KPj4+ICBzdGF0aWMgaXJxcmV0 +dXJuX3QgZXh5bm9zNF90bXVfaXJxKGludCBpcnEsIHZvaWQgKmlkKQo+Pj4gQEAgLTM0NSw2ICsz +NTEsMTQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZXh5bm9zNF90bXVf +YXR0cl9ncm91cCA9IHsKPj4+ICAgICAgIC5hdHRycyA9IGV4eW5vczRfdG11X2F0dHJpYnV0ZXMs +Cj4+PiAgfTsKPj4+Cj4+PiArI2lmZGVmIENPTkZJR19TQU1TVU5HX1RIRVJNQUxfSU5URVJGQUNF +Cj4+PiArc3RhdGljIHN0cnVjdCB0aGVybWFsX3NlbnNvcl9jb25mIGV4eW5vczRfc2Vuc29yX2Nv +bmYgPSB7Cj4+PiArICAgICAubmFtZSAgICAgICAgICAgICAgICAgICA9ICJleHlub3M0LXRoZXJt +IiwKPj4+ICsgICAgIC5yZWFkX3RlbXBlcmF0dXJlICAgICAgID0gKGludCAoKikodm9pZCAqKSll +eHlub3M0X3RtdV9yZWFkLAo+Pj4gK307Cj4+PiArI2VuZGlmCj4+PiArLypDT05GSUdfU0FNU1VO +R19USEVSTUFMX0lOVEVSRkFDRSovCj4+PiArCj4+PiAgc3RhdGljIGludCBfX2RldmluaXQgZXh5 +bm9zNF90bXVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPj4+ICB7Cj4+PiAg +ICAgICBzdHJ1Y3QgZXh5bm9zNF90bXVfZGF0YSAqZGF0YTsKPj4+IEBAIC00MzIsOSArNDQ2LDIw +IEBAIHN0YXRpYyBpbnQgX19kZXZpbml0IGV4eW5vczRfdG11X3Byb2JlKHN0cnVjdCBwbGF0Zm9y +bV9kZXZpY2UgKnBkZXYpCj4+PiAgICAgICB9Cj4+Pgo+Pj4gICAgICAgZXh5bm9zNF90bXVfY29u +dHJvbChwZGV2LCB0cnVlKTsKPj4+IC0KPj4+ICsjaWZkZWYgQ09ORklHX1NBTVNVTkdfVEhFUk1B +TF9JTlRFUkZBQ0UKPj4+ICsgICAgICgmZXh5bm9zNF9zZW5zb3JfY29uZiktPnByaXZhdGVfZGF0 +YSA9IGRhdGE7Cj4+PiArICAgICAoJmV4eW5vczRfc2Vuc29yX2NvbmYpLT5zZW5zb3JfZGF0YSA9 +IHBkYXRhOwo+Pj4gKyAgICAgcmV0ID0gZXh5bm9zNF9yZWdpc3Rlcl90aGVybWFsKCZleHlub3M0 +X3NlbnNvcl9jb25mKTsKPj4+ICsgICAgIGlmIChyZXQpIHsKPj4+ICsgICAgICAgICAgICAgZGV2 +X2VycigmcGRldi0+ZGV2LCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHRoZXJtYWwgaW50ZXJmYWNlXG4i +KTsKPj4+ICsgICAgICAgICAgICAgZ290byBlcnJfaHdtb25fZGV2aWNlOwo+Pj4gKyAgICAgfQo+ +Pj4gKyNlbmRpZgo+Pj4gICAgICAgcmV0dXJuIDA7Cj4+PiAtCj4+PiArI2lmZGVmIENPTkZJR19T +QU1TVU5HX1RIRVJNQUxfSU5URVJGQUNFCj4+PiArZXJyX2h3bW9uX2RldmljZToKPj4+ICsgICAg +IGh3bW9uX2RldmljZV91bnJlZ2lzdGVyKGRhdGEtPmh3bW9uX2Rldik7Cj4+PiArI2VuZGlmCj4+ +PiAgZXJyX2NyZWF0ZV9ncm91cDoKPj4+ICAgICAgIHN5c2ZzX3JlbW92ZV9ncm91cCgmcGRldi0+ +ZGV2LmtvYmosICZleHlub3M0X3RtdV9hdHRyX2dyb3VwKTsKPj4+ICBlcnJfY2xrOgo+Pj4gQEAg +LTQ1OCw2ICs0ODMsOSBAQCBzdGF0aWMgaW50IF9fZGV2ZXhpdCBleHlub3M0X3RtdV9yZW1vdmUo +c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPj4+Cj4+PiAgICAgICBleHlub3M0X3RtdV9j +b250cm9sKHBkZXYsIGZhbHNlKTsKPj4+Cj4+PiArI2lmZGVmIENPTkZJR19TQU1TVU5HX1RIRVJN +QUxfSU5URVJGQUNFCj4+PiArICAgICBleHlub3M0X3VucmVnaXN0ZXJfdGhlcm1hbCgpOwo+Pj4g +KyNlbmRpZgo+Pj4gICAgICAgaHdtb25fZGV2aWNlX3VucmVnaXN0ZXIoZGF0YS0+aHdtb25fZGV2 +KTsKPj4+ICAgICAgIHN5c2ZzX3JlbW92ZV9ncm91cCgmcGRldi0+ZGV2LmtvYmosICZleHlub3M0 +X3RtdV9hdHRyX2dyb3VwKTsKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wbGF0 +Zm9ybV9kYXRhL2V4eW5vczRfdG11LmggYi9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvZXh5 +bm9zNF90bXUuaAo+Pj4gaW5kZXggMzllMDM4Yy4uNjQyYzUwOCAxMDA2NDQKPj4+IC0tLSBhL2lu +Y2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS9leHlub3M0X3RtdS5oCj4+PiArKysgYi9pbmNsdWRl +L2xpbnV4L3BsYXRmb3JtX2RhdGEvZXh5bm9zNF90bXUuaAo+Pj4gQEAgLTIxLDYgKzIxLDcgQEAK +Pj4+Cj4+PiAgI2lmbmRlZiBfTElOVVhfRVhZTk9TNF9UTVVfSAo+Pj4gICNkZWZpbmUgX0xJTlVY +X0VYWU5PUzRfVE1VX0gKPj4+ICsjaW5jbHVkZSA8bGludXgvY3B1X2Nvb2xpbmcuaD4KPj4+Cj4+ +PiAgZW51bSBjYWxpYnJhdGlvbl90eXBlIHsKPj4+ICAgICAgIFRZUEVfT05FX1BPSU5UX1RSSU1N +SU5HLAo+Pj4gQEAgLTY0LDYgKzY1LDkgQEAgZW51bSBjYWxpYnJhdGlvbl90eXBlIHsKPj4+ICAg +KiAgIGluIHRoZSBwb3NpdGl2ZS1UQyBnZW5lcmF0b3IgYmxvY2sKPj4+ICAgKiAgIDAgPD0gcmVm +ZXJlbmNlX3ZvbHRhZ2UgPD0gMzEKPj4+ICAgKiBAY2FsX3R5cGU6IGNhbGlicmF0aW9uIHR5cGUg +Zm9yIHRlbXBlcmF0dXJlCj4+PiArICogQGZyZXFfcGN0Z190YWJsZTogVGFibGUgcmVwcmVzZW50 +aW5nIGZyZXF1ZW5jeSByZWR1Y3Rpb24gcGVyY2VudGFnZS4KPj4+ICsgKiBAZnJlcV90YWJfY291 +bnQ6IENvdW50IG9mIHRoZSBhYm92ZSB0YWJsZSBhcyBmcmVxdWVuY3kgcmVkdWN0aW9uIG1heQo+ +Pj4gKyAqICAgYXBwbGljYWJsZSB0byBvbmx5IHNvbWUgb2YgdGhlIHRyaWdnZXIgbGV2ZWxzLgo+ +Pj4gICAqCj4+PiAgICogVGhpcyBzdHJ1Y3R1cmUgaXMgcmVxdWlyZWQgZm9yIGNvbmZpZ3VyYXRp +b24gb2YgZXh5bm9zNF90bXUgZHJpdmVyLgo+Pj4gICAqLwo+Pj4gQEAgLTc5LDUgKzgzLDggQEAg +c3RydWN0IGV4eW5vczRfdG11X3BsYXRmb3JtX2RhdGEgewo+Pj4gICAgICAgdTggcmVmZXJlbmNl +X3ZvbHRhZ2U7Cj4+Pgo+Pj4gICAgICAgZW51bSBjYWxpYnJhdGlvbl90eXBlIGNhbF90eXBlOwo+ +Pj4gKwo+Pj4gKyAgICAgc3RydWN0IGZyZXFfcGN0Z190YWJsZSBmcmVxX3RhYls0XTsKPj4+ICsg +ICAgIHVuc2lnbmVkIGludCBmcmVxX3RhYl9jb3VudDsKPj4+ICB9Owo+Pj4gICNlbmRpZiAvKiBf +TElOVVhfRVhZTk9TNF9UTVVfSCAqLwo+Pgo+Pgo+IAoKCgpfX19fX19fX19fX19fX19fX19fX19f +X19fX19fX19fX19fX19fX19fX19fX19fXwpsbS1zZW5zb3JzIG1haWxpbmcgbGlzdApsbS1zZW5z +b3JzQGxtLXNlbnNvcnMub3JnCmh0dHA6Ly9saXN0cy5sbS1zZW5zb3JzLm9yZy9tYWlsbWFuL2xp +c3RpbmZvL2xtLXNlbnNvcnM diff --git a/a/content_digest b/N1/content_digest index 7ff7667..cb9030a 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -3,8 +3,8 @@ "ref\01325629553.26706.11.camel@groeck-laptop\0" "ref\0CAK44p20XeLVkJyox2SsDqyy=RYgEQNpyGGypwTMPXpueQT1T3g@mail.gmail.com\0" "From\0Donggeun Kim <dg77.kim@samsung.com>\0" - "Subject\0Re: [lm-sensors] [RFC PATCH 2/3] thermal: exynos4: Register the tmu sensor with the thermal interface layer\0" - "Date\0Thu, 05 Jan 2012 14:57:35 +0900\0" + "Subject\0Re: [lm-sensors] [RFC PATCH 2/3] thermal: exynos4: Register the tmu\0" + "Date\0Thu, 05 Jan 2012 05:57:35 +0000\0" "To\0Amit Kachhap <amit.kachhap@linaro.org>\0" "Cc\0guenter.roeck@ericsson.com" linux-pm@lists.linux-foundation.org <linux-pm@lists.linux-foundation.org> @@ -17,168 +17,109 @@ " lenb@kernel.org <lenb@kernel.org>\0" "\00:1\0" "b\0" - "Actually, the TMU driver is closely related to thermal layer.\n" - "I think it's okay to move it to the thermal.\n" - "\n" - "Thanks.\n" - "-Donggeun\n" - "\n" - "On 2012\353\205\204 01\354\233\224 04\354\235\274 19:14, Amit Kachhap wrote:\n" - "> Hi Guenter,\n" - "> \n" - "> The main idea of this work is to leave the current userspace based\n" - "> notification scheme and add the kernel based cooling scheme on top of\n" - "> it. Anyway, It is a good idea to move the file hwmon/exynos4_tmu.c as\n" - "> this creates 2 hwmon entries.\n" - "> Adding CC: Donggeun Kim to know his opinion.\n" - "> \n" - "> Thanks,\n" - "> Amit Daniel\n" - "> \n" - "> On 4 January 2012 03:55, Guenter Roeck <guenter.roeck@ericsson.com> wrote:\n" - ">> On Wed, 2011-12-21 at 06:59 -0500, Amit Daniel Kachhap wrote:\n" - ">>> Export and register information from the hwmon tmu sensor to the samsung\n" - ">>> exynos kernel thermal framework where different cooling devices and thermal\n" - ">>> zone are binded. The exported information is based according to the data\n" - ">>> structure thermal_sensor_conf present in exynos_thermal.h. HWMON sysfs\n" - ">>> functions are currently left although all of them are present in generic\n" - ">>> linux thermal layer.\n" - ">>> Also the platform data structure is modified to pass frequency cooling\n" - ">>> in percentages for each thermal level.\n" - ">>>\n" - ">> Hi Amit,\n" - ">>\n" - ">> wouldn't it make more sense to merge the code as necessary from\n" - ">> hwmon/exynos4_tmu.c into the new thermal/exynos_thermal.c, and drop\n" - ">> hwmon/exynos4_tmu.c entirely ?\n" - ">>\n" - ">> With that, you should get the hwmon entries for free, and we would not\n" - ">> have to maintain two drivers with overlapping functionality.\n" - ">>\n" - ">> Thanks,\n" - ">> Guenter\n" - ">>\n" - ">>> Signed-off-by: Amit Daniel Kachhap <amit.kachhap@linaro.org>\n" - ">>> ---\n" - ">>> drivers/hwmon/exynos4_tmu.c | 34 ++++++++++++++++++++++++++--\n" - ">>> include/linux/platform_data/exynos4_tmu.h | 7 ++++++\n" - ">>> 2 files changed, 38 insertions(+), 3 deletions(-)\n" - ">>>\n" - ">>> diff --git a/drivers/hwmon/exynos4_tmu.c b/drivers/hwmon/exynos4_tmu.c\n" - ">>> index f2359a0..6912a7f 100644\n" - ">>> --- a/drivers/hwmon/exynos4_tmu.c\n" - ">>> +++ b/drivers/hwmon/exynos4_tmu.c\n" - ">>> @@ -37,6 +37,9 @@\n" - ">>> #include <linux/hwmon-sysfs.h>\n" - ">>>\n" - ">>> #include <linux/platform_data/exynos4_tmu.h>\n" - ">>> +#ifdef CONFIG_SAMSUNG_THERMAL_INTERFACE\n" - ">>> +#include <linux/exynos_thermal.h>\n" - ">>> +#endif\n" - ">>>\n" - ">>> #define EXYNOS4_TMU_REG_TRIMINFO 0x0\n" - ">>> #define EXYNOS4_TMU_REG_CONTROL 0x20\n" - ">>> @@ -248,10 +251,13 @@ static void exynos4_tmu_work(struct work_struct *work)\n" - ">>>\n" - ">>> kobject_uevent(&data->hwmon_dev->kobj, KOBJ_CHANGE);\n" - ">>>\n" - ">>> - enable_irq(data->irq);\n" - ">>>\n" - ">>> clk_disable(data->clk);\n" - ">>> mutex_unlock(&data->lock);\n" - ">>> +#ifdef CONFIG_SAMSUNG_THERMAL_INTERFACE\n" - ">>> + exynos4_report_trigger();\n" - ">>> +#endif\n" - ">>> + enable_irq(data->irq);\n" - ">>> }\n" - ">>>\n" - ">>> static irqreturn_t exynos4_tmu_irq(int irq, void *id)\n" - ">>> @@ -345,6 +351,14 @@ static const struct attribute_group exynos4_tmu_attr_group = {\n" - ">>> .attrs = exynos4_tmu_attributes,\n" - ">>> };\n" - ">>>\n" - ">>> +#ifdef CONFIG_SAMSUNG_THERMAL_INTERFACE\n" - ">>> +static struct thermal_sensor_conf exynos4_sensor_conf = {\n" - ">>> + .name = \"exynos4-therm\",\n" - ">>> + .read_temperature = (int (*)(void *))exynos4_tmu_read,\n" - ">>> +};\n" - ">>> +#endif\n" - ">>> +/*CONFIG_SAMSUNG_THERMAL_INTERFACE*/\n" - ">>> +\n" - ">>> static int __devinit exynos4_tmu_probe(struct platform_device *pdev)\n" - ">>> {\n" - ">>> struct exynos4_tmu_data *data;\n" - ">>> @@ -432,9 +446,20 @@ static int __devinit exynos4_tmu_probe(struct platform_device *pdev)\n" - ">>> }\n" - ">>>\n" - ">>> exynos4_tmu_control(pdev, true);\n" - ">>> -\n" - ">>> +#ifdef CONFIG_SAMSUNG_THERMAL_INTERFACE\n" - ">>> + (&exynos4_sensor_conf)->private_data = data;\n" - ">>> + (&exynos4_sensor_conf)->sensor_data = pdata;\n" - ">>> + ret = exynos4_register_thermal(&exynos4_sensor_conf);\n" - ">>> + if (ret) {\n" - ">>> + dev_err(&pdev->dev, \"Failed to register thermal interface\\n\");\n" - ">>> + goto err_hwmon_device;\n" - ">>> + }\n" - ">>> +#endif\n" - ">>> return 0;\n" - ">>> -\n" - ">>> +#ifdef CONFIG_SAMSUNG_THERMAL_INTERFACE\n" - ">>> +err_hwmon_device:\n" - ">>> + hwmon_device_unregister(data->hwmon_dev);\n" - ">>> +#endif\n" - ">>> err_create_group:\n" - ">>> sysfs_remove_group(&pdev->dev.kobj, &exynos4_tmu_attr_group);\n" - ">>> err_clk:\n" - ">>> @@ -458,6 +483,9 @@ static int __devexit exynos4_tmu_remove(struct platform_device *pdev)\n" - ">>>\n" - ">>> exynos4_tmu_control(pdev, false);\n" - ">>>\n" - ">>> +#ifdef CONFIG_SAMSUNG_THERMAL_INTERFACE\n" - ">>> + exynos4_unregister_thermal();\n" - ">>> +#endif\n" - ">>> hwmon_device_unregister(data->hwmon_dev);\n" - ">>> sysfs_remove_group(&pdev->dev.kobj, &exynos4_tmu_attr_group);\n" - ">>>\n" - ">>> diff --git a/include/linux/platform_data/exynos4_tmu.h b/include/linux/platform_data/exynos4_tmu.h\n" - ">>> index 39e038c..642c508 100644\n" - ">>> --- a/include/linux/platform_data/exynos4_tmu.h\n" - ">>> +++ b/include/linux/platform_data/exynos4_tmu.h\n" - ">>> @@ -21,6 +21,7 @@\n" - ">>>\n" - ">>> #ifndef _LINUX_EXYNOS4_TMU_H\n" - ">>> #define _LINUX_EXYNOS4_TMU_H\n" - ">>> +#include <linux/cpu_cooling.h>\n" - ">>>\n" - ">>> enum calibration_type {\n" - ">>> TYPE_ONE_POINT_TRIMMING,\n" - ">>> @@ -64,6 +65,9 @@ enum calibration_type {\n" - ">>> * in the positive-TC generator block\n" - ">>> * 0 <= reference_voltage <= 31\n" - ">>> * @cal_type: calibration type for temperature\n" - ">>> + * @freq_pctg_table: Table representing frequency reduction percentage.\n" - ">>> + * @freq_tab_count: Count of the above table as frequency reduction may\n" - ">>> + * applicable to only some of the trigger levels.\n" - ">>> *\n" - ">>> * This structure is required for configuration of exynos4_tmu driver.\n" - ">>> */\n" - ">>> @@ -79,5 +83,8 @@ struct exynos4_tmu_platform_data {\n" - ">>> u8 reference_voltage;\n" - ">>>\n" - ">>> enum calibration_type cal_type;\n" - ">>> +\n" - ">>> + struct freq_pctg_table freq_tab[4];\n" - ">>> + unsigned int freq_tab_count;\n" - ">>> };\n" - ">>> #endif /* _LINUX_EXYNOS4_TMU_H */\n" - ">>\n" - ">>\n" - "> \n" - "\n" - "--\n" - "To unsubscribe from this list: send the line \"unsubscribe linux-acpi\" in\n" - "the body of a message to majordomo@vger.kernel.org\n" - More majordomo info at http://vger.kernel.org/majordomo-info.html + "QWN0dWFsbHksIHRoZSBUTVUgZHJpdmVyIGlzIGNsb3NlbHkgcmVsYXRlZCB0byB0aGVybWFsIGxh\n" + "eWVyLgpJIHRoaW5rIGl0J3Mgb2theSB0byBtb3ZlIGl0IHRvIHRoZSB0aGVybWFsLgoKVGhhbmtz\n" + "LgotRG9uZ2dldW4KCk9uIDIwMTLrhYQgMDHsm5QgMDTsnbwgMTk6MTQsIEFtaXQgS2FjaGhhcCB3\n" + "cm90ZToKPiBIaSBHdWVudGVyLAo+IAo+IFRoZSBtYWluIGlkZWEgb2YgdGhpcyB3b3JrIGlzIHRv\n" + "IGxlYXZlIHRoZSBjdXJyZW50IHVzZXJzcGFjZSBiYXNlZAo+IG5vdGlmaWNhdGlvbiBzY2hlbWUg\n" + "YW5kIGFkZCB0aGUga2VybmVsIGJhc2VkIGNvb2xpbmcgc2NoZW1lIG9uIHRvcCBvZgo+IGl0LiBB\n" + "bnl3YXksIEl0IGlzIGEgZ29vZCBpZGVhIHRvIG1vdmUgdGhlIGZpbGUgaHdtb24vZXh5bm9zNF90\n" + "bXUuYyBhcwo+IHRoaXMgY3JlYXRlcyAyIGh3bW9uIGVudHJpZXMuCj4gQWRkaW5nIENDOiBEb25n\n" + "Z2V1biBLaW0gdG8ga25vdyBoaXMgb3Bpbmlvbi4KPiAKPiBUaGFua3MsCj4gQW1pdCBEYW5pZWwK\n" + "PiAKPiBPbiA0IEphbnVhcnkgMjAxMiAwMzo1NSwgR3VlbnRlciBSb2VjayA8Z3VlbnRlci5yb2Vj\n" + "a0Blcmljc3Nvbi5jb20+IHdyb3RlOgo+PiBPbiBXZWQsIDIwMTEtMTItMjEgYXQgMDY6NTkgLTA1\n" + "MDAsIEFtaXQgRGFuaWVsIEthY2hoYXAgd3JvdGU6Cj4+PiBFeHBvcnQgYW5kIHJlZ2lzdGVyIGlu\n" + "Zm9ybWF0aW9uIGZyb20gdGhlIGh3bW9uIHRtdSBzZW5zb3IgdG8gdGhlIHNhbXN1bmcKPj4+IGV4\n" + "eW5vcyBrZXJuZWwgdGhlcm1hbCBmcmFtZXdvcmsgd2hlcmUgZGlmZmVyZW50IGNvb2xpbmcgZGV2\n" + "aWNlcyBhbmQgdGhlcm1hbAo+Pj4gem9uZSBhcmUgYmluZGVkLiBUaGUgZXhwb3J0ZWQgaW5mb3Jt\n" + "YXRpb24gaXMgYmFzZWQgYWNjb3JkaW5nIHRvIHRoZSBkYXRhCj4+PiBzdHJ1Y3R1cmUgdGhlcm1h\n" + "bF9zZW5zb3JfY29uZiBwcmVzZW50IGluIGV4eW5vc190aGVybWFsLmguIEhXTU9OIHN5c2ZzCj4+\n" + "PiBmdW5jdGlvbnMgYXJlIGN1cnJlbnRseSBsZWZ0IGFsdGhvdWdoIGFsbCBvZiB0aGVtIGFyZSBw\n" + "cmVzZW50IGluIGdlbmVyaWMKPj4+IGxpbnV4IHRoZXJtYWwgbGF5ZXIuCj4+PiBBbHNvIHRoZSBw\n" + "bGF0Zm9ybSBkYXRhIHN0cnVjdHVyZSBpcyBtb2RpZmllZCB0byBwYXNzIGZyZXF1ZW5jeSBjb29s\n" + "aW5nCj4+PiBpbiBwZXJjZW50YWdlcyBmb3IgZWFjaCB0aGVybWFsIGxldmVsLgo+Pj4KPj4gSGkg\n" + "QW1pdCwKPj4KPj4gd291bGRuJ3QgaXQgbWFrZSBtb3JlIHNlbnNlIHRvIG1lcmdlIHRoZSBjb2Rl\n" + "IGFzIG5lY2Vzc2FyeSBmcm9tCj4+IGh3bW9uL2V4eW5vczRfdG11LmMgaW50byB0aGUgbmV3IHRo\n" + "ZXJtYWwvZXh5bm9zX3RoZXJtYWwuYywgYW5kIGRyb3AKPj4gaHdtb24vZXh5bm9zNF90bXUuYyBl\n" + "bnRpcmVseSA/Cj4+Cj4+IFdpdGggdGhhdCwgeW91IHNob3VsZCBnZXQgdGhlIGh3bW9uIGVudHJp\n" + "ZXMgZm9yIGZyZWUsIGFuZCB3ZSB3b3VsZCBub3QKPj4gaGF2ZSB0byBtYWludGFpbiB0d28gZHJp\n" + "dmVycyB3aXRoIG92ZXJsYXBwaW5nIGZ1bmN0aW9uYWxpdHkuCj4+Cj4+IFRoYW5rcywKPj4gR3Vl\n" + "bnRlcgo+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogQW1pdCBEYW5pZWwgS2FjaGhhcCA8YW1pdC5rYWNo\n" + "aGFwQGxpbmFyby5vcmc+Cj4+PiAtLS0KPj4+ICBkcml2ZXJzL2h3bW9uL2V4eW5vczRfdG11LmMg\n" + "ICAgICAgICAgICAgICB8ICAgMzQgKysrKysrKysrKysrKysrKysrKysrKysrKystLQo+Pj4gIGlu\n" + "Y2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS9leHlub3M0X3RtdS5oIHwgICAgNyArKysrKysKPj4+\n" + "ICAyIGZpbGVzIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCj4+Pgo+\n" + "Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vZXh5bm9zNF90bXUuYyBiL2RyaXZlcnMvaHdt\n" + "b24vZXh5bm9zNF90bXUuYwo+Pj4gaW5kZXggZjIzNTlhMC4uNjkxMmE3ZiAxMDA2NDQKPj4+IC0t\n" + "LSBhL2RyaXZlcnMvaHdtb24vZXh5bm9zNF90bXUuYwo+Pj4gKysrIGIvZHJpdmVycy9od21vbi9l\n" + "eHlub3M0X3RtdS5jCj4+PiBAQCAtMzcsNiArMzcsOSBAQAo+Pj4gICNpbmNsdWRlIDxsaW51eC9o\n" + "d21vbi1zeXNmcy5oPgo+Pj4KPj4+ICAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9leHlu\n" + "b3M0X3RtdS5oPgo+Pj4gKyNpZmRlZiBDT05GSUdfU0FNU1VOR19USEVSTUFMX0lOVEVSRkFDRQo+\n" + "Pj4gKyNpbmNsdWRlIDxsaW51eC9leHlub3NfdGhlcm1hbC5oPgo+Pj4gKyNlbmRpZgo+Pj4KPj4+\n" + "ICAjZGVmaW5lIEVYWU5PUzRfVE1VX1JFR19UUklNSU5GTyAgICAgMHgwCj4+PiAgI2RlZmluZSBF\n" + "WFlOT1M0X1RNVV9SRUdfQ09OVFJPTCAgICAgICAgICAgICAgMHgyMAo+Pj4gQEAgLTI0OCwxMCAr\n" + "MjUxLDEzIEBAIHN0YXRpYyB2b2lkIGV4eW5vczRfdG11X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0\n" + "ICp3b3JrKQo+Pj4KPj4+ICAgICAgIGtvYmplY3RfdWV2ZW50KCZkYXRhLT5od21vbl9kZXYtPmtv\n" + "YmosIEtPQkpfQ0hBTkdFKTsKPj4+Cj4+PiAtICAgICBlbmFibGVfaXJxKGRhdGEtPmlycSk7Cj4+\n" + "Pgo+Pj4gICAgICAgY2xrX2Rpc2FibGUoZGF0YS0+Y2xrKTsKPj4+ICAgICAgIG11dGV4X3VubG9j\n" + "aygmZGF0YS0+bG9jayk7Cj4+PiArI2lmZGVmIENPTkZJR19TQU1TVU5HX1RIRVJNQUxfSU5URVJG\n" + "QUNFCj4+PiArICAgICBleHlub3M0X3JlcG9ydF90cmlnZ2VyKCk7Cj4+PiArI2VuZGlmCj4+PiAr\n" + "ICAgICBlbmFibGVfaXJxKGRhdGEtPmlycSk7Cj4+PiAgfQo+Pj4KPj4+ICBzdGF0aWMgaXJxcmV0\n" + "dXJuX3QgZXh5bm9zNF90bXVfaXJxKGludCBpcnEsIHZvaWQgKmlkKQo+Pj4gQEAgLTM0NSw2ICsz\n" + "NTEsMTQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZXh5bm9zNF90bXVf\n" + "YXR0cl9ncm91cCA9IHsKPj4+ICAgICAgIC5hdHRycyA9IGV4eW5vczRfdG11X2F0dHJpYnV0ZXMs\n" + "Cj4+PiAgfTsKPj4+Cj4+PiArI2lmZGVmIENPTkZJR19TQU1TVU5HX1RIRVJNQUxfSU5URVJGQUNF\n" + "Cj4+PiArc3RhdGljIHN0cnVjdCB0aGVybWFsX3NlbnNvcl9jb25mIGV4eW5vczRfc2Vuc29yX2Nv\n" + "bmYgPSB7Cj4+PiArICAgICAubmFtZSAgICAgICAgICAgICAgICAgICA9ICJleHlub3M0LXRoZXJt\n" + "IiwKPj4+ICsgICAgIC5yZWFkX3RlbXBlcmF0dXJlICAgICAgID0gKGludCAoKikodm9pZCAqKSll\n" + "eHlub3M0X3RtdV9yZWFkLAo+Pj4gK307Cj4+PiArI2VuZGlmCj4+PiArLypDT05GSUdfU0FNU1VO\n" + "R19USEVSTUFMX0lOVEVSRkFDRSovCj4+PiArCj4+PiAgc3RhdGljIGludCBfX2RldmluaXQgZXh5\n" + "bm9zNF90bXVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPj4+ICB7Cj4+PiAg\n" + "ICAgICBzdHJ1Y3QgZXh5bm9zNF90bXVfZGF0YSAqZGF0YTsKPj4+IEBAIC00MzIsOSArNDQ2LDIw\n" + "IEBAIHN0YXRpYyBpbnQgX19kZXZpbml0IGV4eW5vczRfdG11X3Byb2JlKHN0cnVjdCBwbGF0Zm9y\n" + "bV9kZXZpY2UgKnBkZXYpCj4+PiAgICAgICB9Cj4+Pgo+Pj4gICAgICAgZXh5bm9zNF90bXVfY29u\n" + "dHJvbChwZGV2LCB0cnVlKTsKPj4+IC0KPj4+ICsjaWZkZWYgQ09ORklHX1NBTVNVTkdfVEhFUk1B\n" + "TF9JTlRFUkZBQ0UKPj4+ICsgICAgICgmZXh5bm9zNF9zZW5zb3JfY29uZiktPnByaXZhdGVfZGF0\n" + "YSA9IGRhdGE7Cj4+PiArICAgICAoJmV4eW5vczRfc2Vuc29yX2NvbmYpLT5zZW5zb3JfZGF0YSA9\n" + "IHBkYXRhOwo+Pj4gKyAgICAgcmV0ID0gZXh5bm9zNF9yZWdpc3Rlcl90aGVybWFsKCZleHlub3M0\n" + "X3NlbnNvcl9jb25mKTsKPj4+ICsgICAgIGlmIChyZXQpIHsKPj4+ICsgICAgICAgICAgICAgZGV2\n" + "X2VycigmcGRldi0+ZGV2LCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHRoZXJtYWwgaW50ZXJmYWNlXG4i\n" + "KTsKPj4+ICsgICAgICAgICAgICAgZ290byBlcnJfaHdtb25fZGV2aWNlOwo+Pj4gKyAgICAgfQo+\n" + "Pj4gKyNlbmRpZgo+Pj4gICAgICAgcmV0dXJuIDA7Cj4+PiAtCj4+PiArI2lmZGVmIENPTkZJR19T\n" + "QU1TVU5HX1RIRVJNQUxfSU5URVJGQUNFCj4+PiArZXJyX2h3bW9uX2RldmljZToKPj4+ICsgICAg\n" + "IGh3bW9uX2RldmljZV91bnJlZ2lzdGVyKGRhdGEtPmh3bW9uX2Rldik7Cj4+PiArI2VuZGlmCj4+\n" + "PiAgZXJyX2NyZWF0ZV9ncm91cDoKPj4+ICAgICAgIHN5c2ZzX3JlbW92ZV9ncm91cCgmcGRldi0+\n" + "ZGV2LmtvYmosICZleHlub3M0X3RtdV9hdHRyX2dyb3VwKTsKPj4+ICBlcnJfY2xrOgo+Pj4gQEAg\n" + "LTQ1OCw2ICs0ODMsOSBAQCBzdGF0aWMgaW50IF9fZGV2ZXhpdCBleHlub3M0X3RtdV9yZW1vdmUo\n" + "c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPj4+Cj4+PiAgICAgICBleHlub3M0X3RtdV9j\n" + "b250cm9sKHBkZXYsIGZhbHNlKTsKPj4+Cj4+PiArI2lmZGVmIENPTkZJR19TQU1TVU5HX1RIRVJN\n" + "QUxfSU5URVJGQUNFCj4+PiArICAgICBleHlub3M0X3VucmVnaXN0ZXJfdGhlcm1hbCgpOwo+Pj4g\n" + "KyNlbmRpZgo+Pj4gICAgICAgaHdtb25fZGV2aWNlX3VucmVnaXN0ZXIoZGF0YS0+aHdtb25fZGV2\n" + "KTsKPj4+ICAgICAgIHN5c2ZzX3JlbW92ZV9ncm91cCgmcGRldi0+ZGV2LmtvYmosICZleHlub3M0\n" + "X3RtdV9hdHRyX2dyb3VwKTsKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wbGF0\n" + "Zm9ybV9kYXRhL2V4eW5vczRfdG11LmggYi9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvZXh5\n" + "bm9zNF90bXUuaAo+Pj4gaW5kZXggMzllMDM4Yy4uNjQyYzUwOCAxMDA2NDQKPj4+IC0tLSBhL2lu\n" + "Y2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS9leHlub3M0X3RtdS5oCj4+PiArKysgYi9pbmNsdWRl\n" + "L2xpbnV4L3BsYXRmb3JtX2RhdGEvZXh5bm9zNF90bXUuaAo+Pj4gQEAgLTIxLDYgKzIxLDcgQEAK\n" + "Pj4+Cj4+PiAgI2lmbmRlZiBfTElOVVhfRVhZTk9TNF9UTVVfSAo+Pj4gICNkZWZpbmUgX0xJTlVY\n" + "X0VYWU5PUzRfVE1VX0gKPj4+ICsjaW5jbHVkZSA8bGludXgvY3B1X2Nvb2xpbmcuaD4KPj4+Cj4+\n" + "PiAgZW51bSBjYWxpYnJhdGlvbl90eXBlIHsKPj4+ICAgICAgIFRZUEVfT05FX1BPSU5UX1RSSU1N\n" + "SU5HLAo+Pj4gQEAgLTY0LDYgKzY1LDkgQEAgZW51bSBjYWxpYnJhdGlvbl90eXBlIHsKPj4+ICAg\n" + "KiAgIGluIHRoZSBwb3NpdGl2ZS1UQyBnZW5lcmF0b3IgYmxvY2sKPj4+ICAgKiAgIDAgPD0gcmVm\n" + "ZXJlbmNlX3ZvbHRhZ2UgPD0gMzEKPj4+ICAgKiBAY2FsX3R5cGU6IGNhbGlicmF0aW9uIHR5cGUg\n" + "Zm9yIHRlbXBlcmF0dXJlCj4+PiArICogQGZyZXFfcGN0Z190YWJsZTogVGFibGUgcmVwcmVzZW50\n" + "aW5nIGZyZXF1ZW5jeSByZWR1Y3Rpb24gcGVyY2VudGFnZS4KPj4+ICsgKiBAZnJlcV90YWJfY291\n" + "bnQ6IENvdW50IG9mIHRoZSBhYm92ZSB0YWJsZSBhcyBmcmVxdWVuY3kgcmVkdWN0aW9uIG1heQo+\n" + "Pj4gKyAqICAgYXBwbGljYWJsZSB0byBvbmx5IHNvbWUgb2YgdGhlIHRyaWdnZXIgbGV2ZWxzLgo+\n" + "Pj4gICAqCj4+PiAgICogVGhpcyBzdHJ1Y3R1cmUgaXMgcmVxdWlyZWQgZm9yIGNvbmZpZ3VyYXRp\n" + "b24gb2YgZXh5bm9zNF90bXUgZHJpdmVyLgo+Pj4gICAqLwo+Pj4gQEAgLTc5LDUgKzgzLDggQEAg\n" + "c3RydWN0IGV4eW5vczRfdG11X3BsYXRmb3JtX2RhdGEgewo+Pj4gICAgICAgdTggcmVmZXJlbmNl\n" + "X3ZvbHRhZ2U7Cj4+Pgo+Pj4gICAgICAgZW51bSBjYWxpYnJhdGlvbl90eXBlIGNhbF90eXBlOwo+\n" + "Pj4gKwo+Pj4gKyAgICAgc3RydWN0IGZyZXFfcGN0Z190YWJsZSBmcmVxX3RhYls0XTsKPj4+ICsg\n" + "ICAgIHVuc2lnbmVkIGludCBmcmVxX3RhYl9jb3VudDsKPj4+ICB9Owo+Pj4gICNlbmRpZiAvKiBf\n" + "TElOVVhfRVhZTk9TNF9UTVVfSCAqLwo+Pgo+Pgo+IAoKCgpfX19fX19fX19fX19fX19fX19fX19f\n" + "X19fX19fX19fX19fX19fX19fX19fX19fXwpsbS1zZW5zb3JzIG1haWxpbmcgbGlzdApsbS1zZW5z\n" + "b3JzQGxtLXNlbnNvcnMub3JnCmh0dHA6Ly9saXN0cy5sbS1zZW5zb3JzLm9yZy9tYWlsbWFuL2xp\n" + c3RpbmZvL2xtLXNlbnNvcnM -bf53e3e34ae776ee56b55f0192369945546ad9435b892e97963cb16900fa2b7f +493fb3427def329b212ef448580aa8ea8220ee2306fb0889ae2e02924663e596
diff --git a/a/1.txt b/N2/1.txt index 65573f1..2bbf121 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -155,9 +155,4 @@ On 2012년 01월 04일 19:14, Amit Kachhap wrote: >>> #endif /* _LINUX_EXYNOS4_TMU_H */ >> >> -> - --- -To unsubscribe from this list: send the line "unsubscribe linux-acpi" in -the body of a message to majordomo@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo-info.html +> diff --git a/a/content_digest b/N2/content_digest index 7ff7667..d3f29a1 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -174,11 +174,6 @@ ">>> #endif /* _LINUX_EXYNOS4_TMU_H */\n" ">>\n" ">>\n" - "> \n" - "\n" - "--\n" - "To unsubscribe from this list: send the line \"unsubscribe linux-acpi\" in\n" - "the body of a message to majordomo@vger.kernel.org\n" - More majordomo info at http://vger.kernel.org/majordomo-info.html + > -bf53e3e34ae776ee56b55f0192369945546ad9435b892e97963cb16900fa2b7f +3bb499f5126c721f90ed251c463f7ad7ac99e5f8e0f584134c8466a383db79df
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.