Merge tag 'powerpc-4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux
Pull powerpc updates from Michael Ellerman: - support "hybrid" iommu/direct DMA ops for coherent_mask < dma_mask from Benjamin Herrenschmidt - EEH fixes for SRIOV from Gavin - introduce rtas_get_sensor_fast() for IRQ handlers from Thomas Huth - use hardware RNG for arch_get_random_seed_* not arch_get_random_* from Paul Mackerras - seccomp filter support from Michael Ellerman - opal_cec_reboot2() handling for HMIs & machine checks from Mahesh Salgaonkar - add powerpc timebase as a trace clock source from Naveen N. Rao - misc cleanups in the xmon, signal & SLB code from Anshuman Khandual - add an inline function to update POWER8 HID0 from Gautham R. Shenoy - fix pte_pagesize_index() crash on 4K w/64K hash from Michael Ellerman - drop support for 64K local store on 4K kernels from Michael Ellerman - move dma_get_required_mask() from pnv_phb to pci_controller_ops from Andrew Donnellan - initialize distance lookup table from drconf path from Nikunj A Dadhania - enable RTC class support from Vaibhav Jain - disable automatically blocked PCI config from Gavin Shan - add LEDs driver for PowerNV platform from Vasant Hegde - fix endianness issues in the HVSI driver from Laurent Dufour - kexec endian fixes from Samuel Mendoza-Jonas - fix corrupted pdn list from Gavin Shan - fix fenced PHB caused by eeh_slot_error_detail() from Gavin Shan - Freescale updates from Scott: Highlights include 32-bit memcpy/memset optimizations, checksum optimizations, 85xx config fragments and updates, device tree updates, e6500 fixes for non-SMP, and misc cleanup and minor fixes. - a ton of cxl updates & fixes: - add explicit precision specifiers from Rasmus Villemoes - use more common format specifier from Rasmus Villemoes - destroy cxl_adapter_idr on module_exit from Johannes Thumshirn - destroy afu->contexts_idr on release of an afu from Johannes Thumshirn - compile with -Werror from Daniel Axtens - EEH support from Daniel Axtens - plug irq_bitmap getting leaked in cxl_context from Vaibhav Jain - add alternate MMIO error handling from Ian Munsie - allow release of contexts which have been OPENED but not STARTED from Andrew Donnellan - remove use of macro DEFINE_PCI_DEVICE_TABLE from Vaishali Thakkar - release irqs if memory allocation fails from Vaibhav Jain - remove racy attempt to force EEH invocation in reset from Daniel Axtens - fix + cleanup error paths in cxl_dev_context_init from Ian Munsie - fix force unmapping mmaps of contexts allocated through the kernel api from Ian Munsie - set up and enable PSL Timebase from Philippe Bergheaud * tag 'powerpc-4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (140 commits) cxl: Set up and enable PSL Timebase cxl: Fix force unmapping mmaps of contexts allocated through the kernel api cxl: Fix + cleanup error paths in cxl_dev_context_init powerpc/eeh: Fix fenced PHB caused by eeh_slot_error_detail() powerpc/pseries: Cleanup on pci_dn_reconfig_notifier() powerpc/pseries: Fix corrupted pdn list powerpc/powernv: Enable LEDS support powerpc/iommu: Set default DMA offset in dma_dev_setup cxl: Remove racy attempt to force EEH invocation in reset cxl: Release irqs if memory allocation fails cxl: Remove use of macro DEFINE_PCI_DEVICE_TABLE powerpc/powernv: Fix mis-merge of OPAL support for LEDS driver powerpc/powernv: Reset HILE before kexec_sequence() powerpc/kexec: Reset secondary cpu endianness before kexec powerpc/hvsi: Fix endianness issues in the HVSI driver leds/powernv: Add driver for PowerNV platform powerpc/powernv: Create LED platform device powerpc/powernv: Add OPAL interfaces for accessing and modifying system LED states powerpc/powernv: Fix the log message when disabling VF cxl: Allow release of contexts which have been OPENED but not STARTED ...
This commit is contained in:
@@ -408,6 +408,7 @@ static const struct i2c_device_id therm_windtunnel_id[] = {
|
||||
{ "therm_adm1030", adm1030 },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(i2c, therm_windtunnel_id);
|
||||
|
||||
static int
|
||||
do_probe(struct i2c_client *cl, const struct i2c_device_id *id)
|
||||
@@ -459,6 +460,7 @@ static const struct of_device_id therm_of_match[] = {{
|
||||
.compatible = "adm1030"
|
||||
}, {}
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, therm_of_match);
|
||||
|
||||
static struct platform_driver therm_of_driver = {
|
||||
.driver = {
|
||||
|
@@ -53,11 +53,9 @@ struct wf_control {
|
||||
* the kref and wf_unregister_control will decrement it, thus the
|
||||
* object creating/disposing a given control shouldn't assume it
|
||||
* still exists after wf_unregister_control has been called.
|
||||
* wf_find_control will inc the refcount for you
|
||||
*/
|
||||
extern int wf_register_control(struct wf_control *ct);
|
||||
extern void wf_unregister_control(struct wf_control *ct);
|
||||
extern struct wf_control * wf_find_control(const char *name);
|
||||
extern int wf_get_control(struct wf_control *ct);
|
||||
extern void wf_put_control(struct wf_control *ct);
|
||||
|
||||
@@ -117,7 +115,6 @@ struct wf_sensor {
|
||||
/* Same lifetime rules as controls */
|
||||
extern int wf_register_sensor(struct wf_sensor *sr);
|
||||
extern void wf_unregister_sensor(struct wf_sensor *sr);
|
||||
extern struct wf_sensor * wf_find_sensor(const char *name);
|
||||
extern int wf_get_sensor(struct wf_sensor *sr);
|
||||
extern void wf_put_sensor(struct wf_sensor *sr);
|
||||
|
||||
@@ -144,7 +141,6 @@ extern int wf_unregister_client(struct notifier_block *nb);
|
||||
/* Overtemp conditions. Those are refcounted */
|
||||
extern void wf_set_overtemp(void);
|
||||
extern void wf_clear_overtemp(void);
|
||||
extern int wf_is_overtemp(void);
|
||||
|
||||
#define WF_EVENT_NEW_CONTROL 0 /* param is wf_control * */
|
||||
#define WF_EVENT_NEW_SENSOR 1 /* param is wf_sensor * */
|
||||
|
@@ -72,7 +72,7 @@ static inline void wf_notify(int event, void *param)
|
||||
blocking_notifier_call_chain(&wf_client_list, event, param);
|
||||
}
|
||||
|
||||
int wf_critical_overtemp(void)
|
||||
static int wf_critical_overtemp(void)
|
||||
{
|
||||
static char * critical_overtemp_path = "/sbin/critical_overtemp";
|
||||
char *argv[] = { critical_overtemp_path, NULL };
|
||||
@@ -84,7 +84,6 @@ int wf_critical_overtemp(void)
|
||||
return call_usermodehelper(critical_overtemp_path,
|
||||
argv, envp, UMH_WAIT_EXEC);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(wf_critical_overtemp);
|
||||
|
||||
static int wf_thread_func(void *data)
|
||||
{
|
||||
@@ -255,24 +254,6 @@ void wf_unregister_control(struct wf_control *ct)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(wf_unregister_control);
|
||||
|
||||
struct wf_control * wf_find_control(const char *name)
|
||||
{
|
||||
struct wf_control *ct;
|
||||
|
||||
mutex_lock(&wf_lock);
|
||||
list_for_each_entry(ct, &wf_controls, link) {
|
||||
if (!strcmp(ct->name, name)) {
|
||||
if (wf_get_control(ct))
|
||||
ct = NULL;
|
||||
mutex_unlock(&wf_lock);
|
||||
return ct;
|
||||
}
|
||||
}
|
||||
mutex_unlock(&wf_lock);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(wf_find_control);
|
||||
|
||||
int wf_get_control(struct wf_control *ct)
|
||||
{
|
||||
if (!try_module_get(ct->ops->owner))
|
||||
@@ -368,24 +349,6 @@ void wf_unregister_sensor(struct wf_sensor *sr)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(wf_unregister_sensor);
|
||||
|
||||
struct wf_sensor * wf_find_sensor(const char *name)
|
||||
{
|
||||
struct wf_sensor *sr;
|
||||
|
||||
mutex_lock(&wf_lock);
|
||||
list_for_each_entry(sr, &wf_sensors, link) {
|
||||
if (!strcmp(sr->name, name)) {
|
||||
if (wf_get_sensor(sr))
|
||||
sr = NULL;
|
||||
mutex_unlock(&wf_lock);
|
||||
return sr;
|
||||
}
|
||||
}
|
||||
mutex_unlock(&wf_lock);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(wf_find_sensor);
|
||||
|
||||
int wf_get_sensor(struct wf_sensor *sr)
|
||||
{
|
||||
if (!try_module_get(sr->ops->owner))
|
||||
@@ -435,7 +398,7 @@ int wf_unregister_client(struct notifier_block *nb)
|
||||
{
|
||||
mutex_lock(&wf_lock);
|
||||
blocking_notifier_chain_unregister(&wf_client_list, nb);
|
||||
wf_client_count++;
|
||||
wf_client_count--;
|
||||
if (wf_client_count == 0)
|
||||
wf_stop_thread();
|
||||
mutex_unlock(&wf_lock);
|
||||
@@ -474,12 +437,6 @@ void wf_clear_overtemp(void)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(wf_clear_overtemp);
|
||||
|
||||
int wf_is_overtemp(void)
|
||||
{
|
||||
return (wf_overtemp != 0);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(wf_is_overtemp);
|
||||
|
||||
static int __init windfarm_core_init(void)
|
||||
{
|
||||
DBG("wf: core loaded\n");
|
||||
|
Reference in New Issue
Block a user