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.