All of lore.kernel.org
 help / color / mirror / Atom feed
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.