All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20150115094300.7019081d@amdc2363>

diff --git a/a/1.txt b/N1/1.txt
index 66e75b3..c5fb93d 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,151 +1,91 @@
-Hi Eduardo,
-
-> On Wed, Jan 14, 2015 at 04:01:06PM +0100, Lukasz Majewski wrote:
-> > Hi Eduardo,
-> > 
-> > > On Fri, Jan 02, 2015 at 02:54:28PM -0400, Eduardo Valentin wrote:
-> > > > On Mon, Dec 22, 2014 at 05:27:41PM +0100, Lukasz Majewski wrote:
-> > > > > Odroid U3 fan can work without being registered as OF cooling
-> > > > > device (with CONFIG_THERMAL_OF disabled).
-> > > > > In this situation it can be controlled via PWM entry at
-> > > > > /sys/class/hwmon/hwmon0/pwm1.
-> > > > > 
-> > > > > Therefore, the thermal_of_cooling_device_register() function
-> > > > > needs a stub to allow clean compilation.
-> > > > > 
-> > > > > Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
-> > > > 
-> > > > Acked-by: Eduardo Valentin <edubezval@gmail.com>
-> > > 
-> > > Sorry, too fast,
-> > > 
-> > > This is actually
-> > > Nacked-by: Eduardo Valentin <edubezval@gmail.com>
-> > > 
-> > > :-)
-> > > 
-> > > I get this error:
-> > > drivers/thermal/thermal_core.c:1210:1: error: redefinition of
-> > > ‘thermal_of_cooling_device_register’
-> > >  thermal_of_cooling_device_register(struct device_node *np,
-> > >   ^
-> > >   In file included from drivers/thermal/thermal_core.c:34:0:
-> > >   include/linux/thermal.h:321:1: note: previous definition of
-> > >   ‘thermal_of_cooling_device_register’ was here
-> > >    thermal_of_cooling_device_register(struct device_node *np,
-> > >     ^
-> > > 
-> > > 
-> > > We provide the function in thermal core even if CONFIG_THERMAL_OF
-> > > is not set.
-> > 
-> > Unfortunately the PWM fan subsystem can work perfectly fine without
-> > CONFIG_THERMAL.
-> > 
-> 
-> Now I understand what you are trying to do.
-> 
-> > I think that it would be enough to make something like this in
-> > the ./include/linux/thermal.h:
-> > 
-> > #ifdef CONFIG_THERMAL
-> Well, I think it should be the opposite here:
-> 
-> #ifndef CONFIG_THERMAL
-> 
-> that is, if no config thermal, then you provide the stub not the other
-> way around.
-
-This seems like a better solution :-).
-
-Thanks.
-
-> 
-> > 	static inline struct thermal_cooling_device *
-> > 		thermal_of_cooling_device_register(struct
-> > device_node *np, char *type, void *devdata,
-> > 				   const struct
-> > 		thermal_cooling_device_ops *ops) {
-> > 		return NULL;
-> > 	}
-> > #else
-> > 	[ already present declaration of
-> > 	thermal_of_cooling_device_register() ]
-> > #endif /* CONFIG_THERMAL */
-> 
-> 
-> > 
-> > 
-> > 
-> > > > 
-> > > > > ---
-> > > > > Changes for v2:
-> > > > > - None
-> > > > > ---
-> > > > >  include/linux/thermal.h | 14 +++++++++++---
-> > > > >  1 file changed, 11 insertions(+), 3 deletions(-)
-> > > > > 
-> > > > > diff --git a/include/linux/thermal.h b/include/linux/thermal.h
-> > > > > index 2de3d9e..871123c 100644
-> > > > > --- a/include/linux/thermal.h
-> > > > > +++ b/include/linux/thermal.h
-> > > > > @@ -328,6 +328,10 @@ thermal_zone_of_sensor_register(struct
-> > > > > device *dev, int id, void *data, const struct
-> > > > > thermal_zone_of_device_ops *ops); void
-> > > > > thermal_zone_of_sensor_unregister(struct device *dev, struct
-> > > > > thermal_zone_device *tz); +struct thermal_cooling_device *
-> > > > > +thermal_of_cooling_device_register(struct device_node *np,
-> > > > > +				   char *type, void *devdata,
-> > > > > +				   const struct
-> > > > > thermal_cooling_device_ops *); #else
-> > > > >  static inline struct thermal_zone_device *
-> > > > >  thermal_zone_of_sensor_register(struct device *dev, int id,
-> > > > > void *data, @@ -342,6 +346,13 @@ void
-> > > > > thermal_zone_of_sensor_unregister(struct device *dev, {
-> > > > >  }
-> > > > >  
-> > > > > +static inline struct thermal_cooling_device *
-> > > > > +thermal_of_cooling_device_register(struct device_node *np,
-> > > > > +				   char *type, void *devdata,
-> > > > > +				   const struct
-> > > > > thermal_cooling_device_ops *ops) +{
-> > > > > +	return NULL;
-> > > > > +}
-> > > > >  #endif
-> > > > >  struct thermal_zone_device
-> > > > > *thermal_zone_device_register(const char *, int, int, void *,
-> > > > > struct thermal_zone_device_ops *, @@ -357,9 +368,6 @@ void
-> > > > > thermal_zone_device_update(struct thermal_zone_device *); 
-> > > > >  struct thermal_cooling_device
-> > > > > *thermal_cooling_device_register(char *, void *, const struct
-> > > > > thermal_cooling_device_ops *); -struct thermal_cooling_device
-> > > > > * -thermal_of_cooling_device_register(struct device_node *np,
-> > > > > char *, void *,
-> > > > > -				   const struct
-> > > > > thermal_cooling_device_ops *); void
-> > > > > thermal_cooling_device_unregister(struct
-> > > > > thermal_cooling_device *); struct thermal_zone_device
-> > > > > *thermal_zone_get_zone_by_name(const char *name); int
-> > > > > thermal_zone_get_temp(struct thermal_zone_device *tz, unsigned
-> > > > > long *temp); -- 2.0.0.rc2
-> > > > > 
-> > > 
-> > > 
-> > 
-> > 
-> > 
-> > -- 
-> > Best regards,
-> > 
-> > Lukasz Majewski
-> > 
-> > Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
-
-
-
--- 
-Best regards,
-
-Lukasz Majewski
-
-Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
+SGkgRWR1YXJkbywKCj4gT24gV2VkLCBKYW4gMTQsIDIwMTUgYXQgMDQ6MDE6MDZQTSArMDEwMCwg
+THVrYXN6IE1hamV3c2tpIHdyb3RlOgo+ID4gSGkgRWR1YXJkbywKPiA+IAo+ID4gPiBPbiBGcmks
+IEphbiAwMiwgMjAxNSBhdCAwMjo1NDoyOFBNIC0wNDAwLCBFZHVhcmRvIFZhbGVudGluIHdyb3Rl
+Ogo+ID4gPiA+IE9uIE1vbiwgRGVjIDIyLCAyMDE0IGF0IDA1OjI3OjQxUE0gKzAxMDAsIEx1a2Fz
+eiBNYWpld3NraSB3cm90ZToKPiA+ID4gPiA+IE9kcm9pZCBVMyBmYW4gY2FuIHdvcmsgd2l0aG91
+dCBiZWluZyByZWdpc3RlcmVkIGFzIE9GIGNvb2xpbmcKPiA+ID4gPiA+IGRldmljZSAod2l0aCBD
+T05GSUdfVEhFUk1BTF9PRiBkaXNhYmxlZCkuCj4gPiA+ID4gPiBJbiB0aGlzIHNpdHVhdGlvbiBp
+dCBjYW4gYmUgY29udHJvbGxlZCB2aWEgUFdNIGVudHJ5IGF0Cj4gPiA+ID4gPiAvc3lzL2NsYXNz
+L2h3bW9uL2h3bW9uMC9wd20xLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBUaGVyZWZvcmUsIHRoZSB0
+aGVybWFsX29mX2Nvb2xpbmdfZGV2aWNlX3JlZ2lzdGVyKCkgZnVuY3Rpb24KPiA+ID4gPiA+IG5l
+ZWRzIGEgc3R1YiB0byBhbGxvdyBjbGVhbiBjb21waWxhdGlvbi4KPiA+ID4gPiA+IAo+ID4gPiA+
+ID4gU2lnbmVkLW9mZi1ieTogTHVrYXN6IE1hamV3c2tpIDxsLm1hamV3c2tpQHNhbXN1bmcuY29t
+Pgo+ID4gPiA+IAo+ID4gPiA+IEFja2VkLWJ5OiBFZHVhcmRvIFZhbGVudGluIDxlZHViZXp2YWxA
+Z21haWwuY29tPgo+ID4gPiAKPiA+ID4gU29ycnksIHRvbyBmYXN0LAo+ID4gPiAKPiA+ID4gVGhp
+cyBpcyBhY3R1YWxseQo+ID4gPiBOYWNrZWQtYnk6IEVkdWFyZG8gVmFsZW50aW4gPGVkdWJlenZh
+bEBnbWFpbC5jb20+Cj4gPiA+IAo+ID4gPiA6LSkKPiA+ID4gCj4gPiA+IEkgZ2V0IHRoaXMgZXJy
+b3I6Cj4gPiA+IGRyaXZlcnMvdGhlcm1hbC90aGVybWFsX2NvcmUuYzoxMjEwOjE6IGVycm9yOiBy
+ZWRlZmluaXRpb24gb2YKPiA+ID4g4oCYdGhlcm1hbF9vZl9jb29saW5nX2RldmljZV9yZWdpc3Rl
+cuKAmQo+ID4gPiAgdGhlcm1hbF9vZl9jb29saW5nX2RldmljZV9yZWdpc3RlcihzdHJ1Y3QgZGV2
+aWNlX25vZGUgKm5wLAo+ID4gPiAgIF4KPiA+ID4gICBJbiBmaWxlIGluY2x1ZGVkIGZyb20gZHJp
+dmVycy90aGVybWFsL3RoZXJtYWxfY29yZS5jOjM0OjA6Cj4gPiA+ICAgaW5jbHVkZS9saW51eC90
+aGVybWFsLmg6MzIxOjE6IG5vdGU6IHByZXZpb3VzIGRlZmluaXRpb24gb2YKPiA+ID4gICDigJh0
+aGVybWFsX29mX2Nvb2xpbmdfZGV2aWNlX3JlZ2lzdGVy4oCZIHdhcyBoZXJlCj4gPiA+ICAgIHRo
+ZXJtYWxfb2ZfY29vbGluZ19kZXZpY2VfcmVnaXN0ZXIoc3RydWN0IGRldmljZV9ub2RlICpucCwK
+PiA+ID4gICAgIF4KPiA+ID4gCj4gPiA+IAo+ID4gPiBXZSBwcm92aWRlIHRoZSBmdW5jdGlvbiBp
+biB0aGVybWFsIGNvcmUgZXZlbiBpZiBDT05GSUdfVEhFUk1BTF9PRgo+ID4gPiBpcyBub3Qgc2V0
+Lgo+ID4gCj4gPiBVbmZvcnR1bmF0ZWx5IHRoZSBQV00gZmFuIHN1YnN5c3RlbSBjYW4gd29yayBw
+ZXJmZWN0bHkgZmluZSB3aXRob3V0Cj4gPiBDT05GSUdfVEhFUk1BTC4KPiA+IAo+IAo+IE5vdyBJ
+IHVuZGVyc3RhbmQgd2hhdCB5b3UgYXJlIHRyeWluZyB0byBkby4KPiAKPiA+IEkgdGhpbmsgdGhh
+dCBpdCB3b3VsZCBiZSBlbm91Z2ggdG8gbWFrZSBzb21ldGhpbmcgbGlrZSB0aGlzIGluCj4gPiB0
+aGUgLi9pbmNsdWRlL2xpbnV4L3RoZXJtYWwuaDoKPiA+IAo+ID4gI2lmZGVmIENPTkZJR19USEVS
+TUFMCj4gV2VsbCwgSSB0aGluayBpdCBzaG91bGQgYmUgdGhlIG9wcG9zaXRlIGhlcmU6Cj4gCj4g
+I2lmbmRlZiBDT05GSUdfVEhFUk1BTAo+IAo+IHRoYXQgaXMsIGlmIG5vIGNvbmZpZyB0aGVybWFs
+LCB0aGVuIHlvdSBwcm92aWRlIHRoZSBzdHViIG5vdCB0aGUgb3RoZXIKPiB3YXkgYXJvdW5kLgoK
+VGhpcyBzZWVtcyBsaWtlIGEgYmV0dGVyIHNvbHV0aW9uIDotKS4KClRoYW5rcy4KCj4gCj4gPiAJ
+c3RhdGljIGlubGluZSBzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqCj4gPiAJCXRoZXJt
+YWxfb2ZfY29vbGluZ19kZXZpY2VfcmVnaXN0ZXIoc3RydWN0Cj4gPiBkZXZpY2Vfbm9kZSAqbnAs
+IGNoYXIgKnR5cGUsIHZvaWQgKmRldmRhdGEsCj4gPiAJCQkJICAgY29uc3Qgc3RydWN0Cj4gPiAJ
+CXRoZXJtYWxfY29vbGluZ19kZXZpY2Vfb3BzICpvcHMpIHsKPiA+IAkJcmV0dXJuIE5VTEw7Cj4g
+PiAJfQo+ID4gI2Vsc2UKPiA+IAlbIGFscmVhZHkgcHJlc2VudCBkZWNsYXJhdGlvbiBvZgo+ID4g
+CXRoZXJtYWxfb2ZfY29vbGluZ19kZXZpY2VfcmVnaXN0ZXIoKSBdCj4gPiAjZW5kaWYgLyogQ09O
+RklHX1RIRVJNQUwgKi8KPiAKPiAKPiA+IAo+ID4gCj4gPiAKPiA+ID4gPiAKPiA+ID4gPiA+IC0t
+LQo+ID4gPiA+ID4gQ2hhbmdlcyBmb3IgdjI6Cj4gPiA+ID4gPiAtIE5vbmUKPiA+ID4gPiA+IC0t
+LQo+ID4gPiA+ID4gIGluY2x1ZGUvbGludXgvdGhlcm1hbC5oIHwgMTQgKysrKysrKysrKystLS0K
+PiA+ID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo
+LSkKPiA+ID4gPiA+IAo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdGhlcm1h
+bC5oIGIvaW5jbHVkZS9saW51eC90aGVybWFsLmgKPiA+ID4gPiA+IGluZGV4IDJkZTNkOWUuLjg3
+MTEyM2MgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9pbmNsdWRlL2xpbnV4L3RoZXJtYWwuaAo+ID4g
+PiA+ID4gKysrIGIvaW5jbHVkZS9saW51eC90aGVybWFsLmgKPiA+ID4gPiA+IEBAIC0zMjgsNiAr
+MzI4LDEwIEBAIHRoZXJtYWxfem9uZV9vZl9zZW5zb3JfcmVnaXN0ZXIoc3RydWN0Cj4gPiA+ID4g
+PiBkZXZpY2UgKmRldiwgaW50IGlkLCB2b2lkICpkYXRhLCBjb25zdCBzdHJ1Y3QKPiA+ID4gPiA+
+IHRoZXJtYWxfem9uZV9vZl9kZXZpY2Vfb3BzICpvcHMpOyB2b2lkCj4gPiA+ID4gPiB0aGVybWFs
+X3pvbmVfb2Zfc2Vuc29yX3VucmVnaXN0ZXIoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QKPiA+
+ID4gPiA+IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6KTsgK3N0cnVjdCB0aGVybWFsX2Nvb2xpbmdf
+ZGV2aWNlICoKPiA+ID4gPiA+ICt0aGVybWFsX29mX2Nvb2xpbmdfZGV2aWNlX3JlZ2lzdGVyKHN0
+cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCj4gPiA+ID4gPiArCQkJCSAgIGNoYXIgKnR5cGUsIHZvaWQg
+KmRldmRhdGEsCj4gPiA+ID4gPiArCQkJCSAgIGNvbnN0IHN0cnVjdAo+ID4gPiA+ID4gdGhlcm1h
+bF9jb29saW5nX2RldmljZV9vcHMgKik7ICNlbHNlCj4gPiA+ID4gPiAgc3RhdGljIGlubGluZSBz
+dHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqCj4gPiA+ID4gPiAgdGhlcm1hbF96b25lX29mX3Nl
+bnNvcl9yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBpZCwKPiA+ID4gPiA+IHZvaWQg
+KmRhdGEsIEBAIC0zNDIsNiArMzQ2LDEzIEBAIHZvaWQKPiA+ID4gPiA+IHRoZXJtYWxfem9uZV9v
+Zl9zZW5zb3JfdW5yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpkZXYsIHsKPiA+ID4gPiA+ICB9Cj4g
+PiA+ID4gPiAgCj4gPiA+ID4gPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgdGhlcm1hbF9jb29saW5n
+X2RldmljZSAqCj4gPiA+ID4gPiArdGhlcm1hbF9vZl9jb29saW5nX2RldmljZV9yZWdpc3Rlcihz
+dHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAo+ID4gPiA+ID4gKwkJCQkgICBjaGFyICp0eXBlLCB2b2lk
+ICpkZXZkYXRhLAo+ID4gPiA+ID4gKwkJCQkgICBjb25zdCBzdHJ1Y3QKPiA+ID4gPiA+IHRoZXJt
+YWxfY29vbGluZ19kZXZpY2Vfb3BzICpvcHMpICt7Cj4gPiA+ID4gPiArCXJldHVybiBOVUxMOwo+
+ID4gPiA+ID4gK30KPiA+ID4gPiA+ICAjZW5kaWYKPiA+ID4gPiA+ICBzdHJ1Y3QgdGhlcm1hbF96
+b25lX2RldmljZQo+ID4gPiA+ID4gKnRoZXJtYWxfem9uZV9kZXZpY2VfcmVnaXN0ZXIoY29uc3Qg
+Y2hhciAqLCBpbnQsIGludCwgdm9pZCAqLAo+ID4gPiA+ID4gc3RydWN0IHRoZXJtYWxfem9uZV9k
+ZXZpY2Vfb3BzICosIEBAIC0zNTcsOSArMzY4LDYgQEAgdm9pZAo+ID4gPiA+ID4gdGhlcm1hbF96
+b25lX2RldmljZV91cGRhdGUoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKik7IAo+ID4gPiA+
+ID4gIHN0cnVjdCB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlCj4gPiA+ID4gPiAqdGhlcm1hbF9jb29s
+aW5nX2RldmljZV9yZWdpc3RlcihjaGFyICosIHZvaWQgKiwgY29uc3Qgc3RydWN0Cj4gPiA+ID4g
+PiB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlX29wcyAqKTsgLXN0cnVjdCB0aGVybWFsX2Nvb2xpbmdf
+ZGV2aWNlCj4gPiA+ID4gPiAqIC10aGVybWFsX29mX2Nvb2xpbmdfZGV2aWNlX3JlZ2lzdGVyKHN0
+cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCj4gPiA+ID4gPiBjaGFyICosIHZvaWQgKiwKPiA+ID4gPiA+
+IC0JCQkJICAgY29uc3Qgc3RydWN0Cj4gPiA+ID4gPiB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlX29w
+cyAqKTsgdm9pZAo+ID4gPiA+ID4gdGhlcm1hbF9jb29saW5nX2RldmljZV91bnJlZ2lzdGVyKHN0
+cnVjdAo+ID4gPiA+ID4gdGhlcm1hbF9jb29saW5nX2RldmljZSAqKTsgc3RydWN0IHRoZXJtYWxf
+em9uZV9kZXZpY2UKPiA+ID4gPiA+ICp0aGVybWFsX3pvbmVfZ2V0X3pvbmVfYnlfbmFtZShjb25z
+dCBjaGFyICpuYW1lKTsgaW50Cj4gPiA+ID4gPiB0aGVybWFsX3pvbmVfZ2V0X3RlbXAoc3RydWN0
+IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCB1bnNpZ25lZAo+ID4gPiA+ID4gbG9uZyAqdGVtcCk7
+IC0tIDIuMC4wLnJjMgo+ID4gPiA+ID4gCj4gPiA+IAo+ID4gPiAKPiA+IAo+ID4gCj4gPiAKPiA+
+IC0tIAo+ID4gQmVzdCByZWdhcmRzLAo+ID4gCj4gPiBMdWthc3ogTWFqZXdza2kKPiA+IAo+ID4g
+U2Ftc3VuZyBSJkQgSW5zdGl0dXRlIFBvbGFuZCAoU1JQT0wpIHwgTGludXggUGxhdGZvcm0gR3Jv
+dXAKCgoKLS0gCkJlc3QgcmVnYXJkcywKCkx1a2FzeiBNYWpld3NraQoKU2Ftc3VuZyBSJkQgSW5z
+dGl0dXRlIFBvbGFuZCAoU1JQT0wpIHwgTGludXggUGxhdGZvcm0gR3JvdXAKCl9fX19fX19fX19f
+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxtLXNlbnNvcnMgbWFpbGluZyBs
+aXN0CmxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKaHR0cDovL2xpc3RzLmxtLXNlbnNvcnMub3Jn
+L21haWxtYW4vbGlzdGluZm8vbG0tc2Vuc29ycw=
diff --git a/a/content_digest b/N1/content_digest
index 33bf185..74c93d2 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -6,8 +6,8 @@
  "ref\020150114160106.20aa160b@amdc2363\0"
  "ref\020150114183211.GB3672@developer\0"
  "From\0Lukasz Majewski <l.majewski@samsung.com>\0"
- "Subject\0Re: [PATCH v2 1/8] thermal: Provide stub for thermal_of_cooling_device_register() function\0"
- "Date\0Thu, 15 Jan 2015 09:43:00 +0100\0"
+ "Subject\0Re: [lm-sensors] [PATCH v2 1/8] thermal: Provide stub for thermal_of_cooling_device_register() funct\0"
+ "Date\0Thu, 15 Jan 2015 08:43:00 +0000\0"
  "To\0Eduardo Valentin <edubezval@gmail.com>\0"
  "Cc\0Kamil Debski <k.debski@samsung.com>"
   Jean Delvare <jdelvare@suse.de>
@@ -24,156 +24,96 @@
  " Abhilash Kesavan <a.kesavan@samsung.com>\0"
  "\00:1\0"
  "b\0"
- "Hi Eduardo,\n"
- "\n"
- "> On Wed, Jan 14, 2015 at 04:01:06PM +0100, Lukasz Majewski wrote:\n"
- "> > Hi Eduardo,\n"
- "> > \n"
- "> > > On Fri, Jan 02, 2015 at 02:54:28PM -0400, Eduardo Valentin wrote:\n"
- "> > > > On Mon, Dec 22, 2014 at 05:27:41PM +0100, Lukasz Majewski wrote:\n"
- "> > > > > Odroid U3 fan can work without being registered as OF cooling\n"
- "> > > > > device (with CONFIG_THERMAL_OF disabled).\n"
- "> > > > > In this situation it can be controlled via PWM entry at\n"
- "> > > > > /sys/class/hwmon/hwmon0/pwm1.\n"
- "> > > > > \n"
- "> > > > > Therefore, the thermal_of_cooling_device_register() function\n"
- "> > > > > needs a stub to allow clean compilation.\n"
- "> > > > > \n"
- "> > > > > Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>\n"
- "> > > > \n"
- "> > > > Acked-by: Eduardo Valentin <edubezval@gmail.com>\n"
- "> > > \n"
- "> > > Sorry, too fast,\n"
- "> > > \n"
- "> > > This is actually\n"
- "> > > Nacked-by: Eduardo Valentin <edubezval@gmail.com>\n"
- "> > > \n"
- "> > > :-)\n"
- "> > > \n"
- "> > > I get this error:\n"
- "> > > drivers/thermal/thermal_core.c:1210:1: error: redefinition of\n"
- "> > > \342\200\230thermal_of_cooling_device_register\342\200\231\n"
- "> > >  thermal_of_cooling_device_register(struct device_node *np,\n"
- "> > >   ^\n"
- "> > >   In file included from drivers/thermal/thermal_core.c:34:0:\n"
- "> > >   include/linux/thermal.h:321:1: note: previous definition of\n"
- "> > >   \342\200\230thermal_of_cooling_device_register\342\200\231 was here\n"
- "> > >    thermal_of_cooling_device_register(struct device_node *np,\n"
- "> > >     ^\n"
- "> > > \n"
- "> > > \n"
- "> > > We provide the function in thermal core even if CONFIG_THERMAL_OF\n"
- "> > > is not set.\n"
- "> > \n"
- "> > Unfortunately the PWM fan subsystem can work perfectly fine without\n"
- "> > CONFIG_THERMAL.\n"
- "> > \n"
- "> \n"
- "> Now I understand what you are trying to do.\n"
- "> \n"
- "> > I think that it would be enough to make something like this in\n"
- "> > the ./include/linux/thermal.h:\n"
- "> > \n"
- "> > #ifdef CONFIG_THERMAL\n"
- "> Well, I think it should be the opposite here:\n"
- "> \n"
- "> #ifndef CONFIG_THERMAL\n"
- "> \n"
- "> that is, if no config thermal, then you provide the stub not the other\n"
- "> way around.\n"
- "\n"
- "This seems like a better solution :-).\n"
- "\n"
- "Thanks.\n"
- "\n"
- "> \n"
- "> > \tstatic inline struct thermal_cooling_device *\n"
- "> > \t\tthermal_of_cooling_device_register(struct\n"
- "> > device_node *np, char *type, void *devdata,\n"
- "> > \t\t\t\t   const struct\n"
- "> > \t\tthermal_cooling_device_ops *ops) {\n"
- "> > \t\treturn NULL;\n"
- "> > \t}\n"
- "> > #else\n"
- "> > \t[ already present declaration of\n"
- "> > \tthermal_of_cooling_device_register() ]\n"
- "> > #endif /* CONFIG_THERMAL */\n"
- "> \n"
- "> \n"
- "> > \n"
- "> > \n"
- "> > \n"
- "> > > > \n"
- "> > > > > ---\n"
- "> > > > > Changes for v2:\n"
- "> > > > > - None\n"
- "> > > > > ---\n"
- "> > > > >  include/linux/thermal.h | 14 +++++++++++---\n"
- "> > > > >  1 file changed, 11 insertions(+), 3 deletions(-)\n"
- "> > > > > \n"
- "> > > > > diff --git a/include/linux/thermal.h b/include/linux/thermal.h\n"
- "> > > > > index 2de3d9e..871123c 100644\n"
- "> > > > > --- a/include/linux/thermal.h\n"
- "> > > > > +++ b/include/linux/thermal.h\n"
- "> > > > > @@ -328,6 +328,10 @@ thermal_zone_of_sensor_register(struct\n"
- "> > > > > device *dev, int id, void *data, const struct\n"
- "> > > > > thermal_zone_of_device_ops *ops); void\n"
- "> > > > > thermal_zone_of_sensor_unregister(struct device *dev, struct\n"
- "> > > > > thermal_zone_device *tz); +struct thermal_cooling_device *\n"
- "> > > > > +thermal_of_cooling_device_register(struct device_node *np,\n"
- "> > > > > +\t\t\t\t   char *type, void *devdata,\n"
- "> > > > > +\t\t\t\t   const struct\n"
- "> > > > > thermal_cooling_device_ops *); #else\n"
- "> > > > >  static inline struct thermal_zone_device *\n"
- "> > > > >  thermal_zone_of_sensor_register(struct device *dev, int id,\n"
- "> > > > > void *data, @@ -342,6 +346,13 @@ void\n"
- "> > > > > thermal_zone_of_sensor_unregister(struct device *dev, {\n"
- "> > > > >  }\n"
- "> > > > >  \n"
- "> > > > > +static inline struct thermal_cooling_device *\n"
- "> > > > > +thermal_of_cooling_device_register(struct device_node *np,\n"
- "> > > > > +\t\t\t\t   char *type, void *devdata,\n"
- "> > > > > +\t\t\t\t   const struct\n"
- "> > > > > thermal_cooling_device_ops *ops) +{\n"
- "> > > > > +\treturn NULL;\n"
- "> > > > > +}\n"
- "> > > > >  #endif\n"
- "> > > > >  struct thermal_zone_device\n"
- "> > > > > *thermal_zone_device_register(const char *, int, int, void *,\n"
- "> > > > > struct thermal_zone_device_ops *, @@ -357,9 +368,6 @@ void\n"
- "> > > > > thermal_zone_device_update(struct thermal_zone_device *); \n"
- "> > > > >  struct thermal_cooling_device\n"
- "> > > > > *thermal_cooling_device_register(char *, void *, const struct\n"
- "> > > > > thermal_cooling_device_ops *); -struct thermal_cooling_device\n"
- "> > > > > * -thermal_of_cooling_device_register(struct device_node *np,\n"
- "> > > > > char *, void *,\n"
- "> > > > > -\t\t\t\t   const struct\n"
- "> > > > > thermal_cooling_device_ops *); void\n"
- "> > > > > thermal_cooling_device_unregister(struct\n"
- "> > > > > thermal_cooling_device *); struct thermal_zone_device\n"
- "> > > > > *thermal_zone_get_zone_by_name(const char *name); int\n"
- "> > > > > thermal_zone_get_temp(struct thermal_zone_device *tz, unsigned\n"
- "> > > > > long *temp); -- 2.0.0.rc2\n"
- "> > > > > \n"
- "> > > \n"
- "> > > \n"
- "> > \n"
- "> > \n"
- "> > \n"
- "> > -- \n"
- "> > Best regards,\n"
- "> > \n"
- "> > Lukasz Majewski\n"
- "> > \n"
- "> > Samsung R&D Institute Poland (SRPOL) | Linux Platform Group\n"
- "\n"
- "\n"
- "\n"
- "-- \n"
- "Best regards,\n"
- "\n"
- "Lukasz Majewski\n"
- "\n"
- Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
+ "SGkgRWR1YXJkbywKCj4gT24gV2VkLCBKYW4gMTQsIDIwMTUgYXQgMDQ6MDE6MDZQTSArMDEwMCwg\n"
+ "THVrYXN6IE1hamV3c2tpIHdyb3RlOgo+ID4gSGkgRWR1YXJkbywKPiA+IAo+ID4gPiBPbiBGcmks\n"
+ "IEphbiAwMiwgMjAxNSBhdCAwMjo1NDoyOFBNIC0wNDAwLCBFZHVhcmRvIFZhbGVudGluIHdyb3Rl\n"
+ "Ogo+ID4gPiA+IE9uIE1vbiwgRGVjIDIyLCAyMDE0IGF0IDA1OjI3OjQxUE0gKzAxMDAsIEx1a2Fz\n"
+ "eiBNYWpld3NraSB3cm90ZToKPiA+ID4gPiA+IE9kcm9pZCBVMyBmYW4gY2FuIHdvcmsgd2l0aG91\n"
+ "dCBiZWluZyByZWdpc3RlcmVkIGFzIE9GIGNvb2xpbmcKPiA+ID4gPiA+IGRldmljZSAod2l0aCBD\n"
+ "T05GSUdfVEhFUk1BTF9PRiBkaXNhYmxlZCkuCj4gPiA+ID4gPiBJbiB0aGlzIHNpdHVhdGlvbiBp\n"
+ "dCBjYW4gYmUgY29udHJvbGxlZCB2aWEgUFdNIGVudHJ5IGF0Cj4gPiA+ID4gPiAvc3lzL2NsYXNz\n"
+ "L2h3bW9uL2h3bW9uMC9wd20xLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBUaGVyZWZvcmUsIHRoZSB0\n"
+ "aGVybWFsX29mX2Nvb2xpbmdfZGV2aWNlX3JlZ2lzdGVyKCkgZnVuY3Rpb24KPiA+ID4gPiA+IG5l\n"
+ "ZWRzIGEgc3R1YiB0byBhbGxvdyBjbGVhbiBjb21waWxhdGlvbi4KPiA+ID4gPiA+IAo+ID4gPiA+\n"
+ "ID4gU2lnbmVkLW9mZi1ieTogTHVrYXN6IE1hamV3c2tpIDxsLm1hamV3c2tpQHNhbXN1bmcuY29t\n"
+ "Pgo+ID4gPiA+IAo+ID4gPiA+IEFja2VkLWJ5OiBFZHVhcmRvIFZhbGVudGluIDxlZHViZXp2YWxA\n"
+ "Z21haWwuY29tPgo+ID4gPiAKPiA+ID4gU29ycnksIHRvbyBmYXN0LAo+ID4gPiAKPiA+ID4gVGhp\n"
+ "cyBpcyBhY3R1YWxseQo+ID4gPiBOYWNrZWQtYnk6IEVkdWFyZG8gVmFsZW50aW4gPGVkdWJlenZh\n"
+ "bEBnbWFpbC5jb20+Cj4gPiA+IAo+ID4gPiA6LSkKPiA+ID4gCj4gPiA+IEkgZ2V0IHRoaXMgZXJy\n"
+ "b3I6Cj4gPiA+IGRyaXZlcnMvdGhlcm1hbC90aGVybWFsX2NvcmUuYzoxMjEwOjE6IGVycm9yOiBy\n"
+ "ZWRlZmluaXRpb24gb2YKPiA+ID4g4oCYdGhlcm1hbF9vZl9jb29saW5nX2RldmljZV9yZWdpc3Rl\n"
+ "cuKAmQo+ID4gPiAgdGhlcm1hbF9vZl9jb29saW5nX2RldmljZV9yZWdpc3RlcihzdHJ1Y3QgZGV2\n"
+ "aWNlX25vZGUgKm5wLAo+ID4gPiAgIF4KPiA+ID4gICBJbiBmaWxlIGluY2x1ZGVkIGZyb20gZHJp\n"
+ "dmVycy90aGVybWFsL3RoZXJtYWxfY29yZS5jOjM0OjA6Cj4gPiA+ICAgaW5jbHVkZS9saW51eC90\n"
+ "aGVybWFsLmg6MzIxOjE6IG5vdGU6IHByZXZpb3VzIGRlZmluaXRpb24gb2YKPiA+ID4gICDigJh0\n"
+ "aGVybWFsX29mX2Nvb2xpbmdfZGV2aWNlX3JlZ2lzdGVy4oCZIHdhcyBoZXJlCj4gPiA+ICAgIHRo\n"
+ "ZXJtYWxfb2ZfY29vbGluZ19kZXZpY2VfcmVnaXN0ZXIoc3RydWN0IGRldmljZV9ub2RlICpucCwK\n"
+ "PiA+ID4gICAgIF4KPiA+ID4gCj4gPiA+IAo+ID4gPiBXZSBwcm92aWRlIHRoZSBmdW5jdGlvbiBp\n"
+ "biB0aGVybWFsIGNvcmUgZXZlbiBpZiBDT05GSUdfVEhFUk1BTF9PRgo+ID4gPiBpcyBub3Qgc2V0\n"
+ "Lgo+ID4gCj4gPiBVbmZvcnR1bmF0ZWx5IHRoZSBQV00gZmFuIHN1YnN5c3RlbSBjYW4gd29yayBw\n"
+ "ZXJmZWN0bHkgZmluZSB3aXRob3V0Cj4gPiBDT05GSUdfVEhFUk1BTC4KPiA+IAo+IAo+IE5vdyBJ\n"
+ "IHVuZGVyc3RhbmQgd2hhdCB5b3UgYXJlIHRyeWluZyB0byBkby4KPiAKPiA+IEkgdGhpbmsgdGhh\n"
+ "dCBpdCB3b3VsZCBiZSBlbm91Z2ggdG8gbWFrZSBzb21ldGhpbmcgbGlrZSB0aGlzIGluCj4gPiB0\n"
+ "aGUgLi9pbmNsdWRlL2xpbnV4L3RoZXJtYWwuaDoKPiA+IAo+ID4gI2lmZGVmIENPTkZJR19USEVS\n"
+ "TUFMCj4gV2VsbCwgSSB0aGluayBpdCBzaG91bGQgYmUgdGhlIG9wcG9zaXRlIGhlcmU6Cj4gCj4g\n"
+ "I2lmbmRlZiBDT05GSUdfVEhFUk1BTAo+IAo+IHRoYXQgaXMsIGlmIG5vIGNvbmZpZyB0aGVybWFs\n"
+ "LCB0aGVuIHlvdSBwcm92aWRlIHRoZSBzdHViIG5vdCB0aGUgb3RoZXIKPiB3YXkgYXJvdW5kLgoK\n"
+ "VGhpcyBzZWVtcyBsaWtlIGEgYmV0dGVyIHNvbHV0aW9uIDotKS4KClRoYW5rcy4KCj4gCj4gPiAJ\n"
+ "c3RhdGljIGlubGluZSBzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqCj4gPiAJCXRoZXJt\n"
+ "YWxfb2ZfY29vbGluZ19kZXZpY2VfcmVnaXN0ZXIoc3RydWN0Cj4gPiBkZXZpY2Vfbm9kZSAqbnAs\n"
+ "IGNoYXIgKnR5cGUsIHZvaWQgKmRldmRhdGEsCj4gPiAJCQkJICAgY29uc3Qgc3RydWN0Cj4gPiAJ\n"
+ "CXRoZXJtYWxfY29vbGluZ19kZXZpY2Vfb3BzICpvcHMpIHsKPiA+IAkJcmV0dXJuIE5VTEw7Cj4g\n"
+ "PiAJfQo+ID4gI2Vsc2UKPiA+IAlbIGFscmVhZHkgcHJlc2VudCBkZWNsYXJhdGlvbiBvZgo+ID4g\n"
+ "CXRoZXJtYWxfb2ZfY29vbGluZ19kZXZpY2VfcmVnaXN0ZXIoKSBdCj4gPiAjZW5kaWYgLyogQ09O\n"
+ "RklHX1RIRVJNQUwgKi8KPiAKPiAKPiA+IAo+ID4gCj4gPiAKPiA+ID4gPiAKPiA+ID4gPiA+IC0t\n"
+ "LQo+ID4gPiA+ID4gQ2hhbmdlcyBmb3IgdjI6Cj4gPiA+ID4gPiAtIE5vbmUKPiA+ID4gPiA+IC0t\n"
+ "LQo+ID4gPiA+ID4gIGluY2x1ZGUvbGludXgvdGhlcm1hbC5oIHwgMTQgKysrKysrKysrKystLS0K\n"
+ "PiA+ID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo\n"
+ "LSkKPiA+ID4gPiA+IAo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdGhlcm1h\n"
+ "bC5oIGIvaW5jbHVkZS9saW51eC90aGVybWFsLmgKPiA+ID4gPiA+IGluZGV4IDJkZTNkOWUuLjg3\n"
+ "MTEyM2MgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9pbmNsdWRlL2xpbnV4L3RoZXJtYWwuaAo+ID4g\n"
+ "PiA+ID4gKysrIGIvaW5jbHVkZS9saW51eC90aGVybWFsLmgKPiA+ID4gPiA+IEBAIC0zMjgsNiAr\n"
+ "MzI4LDEwIEBAIHRoZXJtYWxfem9uZV9vZl9zZW5zb3JfcmVnaXN0ZXIoc3RydWN0Cj4gPiA+ID4g\n"
+ "PiBkZXZpY2UgKmRldiwgaW50IGlkLCB2b2lkICpkYXRhLCBjb25zdCBzdHJ1Y3QKPiA+ID4gPiA+\n"
+ "IHRoZXJtYWxfem9uZV9vZl9kZXZpY2Vfb3BzICpvcHMpOyB2b2lkCj4gPiA+ID4gPiB0aGVybWFs\n"
+ "X3pvbmVfb2Zfc2Vuc29yX3VucmVnaXN0ZXIoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QKPiA+\n"
+ "ID4gPiA+IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6KTsgK3N0cnVjdCB0aGVybWFsX2Nvb2xpbmdf\n"
+ "ZGV2aWNlICoKPiA+ID4gPiA+ICt0aGVybWFsX29mX2Nvb2xpbmdfZGV2aWNlX3JlZ2lzdGVyKHN0\n"
+ "cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCj4gPiA+ID4gPiArCQkJCSAgIGNoYXIgKnR5cGUsIHZvaWQg\n"
+ "KmRldmRhdGEsCj4gPiA+ID4gPiArCQkJCSAgIGNvbnN0IHN0cnVjdAo+ID4gPiA+ID4gdGhlcm1h\n"
+ "bF9jb29saW5nX2RldmljZV9vcHMgKik7ICNlbHNlCj4gPiA+ID4gPiAgc3RhdGljIGlubGluZSBz\n"
+ "dHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqCj4gPiA+ID4gPiAgdGhlcm1hbF96b25lX29mX3Nl\n"
+ "bnNvcl9yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBpZCwKPiA+ID4gPiA+IHZvaWQg\n"
+ "KmRhdGEsIEBAIC0zNDIsNiArMzQ2LDEzIEBAIHZvaWQKPiA+ID4gPiA+IHRoZXJtYWxfem9uZV9v\n"
+ "Zl9zZW5zb3JfdW5yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpkZXYsIHsKPiA+ID4gPiA+ICB9Cj4g\n"
+ "PiA+ID4gPiAgCj4gPiA+ID4gPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgdGhlcm1hbF9jb29saW5n\n"
+ "X2RldmljZSAqCj4gPiA+ID4gPiArdGhlcm1hbF9vZl9jb29saW5nX2RldmljZV9yZWdpc3Rlcihz\n"
+ "dHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAo+ID4gPiA+ID4gKwkJCQkgICBjaGFyICp0eXBlLCB2b2lk\n"
+ "ICpkZXZkYXRhLAo+ID4gPiA+ID4gKwkJCQkgICBjb25zdCBzdHJ1Y3QKPiA+ID4gPiA+IHRoZXJt\n"
+ "YWxfY29vbGluZ19kZXZpY2Vfb3BzICpvcHMpICt7Cj4gPiA+ID4gPiArCXJldHVybiBOVUxMOwo+\n"
+ "ID4gPiA+ID4gK30KPiA+ID4gPiA+ICAjZW5kaWYKPiA+ID4gPiA+ICBzdHJ1Y3QgdGhlcm1hbF96\n"
+ "b25lX2RldmljZQo+ID4gPiA+ID4gKnRoZXJtYWxfem9uZV9kZXZpY2VfcmVnaXN0ZXIoY29uc3Qg\n"
+ "Y2hhciAqLCBpbnQsIGludCwgdm9pZCAqLAo+ID4gPiA+ID4gc3RydWN0IHRoZXJtYWxfem9uZV9k\n"
+ "ZXZpY2Vfb3BzICosIEBAIC0zNTcsOSArMzY4LDYgQEAgdm9pZAo+ID4gPiA+ID4gdGhlcm1hbF96\n"
+ "b25lX2RldmljZV91cGRhdGUoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKik7IAo+ID4gPiA+\n"
+ "ID4gIHN0cnVjdCB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlCj4gPiA+ID4gPiAqdGhlcm1hbF9jb29s\n"
+ "aW5nX2RldmljZV9yZWdpc3RlcihjaGFyICosIHZvaWQgKiwgY29uc3Qgc3RydWN0Cj4gPiA+ID4g\n"
+ "PiB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlX29wcyAqKTsgLXN0cnVjdCB0aGVybWFsX2Nvb2xpbmdf\n"
+ "ZGV2aWNlCj4gPiA+ID4gPiAqIC10aGVybWFsX29mX2Nvb2xpbmdfZGV2aWNlX3JlZ2lzdGVyKHN0\n"
+ "cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCj4gPiA+ID4gPiBjaGFyICosIHZvaWQgKiwKPiA+ID4gPiA+\n"
+ "IC0JCQkJICAgY29uc3Qgc3RydWN0Cj4gPiA+ID4gPiB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlX29w\n"
+ "cyAqKTsgdm9pZAo+ID4gPiA+ID4gdGhlcm1hbF9jb29saW5nX2RldmljZV91bnJlZ2lzdGVyKHN0\n"
+ "cnVjdAo+ID4gPiA+ID4gdGhlcm1hbF9jb29saW5nX2RldmljZSAqKTsgc3RydWN0IHRoZXJtYWxf\n"
+ "em9uZV9kZXZpY2UKPiA+ID4gPiA+ICp0aGVybWFsX3pvbmVfZ2V0X3pvbmVfYnlfbmFtZShjb25z\n"
+ "dCBjaGFyICpuYW1lKTsgaW50Cj4gPiA+ID4gPiB0aGVybWFsX3pvbmVfZ2V0X3RlbXAoc3RydWN0\n"
+ "IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCB1bnNpZ25lZAo+ID4gPiA+ID4gbG9uZyAqdGVtcCk7\n"
+ "IC0tIDIuMC4wLnJjMgo+ID4gPiA+ID4gCj4gPiA+IAo+ID4gPiAKPiA+IAo+ID4gCj4gPiAKPiA+\n"
+ "IC0tIAo+ID4gQmVzdCByZWdhcmRzLAo+ID4gCj4gPiBMdWthc3ogTWFqZXdza2kKPiA+IAo+ID4g\n"
+ "U2Ftc3VuZyBSJkQgSW5zdGl0dXRlIFBvbGFuZCAoU1JQT0wpIHwgTGludXggUGxhdGZvcm0gR3Jv\n"
+ "dXAKCgoKLS0gCkJlc3QgcmVnYXJkcywKCkx1a2FzeiBNYWpld3NraQoKU2Ftc3VuZyBSJkQgSW5z\n"
+ "dGl0dXRlIFBvbGFuZCAoU1JQT0wpIHwgTGludXggUGxhdGZvcm0gR3JvdXAKCl9fX19fX19fX19f\n"
+ "X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxtLXNlbnNvcnMgbWFpbGluZyBs\n"
+ "aXN0CmxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKaHR0cDovL2xpc3RzLmxtLXNlbnNvcnMub3Jn\n"
+ L21haWxtYW4vbGlzdGluZm8vbG0tc2Vuc29ycw=
 
-4f372f7555f28b0eca0993f0126480b0f28894fff7c9d64fa10d2671e917ac8f
+4720a4efccc01d800ee00e98a2140c7f80d96bc705a33a6b5a378a10a30657ab

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.