CAPABILITIES
- ----- --S: Supported
+ +++++ ++S: Supported
F: include/linux/capability.h
F: security/capability.c
- ----- --F: security/commoncap.c
+ +++++ ++F: security/commoncap.c
+ ++++ + F: kernel/capability.c
CELL BROADBAND ENGINE ARCHITECTURE
F: drivers/scsi/53c700*
LED SUBSYSTEM
+ +++++ ++T: git git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds.git
S: Maintained
F: drivers/leds/
F: include/linux/leds.h
F: include/linux/leds-pca9532.h
PCA9541 I2C BUS MASTER SELECTOR DRIVER
S: Maintained
- ---- - F: drivers/i2c/muxes/pca9541.c
+ ++++ + F: drivers/i2c/muxes/i2c-mux-pca9541.c
PCA9564/PCA9665 I2C BUS DRIVER
S: Maintained
F: drivers/pinctrl/
+ ++++ + PIN CONTROLLER - ST SPEAR
+ ++++ + W: http://www.st.com/spear
+ ++++ + S: Maintained
+ ++++ + F: driver/pinctrl/spear/
+ ++++ +
PKTCDVD DRIVER
S: Maintained
F: include/linux/compiler.h
SPEAR PLATFORM SUPPORT
W: http://www.st.com/spear
S: Maintained
F: arch/arm/plat-spear/
+ ++++ + SPEAR13XX MACHINE SUPPORT
+ ++++ + W: http://www.st.com/spear
+ ++++ + S: Maintained
+ ++++ + F: arch/arm/mach-spear13xx/
+ ++++ +
SPEAR3XX MACHINE SUPPORT
W: http://www.st.com/spear
SPEAR6XX MACHINE SUPPORT
W: http://www.st.com/spear
F: arch/arm/mach-spear6xx/
SPEAR CLOCK FRAMEWORK SUPPORT
- --- - W: http://www.st.com/spear
- --- - S: Maintained
- --- - F: arch/arm/mach-spear*/clock.c
- --- - F: arch/arm/plat-spear/clock.c
- --- - F: arch/arm/plat-spear/include/plat/clock.h
- --- -
- --- - SPEAR PAD MULTIPLEXING SUPPORT
W: http://www.st.com/spear
S: Maintained
- F: arch/arm/mach-spear*/clock.c
- F: arch/arm/plat-spear/clock.c
- F: arch/arm/plat-spear/include/plat/clock.h
-
- SPEAR PAD MULTIPLEXING SUPPORT
- W: http://www.st.com/spear
- S: Maintained
- ---- - F: arch/arm/plat-spear/include/plat/padmux.h
- ---- - F: arch/arm/plat-spear/padmux.c
- ---- - F: arch/arm/mach-spear*/spear*xx.c
- ---- - F: arch/arm/mach-spear*/include/mach/generic.h
- ---- - F: arch/arm/mach-spear3xx/spear3*0.c
- ---- - F: arch/arm/mach-spear3xx/spear3*0_evb.c
- ---- - F: arch/arm/mach-spear6xx/spear600.c
- ---- - F: arch/arm/mach-spear6xx/spear600_evb.c
+ ++++ + F: drivers/clk/spear/
SPI SUBSYSTEM
F: drivers/vlynq/vlynq.c
F: include/linux/vlynq.h
+ ++++ + VME SUBSYSTEM
+ ++++ + S: Maintained
+ ++++ + T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git
+ ++++ + F: Documentation/vme_api.txt
+ ++++ + F: drivers/staging/vme/
+ ++++ + F: drivers/vme/
+ ++++ + F: include/linux/vme*
+ ++++ +
VMWARE VMXNET3 ETHERNET DRIVER
/* TBD: Non-recursive algorithm for walking up hierarchy. */
*state = device->parent ?
device->parent->power.state : ACPI_STATE_D0;
- ---- - ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device [%s] power state is D%d\n",
- ---- - device->pnp.bus_id, *state));
+ +++++ + goto out;
+ }
+
- ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device [%s] power state is D%d\n",
- device->pnp.bus_id, *state));
+ +++++ + /*
+ +++++ + * Get the device's power state either directly (via _PSC) or
+ +++++ + * indirectly (via power resources).
+ +++++ + */
+ +++++ + if (device->power.flags.explicit_get) {
+ +++++ + unsigned long long psc;
+ +++++ + acpi_status status = acpi_evaluate_integer(device->handle,
+ +++++ + "_PSC", NULL, &psc);
+ +++++ + if (ACPI_FAILURE(status))
+ +++++ + return -ENODEV;
+ +++++ +
+ +++++ + result = psc;
+ +++++ + }
+ +++++ + /* The test below covers ACPI_STATE_UNKNOWN too. */
+ +++++ + if (result <= ACPI_STATE_D2) {
+ +++++ + ; /* Do nothing. */
+ +++++ + } else if (device->power.flags.power_resources) {
+ +++++ + int error = acpi_power_get_inferred_state(device, &result);
+ +++++ + if (error)
+ +++++ + return error;
+ +++++ + } else if (result == ACPI_STATE_D3_HOT) {
+ +++++ + result = ACPI_STATE_D3;
+ ++++ + }
+ +++++ + *state = result;
+ ++++ +
+ +++++ + out:
+ +++++ + ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device [%s] power state is %s\n",
+ +++++ + device->pnp.bus_id, state_string(*state)));
return 0;
}
* TBD: _EJD support.
*/
status = acpi_evaluate_object(handle, "_EJ0", &arg_list, NULL);
------- ---- if (ACPI_FAILURE(status))
------- ---- printk(KERN_WARNING PREFIX
------- ---- "Eject device failed\n");
+++++++ ++++ if (ACPI_FAILURE(status)) {
+++++++ ++++ if (status != AE_NOT_FOUND)
+++++++ ++++ printk(KERN_WARNING PREFIX
+++++++ ++++ "Eject device failed\n");
+++++++ ++++ goto err_out;
+++++++ ++++ }
+++ +++ ++++
+++++++ ++++ kfree(context);
+++++++ ++++ return;
+
+++++++ ++++err_out:
+++++++ ++++ /* Inform firmware the hot-remove operation has completed w/ error */
+++++++ ++++ (void) acpi_evaluate_hotplug_ost(handle,
+++++++ ++++ ej_event->event, ost_code, NULL);
+++++++ ++++ kfree(context);
return;
}
goto put_clk;
}
---------- - stdev->flags = pdata->thermal_flags;
++++++++++ + stdev->flags = val;
writel_relaxed(stdev->flags, stdev->thermal_base);
--------- -- spear_thermal = thermal_zone_device_register("spear_thermal", 0,
+++++++++ ++ spear_thermal = thermal_zone_device_register("spear_thermal", 0, 0,
stdev, &ops, 0, 0, 0, 0);
if (IS_ERR(spear_thermal)) {
dev_err(&pdev->dev, "thermal zone device is NULL\n");
acpi_string pathname,
struct acpi_object_list *arguments,
struct acpi_handle_list *list);
+++++++ ++++acpi_status
+++++++ ++++acpi_evaluate_hotplug_ost(acpi_handle handle, u32 source_event,
+++++++ ++++ u32 status_code, struct acpi_buffer *status_buf);
+ ++++ +
+ ++++ + struct acpi_pld {
+ ++++ + unsigned int revision:7; /* 0 */
+ ++++ + unsigned int ignore_colour:1; /* 7 */
+ ++++ + unsigned int colour:24; /* 8 */
+ ++++ + unsigned int width:16; /* 32 */
+ ++++ + unsigned int height:16; /* 48 */
+ ++++ + unsigned int user_visible:1; /* 64 */
+ ++++ + unsigned int dock:1; /* 65 */
+ ++++ + unsigned int lid:1; /* 66 */
+ ++++ + unsigned int panel:3; /* 67 */
+ ++++ + unsigned int vertical_pos:2; /* 70 */
+ ++++ + unsigned int horizontal_pos:2; /* 72 */
+ ++++ + unsigned int shape:4; /* 74 */
+ ++++ + unsigned int group_orientation:1; /* 78 */
+ ++++ + unsigned int group_token:8; /* 79 */
+ ++++ + unsigned int group_position:8; /* 87 */
+ ++++ + unsigned int bay:1; /* 95 */
+ ++++ + unsigned int ejectable:1; /* 96 */
+ ++++ + unsigned int ospm_eject_required:1; /* 97 */
+ ++++ + unsigned int cabinet_number:8; /* 98 */
+ ++++ + unsigned int card_cage_number:8; /* 106 */
+ ++++ + unsigned int reference:1; /* 114 */
+ ++++ + unsigned int rotation:4; /* 115 */
+ ++++ + unsigned int order:5; /* 119 */
+ ++++ + unsigned int reserved:4; /* 124 */
+ ++++ + unsigned int vertical_offset:16; /* 128 */
+ ++++ + unsigned int horizontal_offset:16; /* 144 */
+ ++++ + } __attribute__((__packed__));
+ ++++ + acpi_status
+ ++++ + acpi_get_physical_device_location(acpi_handle handle, struct acpi_pld *pld);
#ifdef CONFIG_ACPI
#include <linux/proc_fs.h>
}
#endif
- static int register_acpi_bus_type(struct acpi_bus_type *bus) { return 0; }
- static int unregister_acpi_bus_type(struct acpi_bus_type *bus) { return 0; }
+ ++++ + #else /* CONFIG_ACPI */
+ ++++ +
+ +++++ + static inline int register_acpi_bus_type(void *bus) { return 0; }
+ +++++ + static inline int unregister_acpi_bus_type(void *bus) { return 0; }
+ ++++ +
#endif /* CONFIG_ACPI */
#endif /*__ACPI_BUS_H__*/