All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <50064593.1000302@samsung.com>

diff --git a/a/1.txt b/N1/1.txt
index ffa0731..17d9454 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,197 +1,135 @@
-Hi, Amit,
-On 2012년 07월 14일 16:30, amit kachhap wrote:
-> On Sat, Jul 14, 2012 at 7:03 AM, Kyungmin Park <kmpark@infradead.org> wrote:
->> On Fri, Jul 13, 2012 at 8:10 PM, Amit Daniel Kachhap
->> <amit.kachhap@linaro.org> wrote:
->>> Add necessary default platform data support needed for TMU driver.  This
->>> dt/non-dt values are tested for origen exynos4210 and smdk exynos5250
->>> platforms.
->> Looks good to me.
-> Thanks.
->
->> just nitpicks below.
->>
->> Thank you,
->> Kyungmin Park
->>> Signed-off-by: Amit Daniel Kachhap <amit.kachhap@linaro.org>
->>> Cc: Donggeun Kim <dg77.kim@samsung.com>
->>> Acked-by: Guenter Roeck <guenter.roeck@ericsson.com>
->>> Cc: SangWook Ju <sw.ju@samsung.com>
->>> Cc: Durgadoss <durgadoss.r@intel.com>
->>> Cc: Len Brown <lenb@kernel.org>
->>> Cc: Jean Delvare <khali@linux-fr.org>
->>> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
->>> ---
->>>  drivers/thermal/exynos_thermal.c |  111 +++++++++++++++++++++++++++++++++++++-
->>>  1 files changed, 110 insertions(+), 1 deletions(-)
->>>
->>> diff --git a/drivers/thermal/exynos_thermal.c b/drivers/thermal/exynos_thermal.c
->>> index 9ef8c37..07736ea 100644
->>> --- a/drivers/thermal/exynos_thermal.c
->>> +++ b/drivers/thermal/exynos_thermal.c
->>> @@ -662,14 +662,121 @@ static irqreturn_t exynos_tmu_irq(int irq, void *id)
->>>  static struct thermal_sensor_conf exynos_sensor_conf = {
->>>         .name                   = "exynos-therm",
->>>         .read_temperature       = (int (*)(void *))exynos_tmu_read,
->>> +};
->>> +
->>> +#if defined(CONFIG_CPU_EXYNOS4210)
->> BTW, doesn't it same as exynos4412? does it different from exynos4412?
-> Currently I only tested this only for origen and exynos5250 board.
-> Maybe somebody can add 4412 support also.
-Recently, I applied this patchset with exynos4412 and found it uses same
-register map with exynos5250.
-So, I think it should rename the any type of name containing exynos4 and
-exynos5 (e.g. SOC_ARCH_EXYNOS4)
-In my local, i renamed SOC_ARCH_EXYNOS4 to SOC_ARCH_EXYNOS4210 and
-SOC_ARCH_EXYNOS5 to SOC_ARCH_EXYNOS and
-other related name also. I recommend you to change all of name
->> If it's same, it's better to use CONFIG_SOC_EXYNOS4?
->>> +static struct exynos_tmu_platform_data const exynos4_default_tmu_data = {
->>> +       .threshold = 80,
->>> +       .trigger_levels[0] = 5,
->>> +       .trigger_levels[1] = 20,
->>> +       .trigger_levels[2] = 30,
->>> +       .trigger_level0_en = 1,
->>> +       .trigger_level1_en = 1,
->>> +       .trigger_level2_en = 1,
->>> +       .trigger_level3_en = 0,
->>> +       .gain = 15,
->>> +       .reference_voltage = 7,
->>> +       .cal_type = TYPE_ONE_POINT_TRIMMING,
->>> +       .freq_tab[0] = {
->>> +               .freq_clip_max = 800 * 1000,
->>> +               .temp_level = 85,
->>> +       },
->>> +       .freq_tab[1] = {
->>> +               .freq_clip_max = 200 * 1000,
->>> +               .temp_level = 100,
->>> +       },
->>> +       .freq_tab_count = 2,
->>> +       .type = SOC_ARCH_EXYNOS4,
->>> +};
->>> +#define EXYNOS4_TMU_DRV_DATA (&exynos4_default_tmu_data)
->>> +#else
->>> +#define EXYNOS4_TMU_DRV_DATA (NULL)
->>> +#endif
->>> +
->>> +#if defined(CONFIG_SOC_EXYNOS5250)
->> similar.
->>> +static struct exynos_tmu_platform_data const exynos5_default_tmu_data = {
->>> +       .trigger_levels[0] = 85,
->>> +       .trigger_levels[1] = 103,
->>> +       .trigger_levels[2] = 110,
->>> +       .trigger_level0_en = 1,
->>> +       .trigger_level1_en = 1,
->>> +       .trigger_level2_en = 1,
->>> +       .trigger_level3_en = 0,
->>> +       .gain = 8,
->>> +       .reference_voltage = 16,
->>> +       .noise_cancel_mode = 4,
->>> +       .cal_type = TYPE_ONE_POINT_TRIMMING,
->>> +       .efuse_value = 55,
->>> +       .freq_tab[0] = {
->>> +               .freq_clip_max = 800 * 1000,
->>> +               .temp_level = 85,
->>> +       },
->>> +       .freq_tab[1] = {
->>> +               .freq_clip_max = 200 * 1000,
->>> +               .temp_level = 103,
->>> +       },
->>> +       .freq_tab_count = 2,
->>> +       .type = SOC_ARCH_EXYNOS5,
->>> +};
->>> +#define EXYNOS5_TMU_DRV_DATA (&exynos5_default_tmu_data)
->>> +#else
->>> +#define EXYNOS5_TMU_DRV_DATA (NULL)
->>> +#endif
->>> +
->>> +#ifdef CONFIG_OF
->>> +static const struct of_device_id exynos_tmu_match[] = {
->>> +       {
->>> +               .compatible = "samsung,exynos4-tmu",
->>> +               .data = (void *)EXYNOS4_TMU_DRV_DATA,
->>> +       },
->>> +       {
->>> +               .compatible = "samsung,exynos5-tmu",
->>> +               .data = (void *)EXYNOS5_TMU_DRV_DATA,
->>> +       },
->>> +       {},
->>> +};
->>> +MODULE_DEVICE_TABLE(of, exynos_tmu_match);
->>> +#else
->>> +#define  exynos_tmu_match NULL
->>> +#endif
->>> +
->>> +static struct platform_device_id exynos_tmu_driver_ids[] = {
->>> +       {
->>> +               .name           = "exynos4-tmu",
->>> +               .driver_data    = (kernel_ulong_t)EXYNOS4_TMU_DRV_DATA,
->>> +       },
->>> +       {
->>> +               .name           = "exynos5-tmu",
->>> +               .driver_data    = (kernel_ulong_t)EXYNOS5_TMU_DRV_DATA,
->>> +       },
->>> +       { },
->>> +};
->>> +MODULE_DEVICE_TABLE(platform, exynos4_tmu_driver_ids);
->>> +
->>> +static inline struct  exynos_tmu_platform_data *exynos_get_driver_data(
->>> +                       struct platform_device *pdev)
->>> +{
->>> +#ifdef CONFIG_OF
->>> +       if (pdev->dev.of_node) {
->>> +               const struct of_device_id *match;
->>> +               match = of_match_node(exynos_tmu_match, pdev->dev.of_node);
->>> +               if (!match)
->>> +                       return NULL;
->>> +               return (struct exynos_tmu_platform_data *) match->data;
->>> +       }
->>> +#endif
->>> +       return (struct exynos_tmu_platform_data *)
->>> +                       platform_get_device_id(pdev)->driver_data;
->>>  }
->>> -;
->>>  static int __devinit exynos_tmu_probe(struct platform_device *pdev)
->>>  {
->>>         struct exynos_tmu_data *data;
->>>         struct exynos_tmu_platform_data *pdata = pdev->dev.platform_data;
->>>         int ret, i;
->>>
->>> +       if (!pdata)
->>> +               pdata = exynos_get_driver_data(pdev);
->>> +
->>>         if (!pdata) {
->>>                 dev_err(&pdev->dev, "No platform init data supplied.\n");
->>>                 return -ENODEV;
->>> @@ -838,9 +945,11 @@ static struct platform_driver exynos_tmu_driver = {
->>>                 .name   = "exynos-tmu",
->>>                 .owner  = THIS_MODULE,
->>>                 .pm     = EXYNOS_TMU_PM,
->>> +               .of_match_table = exynos_tmu_match,
->>>         },
->>>         .probe = exynos_tmu_probe,
->>>         .remove = __devexit_p(exynos_tmu_remove),
->>> +       .id_table = exynos_tmu_driver_ids,
->>>  };
->>>
->>>  module_platform_driver(exynos_tmu_driver);
->>> --
->>> 1.7.1
->>>
->>> --
->>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
->>> the body of a message to majordomo@vger.kernel.org
->>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
->>> Please read the FAQ at  http://www.tux.org/lkml/
->> --
->> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
->> the body of a message to majordomo@vger.kernel.org
->> More majordomo info at  http://vger.kernel.org/majordomo-info.html
-> --
-> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
-> the body of a message to majordomo@vger.kernel.org
-> More majordomo info at  http://vger.kernel.org/majordomo-info.html
-> Please read the FAQ at  http://www.tux.org/lkml/
->
-Thanks.
+SGksIEFtaXQsCk9uIDIwMTLrhYQgMDfsm5QgMTTsnbwgMTY6MzAsIGFtaXQga2FjaGhhcCB3cm90
+ZToKPiBPbiBTYXQsIEp1bCAxNCwgMjAxMiBhdCA3OjAzIEFNLCBLeXVuZ21pbiBQYXJrIDxrbXBh
+cmtAaW5mcmFkZWFkLm9yZz4gd3JvdGU6Cj4+IE9uIEZyaSwgSnVsIDEzLCAyMDEyIGF0IDg6MTAg
+UE0sIEFtaXQgRGFuaWVsIEthY2hoYXAKPj4gPGFtaXQua2FjaGhhcEBsaW5hcm8ub3JnPiB3cm90
+ZToKPj4+IEFkZCBuZWNlc3NhcnkgZGVmYXVsdCBwbGF0Zm9ybSBkYXRhIHN1cHBvcnQgbmVlZGVk
+IGZvciBUTVUgZHJpdmVyLiAgVGhpcwo+Pj4gZHQvbm9uLWR0IHZhbHVlcyBhcmUgdGVzdGVkIGZv
+ciBvcmlnZW4gZXh5bm9zNDIxMCBhbmQgc21kayBleHlub3M1MjUwCj4+PiBwbGF0Zm9ybXMuCj4+
+IExvb2tzIGdvb2QgdG8gbWUuCj4gVGhhbmtzLgo+Cj4+IGp1c3Qgbml0cGlja3MgYmVsb3cuCj4+
+Cj4+IFRoYW5rIHlvdSwKPj4gS3l1bmdtaW4gUGFyawo+Pj4gU2lnbmVkLW9mZi1ieTogQW1pdCBE
+YW5pZWwgS2FjaGhhcCA8YW1pdC5rYWNoaGFwQGxpbmFyby5vcmc+Cj4+PiBDYzogRG9uZ2dldW4g
+S2ltIDxkZzc3LmtpbUBzYW1zdW5nLmNvbT4KPj4+IEFja2VkLWJ5OiBHdWVudGVyIFJvZWNrIDxn
+dWVudGVyLnJvZWNrQGVyaWNzc29uLmNvbT4KPj4+IENjOiBTYW5nV29vayBKdSA8c3cuanVAc2Ft
+c3VuZy5jb20+Cj4+PiBDYzogRHVyZ2Fkb3NzIDxkdXJnYWRvc3MuckBpbnRlbC5jb20+Cj4+PiBD
+YzogTGVuIEJyb3duIDxsZW5iQGtlcm5lbC5vcmc+Cj4+PiBDYzogSmVhbiBEZWx2YXJlIDxraGFs
+aUBsaW51eC1mci5vcmc+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgTW9ydG9uIDxha3BtQGxp
+bnV4LWZvdW5kYXRpb24ub3JnPgo+Pj4gLS0tCj4+PiAgZHJpdmVycy90aGVybWFsL2V4eW5vc190
+aGVybWFsLmMgfCAgMTExICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4+
+PiAgMSBmaWxlcyBjaGFuZ2VkLCAxMTAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKPj4+
+Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL2V4eW5vc190aGVybWFsLmMgYi9kcml2
+ZXJzL3RoZXJtYWwvZXh5bm9zX3RoZXJtYWwuYwo+Pj4gaW5kZXggOWVmOGMzNy4uMDc3MzZlYSAx
+MDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvdGhlcm1hbC9leHlub3NfdGhlcm1hbC5jCj4+PiArKysg
+Yi9kcml2ZXJzL3RoZXJtYWwvZXh5bm9zX3RoZXJtYWwuYwo+Pj4gQEAgLTY2MiwxNCArNjYyLDEy
+MSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZXh5bm9zX3RtdV9pcnEoaW50IGlycSwgdm9pZCAqaWQp
+Cj4+PiAgc3RhdGljIHN0cnVjdCB0aGVybWFsX3NlbnNvcl9jb25mIGV4eW5vc19zZW5zb3JfY29u
+ZiA9IHsKPj4+ICAgICAgICAgLm5hbWUgICAgICAgICAgICAgICAgICAgPSAiZXh5bm9zLXRoZXJt
+IiwKPj4+ICAgICAgICAgLnJlYWRfdGVtcGVyYXR1cmUgICAgICAgPSAoaW50ICgqKSh2b2lkICop
+KWV4eW5vc190bXVfcmVhZCwKPj4+ICt9Owo+Pj4gKwo+Pj4gKyNpZiBkZWZpbmVkKENPTkZJR19D
+UFVfRVhZTk9TNDIxMCkKPj4gQlRXLCBkb2Vzbid0IGl0IHNhbWUgYXMgZXh5bm9zNDQxMj8gZG9l
+cyBpdCBkaWZmZXJlbnQgZnJvbSBleHlub3M0NDEyPwo+IEN1cnJlbnRseSBJIG9ubHkgdGVzdGVk
+IHRoaXMgb25seSBmb3Igb3JpZ2VuIGFuZCBleHlub3M1MjUwIGJvYXJkLgo+IE1heWJlIHNvbWVi
+b2R5IGNhbiBhZGQgNDQxMiBzdXBwb3J0IGFsc28uClJlY2VudGx5LCBJIGFwcGxpZWQgdGhpcyBw
+YXRjaHNldCB3aXRoIGV4eW5vczQ0MTIgYW5kIGZvdW5kIGl0IHVzZXMgc2FtZQpyZWdpc3RlciBt
+YXAgd2l0aCBleHlub3M1MjUwLgpTbywgSSB0aGluayBpdCBzaG91bGQgcmVuYW1lIHRoZSBhbnkg
+dHlwZSBvZiBuYW1lIGNvbnRhaW5pbmcgZXh5bm9zNCBhbmQKZXh5bm9zNSAoZS5nLiBTT0NfQVJD
+SF9FWFlOT1M0KQpJbiBteSBsb2NhbCwgaSByZW5hbWVkIFNPQ19BUkNIX0VYWU5PUzQgdG8gU09D
+X0FSQ0hfRVhZTk9TNDIxMCBhbmQKU09DX0FSQ0hfRVhZTk9TNSB0byBTT0NfQVJDSF9FWFlOT1Mg
+YW5kCm90aGVyIHJlbGF0ZWQgbmFtZSBhbHNvLiBJIHJlY29tbWVuZCB5b3UgdG8gY2hhbmdlIGFs
+bCBvZiBuYW1lCj4+IElmIGl0J3Mgc2FtZSwgaXQncyBiZXR0ZXIgdG8gdXNlIENPTkZJR19TT0Nf
+RVhZTk9TND8KPj4+ICtzdGF0aWMgc3RydWN0IGV4eW5vc190bXVfcGxhdGZvcm1fZGF0YSBjb25z
+dCBleHlub3M0X2RlZmF1bHRfdG11X2RhdGEgPSB7Cj4+PiArICAgICAgIC50aHJlc2hvbGQgPSA4
+MCwKPj4+ICsgICAgICAgLnRyaWdnZXJfbGV2ZWxzWzBdID0gNSwKPj4+ICsgICAgICAgLnRyaWdn
+ZXJfbGV2ZWxzWzFdID0gMjAsCj4+PiArICAgICAgIC50cmlnZ2VyX2xldmVsc1syXSA9IDMwLAo+
+Pj4gKyAgICAgICAudHJpZ2dlcl9sZXZlbDBfZW4gPSAxLAo+Pj4gKyAgICAgICAudHJpZ2dlcl9s
+ZXZlbDFfZW4gPSAxLAo+Pj4gKyAgICAgICAudHJpZ2dlcl9sZXZlbDJfZW4gPSAxLAo+Pj4gKyAg
+ICAgICAudHJpZ2dlcl9sZXZlbDNfZW4gPSAwLAo+Pj4gKyAgICAgICAuZ2FpbiA9IDE1LAo+Pj4g
+KyAgICAgICAucmVmZXJlbmNlX3ZvbHRhZ2UgPSA3LAo+Pj4gKyAgICAgICAuY2FsX3R5cGUgPSBU
+WVBFX09ORV9QT0lOVF9UUklNTUlORywKPj4+ICsgICAgICAgLmZyZXFfdGFiWzBdID0gewo+Pj4g
+KyAgICAgICAgICAgICAgIC5mcmVxX2NsaXBfbWF4ID0gODAwICogMTAwMCwKPj4+ICsgICAgICAg
+ICAgICAgICAudGVtcF9sZXZlbCA9IDg1LAo+Pj4gKyAgICAgICB9LAo+Pj4gKyAgICAgICAuZnJl
+cV90YWJbMV0gPSB7Cj4+PiArICAgICAgICAgICAgICAgLmZyZXFfY2xpcF9tYXggPSAyMDAgKiAx
+MDAwLAo+Pj4gKyAgICAgICAgICAgICAgIC50ZW1wX2xldmVsID0gMTAwLAo+Pj4gKyAgICAgICB9
+LAo+Pj4gKyAgICAgICAuZnJlcV90YWJfY291bnQgPSAyLAo+Pj4gKyAgICAgICAudHlwZSA9IFNP
+Q19BUkNIX0VYWU5PUzQsCj4+PiArfTsKPj4+ICsjZGVmaW5lIEVYWU5PUzRfVE1VX0RSVl9EQVRB
+ICgmZXh5bm9zNF9kZWZhdWx0X3RtdV9kYXRhKQo+Pj4gKyNlbHNlCj4+PiArI2RlZmluZSBFWFlO
+T1M0X1RNVV9EUlZfREFUQSAoTlVMTCkKPj4+ICsjZW5kaWYKPj4+ICsKPj4+ICsjaWYgZGVmaW5l
+ZChDT05GSUdfU09DX0VYWU5PUzUyNTApCj4+IHNpbWlsYXIuCj4+PiArc3RhdGljIHN0cnVjdCBl
+eHlub3NfdG11X3BsYXRmb3JtX2RhdGEgY29uc3QgZXh5bm9zNV9kZWZhdWx0X3RtdV9kYXRhID0g
+ewo+Pj4gKyAgICAgICAudHJpZ2dlcl9sZXZlbHNbMF0gPSA4NSwKPj4+ICsgICAgICAgLnRyaWdn
+ZXJfbGV2ZWxzWzFdID0gMTAzLAo+Pj4gKyAgICAgICAudHJpZ2dlcl9sZXZlbHNbMl0gPSAxMTAs
+Cj4+PiArICAgICAgIC50cmlnZ2VyX2xldmVsMF9lbiA9IDEsCj4+PiArICAgICAgIC50cmlnZ2Vy
+X2xldmVsMV9lbiA9IDEsCj4+PiArICAgICAgIC50cmlnZ2VyX2xldmVsMl9lbiA9IDEsCj4+PiAr
+ICAgICAgIC50cmlnZ2VyX2xldmVsM19lbiA9IDAsCj4+PiArICAgICAgIC5nYWluID0gOCwKPj4+
+ICsgICAgICAgLnJlZmVyZW5jZV92b2x0YWdlID0gMTYsCj4+PiArICAgICAgIC5ub2lzZV9jYW5j
+ZWxfbW9kZSA9IDQsCj4+PiArICAgICAgIC5jYWxfdHlwZSA9IFRZUEVfT05FX1BPSU5UX1RSSU1N
+SU5HLAo+Pj4gKyAgICAgICAuZWZ1c2VfdmFsdWUgPSA1NSwKPj4+ICsgICAgICAgLmZyZXFfdGFi
+WzBdID0gewo+Pj4gKyAgICAgICAgICAgICAgIC5mcmVxX2NsaXBfbWF4ID0gODAwICogMTAwMCwK
+Pj4+ICsgICAgICAgICAgICAgICAudGVtcF9sZXZlbCA9IDg1LAo+Pj4gKyAgICAgICB9LAo+Pj4g
+KyAgICAgICAuZnJlcV90YWJbMV0gPSB7Cj4+PiArICAgICAgICAgICAgICAgLmZyZXFfY2xpcF9t
+YXggPSAyMDAgKiAxMDAwLAo+Pj4gKyAgICAgICAgICAgICAgIC50ZW1wX2xldmVsID0gMTAzLAo+
+Pj4gKyAgICAgICB9LAo+Pj4gKyAgICAgICAuZnJlcV90YWJfY291bnQgPSAyLAo+Pj4gKyAgICAg
+ICAudHlwZSA9IFNPQ19BUkNIX0VYWU5PUzUsCj4+PiArfTsKPj4+ICsjZGVmaW5lIEVYWU5PUzVf
+VE1VX0RSVl9EQVRBICgmZXh5bm9zNV9kZWZhdWx0X3RtdV9kYXRhKQo+Pj4gKyNlbHNlCj4+PiAr
+I2RlZmluZSBFWFlOT1M1X1RNVV9EUlZfREFUQSAoTlVMTCkKPj4+ICsjZW5kaWYKPj4+ICsKPj4+
+ICsjaWZkZWYgQ09ORklHX09GCj4+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQg
+ZXh5bm9zX3RtdV9tYXRjaFtdID0gewo+Pj4gKyAgICAgICB7Cj4+PiArICAgICAgICAgICAgICAg
+LmNvbXBhdGlibGUgPSAic2Ftc3VuZyxleHlub3M0LXRtdSIsCj4+PiArICAgICAgICAgICAgICAg
+LmRhdGEgPSAodm9pZCAqKUVYWU5PUzRfVE1VX0RSVl9EQVRBLAo+Pj4gKyAgICAgICB9LAo+Pj4g
+KyAgICAgICB7Cj4+PiArICAgICAgICAgICAgICAgLmNvbXBhdGlibGUgPSAic2Ftc3VuZyxleHlu
+b3M1LXRtdSIsCj4+PiArICAgICAgICAgICAgICAgLmRhdGEgPSAodm9pZCAqKUVYWU5PUzVfVE1V
+X0RSVl9EQVRBLAo+Pj4gKyAgICAgICB9LAo+Pj4gKyAgICAgICB7fSwKPj4+ICt9Owo+Pj4gK01P
+RFVMRV9ERVZJQ0VfVEFCTEUob2YsIGV4eW5vc190bXVfbWF0Y2gpOwo+Pj4gKyNlbHNlCj4+PiAr
+I2RlZmluZSAgZXh5bm9zX3RtdV9tYXRjaCBOVUxMCj4+PiArI2VuZGlmCj4+PiArCj4+PiArc3Rh
+dGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2VfaWQgZXh5bm9zX3RtdV9kcml2ZXJfaWRzW10gPSB7
+Cj4+PiArICAgICAgIHsKPj4+ICsgICAgICAgICAgICAgICAubmFtZSAgICAgICAgICAgPSAiZXh5
+bm9zNC10bXUiLAo+Pj4gKyAgICAgICAgICAgICAgIC5kcml2ZXJfZGF0YSAgICA9IChrZXJuZWxf
+dWxvbmdfdClFWFlOT1M0X1RNVV9EUlZfREFUQSwKPj4+ICsgICAgICAgfSwKPj4+ICsgICAgICAg
+ewo+Pj4gKyAgICAgICAgICAgICAgIC5uYW1lICAgICAgICAgICA9ICJleHlub3M1LXRtdSIsCj4+
+PiArICAgICAgICAgICAgICAgLmRyaXZlcl9kYXRhICAgID0gKGtlcm5lbF91bG9uZ190KUVYWU5P
+UzVfVE1VX0RSVl9EQVRBLAo+Pj4gKyAgICAgICB9LAo+Pj4gKyAgICAgICB7IH0sCj4+PiArfTsK
+Pj4+ICtNT0RVTEVfREVWSUNFX1RBQkxFKHBsYXRmb3JtLCBleHlub3M0X3RtdV9kcml2ZXJfaWRz
+KTsKPj4+ICsKPj4+ICtzdGF0aWMgaW5saW5lIHN0cnVjdCAgZXh5bm9zX3RtdV9wbGF0Zm9ybV9k
+YXRhICpleHlub3NfZ2V0X2RyaXZlcl9kYXRhKAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAg
+c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPj4+ICt7Cj4+PiArI2lmZGVmIENPTkZJR19P
+Rgo+Pj4gKyAgICAgICBpZiAocGRldi0+ZGV2Lm9mX25vZGUpIHsKPj4+ICsgICAgICAgICAgICAg
+ICBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICptYXRjaDsKPj4+ICsgICAgICAgICAgICAgICBt
+YXRjaCA9IG9mX21hdGNoX25vZGUoZXh5bm9zX3RtdV9tYXRjaCwgcGRldi0+ZGV2Lm9mX25vZGUp
+Owo+Pj4gKyAgICAgICAgICAgICAgIGlmICghbWF0Y2gpCj4+PiArICAgICAgICAgICAgICAgICAg
+ICAgICByZXR1cm4gTlVMTDsKPj4+ICsgICAgICAgICAgICAgICByZXR1cm4gKHN0cnVjdCBleHlu
+b3NfdG11X3BsYXRmb3JtX2RhdGEgKikgbWF0Y2gtPmRhdGE7Cj4+PiArICAgICAgIH0KPj4+ICsj
+ZW5kaWYKPj4+ICsgICAgICAgcmV0dXJuIChzdHJ1Y3QgZXh5bm9zX3RtdV9wbGF0Zm9ybV9kYXRh
+ICopCj4+PiArICAgICAgICAgICAgICAgICAgICAgICBwbGF0Zm9ybV9nZXRfZGV2aWNlX2lkKHBk
+ZXYpLT5kcml2ZXJfZGF0YTsKPj4+ICB9Cj4+PiAtOwo+Pj4gIHN0YXRpYyBpbnQgX19kZXZpbml0
+IGV4eW5vc190bXVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPj4+ICB7Cj4+
+PiAgICAgICAgIHN0cnVjdCBleHlub3NfdG11X2RhdGEgKmRhdGE7Cj4+PiAgICAgICAgIHN0cnVj
+dCBleHlub3NfdG11X3BsYXRmb3JtX2RhdGEgKnBkYXRhID0gcGRldi0+ZGV2LnBsYXRmb3JtX2Rh
+dGE7Cj4+PiAgICAgICAgIGludCByZXQsIGk7Cj4+Pgo+Pj4gKyAgICAgICBpZiAoIXBkYXRhKQo+
+Pj4gKyAgICAgICAgICAgICAgIHBkYXRhID0gZXh5bm9zX2dldF9kcml2ZXJfZGF0YShwZGV2KTsK
+Pj4+ICsKPj4+ICAgICAgICAgaWYgKCFwZGF0YSkgewo+Pj4gICAgICAgICAgICAgICAgIGRldl9l
+cnIoJnBkZXYtPmRldiwgIk5vIHBsYXRmb3JtIGluaXQgZGF0YSBzdXBwbGllZC5cbiIpOwo+Pj4g
+ICAgICAgICAgICAgICAgIHJldHVybiAtRU5PREVWOwo+Pj4gQEAgLTgzOCw5ICs5NDUsMTEgQEAg
+c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZXh5bm9zX3RtdV9kcml2ZXIgPSB7Cj4+PiAg
+ICAgICAgICAgICAgICAgLm5hbWUgICA9ICJleHlub3MtdG11IiwKPj4+ICAgICAgICAgICAgICAg
+ICAub3duZXIgID0gVEhJU19NT0RVTEUsCj4+PiAgICAgICAgICAgICAgICAgLnBtICAgICA9IEVY
+WU5PU19UTVVfUE0sCj4+PiArICAgICAgICAgICAgICAgLm9mX21hdGNoX3RhYmxlID0gZXh5bm9z
+X3RtdV9tYXRjaCwKPj4+ICAgICAgICAgfSwKPj4+ICAgICAgICAgLnByb2JlID0gZXh5bm9zX3Rt
+dV9wcm9iZSwKPj4+ICAgICAgICAgLnJlbW92ZSA9IF9fZGV2ZXhpdF9wKGV4eW5vc190bXVfcmVt
+b3ZlKSwKPj4+ICsgICAgICAgLmlkX3RhYmxlID0gZXh5bm9zX3RtdV9kcml2ZXJfaWRzLAo+Pj4g
+IH07Cj4+Pgo+Pj4gIG1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoZXh5bm9zX3RtdV9kcml2ZXIpOwo+
+Pj4gLS0KPj4+IDEuNy4xCj4+Pgo+Pj4gLS0KPj4+IFRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBs
+aXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSBsaW51eC1rZXJuZWwiIGluCj4+PiB0aGUg
+Ym9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZwo+Pj4gTW9yZSBt
+YWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpvcmRvbW8taW5mby5o
+dG1sCj4+PiBQbGVhc2UgcmVhZCB0aGUgRkFRIGF0ICBodHRwOi8vd3d3LnR1eC5vcmcvbGttbC8K
+Pj4gLS0KPj4gVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVu
+c3Vic2NyaWJlIGxpbnV4LXNhbXN1bmctc29jIiBpbgo+PiB0aGUgYm9keSBvZiBhIG1lc3NhZ2Ug
+dG8gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZwo+PiBNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBo
+dHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwKPiAtLQo+IFRvIHVuc3Vi
+c2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSBsaW51eC1r
+ZXJuZWwiIGluCj4gdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtlcm5l
+bC5vcmcKPiBNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21h
+am9yZG9tby1pbmZvLmh0bWwKPiBQbGVhc2UgcmVhZCB0aGUgRkFRIGF0ICBodHRwOi8vd3d3LnR1
+eC5vcmcvbGttbC8KPgpUaGFua3MuCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
+X19fX19fX19fX19fX19fCmxtLXNlbnNvcnMgbWFpbGluZyBsaXN0CmxtLXNlbnNvcnNAbG0tc2Vu
+c29ycy5vcmcKaHR0cDovL2xpc3RzLmxtLXNlbnNvcnMub3JnL21haWxtYW4vbGlzdGluZm8vbG0t
+c2Vuc29ycw=
diff --git a/a/content_digest b/N1/content_digest
index c7c1ef9..eda157c 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -3,8 +3,8 @@
  "ref\0CAH9JG2XGWgX-FiBacnrGXS-oG_7rbN1aum3mpW5HUAukiwaB7A@mail.gmail.com\0"
  "ref\0CADGdYn6SPTosESY5YXa=Q0PoHTiW28VYgSJuZODj0tj0kU_y=g@mail.gmail.com\0"
  "From\0jonghwa3.lee@samsung.com\0"
- "Subject\0Re: [PATCH v5 5/5] ARM: exynos: add thermal sensor driver platform data support\0"
- "Date\0Wed, 18 Jul 2012 14:11:47 +0900\0"
+ "Subject\0Re: [lm-sensors] [PATCH v5 5/5] ARM: exynos: add thermal sensor driver platform data support\0"
+ "Date\0Wed, 18 Jul 2012 05:11:47 +0000\0"
  "To\0amit kachhap <amit.kachhap@gmail.com>\0"
  "Cc\0Kyungmin Park <kmpark@infradead.org>"
   linux-pm@lists.linux-foundation.org
@@ -19,202 +19,140 @@
  " Jean Delvare <khali@linux-fr.org>\0"
  "\00:1\0"
  "b\0"
- "Hi, Amit,\n"
- "On 2012\353\205\204 07\354\233\224 14\354\235\274 16:30, amit kachhap wrote:\n"
- "> On Sat, Jul 14, 2012 at 7:03 AM, Kyungmin Park <kmpark@infradead.org> wrote:\n"
- ">> On Fri, Jul 13, 2012 at 8:10 PM, Amit Daniel Kachhap\n"
- ">> <amit.kachhap@linaro.org> wrote:\n"
- ">>> Add necessary default platform data support needed for TMU driver.  This\n"
- ">>> dt/non-dt values are tested for origen exynos4210 and smdk exynos5250\n"
- ">>> platforms.\n"
- ">> Looks good to me.\n"
- "> Thanks.\n"
- ">\n"
- ">> just nitpicks below.\n"
- ">>\n"
- ">> Thank you,\n"
- ">> Kyungmin Park\n"
- ">>> Signed-off-by: Amit Daniel Kachhap <amit.kachhap@linaro.org>\n"
- ">>> Cc: Donggeun Kim <dg77.kim@samsung.com>\n"
- ">>> Acked-by: Guenter Roeck <guenter.roeck@ericsson.com>\n"
- ">>> Cc: SangWook Ju <sw.ju@samsung.com>\n"
- ">>> Cc: Durgadoss <durgadoss.r@intel.com>\n"
- ">>> Cc: Len Brown <lenb@kernel.org>\n"
- ">>> Cc: Jean Delvare <khali@linux-fr.org>\n"
- ">>> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>\n"
- ">>> ---\n"
- ">>>  drivers/thermal/exynos_thermal.c |  111 +++++++++++++++++++++++++++++++++++++-\n"
- ">>>  1 files changed, 110 insertions(+), 1 deletions(-)\n"
- ">>>\n"
- ">>> diff --git a/drivers/thermal/exynos_thermal.c b/drivers/thermal/exynos_thermal.c\n"
- ">>> index 9ef8c37..07736ea 100644\n"
- ">>> --- a/drivers/thermal/exynos_thermal.c\n"
- ">>> +++ b/drivers/thermal/exynos_thermal.c\n"
- ">>> @@ -662,14 +662,121 @@ static irqreturn_t exynos_tmu_irq(int irq, void *id)\n"
- ">>>  static struct thermal_sensor_conf exynos_sensor_conf = {\n"
- ">>>         .name                   = \"exynos-therm\",\n"
- ">>>         .read_temperature       = (int (*)(void *))exynos_tmu_read,\n"
- ">>> +};\n"
- ">>> +\n"
- ">>> +#if defined(CONFIG_CPU_EXYNOS4210)\n"
- ">> BTW, doesn't it same as exynos4412? does it different from exynos4412?\n"
- "> Currently I only tested this only for origen and exynos5250 board.\n"
- "> Maybe somebody can add 4412 support also.\n"
- "Recently, I applied this patchset with exynos4412 and found it uses same\n"
- "register map with exynos5250.\n"
- "So, I think it should rename the any type of name containing exynos4 and\n"
- "exynos5 (e.g. SOC_ARCH_EXYNOS4)\n"
- "In my local, i renamed SOC_ARCH_EXYNOS4 to SOC_ARCH_EXYNOS4210 and\n"
- "SOC_ARCH_EXYNOS5 to SOC_ARCH_EXYNOS and\n"
- "other related name also. I recommend you to change all of name\n"
- ">> If it's same, it's better to use CONFIG_SOC_EXYNOS4?\n"
- ">>> +static struct exynos_tmu_platform_data const exynos4_default_tmu_data = {\n"
- ">>> +       .threshold = 80,\n"
- ">>> +       .trigger_levels[0] = 5,\n"
- ">>> +       .trigger_levels[1] = 20,\n"
- ">>> +       .trigger_levels[2] = 30,\n"
- ">>> +       .trigger_level0_en = 1,\n"
- ">>> +       .trigger_level1_en = 1,\n"
- ">>> +       .trigger_level2_en = 1,\n"
- ">>> +       .trigger_level3_en = 0,\n"
- ">>> +       .gain = 15,\n"
- ">>> +       .reference_voltage = 7,\n"
- ">>> +       .cal_type = TYPE_ONE_POINT_TRIMMING,\n"
- ">>> +       .freq_tab[0] = {\n"
- ">>> +               .freq_clip_max = 800 * 1000,\n"
- ">>> +               .temp_level = 85,\n"
- ">>> +       },\n"
- ">>> +       .freq_tab[1] = {\n"
- ">>> +               .freq_clip_max = 200 * 1000,\n"
- ">>> +               .temp_level = 100,\n"
- ">>> +       },\n"
- ">>> +       .freq_tab_count = 2,\n"
- ">>> +       .type = SOC_ARCH_EXYNOS4,\n"
- ">>> +};\n"
- ">>> +#define EXYNOS4_TMU_DRV_DATA (&exynos4_default_tmu_data)\n"
- ">>> +#else\n"
- ">>> +#define EXYNOS4_TMU_DRV_DATA (NULL)\n"
- ">>> +#endif\n"
- ">>> +\n"
- ">>> +#if defined(CONFIG_SOC_EXYNOS5250)\n"
- ">> similar.\n"
- ">>> +static struct exynos_tmu_platform_data const exynos5_default_tmu_data = {\n"
- ">>> +       .trigger_levels[0] = 85,\n"
- ">>> +       .trigger_levels[1] = 103,\n"
- ">>> +       .trigger_levels[2] = 110,\n"
- ">>> +       .trigger_level0_en = 1,\n"
- ">>> +       .trigger_level1_en = 1,\n"
- ">>> +       .trigger_level2_en = 1,\n"
- ">>> +       .trigger_level3_en = 0,\n"
- ">>> +       .gain = 8,\n"
- ">>> +       .reference_voltage = 16,\n"
- ">>> +       .noise_cancel_mode = 4,\n"
- ">>> +       .cal_type = TYPE_ONE_POINT_TRIMMING,\n"
- ">>> +       .efuse_value = 55,\n"
- ">>> +       .freq_tab[0] = {\n"
- ">>> +               .freq_clip_max = 800 * 1000,\n"
- ">>> +               .temp_level = 85,\n"
- ">>> +       },\n"
- ">>> +       .freq_tab[1] = {\n"
- ">>> +               .freq_clip_max = 200 * 1000,\n"
- ">>> +               .temp_level = 103,\n"
- ">>> +       },\n"
- ">>> +       .freq_tab_count = 2,\n"
- ">>> +       .type = SOC_ARCH_EXYNOS5,\n"
- ">>> +};\n"
- ">>> +#define EXYNOS5_TMU_DRV_DATA (&exynos5_default_tmu_data)\n"
- ">>> +#else\n"
- ">>> +#define EXYNOS5_TMU_DRV_DATA (NULL)\n"
- ">>> +#endif\n"
- ">>> +\n"
- ">>> +#ifdef CONFIG_OF\n"
- ">>> +static const struct of_device_id exynos_tmu_match[] = {\n"
- ">>> +       {\n"
- ">>> +               .compatible = \"samsung,exynos4-tmu\",\n"
- ">>> +               .data = (void *)EXYNOS4_TMU_DRV_DATA,\n"
- ">>> +       },\n"
- ">>> +       {\n"
- ">>> +               .compatible = \"samsung,exynos5-tmu\",\n"
- ">>> +               .data = (void *)EXYNOS5_TMU_DRV_DATA,\n"
- ">>> +       },\n"
- ">>> +       {},\n"
- ">>> +};\n"
- ">>> +MODULE_DEVICE_TABLE(of, exynos_tmu_match);\n"
- ">>> +#else\n"
- ">>> +#define  exynos_tmu_match NULL\n"
- ">>> +#endif\n"
- ">>> +\n"
- ">>> +static struct platform_device_id exynos_tmu_driver_ids[] = {\n"
- ">>> +       {\n"
- ">>> +               .name           = \"exynos4-tmu\",\n"
- ">>> +               .driver_data    = (kernel_ulong_t)EXYNOS4_TMU_DRV_DATA,\n"
- ">>> +       },\n"
- ">>> +       {\n"
- ">>> +               .name           = \"exynos5-tmu\",\n"
- ">>> +               .driver_data    = (kernel_ulong_t)EXYNOS5_TMU_DRV_DATA,\n"
- ">>> +       },\n"
- ">>> +       { },\n"
- ">>> +};\n"
- ">>> +MODULE_DEVICE_TABLE(platform, exynos4_tmu_driver_ids);\n"
- ">>> +\n"
- ">>> +static inline struct  exynos_tmu_platform_data *exynos_get_driver_data(\n"
- ">>> +                       struct platform_device *pdev)\n"
- ">>> +{\n"
- ">>> +#ifdef CONFIG_OF\n"
- ">>> +       if (pdev->dev.of_node) {\n"
- ">>> +               const struct of_device_id *match;\n"
- ">>> +               match = of_match_node(exynos_tmu_match, pdev->dev.of_node);\n"
- ">>> +               if (!match)\n"
- ">>> +                       return NULL;\n"
- ">>> +               return (struct exynos_tmu_platform_data *) match->data;\n"
- ">>> +       }\n"
- ">>> +#endif\n"
- ">>> +       return (struct exynos_tmu_platform_data *)\n"
- ">>> +                       platform_get_device_id(pdev)->driver_data;\n"
- ">>>  }\n"
- ">>> -;\n"
- ">>>  static int __devinit exynos_tmu_probe(struct platform_device *pdev)\n"
- ">>>  {\n"
- ">>>         struct exynos_tmu_data *data;\n"
- ">>>         struct exynos_tmu_platform_data *pdata = pdev->dev.platform_data;\n"
- ">>>         int ret, i;\n"
- ">>>\n"
- ">>> +       if (!pdata)\n"
- ">>> +               pdata = exynos_get_driver_data(pdev);\n"
- ">>> +\n"
- ">>>         if (!pdata) {\n"
- ">>>                 dev_err(&pdev->dev, \"No platform init data supplied.\\n\");\n"
- ">>>                 return -ENODEV;\n"
- ">>> @@ -838,9 +945,11 @@ static struct platform_driver exynos_tmu_driver = {\n"
- ">>>                 .name   = \"exynos-tmu\",\n"
- ">>>                 .owner  = THIS_MODULE,\n"
- ">>>                 .pm     = EXYNOS_TMU_PM,\n"
- ">>> +               .of_match_table = exynos_tmu_match,\n"
- ">>>         },\n"
- ">>>         .probe = exynos_tmu_probe,\n"
- ">>>         .remove = __devexit_p(exynos_tmu_remove),\n"
- ">>> +       .id_table = exynos_tmu_driver_ids,\n"
- ">>>  };\n"
- ">>>\n"
- ">>>  module_platform_driver(exynos_tmu_driver);\n"
- ">>> --\n"
- ">>> 1.7.1\n"
- ">>>\n"
- ">>> --\n"
- ">>> To unsubscribe from this list: send the line \"unsubscribe linux-kernel\" in\n"
- ">>> the body of a message to majordomo@vger.kernel.org\n"
- ">>> More majordomo info at  http://vger.kernel.org/majordomo-info.html\n"
- ">>> Please read the FAQ at  http://www.tux.org/lkml/\n"
- ">> --\n"
- ">> To unsubscribe from this list: send the line \"unsubscribe linux-samsung-soc\" in\n"
- ">> the body of a message to majordomo@vger.kernel.org\n"
- ">> More majordomo info at  http://vger.kernel.org/majordomo-info.html\n"
- "> --\n"
- "> To unsubscribe from this list: send the line \"unsubscribe linux-kernel\" in\n"
- "> the body of a message to majordomo@vger.kernel.org\n"
- "> More majordomo info at  http://vger.kernel.org/majordomo-info.html\n"
- "> Please read the FAQ at  http://www.tux.org/lkml/\n"
- ">\n"
- Thanks.
+ "SGksIEFtaXQsCk9uIDIwMTLrhYQgMDfsm5QgMTTsnbwgMTY6MzAsIGFtaXQga2FjaGhhcCB3cm90\n"
+ "ZToKPiBPbiBTYXQsIEp1bCAxNCwgMjAxMiBhdCA3OjAzIEFNLCBLeXVuZ21pbiBQYXJrIDxrbXBh\n"
+ "cmtAaW5mcmFkZWFkLm9yZz4gd3JvdGU6Cj4+IE9uIEZyaSwgSnVsIDEzLCAyMDEyIGF0IDg6MTAg\n"
+ "UE0sIEFtaXQgRGFuaWVsIEthY2hoYXAKPj4gPGFtaXQua2FjaGhhcEBsaW5hcm8ub3JnPiB3cm90\n"
+ "ZToKPj4+IEFkZCBuZWNlc3NhcnkgZGVmYXVsdCBwbGF0Zm9ybSBkYXRhIHN1cHBvcnQgbmVlZGVk\n"
+ "IGZvciBUTVUgZHJpdmVyLiAgVGhpcwo+Pj4gZHQvbm9uLWR0IHZhbHVlcyBhcmUgdGVzdGVkIGZv\n"
+ "ciBvcmlnZW4gZXh5bm9zNDIxMCBhbmQgc21kayBleHlub3M1MjUwCj4+PiBwbGF0Zm9ybXMuCj4+\n"
+ "IExvb2tzIGdvb2QgdG8gbWUuCj4gVGhhbmtzLgo+Cj4+IGp1c3Qgbml0cGlja3MgYmVsb3cuCj4+\n"
+ "Cj4+IFRoYW5rIHlvdSwKPj4gS3l1bmdtaW4gUGFyawo+Pj4gU2lnbmVkLW9mZi1ieTogQW1pdCBE\n"
+ "YW5pZWwgS2FjaGhhcCA8YW1pdC5rYWNoaGFwQGxpbmFyby5vcmc+Cj4+PiBDYzogRG9uZ2dldW4g\n"
+ "S2ltIDxkZzc3LmtpbUBzYW1zdW5nLmNvbT4KPj4+IEFja2VkLWJ5OiBHdWVudGVyIFJvZWNrIDxn\n"
+ "dWVudGVyLnJvZWNrQGVyaWNzc29uLmNvbT4KPj4+IENjOiBTYW5nV29vayBKdSA8c3cuanVAc2Ft\n"
+ "c3VuZy5jb20+Cj4+PiBDYzogRHVyZ2Fkb3NzIDxkdXJnYWRvc3MuckBpbnRlbC5jb20+Cj4+PiBD\n"
+ "YzogTGVuIEJyb3duIDxsZW5iQGtlcm5lbC5vcmc+Cj4+PiBDYzogSmVhbiBEZWx2YXJlIDxraGFs\n"
+ "aUBsaW51eC1mci5vcmc+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgTW9ydG9uIDxha3BtQGxp\n"
+ "bnV4LWZvdW5kYXRpb24ub3JnPgo+Pj4gLS0tCj4+PiAgZHJpdmVycy90aGVybWFsL2V4eW5vc190\n"
+ "aGVybWFsLmMgfCAgMTExICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4+\n"
+ "PiAgMSBmaWxlcyBjaGFuZ2VkLCAxMTAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKPj4+\n"
+ "Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL2V4eW5vc190aGVybWFsLmMgYi9kcml2\n"
+ "ZXJzL3RoZXJtYWwvZXh5bm9zX3RoZXJtYWwuYwo+Pj4gaW5kZXggOWVmOGMzNy4uMDc3MzZlYSAx\n"
+ "MDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvdGhlcm1hbC9leHlub3NfdGhlcm1hbC5jCj4+PiArKysg\n"
+ "Yi9kcml2ZXJzL3RoZXJtYWwvZXh5bm9zX3RoZXJtYWwuYwo+Pj4gQEAgLTY2MiwxNCArNjYyLDEy\n"
+ "MSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZXh5bm9zX3RtdV9pcnEoaW50IGlycSwgdm9pZCAqaWQp\n"
+ "Cj4+PiAgc3RhdGljIHN0cnVjdCB0aGVybWFsX3NlbnNvcl9jb25mIGV4eW5vc19zZW5zb3JfY29u\n"
+ "ZiA9IHsKPj4+ICAgICAgICAgLm5hbWUgICAgICAgICAgICAgICAgICAgPSAiZXh5bm9zLXRoZXJt\n"
+ "IiwKPj4+ICAgICAgICAgLnJlYWRfdGVtcGVyYXR1cmUgICAgICAgPSAoaW50ICgqKSh2b2lkICop\n"
+ "KWV4eW5vc190bXVfcmVhZCwKPj4+ICt9Owo+Pj4gKwo+Pj4gKyNpZiBkZWZpbmVkKENPTkZJR19D\n"
+ "UFVfRVhZTk9TNDIxMCkKPj4gQlRXLCBkb2Vzbid0IGl0IHNhbWUgYXMgZXh5bm9zNDQxMj8gZG9l\n"
+ "cyBpdCBkaWZmZXJlbnQgZnJvbSBleHlub3M0NDEyPwo+IEN1cnJlbnRseSBJIG9ubHkgdGVzdGVk\n"
+ "IHRoaXMgb25seSBmb3Igb3JpZ2VuIGFuZCBleHlub3M1MjUwIGJvYXJkLgo+IE1heWJlIHNvbWVi\n"
+ "b2R5IGNhbiBhZGQgNDQxMiBzdXBwb3J0IGFsc28uClJlY2VudGx5LCBJIGFwcGxpZWQgdGhpcyBw\n"
+ "YXRjaHNldCB3aXRoIGV4eW5vczQ0MTIgYW5kIGZvdW5kIGl0IHVzZXMgc2FtZQpyZWdpc3RlciBt\n"
+ "YXAgd2l0aCBleHlub3M1MjUwLgpTbywgSSB0aGluayBpdCBzaG91bGQgcmVuYW1lIHRoZSBhbnkg\n"
+ "dHlwZSBvZiBuYW1lIGNvbnRhaW5pbmcgZXh5bm9zNCBhbmQKZXh5bm9zNSAoZS5nLiBTT0NfQVJD\n"
+ "SF9FWFlOT1M0KQpJbiBteSBsb2NhbCwgaSByZW5hbWVkIFNPQ19BUkNIX0VYWU5PUzQgdG8gU09D\n"
+ "X0FSQ0hfRVhZTk9TNDIxMCBhbmQKU09DX0FSQ0hfRVhZTk9TNSB0byBTT0NfQVJDSF9FWFlOT1Mg\n"
+ "YW5kCm90aGVyIHJlbGF0ZWQgbmFtZSBhbHNvLiBJIHJlY29tbWVuZCB5b3UgdG8gY2hhbmdlIGFs\n"
+ "bCBvZiBuYW1lCj4+IElmIGl0J3Mgc2FtZSwgaXQncyBiZXR0ZXIgdG8gdXNlIENPTkZJR19TT0Nf\n"
+ "RVhZTk9TND8KPj4+ICtzdGF0aWMgc3RydWN0IGV4eW5vc190bXVfcGxhdGZvcm1fZGF0YSBjb25z\n"
+ "dCBleHlub3M0X2RlZmF1bHRfdG11X2RhdGEgPSB7Cj4+PiArICAgICAgIC50aHJlc2hvbGQgPSA4\n"
+ "MCwKPj4+ICsgICAgICAgLnRyaWdnZXJfbGV2ZWxzWzBdID0gNSwKPj4+ICsgICAgICAgLnRyaWdn\n"
+ "ZXJfbGV2ZWxzWzFdID0gMjAsCj4+PiArICAgICAgIC50cmlnZ2VyX2xldmVsc1syXSA9IDMwLAo+\n"
+ "Pj4gKyAgICAgICAudHJpZ2dlcl9sZXZlbDBfZW4gPSAxLAo+Pj4gKyAgICAgICAudHJpZ2dlcl9s\n"
+ "ZXZlbDFfZW4gPSAxLAo+Pj4gKyAgICAgICAudHJpZ2dlcl9sZXZlbDJfZW4gPSAxLAo+Pj4gKyAg\n"
+ "ICAgICAudHJpZ2dlcl9sZXZlbDNfZW4gPSAwLAo+Pj4gKyAgICAgICAuZ2FpbiA9IDE1LAo+Pj4g\n"
+ "KyAgICAgICAucmVmZXJlbmNlX3ZvbHRhZ2UgPSA3LAo+Pj4gKyAgICAgICAuY2FsX3R5cGUgPSBU\n"
+ "WVBFX09ORV9QT0lOVF9UUklNTUlORywKPj4+ICsgICAgICAgLmZyZXFfdGFiWzBdID0gewo+Pj4g\n"
+ "KyAgICAgICAgICAgICAgIC5mcmVxX2NsaXBfbWF4ID0gODAwICogMTAwMCwKPj4+ICsgICAgICAg\n"
+ "ICAgICAgICAudGVtcF9sZXZlbCA9IDg1LAo+Pj4gKyAgICAgICB9LAo+Pj4gKyAgICAgICAuZnJl\n"
+ "cV90YWJbMV0gPSB7Cj4+PiArICAgICAgICAgICAgICAgLmZyZXFfY2xpcF9tYXggPSAyMDAgKiAx\n"
+ "MDAwLAo+Pj4gKyAgICAgICAgICAgICAgIC50ZW1wX2xldmVsID0gMTAwLAo+Pj4gKyAgICAgICB9\n"
+ "LAo+Pj4gKyAgICAgICAuZnJlcV90YWJfY291bnQgPSAyLAo+Pj4gKyAgICAgICAudHlwZSA9IFNP\n"
+ "Q19BUkNIX0VYWU5PUzQsCj4+PiArfTsKPj4+ICsjZGVmaW5lIEVYWU5PUzRfVE1VX0RSVl9EQVRB\n"
+ "ICgmZXh5bm9zNF9kZWZhdWx0X3RtdV9kYXRhKQo+Pj4gKyNlbHNlCj4+PiArI2RlZmluZSBFWFlO\n"
+ "T1M0X1RNVV9EUlZfREFUQSAoTlVMTCkKPj4+ICsjZW5kaWYKPj4+ICsKPj4+ICsjaWYgZGVmaW5l\n"
+ "ZChDT05GSUdfU09DX0VYWU5PUzUyNTApCj4+IHNpbWlsYXIuCj4+PiArc3RhdGljIHN0cnVjdCBl\n"
+ "eHlub3NfdG11X3BsYXRmb3JtX2RhdGEgY29uc3QgZXh5bm9zNV9kZWZhdWx0X3RtdV9kYXRhID0g\n"
+ "ewo+Pj4gKyAgICAgICAudHJpZ2dlcl9sZXZlbHNbMF0gPSA4NSwKPj4+ICsgICAgICAgLnRyaWdn\n"
+ "ZXJfbGV2ZWxzWzFdID0gMTAzLAo+Pj4gKyAgICAgICAudHJpZ2dlcl9sZXZlbHNbMl0gPSAxMTAs\n"
+ "Cj4+PiArICAgICAgIC50cmlnZ2VyX2xldmVsMF9lbiA9IDEsCj4+PiArICAgICAgIC50cmlnZ2Vy\n"
+ "X2xldmVsMV9lbiA9IDEsCj4+PiArICAgICAgIC50cmlnZ2VyX2xldmVsMl9lbiA9IDEsCj4+PiAr\n"
+ "ICAgICAgIC50cmlnZ2VyX2xldmVsM19lbiA9IDAsCj4+PiArICAgICAgIC5nYWluID0gOCwKPj4+\n"
+ "ICsgICAgICAgLnJlZmVyZW5jZV92b2x0YWdlID0gMTYsCj4+PiArICAgICAgIC5ub2lzZV9jYW5j\n"
+ "ZWxfbW9kZSA9IDQsCj4+PiArICAgICAgIC5jYWxfdHlwZSA9IFRZUEVfT05FX1BPSU5UX1RSSU1N\n"
+ "SU5HLAo+Pj4gKyAgICAgICAuZWZ1c2VfdmFsdWUgPSA1NSwKPj4+ICsgICAgICAgLmZyZXFfdGFi\n"
+ "WzBdID0gewo+Pj4gKyAgICAgICAgICAgICAgIC5mcmVxX2NsaXBfbWF4ID0gODAwICogMTAwMCwK\n"
+ "Pj4+ICsgICAgICAgICAgICAgICAudGVtcF9sZXZlbCA9IDg1LAo+Pj4gKyAgICAgICB9LAo+Pj4g\n"
+ "KyAgICAgICAuZnJlcV90YWJbMV0gPSB7Cj4+PiArICAgICAgICAgICAgICAgLmZyZXFfY2xpcF9t\n"
+ "YXggPSAyMDAgKiAxMDAwLAo+Pj4gKyAgICAgICAgICAgICAgIC50ZW1wX2xldmVsID0gMTAzLAo+\n"
+ "Pj4gKyAgICAgICB9LAo+Pj4gKyAgICAgICAuZnJlcV90YWJfY291bnQgPSAyLAo+Pj4gKyAgICAg\n"
+ "ICAudHlwZSA9IFNPQ19BUkNIX0VYWU5PUzUsCj4+PiArfTsKPj4+ICsjZGVmaW5lIEVYWU5PUzVf\n"
+ "VE1VX0RSVl9EQVRBICgmZXh5bm9zNV9kZWZhdWx0X3RtdV9kYXRhKQo+Pj4gKyNlbHNlCj4+PiAr\n"
+ "I2RlZmluZSBFWFlOT1M1X1RNVV9EUlZfREFUQSAoTlVMTCkKPj4+ICsjZW5kaWYKPj4+ICsKPj4+\n"
+ "ICsjaWZkZWYgQ09ORklHX09GCj4+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQg\n"
+ "ZXh5bm9zX3RtdV9tYXRjaFtdID0gewo+Pj4gKyAgICAgICB7Cj4+PiArICAgICAgICAgICAgICAg\n"
+ "LmNvbXBhdGlibGUgPSAic2Ftc3VuZyxleHlub3M0LXRtdSIsCj4+PiArICAgICAgICAgICAgICAg\n"
+ "LmRhdGEgPSAodm9pZCAqKUVYWU5PUzRfVE1VX0RSVl9EQVRBLAo+Pj4gKyAgICAgICB9LAo+Pj4g\n"
+ "KyAgICAgICB7Cj4+PiArICAgICAgICAgICAgICAgLmNvbXBhdGlibGUgPSAic2Ftc3VuZyxleHlu\n"
+ "b3M1LXRtdSIsCj4+PiArICAgICAgICAgICAgICAgLmRhdGEgPSAodm9pZCAqKUVYWU5PUzVfVE1V\n"
+ "X0RSVl9EQVRBLAo+Pj4gKyAgICAgICB9LAo+Pj4gKyAgICAgICB7fSwKPj4+ICt9Owo+Pj4gK01P\n"
+ "RFVMRV9ERVZJQ0VfVEFCTEUob2YsIGV4eW5vc190bXVfbWF0Y2gpOwo+Pj4gKyNlbHNlCj4+PiAr\n"
+ "I2RlZmluZSAgZXh5bm9zX3RtdV9tYXRjaCBOVUxMCj4+PiArI2VuZGlmCj4+PiArCj4+PiArc3Rh\n"
+ "dGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2VfaWQgZXh5bm9zX3RtdV9kcml2ZXJfaWRzW10gPSB7\n"
+ "Cj4+PiArICAgICAgIHsKPj4+ICsgICAgICAgICAgICAgICAubmFtZSAgICAgICAgICAgPSAiZXh5\n"
+ "bm9zNC10bXUiLAo+Pj4gKyAgICAgICAgICAgICAgIC5kcml2ZXJfZGF0YSAgICA9IChrZXJuZWxf\n"
+ "dWxvbmdfdClFWFlOT1M0X1RNVV9EUlZfREFUQSwKPj4+ICsgICAgICAgfSwKPj4+ICsgICAgICAg\n"
+ "ewo+Pj4gKyAgICAgICAgICAgICAgIC5uYW1lICAgICAgICAgICA9ICJleHlub3M1LXRtdSIsCj4+\n"
+ "PiArICAgICAgICAgICAgICAgLmRyaXZlcl9kYXRhICAgID0gKGtlcm5lbF91bG9uZ190KUVYWU5P\n"
+ "UzVfVE1VX0RSVl9EQVRBLAo+Pj4gKyAgICAgICB9LAo+Pj4gKyAgICAgICB7IH0sCj4+PiArfTsK\n"
+ "Pj4+ICtNT0RVTEVfREVWSUNFX1RBQkxFKHBsYXRmb3JtLCBleHlub3M0X3RtdV9kcml2ZXJfaWRz\n"
+ "KTsKPj4+ICsKPj4+ICtzdGF0aWMgaW5saW5lIHN0cnVjdCAgZXh5bm9zX3RtdV9wbGF0Zm9ybV9k\n"
+ "YXRhICpleHlub3NfZ2V0X2RyaXZlcl9kYXRhKAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAg\n"
+ "c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPj4+ICt7Cj4+PiArI2lmZGVmIENPTkZJR19P\n"
+ "Rgo+Pj4gKyAgICAgICBpZiAocGRldi0+ZGV2Lm9mX25vZGUpIHsKPj4+ICsgICAgICAgICAgICAg\n"
+ "ICBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICptYXRjaDsKPj4+ICsgICAgICAgICAgICAgICBt\n"
+ "YXRjaCA9IG9mX21hdGNoX25vZGUoZXh5bm9zX3RtdV9tYXRjaCwgcGRldi0+ZGV2Lm9mX25vZGUp\n"
+ "Owo+Pj4gKyAgICAgICAgICAgICAgIGlmICghbWF0Y2gpCj4+PiArICAgICAgICAgICAgICAgICAg\n"
+ "ICAgICByZXR1cm4gTlVMTDsKPj4+ICsgICAgICAgICAgICAgICByZXR1cm4gKHN0cnVjdCBleHlu\n"
+ "b3NfdG11X3BsYXRmb3JtX2RhdGEgKikgbWF0Y2gtPmRhdGE7Cj4+PiArICAgICAgIH0KPj4+ICsj\n"
+ "ZW5kaWYKPj4+ICsgICAgICAgcmV0dXJuIChzdHJ1Y3QgZXh5bm9zX3RtdV9wbGF0Zm9ybV9kYXRh\n"
+ "ICopCj4+PiArICAgICAgICAgICAgICAgICAgICAgICBwbGF0Zm9ybV9nZXRfZGV2aWNlX2lkKHBk\n"
+ "ZXYpLT5kcml2ZXJfZGF0YTsKPj4+ICB9Cj4+PiAtOwo+Pj4gIHN0YXRpYyBpbnQgX19kZXZpbml0\n"
+ "IGV4eW5vc190bXVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPj4+ICB7Cj4+\n"
+ "PiAgICAgICAgIHN0cnVjdCBleHlub3NfdG11X2RhdGEgKmRhdGE7Cj4+PiAgICAgICAgIHN0cnVj\n"
+ "dCBleHlub3NfdG11X3BsYXRmb3JtX2RhdGEgKnBkYXRhID0gcGRldi0+ZGV2LnBsYXRmb3JtX2Rh\n"
+ "dGE7Cj4+PiAgICAgICAgIGludCByZXQsIGk7Cj4+Pgo+Pj4gKyAgICAgICBpZiAoIXBkYXRhKQo+\n"
+ "Pj4gKyAgICAgICAgICAgICAgIHBkYXRhID0gZXh5bm9zX2dldF9kcml2ZXJfZGF0YShwZGV2KTsK\n"
+ "Pj4+ICsKPj4+ICAgICAgICAgaWYgKCFwZGF0YSkgewo+Pj4gICAgICAgICAgICAgICAgIGRldl9l\n"
+ "cnIoJnBkZXYtPmRldiwgIk5vIHBsYXRmb3JtIGluaXQgZGF0YSBzdXBwbGllZC5cbiIpOwo+Pj4g\n"
+ "ICAgICAgICAgICAgICAgIHJldHVybiAtRU5PREVWOwo+Pj4gQEAgLTgzOCw5ICs5NDUsMTEgQEAg\n"
+ "c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZXh5bm9zX3RtdV9kcml2ZXIgPSB7Cj4+PiAg\n"
+ "ICAgICAgICAgICAgICAgLm5hbWUgICA9ICJleHlub3MtdG11IiwKPj4+ICAgICAgICAgICAgICAg\n"
+ "ICAub3duZXIgID0gVEhJU19NT0RVTEUsCj4+PiAgICAgICAgICAgICAgICAgLnBtICAgICA9IEVY\n"
+ "WU5PU19UTVVfUE0sCj4+PiArICAgICAgICAgICAgICAgLm9mX21hdGNoX3RhYmxlID0gZXh5bm9z\n"
+ "X3RtdV9tYXRjaCwKPj4+ICAgICAgICAgfSwKPj4+ICAgICAgICAgLnByb2JlID0gZXh5bm9zX3Rt\n"
+ "dV9wcm9iZSwKPj4+ICAgICAgICAgLnJlbW92ZSA9IF9fZGV2ZXhpdF9wKGV4eW5vc190bXVfcmVt\n"
+ "b3ZlKSwKPj4+ICsgICAgICAgLmlkX3RhYmxlID0gZXh5bm9zX3RtdV9kcml2ZXJfaWRzLAo+Pj4g\n"
+ "IH07Cj4+Pgo+Pj4gIG1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoZXh5bm9zX3RtdV9kcml2ZXIpOwo+\n"
+ "Pj4gLS0KPj4+IDEuNy4xCj4+Pgo+Pj4gLS0KPj4+IFRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBs\n"
+ "aXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSBsaW51eC1rZXJuZWwiIGluCj4+PiB0aGUg\n"
+ "Ym9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZwo+Pj4gTW9yZSBt\n"
+ "YWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpvcmRvbW8taW5mby5o\n"
+ "dG1sCj4+PiBQbGVhc2UgcmVhZCB0aGUgRkFRIGF0ICBodHRwOi8vd3d3LnR1eC5vcmcvbGttbC8K\n"
+ "Pj4gLS0KPj4gVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVu\n"
+ "c3Vic2NyaWJlIGxpbnV4LXNhbXN1bmctc29jIiBpbgo+PiB0aGUgYm9keSBvZiBhIG1lc3NhZ2Ug\n"
+ "dG8gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZwo+PiBNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBo\n"
+ "dHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwKPiAtLQo+IFRvIHVuc3Vi\n"
+ "c2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSBsaW51eC1r\n"
+ "ZXJuZWwiIGluCj4gdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtlcm5l\n"
+ "bC5vcmcKPiBNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21h\n"
+ "am9yZG9tby1pbmZvLmh0bWwKPiBQbGVhc2UgcmVhZCB0aGUgRkFRIGF0ICBodHRwOi8vd3d3LnR1\n"
+ "eC5vcmcvbGttbC8KPgpUaGFua3MuCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f\n"
+ "X19fX19fX19fX19fX19fCmxtLXNlbnNvcnMgbWFpbGluZyBsaXN0CmxtLXNlbnNvcnNAbG0tc2Vu\n"
+ "c29ycy5vcmcKaHR0cDovL2xpc3RzLmxtLXNlbnNvcnMub3JnL21haWxtYW4vbGlzdGluZm8vbG0t\n"
+ c2Vuc29ycw=
 
-70ec98ef20b15bf23c3ff1a0c0c09ad4312510dcb0e0269b056781b1fef88192
+5b105d265de2f50579c4aaaebf447b7151f196afd4c78fb7e9fd535fe946c908

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.