{"push_id":749580773,"size":3,"distinct_size":3,"ref":"refs/heads/v3.19-novena-etnadrm-r3","head":"ff7f2284d643005e53c04b663e096a310bbe35b8","before":"cb43cfed25869f54da3142ae8c69be698b3233ff","commits":[{"sha":"f5bed457b8368e29a0ed254501e5c17c04cc1e32","author":{"email":"3ab4e30ada880520f74922b979fc5ca34d9375bb@sequanux.org","name":"Simon Guinot"},"message":"hwmon: (gpio-fan) allow to use alarm support alone from DT\n\nOn some boards, such as the LaCie 2Big Network v2 or 2Big NAS (based on\nMarvell Kirkwood SoCs), an I2C fan controller is used but the alarm\nsignal is wired to a separate GPIO. Unfortunately, the gpio-fan driver\ncan't be used to handle GPIO alarm alone from DT: an error is returned\nif the \"gpios\" DT property is missing.\n\nThis patch allows to use the gpio-fan driver even if the \"alarm-gpios\"\nDT property is defined alone.\n\nSigned-off-by: Simon Guinot <simon.guinot@sequanux.org>\nSigned-off-by: Guenter Roeck <linux@roeck-us.net>","distinct":true,"url":"https://api.github.com/repos/xobs/novena-linux/commits/f5bed457b8368e29a0ed254501e5c17c04cc1e32"},{"sha":"61b18bafb052af9564eec02b816affa71063c26b","author":{"email":"50c3c575ce2bb12c45e20736ce59e86fe81915b4@ti.com","name":"Nishanth Menon"},"message":"(gpio-fan): Add thermal control hooks\n\nAllow gpio-fan to be used as thermal cooling device for platforms that\nuse GPIO maps to control fans.\n\nAs part of this change, we make the shutdown and remove logic the same\nas well.\n\nSigned-off-by: Nishanth Menon <nm@ti.com>\nAcked-by: Eduardo Valentin <edubezval@gmail.com>\nSigned-off-by: Guenter Roeck <linux@roeck-us.net>","distinct":true,"url":"https://api.github.com/repos/xobs/novena-linux/commits/61b18bafb052af9564eec02b816affa71063c26b"},{"sha":"ff7f2284d643005e53c04b663e096a310bbe35b8","author":{"email":"50c3c575ce2bb12c45e20736ce59e86fe81915b4@ti.com","name":"Nishanth Menon"},"message":"hwmon: (gpio-fan) Move the thermal registration after registration is complete\n\nThermal framework may already be ready and cooling policies might\nalready be functional when we are attempting to register gpio fan as\na cooling device. This can be reproduced by changing probe order in\nwhich registration of various modules are done in a system. In such\na case, kernel generates an oops since the data structures are not\ncompletely populated with the wrong assumption that thermal framework\nis not yet ready. Fix this by reordering the thermal framework\nregistration to occur after hwmon registration of the fan is complete.\n\nExample kernel oops:\n[  149.005828] Unable to handle kernel NULL pointer dereference at virtual address 0000008c\n[  149.014369] pgd = ecf48000\n[  149.017204] [0000008c] *pgd=ac065831, *pte=00000000, *ppte=00000000\n[  149.023820] Internal error: Oops: 17 [#1] SMP ARM\n[  149.028745] Modules linked in: gpio_fan(+) cpufreq_dt ipv6 evdev leds_gpio led_class omap_wdt phy_omap_usb2 rtc_palmas palmas_pwrbutton tmp102 ti_soc_thermal dwc3_omap thermal_sys extcon rtc_omap rtc_ds1307 hwmon\n[  149.048629] CPU: 1 PID: 1183 Comm: modprobe Not tainted 4.0.0-rc7-next-20150407-00002-g7a82da074c99 #3\n[  149.058383] Hardware name: Generic DRA74X (Flattened Device Tree)\n[  149.064763] task: edec1240 ti: ec0e0000 task.ti: ec0e0000\n[  149.070421] PC is at dev_driver_string+0x0/0x38\n[  149.075165] LR is at __dev_printk+0x24/0x70\n[  149.079540] pc : [<c03d6cd0>]    lr : [<c03d72c4>]    psr: 20000013\n[  149.079540] sp : ec0e1c28  ip : edec1240  fp : 00000000\n[  149.091568] r10: edf3eee0  r9 : 00000000  r8 : ffffffff\n[  149.097040] r7 : edf3eea0  r6 : 00000034  r5 : 00000010  r4 : ec0e1c44\n[  149.103871] r3 : ec0e1c4c  r2 : ec0e1c44  r1 : c079d800  r0 : 00000010\n[  149.110709] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user\n[  149.118182] Control: 10c5387d  Table: acf4806a  DAC: 00000015\n[  149.124198] Process modprobe (pid: 1183, stack limit = 0xec0e0218)\n[  149.130673] Stack: (0xec0e1c28 to 0xec0e2000)\n[  149.135235] 1c20:                   60000013 c05e2ae0 00000000 edf3ec00 ec934a10 c03d73d4\n...\n[  149.392230] 1fe0: befe1888 befe1878 00019418 b6ea08f0 80000010 00000003 00000000 00000000\n[  149.400798] [<c03d6cd0>] (dev_driver_string) from [<c03d72c4>] (__dev_printk+0x24/0x70)\n[  149.409193] [<c03d72c4>] (__dev_printk) from [<c03d73d4>] (dev_warn+0x34/0x48)\n[  149.416767] [<c03d73d4>] (dev_warn) from [<bf0f54fc>] (get_fan_speed_index+0x94/0xa4 [gpio_fan])\n[  149.425980] [<bf0f54fc>] (get_fan_speed_index [gpio_fan]) from [<bf0f5524>] (gpio_fan_get_cur_state+0x18/0x30 [gpio_fan])\n[  149.437476] [<bf0f5524>] (gpio_fan_get_cur_state [gpio_fan]) from [<bf02767c>] (thermal_zone_trip_update+0xe8/0x2a4 [thermal_sys])\n[  149.449794] [<bf02767c>] (thermal_zone_trip_update [thermal_sys]) from [<bf027844>] (step_wise_throttle+0xc/0x74 [thermal_sys])\n[  149.461832] [<bf027844>] (step_wise_throttle [thermal_sys]) from [<bf024ff4>] (handle_thermal_trip+0x5c/0x188 [thermal_sys])\n[  149.473603] [<bf024ff4>] (handle_thermal_trip [thermal_sys]) from [<bf0256c4>] (thermal_zone_device_update+0x94/0x108 [thermal_sys])\n[  149.486104] [<bf0256c4>] (thermal_zone_device_update [thermal_sys]) from [<bf026470>] (__thermal_cooling_device_register+0x2e8/0x374 [thermal_sys])\n[  149.499956] [<bf026470>] (__thermal_cooling_device_register [thermal_sys]) from [<bf0f58e4>] (gpio_fan_probe+0x350/0x4d0 [gpio_fan])\n[  149.512438] [<bf0f58e4>] (gpio_fan_probe [gpio_fan]) from [<c03db8a0>] (platform_drv_probe+0x48/0x98)\n[  149.522109] [<c03db8a0>] (platform_drv_probe) from [<c03da30c>] (driver_probe_device+0x1b0/0x26c)\n[  149.531399] [<c03da30c>] (driver_probe_device) from [<c03da45c>] (__driver_attach+0x94/0x98)\n[  149.540238] [<c03da45c>] (__driver_attach) from [<c03d8bb0>] (bus_for_each_dev+0x54/0x88)\n[  149.548814] [<c03d8bb0>] (bus_for_each_dev) from [<c03d9a34>] (bus_add_driver+0xdc/0x1d4)\n[  149.557381] [<c03d9a34>] (bus_add_driver) from [<c03dac30>] (driver_register+0x78/0xf4)\n[  149.565765] [<c03dac30>] (driver_register) from [<c0009784>] (do_one_initcall+0x80/0x1d8)\n[  149.574340] [<c0009784>] (do_one_initcall) from [<c00c2278>] (do_init_module+0x5c/0x1b8)\n[  149.582833] [<c00c2278>] (do_init_module) from [<c00c3bbc>] (load_module+0x1720/0x1dcc)\n[  149.591212] [<c00c3bbc>] (load_module) from [<c00c43d0>] (SyS_finit_module+0x68/0x6c)\n[  149.599418] [<c00c43d0>] (SyS_finit_module) from [<c000f3c0>] (ret_fast_syscall+0x0/0x4c)\n[  149.607994] Code: 15830000 e1a00006 e28dd008 e8bd8070 (e590307c)\n\nCc: Eduardo Valentin <edubezval@gmail.com>\nFixes: b5cf88e46bad (\"(gpio-fan): Add thermal control hooks\")\nSigned-off-by: Nishanth Menon <nm@ti.com>\nSigned-off-by: Guenter Roeck <linux@roeck-us.net>","distinct":true,"url":"https://api.github.com/repos/xobs/novena-linux/commits/ff7f2284d643005e53c04b663e096a310bbe35b8"}]}