Driver Core updates for 4.16-rc1
Here is the set of "big" driver core patches for 4.16-rc1. The majority of the work here is in the firmware subsystem, with reworks to try to attempt to make the code easier to handle in the long run, but no functional change. There's also some tree-wide sysfs attribute fixups with lots of acks from the various subsystem maintainers, as well as a handful of other normal fixes and changes. And finally, some license cleanups for the driver core and sysfs code. All have been in linux-next for a while with no reported issues. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -----BEGIN PGP SIGNATURE----- iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCWnLvPw8cZ3JlZ0Brcm9h aC5jb20ACgkQMUfUDdst+ynNzACgkzjPoBytJWbpWFt6SR6L33/u4kEAnRFvVCGL s6ygQPQhZIjKk2Lxa2hC =Zihy -----END PGP SIGNATURE----- Merge tag 'driver-core-4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core Pull driver core updates from Greg KH: "Here is the set of "big" driver core patches for 4.16-rc1. The majority of the work here is in the firmware subsystem, with reworks to try to attempt to make the code easier to handle in the long run, but no functional change. There's also some tree-wide sysfs attribute fixups with lots of acks from the various subsystem maintainers, as well as a handful of other normal fixes and changes. And finally, some license cleanups for the driver core and sysfs code. All have been in linux-next for a while with no reported issues" * tag 'driver-core-4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (48 commits) device property: Define type of PROPERTY_ENRTY_*() macros device property: Reuse property_entry_free_data() device property: Move property_entry_free_data() upper firmware: Fix up docs referring to FIRMWARE_IN_KERNEL firmware: Drop FIRMWARE_IN_KERNEL Kconfig option USB: serial: keyspan: Drop firmware Kconfig options sysfs: remove DEBUG defines sysfs: use SPDX identifiers drivers: base: add coredump driver ops sysfs: add attribute specification for /sysfs/devices/.../coredump test_firmware: fix missing unlock on error in config_num_requests_store() test_firmware: make local symbol test_fw_config static sysfs: turn WARN() into pr_warn() firmware: Fix a typo in fallback-mechanisms.rst treewide: Use DEVICE_ATTR_WO treewide: Use DEVICE_ATTR_RO treewide: Use DEVICE_ATTR_RW sysfs.h: Use octal permissions component: add debugfs support bus: simple-pm-bus: convert bool SIMPLE_PM_BUS to tristate ...
This commit is contained in:
commit
47fcc0360c
10
Documentation/ABI/testing/sysfs-devices-coredump
Normal file
10
Documentation/ABI/testing/sysfs-devices-coredump
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
What: /sys/devices/.../coredump
|
||||||
|
Date: December 2017
|
||||||
|
Contact: Arend van Spriel <aspriel@gmail.com>
|
||||||
|
Description:
|
||||||
|
The /sys/devices/.../coredump attribute is only present when the
|
||||||
|
device is bound to a driver, which provides the .coredump()
|
||||||
|
callback. The attribute is write only. Anything written to this
|
||||||
|
file will trigger the .coredump() callback.
|
||||||
|
|
||||||
|
Available when CONFIG_DEV_COREDUMP is enabled.
|
|
@ -11,13 +11,8 @@ options:
|
||||||
* CONFIG_EXTRA_FIRMWARE
|
* CONFIG_EXTRA_FIRMWARE
|
||||||
* CONFIG_EXTRA_FIRMWARE_DIR
|
* CONFIG_EXTRA_FIRMWARE_DIR
|
||||||
|
|
||||||
This should not be confused with CONFIG_FIRMWARE_IN_KERNEL, this is for drivers
|
|
||||||
which enables firmware to be built as part of the kernel build process. This
|
|
||||||
option, CONFIG_FIRMWARE_IN_KERNEL, will build all firmware for all drivers
|
|
||||||
enabled which ship its firmware inside the Linux kernel source tree.
|
|
||||||
|
|
||||||
There are a few reasons why you might want to consider building your firmware
|
There are a few reasons why you might want to consider building your firmware
|
||||||
into the kernel with CONFIG_EXTRA_FIRMWARE though:
|
into the kernel with CONFIG_EXTRA_FIRMWARE:
|
||||||
|
|
||||||
* Speed
|
* Speed
|
||||||
* Firmware is needed for accessing the boot device, and the user doesn't
|
* Firmware is needed for accessing the boot device, and the user doesn't
|
||||||
|
|
|
@ -71,7 +71,7 @@ via fw_create_instance(). This call creates a new struct device named after
|
||||||
the firmware requested, and establishes it in the device hierarchy by
|
the firmware requested, and establishes it in the device hierarchy by
|
||||||
associating the device used to make the request as the device's parent.
|
associating the device used to make the request as the device's parent.
|
||||||
The sysfs directory's file attributes are defined and controlled through
|
The sysfs directory's file attributes are defined and controlled through
|
||||||
the new device's class (firmare_class) and group (fw_dev_attr_groups).
|
the new device's class (firmware_class) and group (fw_dev_attr_groups).
|
||||||
This is actually where the original firmware_class.c file name comes from,
|
This is actually where the original firmware_class.c file name comes from,
|
||||||
as originally the only firmware loading mechanism available was the
|
as originally the only firmware loading mechanism available was the
|
||||||
mechanism we now use as a fallback mechanism.
|
mechanism we now use as a fallback mechanism.
|
||||||
|
|
|
@ -108,12 +108,11 @@ packages already put them there.
|
||||||
====================
|
====================
|
||||||
|
|
||||||
The loader supports also loading of a builtin microcode supplied through
|
The loader supports also loading of a builtin microcode supplied through
|
||||||
the regular firmware builtin method CONFIG_FIRMWARE_IN_KERNEL. Only
|
the regular builtin firmware method CONFIG_EXTRA_FIRMWARE. Only 64-bit is
|
||||||
64-bit is currently supported.
|
currently supported.
|
||||||
|
|
||||||
Here's an example:
|
Here's an example:
|
||||||
|
|
||||||
CONFIG_FIRMWARE_IN_KERNEL=y
|
|
||||||
CONFIG_EXTRA_FIRMWARE="intel-ucode/06-3a-09 amd-ucode/microcode_amd_fam15h.bin"
|
CONFIG_EXTRA_FIRMWARE="intel-ucode/06-3a-09 amd-ucode/microcode_amd_fam15h.bin"
|
||||||
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"
|
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,6 @@ CONFIG_IP_PNP_RARP=y
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
# CONFIG_STANDALONE is not set
|
# CONFIG_STANDALONE is not set
|
||||||
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_SCSI=y
|
CONFIG_SCSI=y
|
||||||
CONFIG_BLK_DEV_SD=y
|
CONFIG_BLK_DEV_SD=y
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
|
|
|
@ -44,7 +44,6 @@ CONFIG_IP_PNP_RARP=y
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
# CONFIG_STANDALONE is not set
|
# CONFIG_STANDALONE is not set
|
||||||
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_BLK_DEV_LOOP=y
|
CONFIG_BLK_DEV_LOOP=y
|
||||||
CONFIG_SCSI=y
|
CONFIG_SCSI=y
|
||||||
CONFIG_BLK_DEV_SD=y
|
CONFIG_BLK_DEV_SD=y
|
||||||
|
|
|
@ -45,7 +45,6 @@ CONFIG_IP_PNP_RARP=y
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
# CONFIG_STANDALONE is not set
|
# CONFIG_STANDALONE is not set
|
||||||
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_BLK_DEV_LOOP=y
|
CONFIG_BLK_DEV_LOOP=y
|
||||||
CONFIG_SCSI=y
|
CONFIG_SCSI=y
|
||||||
CONFIG_BLK_DEV_SD=y
|
CONFIG_BLK_DEV_SD=y
|
||||||
|
|
|
@ -40,7 +40,6 @@ CONFIG_INET=y
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
# CONFIG_STANDALONE is not set
|
# CONFIG_STANDALONE is not set
|
||||||
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
# CONFIG_BLK_DEV is not set
|
# CONFIG_BLK_DEV is not set
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
# CONFIG_NET_VENDOR_ARC is not set
|
# CONFIG_NET_VENDOR_ARC is not set
|
||||||
|
|
|
@ -43,7 +43,6 @@ CONFIG_INET=y
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
# CONFIG_STANDALONE is not set
|
# CONFIG_STANDALONE is not set
|
||||||
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
# CONFIG_BLK_DEV is not set
|
# CONFIG_BLK_DEV is not set
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
# CONFIG_NET_VENDOR_ARC is not set
|
# CONFIG_NET_VENDOR_ARC is not set
|
||||||
|
|
|
@ -32,7 +32,6 @@ CONFIG_INET=y
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
# CONFIG_STANDALONE is not set
|
# CONFIG_STANDALONE is not set
|
||||||
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_SCSI=y
|
CONFIG_SCSI=y
|
||||||
CONFIG_BLK_DEV_SD=y
|
CONFIG_BLK_DEV_SD=y
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
|
|
|
@ -36,7 +36,6 @@ CONFIG_INET=y
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
# CONFIG_STANDALONE is not set
|
# CONFIG_STANDALONE is not set
|
||||||
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
# CONFIG_BLK_DEV is not set
|
# CONFIG_BLK_DEV is not set
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
CONFIG_ARC_EMAC=y
|
CONFIG_ARC_EMAC=y
|
||||||
|
|
|
@ -40,7 +40,6 @@ CONFIG_INET=y
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
# CONFIG_STANDALONE is not set
|
# CONFIG_STANDALONE is not set
|
||||||
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
# CONFIG_BLK_DEV is not set
|
# CONFIG_BLK_DEV is not set
|
||||||
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
|
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
|
||||||
# CONFIG_INPUT_KEYBOARD is not set
|
# CONFIG_INPUT_KEYBOARD is not set
|
||||||
|
|
|
@ -39,7 +39,6 @@ CONFIG_INET=y
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
# CONFIG_STANDALONE is not set
|
# CONFIG_STANDALONE is not set
|
||||||
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
# CONFIG_BLK_DEV is not set
|
# CONFIG_BLK_DEV is not set
|
||||||
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
|
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
|
||||||
# CONFIG_INPUT_KEYBOARD is not set
|
# CONFIG_INPUT_KEYBOARD is not set
|
||||||
|
|
|
@ -35,7 +35,6 @@ CONFIG_INET=y
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
# CONFIG_STANDALONE is not set
|
# CONFIG_STANDALONE is not set
|
||||||
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
# CONFIG_BLK_DEV is not set
|
# CONFIG_BLK_DEV is not set
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
CONFIG_EZCHIP_NPS_MANAGEMENT_ENET=y
|
CONFIG_EZCHIP_NPS_MANAGEMENT_ENET=y
|
||||||
|
|
|
@ -36,7 +36,6 @@ CONFIG_INET=y
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
# CONFIG_STANDALONE is not set
|
# CONFIG_STANDALONE is not set
|
||||||
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
# CONFIG_BLK_DEV is not set
|
# CONFIG_BLK_DEV is not set
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
CONFIG_EZCHIP_NPS_MANAGEMENT_ENET=y
|
CONFIG_EZCHIP_NPS_MANAGEMENT_ENET=y
|
||||||
|
|
|
@ -39,7 +39,6 @@ CONFIG_INET=y
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
# CONFIG_STANDALONE is not set
|
# CONFIG_STANDALONE is not set
|
||||||
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
# CONFIG_BLK_DEV is not set
|
# CONFIG_BLK_DEV is not set
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
# CONFIG_NET_VENDOR_ARC is not set
|
# CONFIG_NET_VENDOR_ARC is not set
|
||||||
|
|
|
@ -42,7 +42,6 @@ CONFIG_IP_MULTICAST=y
|
||||||
# CONFIG_IPV6 is not set
|
# CONFIG_IPV6 is not set
|
||||||
# CONFIG_WIRELESS is not set
|
# CONFIG_WIRELESS is not set
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
# CONFIG_NET_CADENCE is not set
|
# CONFIG_NET_CADENCE is not set
|
||||||
# CONFIG_NET_VENDOR_BROADCOM is not set
|
# CONFIG_NET_VENDOR_BROADCOM is not set
|
||||||
|
|
|
@ -31,7 +31,6 @@ CONFIG_DEVTMPFS=y
|
||||||
CONFIG_DEVTMPFS_MOUNT=y
|
CONFIG_DEVTMPFS_MOUNT=y
|
||||||
# CONFIG_STANDALONE is not set
|
# CONFIG_STANDALONE is not set
|
||||||
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_CMDLINE_PARTS=y
|
CONFIG_MTD_CMDLINE_PARTS=y
|
||||||
CONFIG_MTD_BLOCK=y
|
CONFIG_MTD_BLOCK=y
|
||||||
|
|
|
@ -34,7 +34,6 @@ CONFIG_DEVTMPFS=y
|
||||||
CONFIG_DEVTMPFS_MOUNT=y
|
CONFIG_DEVTMPFS_MOUNT=y
|
||||||
# CONFIG_STANDALONE is not set
|
# CONFIG_STANDALONE is not set
|
||||||
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_CMDLINE_PARTS=y
|
CONFIG_MTD_CMDLINE_PARTS=y
|
||||||
CONFIG_MTD_BLOCK=y
|
CONFIG_MTD_BLOCK=y
|
||||||
|
|
|
@ -28,7 +28,6 @@ CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||||
CONFIG_ZBOOT_ROM_BSS=0x0
|
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||||
CONFIG_CMDLINE="console=ttyS0,38400 mem=128M root=/dev/mmcblk0p1 ro rootwait"
|
CONFIG_CMDLINE="console=ttyS0,38400 mem=128M root=/dev/mmcblk0p1 ro rootwait"
|
||||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_CMDLINE_PARTS=y
|
CONFIG_MTD_CMDLINE_PARTS=y
|
||||||
CONFIG_MTD_BLOCK=y
|
CONFIG_MTD_BLOCK=y
|
||||||
|
|
|
@ -54,7 +54,6 @@ CONFIG_BT_BNEP_PROTO_FILTER=y
|
||||||
CONFIG_BT_HIDP=m
|
CONFIG_BT_HIDP=m
|
||||||
CONFIG_BT_HCIBTUSB=m
|
CONFIG_BT_HCIBTUSB=m
|
||||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_CMDLINE_PARTS=y
|
CONFIG_MTD_CMDLINE_PARTS=y
|
||||||
CONFIG_MTD_BLOCK=y
|
CONFIG_MTD_BLOCK=y
|
||||||
|
|
|
@ -77,7 +77,6 @@ CONFIG_MAC80211=m
|
||||||
CONFIG_MAC80211_MESH=y
|
CONFIG_MAC80211_MESH=y
|
||||||
CONFIG_MAC80211_LEDS=y
|
CONFIG_MAC80211_LEDS=y
|
||||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_CONNECTOR=m
|
CONFIG_CONNECTOR=m
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_CMDLINE_PARTS=y
|
CONFIG_MTD_CMDLINE_PARTS=y
|
||||||
|
|
|
@ -37,7 +37,6 @@ CONFIG_IP_PNP_BOOTP=y
|
||||||
# CONFIG_IPV6 is not set
|
# CONFIG_IPV6 is not set
|
||||||
CONFIG_NET_PKTGEN=m
|
CONFIG_NET_PKTGEN=m
|
||||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_CMDLINE_PARTS=y
|
CONFIG_MTD_CMDLINE_PARTS=y
|
||||||
CONFIG_MTD_BLOCK=y
|
CONFIG_MTD_BLOCK=y
|
||||||
|
|
|
@ -46,7 +46,6 @@ CONFIG_CAN_FLEXCAN=m
|
||||||
# CONFIG_WIRELESS is not set
|
# CONFIG_WIRELESS is not set
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
CONFIG_DEVTMPFS_MOUNT=y
|
CONFIG_DEVTMPFS_MOUNT=y
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_CMDLINE_PARTS=y
|
CONFIG_MTD_CMDLINE_PARTS=y
|
||||||
CONFIG_MTD_BLOCK=y
|
CONFIG_MTD_BLOCK=y
|
||||||
|
|
|
@ -60,7 +60,6 @@ CONFIG_IP_PNP_BOOTP=y
|
||||||
CONFIG_NET_DSA=y
|
CONFIG_NET_DSA=y
|
||||||
CONFIG_NET_PKTGEN=m
|
CONFIG_NET_PKTGEN=m
|
||||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_CMDLINE_PARTS=y
|
CONFIG_MTD_CMDLINE_PARTS=y
|
||||||
CONFIG_MTD_BLOCK=y
|
CONFIG_MTD_BLOCK=y
|
||||||
|
|
|
@ -75,7 +75,6 @@ CONFIG_RFKILL_INPUT=y
|
||||||
CONFIG_RFKILL_GPIO=y
|
CONFIG_RFKILL_GPIO=y
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
CONFIG_DEVTMPFS_MOUNT=y
|
CONFIG_DEVTMPFS_MOUNT=y
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_DMA_CMA=y
|
CONFIG_DMA_CMA=y
|
||||||
CONFIG_CMA_SIZE_MBYTES=64
|
CONFIG_CMA_SIZE_MBYTES=64
|
||||||
CONFIG_TEGRA_GMI=y
|
CONFIG_TEGRA_GMI=y
|
||||||
|
|
|
@ -23,7 +23,6 @@ CONFIG_BINFMT_SHARED_FLAT=y
|
||||||
# CONFIG_UEVENT_HELPER is not set
|
# CONFIG_UEVENT_HELPER is not set
|
||||||
# CONFIG_STANDALONE is not set
|
# CONFIG_STANDALONE is not set
|
||||||
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
# CONFIG_ALLOW_DEV_COREDUMP is not set
|
# CONFIG_ALLOW_DEV_COREDUMP is not set
|
||||||
CONFIG_BLK_DEV_RAM=y
|
CONFIG_BLK_DEV_RAM=y
|
||||||
CONFIG_BLK_DEV_RAM_COUNT=4
|
CONFIG_BLK_DEV_RAM_COUNT=4
|
||||||
|
|
|
@ -802,8 +802,8 @@ static ssize_t battery_voltage_show(struct device *dev, struct device_attribute
|
||||||
return sprintf(buf, "%d\n", sharpsl_pm.battstat.mainbat_voltage);
|
return sprintf(buf, "%d\n", sharpsl_pm.battstat.mainbat_voltage);
|
||||||
}
|
}
|
||||||
|
|
||||||
static DEVICE_ATTR(battery_percentage, 0444, battery_percentage_show, NULL);
|
static DEVICE_ATTR_RO(battery_percentage);
|
||||||
static DEVICE_ATTR(battery_voltage, 0444, battery_voltage_show, NULL);
|
static DEVICE_ATTR_RO(battery_voltage);
|
||||||
|
|
||||||
extern void (*apm_get_power_status)(struct apm_power_info *);
|
extern void (*apm_get_power_status)(struct apm_power_info *);
|
||||||
|
|
||||||
|
|
|
@ -313,7 +313,6 @@ CONFIG_NET_DEVLINK=m
|
||||||
# CONFIG_UEVENT_HELPER is not set
|
# CONFIG_UEVENT_HELPER is not set
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
CONFIG_DEVTMPFS_MOUNT=y
|
CONFIG_DEVTMPFS_MOUNT=y
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
||||||
CONFIG_CONNECTOR=m
|
CONFIG_CONNECTOR=m
|
||||||
CONFIG_PARPORT=m
|
CONFIG_PARPORT=m
|
||||||
|
|
|
@ -311,7 +311,6 @@ CONFIG_NET_DEVLINK=m
|
||||||
# CONFIG_UEVENT_HELPER is not set
|
# CONFIG_UEVENT_HELPER is not set
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
CONFIG_DEVTMPFS_MOUNT=y
|
CONFIG_DEVTMPFS_MOUNT=y
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
||||||
CONFIG_CONNECTOR=m
|
CONFIG_CONNECTOR=m
|
||||||
CONFIG_BLK_DEV_LOOP=y
|
CONFIG_BLK_DEV_LOOP=y
|
||||||
|
|
|
@ -311,7 +311,6 @@ CONFIG_NET_DEVLINK=m
|
||||||
# CONFIG_UEVENT_HELPER is not set
|
# CONFIG_UEVENT_HELPER is not set
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
CONFIG_DEVTMPFS_MOUNT=y
|
CONFIG_DEVTMPFS_MOUNT=y
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
||||||
CONFIG_CONNECTOR=m
|
CONFIG_CONNECTOR=m
|
||||||
CONFIG_PARPORT=m
|
CONFIG_PARPORT=m
|
||||||
|
|
|
@ -309,7 +309,6 @@ CONFIG_NET_DEVLINK=m
|
||||||
# CONFIG_UEVENT_HELPER is not set
|
# CONFIG_UEVENT_HELPER is not set
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
CONFIG_DEVTMPFS_MOUNT=y
|
CONFIG_DEVTMPFS_MOUNT=y
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
||||||
CONFIG_CONNECTOR=m
|
CONFIG_CONNECTOR=m
|
||||||
CONFIG_BLK_DEV_LOOP=y
|
CONFIG_BLK_DEV_LOOP=y
|
||||||
|
|
|
@ -311,7 +311,6 @@ CONFIG_NET_DEVLINK=m
|
||||||
# CONFIG_UEVENT_HELPER is not set
|
# CONFIG_UEVENT_HELPER is not set
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
CONFIG_DEVTMPFS_MOUNT=y
|
CONFIG_DEVTMPFS_MOUNT=y
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
||||||
CONFIG_CONNECTOR=m
|
CONFIG_CONNECTOR=m
|
||||||
CONFIG_BLK_DEV_LOOP=y
|
CONFIG_BLK_DEV_LOOP=y
|
||||||
|
|
|
@ -313,7 +313,6 @@ CONFIG_NET_DEVLINK=m
|
||||||
# CONFIG_UEVENT_HELPER is not set
|
# CONFIG_UEVENT_HELPER is not set
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
CONFIG_DEVTMPFS_MOUNT=y
|
CONFIG_DEVTMPFS_MOUNT=y
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
||||||
CONFIG_CONNECTOR=m
|
CONFIG_CONNECTOR=m
|
||||||
CONFIG_BLK_DEV_SWIM=m
|
CONFIG_BLK_DEV_SWIM=m
|
||||||
|
|
|
@ -323,7 +323,6 @@ CONFIG_NET_DEVLINK=m
|
||||||
# CONFIG_UEVENT_HELPER is not set
|
# CONFIG_UEVENT_HELPER is not set
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
CONFIG_DEVTMPFS_MOUNT=y
|
CONFIG_DEVTMPFS_MOUNT=y
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
||||||
CONFIG_CONNECTOR=m
|
CONFIG_CONNECTOR=m
|
||||||
CONFIG_PARPORT=m
|
CONFIG_PARPORT=m
|
||||||
|
|
|
@ -308,7 +308,6 @@ CONFIG_NET_DEVLINK=m
|
||||||
# CONFIG_UEVENT_HELPER is not set
|
# CONFIG_UEVENT_HELPER is not set
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
CONFIG_DEVTMPFS_MOUNT=y
|
CONFIG_DEVTMPFS_MOUNT=y
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
||||||
CONFIG_CONNECTOR=m
|
CONFIG_CONNECTOR=m
|
||||||
CONFIG_BLK_DEV_LOOP=y
|
CONFIG_BLK_DEV_LOOP=y
|
||||||
|
|
|
@ -309,7 +309,6 @@ CONFIG_NET_DEVLINK=m
|
||||||
# CONFIG_UEVENT_HELPER is not set
|
# CONFIG_UEVENT_HELPER is not set
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
CONFIG_DEVTMPFS_MOUNT=y
|
CONFIG_DEVTMPFS_MOUNT=y
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
||||||
CONFIG_CONNECTOR=m
|
CONFIG_CONNECTOR=m
|
||||||
CONFIG_BLK_DEV_LOOP=y
|
CONFIG_BLK_DEV_LOOP=y
|
||||||
|
|
|
@ -309,7 +309,6 @@ CONFIG_NET_DEVLINK=m
|
||||||
# CONFIG_UEVENT_HELPER is not set
|
# CONFIG_UEVENT_HELPER is not set
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
CONFIG_DEVTMPFS_MOUNT=y
|
CONFIG_DEVTMPFS_MOUNT=y
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
||||||
CONFIG_CONNECTOR=m
|
CONFIG_CONNECTOR=m
|
||||||
CONFIG_PARPORT=m
|
CONFIG_PARPORT=m
|
||||||
|
|
|
@ -306,7 +306,6 @@ CONFIG_NET_DEVLINK=m
|
||||||
# CONFIG_UEVENT_HELPER is not set
|
# CONFIG_UEVENT_HELPER is not set
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
CONFIG_DEVTMPFS_MOUNT=y
|
CONFIG_DEVTMPFS_MOUNT=y
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
||||||
CONFIG_CONNECTOR=m
|
CONFIG_CONNECTOR=m
|
||||||
CONFIG_BLK_DEV_LOOP=y
|
CONFIG_BLK_DEV_LOOP=y
|
||||||
|
|
|
@ -306,7 +306,6 @@ CONFIG_NET_DEVLINK=m
|
||||||
# CONFIG_UEVENT_HELPER is not set
|
# CONFIG_UEVENT_HELPER is not set
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
CONFIG_DEVTMPFS_MOUNT=y
|
CONFIG_DEVTMPFS_MOUNT=y
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
CONFIG_TEST_ASYNC_DRIVER_PROBE=m
|
||||||
CONFIG_CONNECTOR=m
|
CONFIG_CONNECTOR=m
|
||||||
CONFIG_BLK_DEV_LOOP=y
|
CONFIG_BLK_DEV_LOOP=y
|
||||||
|
|
|
@ -82,7 +82,6 @@ CONFIG_MAC80211=m
|
||||||
CONFIG_MAC80211_RC_PID=y
|
CONFIG_MAC80211_RC_PID=y
|
||||||
CONFIG_MAC80211_RC_DEFAULT_PID=y
|
CONFIG_MAC80211_RC_DEFAULT_PID=y
|
||||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_BLOCK=y
|
CONFIG_MTD_BLOCK=y
|
||||||
CONFIG_MTD_CFI=y
|
CONFIG_MTD_CFI=y
|
||||||
|
|
|
@ -38,7 +38,6 @@ CONFIG_CFG80211=m
|
||||||
CONFIG_MAC80211=m
|
CONFIG_MAC80211=m
|
||||||
CONFIG_MAC80211_DEBUGFS=y
|
CONFIG_MAC80211_DEBUGFS=y
|
||||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_REDBOOT_PARTS=y
|
CONFIG_MTD_REDBOOT_PARTS=y
|
||||||
CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-2
|
CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-2
|
||||||
|
|
|
@ -39,7 +39,6 @@ CONFIG_CFG80211=m
|
||||||
CONFIG_MAC80211=m
|
CONFIG_MAC80211=m
|
||||||
CONFIG_MAC80211_DEBUGFS=y
|
CONFIG_MAC80211_DEBUGFS=y
|
||||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_REDBOOT_PARTS=y
|
CONFIG_MTD_REDBOOT_PARTS=y
|
||||||
CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-2
|
CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-2
|
||||||
|
|
|
@ -26,7 +26,6 @@ CONFIG_BINFMT_MISC=m
|
||||||
# CONFIG_SUSPEND is not set
|
# CONFIG_SUSPEND is not set
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
CONFIG_DEVTMPFS_MOUNT=y
|
CONFIG_DEVTMPFS_MOUNT=y
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
# CONFIG_ALLOW_DEV_COREDUMP is not set
|
# CONFIG_ALLOW_DEV_COREDUMP is not set
|
||||||
CONFIG_BLK_DEV_LOOP=m
|
CONFIG_BLK_DEV_LOOP=m
|
||||||
CONFIG_SCSI=y
|
CONFIG_SCSI=y
|
||||||
|
|
|
@ -42,7 +42,6 @@ CONFIG_TCP_CONG_WESTWOOD=y
|
||||||
# CONFIG_TCP_CONG_HTCP is not set
|
# CONFIG_TCP_CONG_HTCP is not set
|
||||||
# CONFIG_IPV6 is not set
|
# CONFIG_IPV6 is not set
|
||||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_BLOCK=y
|
CONFIG_MTD_BLOCK=y
|
||||||
CONFIG_MTD_NAND=y
|
CONFIG_MTD_NAND=y
|
||||||
|
|
|
@ -325,15 +325,6 @@ CONFIG_USB_SERIAL_EDGEPORT=m
|
||||||
CONFIG_USB_SERIAL_EDGEPORT_TI=m
|
CONFIG_USB_SERIAL_EDGEPORT_TI=m
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_PDA=m
|
CONFIG_USB_SERIAL_KEYSPAN_PDA=m
|
||||||
CONFIG_USB_SERIAL_KEYSPAN=m
|
CONFIG_USB_SERIAL_KEYSPAN=m
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_MPR=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
|
|
||||||
CONFIG_USB_SERIAL_KLSI=m
|
CONFIG_USB_SERIAL_KLSI=m
|
||||||
CONFIG_USB_SERIAL_KOBIL_SCT=m
|
CONFIG_USB_SERIAL_KOBIL_SCT=m
|
||||||
CONFIG_USB_SERIAL_MCT_U232=m
|
CONFIG_USB_SERIAL_MCT_U232=m
|
||||||
|
|
|
@ -76,7 +76,6 @@ CONFIG_VLAN_8021Q=y
|
||||||
CONFIG_NET_SCHED=y
|
CONFIG_NET_SCHED=y
|
||||||
CONFIG_HAMRADIO=y
|
CONFIG_HAMRADIO=y
|
||||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_CMDLINE_PARTS=y
|
CONFIG_MTD_CMDLINE_PARTS=y
|
||||||
CONFIG_MTD_BLOCK=y
|
CONFIG_MTD_BLOCK=y
|
||||||
|
|
|
@ -75,7 +75,6 @@ CONFIG_VLAN_8021Q=y
|
||||||
CONFIG_NET_SCHED=y
|
CONFIG_NET_SCHED=y
|
||||||
CONFIG_HAMRADIO=y
|
CONFIG_HAMRADIO=y
|
||||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_CMDLINE_PARTS=y
|
CONFIG_MTD_CMDLINE_PARTS=y
|
||||||
CONFIG_MTD_BLOCK=y
|
CONFIG_MTD_BLOCK=y
|
||||||
|
|
|
@ -44,7 +44,6 @@ CONFIG_IPV6=y
|
||||||
# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
|
# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
|
||||||
# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
|
# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
|
||||||
# CONFIG_INET6_XFRM_MODE_BEET is not set
|
# CONFIG_INET6_XFRM_MODE_BEET is not set
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_CONNECTOR=y
|
CONFIG_CONNECTOR=y
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_DEBUG=y
|
CONFIG_MTD_DEBUG=y
|
||||||
|
|
|
@ -28,7 +28,6 @@ CONFIG_NETFILTER=y
|
||||||
CONFIG_VLAN_8021Q=y
|
CONFIG_VLAN_8021Q=y
|
||||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||||
# CONFIG_STANDALONE is not set
|
# CONFIG_STANDALONE is not set
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_CMDLINE_PARTS=y
|
CONFIG_MTD_CMDLINE_PARTS=y
|
||||||
CONFIG_MTD_BLOCK=y
|
CONFIG_MTD_BLOCK=y
|
||||||
|
|
|
@ -272,18 +272,6 @@ CONFIG_USB_SERIAL_EDGEPORT=m
|
||||||
CONFIG_USB_SERIAL_EDGEPORT_TI=m
|
CONFIG_USB_SERIAL_EDGEPORT_TI=m
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_PDA=m
|
CONFIG_USB_SERIAL_KEYSPAN_PDA=m
|
||||||
CONFIG_USB_SERIAL_KEYSPAN=m
|
CONFIG_USB_SERIAL_KEYSPAN=m
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_MPR=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA28=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA19=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
|
|
||||||
CONFIG_USB_SERIAL_KLSI=m
|
CONFIG_USB_SERIAL_KLSI=m
|
||||||
CONFIG_USB_SERIAL_KOBIL_SCT=m
|
CONFIG_USB_SERIAL_KOBIL_SCT=m
|
||||||
CONFIG_USB_SERIAL_MCT_U232=m
|
CONFIG_USB_SERIAL_MCT_U232=m
|
||||||
|
|
|
@ -189,18 +189,6 @@ CONFIG_USB_SERIAL_GARMIN=m
|
||||||
CONFIG_USB_SERIAL_IPW=m
|
CONFIG_USB_SERIAL_IPW=m
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_PDA=m
|
CONFIG_USB_SERIAL_KEYSPAN_PDA=m
|
||||||
CONFIG_USB_SERIAL_KEYSPAN=m
|
CONFIG_USB_SERIAL_KEYSPAN=m
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_MPR=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA28=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA19=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
|
|
||||||
CONFIG_USB_SERIAL_KLSI=m
|
CONFIG_USB_SERIAL_KLSI=m
|
||||||
CONFIG_USB_SERIAL_KOBIL_SCT=m
|
CONFIG_USB_SERIAL_KOBIL_SCT=m
|
||||||
CONFIG_USB_SERIAL_MCT_U232=m
|
CONFIG_USB_SERIAL_MCT_U232=m
|
||||||
|
|
|
@ -82,18 +82,6 @@ CONFIG_USB_SERIAL_CYPRESS_M8=m
|
||||||
CONFIG_USB_SERIAL_GARMIN=m
|
CONFIG_USB_SERIAL_GARMIN=m
|
||||||
CONFIG_USB_SERIAL_IPW=m
|
CONFIG_USB_SERIAL_IPW=m
|
||||||
CONFIG_USB_SERIAL_KEYSPAN=y
|
CONFIG_USB_SERIAL_KEYSPAN=y
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_MPR=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA28=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA19=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
|
|
||||||
CONFIG_USB_SERIAL_TI=m
|
CONFIG_USB_SERIAL_TI=m
|
||||||
CONFIG_EXT2_FS=y
|
CONFIG_EXT2_FS=y
|
||||||
CONFIG_EXT4_FS=y
|
CONFIG_EXT4_FS=y
|
||||||
|
|
|
@ -39,7 +39,6 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
CONFIG_DEVTMPFS_MOUNT=y
|
CONFIG_DEVTMPFS_MOUNT=y
|
||||||
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_CMDLINE_PARTS=y
|
CONFIG_MTD_CMDLINE_PARTS=y
|
||||||
CONFIG_MTD_BLOCK=y
|
CONFIG_MTD_BLOCK=y
|
||||||
|
|
|
@ -264,18 +264,6 @@ CONFIG_USB_SERIAL_VISOR=m
|
||||||
CONFIG_USB_SERIAL_IPAQ=m
|
CONFIG_USB_SERIAL_IPAQ=m
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_PDA=m
|
CONFIG_USB_SERIAL_KEYSPAN_PDA=m
|
||||||
CONFIG_USB_SERIAL_KEYSPAN=m
|
CONFIG_USB_SERIAL_KEYSPAN=m
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_MPR=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA28=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA19=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
|
|
||||||
CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
|
|
||||||
CONFIG_USB_APPLEDISPLAY=m
|
CONFIG_USB_APPLEDISPLAY=m
|
||||||
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
|
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
|
||||||
CONFIG_EXT2_FS=y
|
CONFIG_EXT2_FS=y
|
||||||
|
|
|
@ -347,7 +347,6 @@ CONFIG_MAC80211_DEBUGFS=y
|
||||||
CONFIG_NET_9P=m
|
CONFIG_NET_9P=m
|
||||||
CONFIG_NET_9P_VIRTIO=m
|
CONFIG_NET_9P_VIRTIO=m
|
||||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_DEBUG_DEVRES=y
|
CONFIG_DEBUG_DEVRES=y
|
||||||
CONFIG_CONNECTOR=y
|
CONFIG_CONNECTOR=y
|
||||||
CONFIG_PARPORT=m
|
CONFIG_PARPORT=m
|
||||||
|
|
|
@ -64,7 +64,6 @@ CONFIG_CFG80211_WEXT=y
|
||||||
CONFIG_MAC80211=m
|
CONFIG_MAC80211=m
|
||||||
# CONFIG_MAC80211_RC_MINSTREL is not set
|
# CONFIG_MAC80211_RC_MINSTREL is not set
|
||||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_BLK_DEV_LOOP=y
|
CONFIG_BLK_DEV_LOOP=y
|
||||||
CONFIG_BLK_DEV_RAM=y
|
CONFIG_BLK_DEV_RAM=y
|
||||||
CONFIG_BLK_DEV_RAM_SIZE=65535
|
CONFIG_BLK_DEV_RAM_SIZE=65535
|
||||||
|
|
|
@ -43,7 +43,6 @@ CONFIG_CFG80211=y
|
||||||
CONFIG_MAC80211=y
|
CONFIG_MAC80211=y
|
||||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||||
# CONFIG_STANDALONE is not set
|
# CONFIG_STANDALONE is not set
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_BLK_DEV_LOOP=y
|
CONFIG_BLK_DEV_LOOP=y
|
||||||
CONFIG_BLK_DEV_RAM=y
|
CONFIG_BLK_DEV_RAM=y
|
||||||
CONFIG_BLK_DEV_RAM_COUNT=2
|
CONFIG_BLK_DEV_RAM_COUNT=2
|
||||||
|
|
|
@ -26,7 +26,6 @@ CONFIG_NET=y
|
||||||
# CONFIG_IUCV is not set
|
# CONFIG_IUCV is not set
|
||||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_BLK_DEV_RAM=y
|
CONFIG_BLK_DEV_RAM=y
|
||||||
# CONFIG_BLK_DEV_XPRAM is not set
|
# CONFIG_BLK_DEV_XPRAM is not set
|
||||||
# CONFIG_DCSSBLK is not set
|
# CONFIG_DCSSBLK is not set
|
||||||
|
|
|
@ -1151,7 +1151,7 @@ static ssize_t __ref rescan_store(struct device *dev,
|
||||||
rc = smp_rescan_cpus();
|
rc = smp_rescan_cpus();
|
||||||
return rc ? rc : count;
|
return rc ? rc : count;
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR(rescan, 0200, NULL, rescan_store);
|
static DEVICE_ATTR_WO(rescan);
|
||||||
#endif /* CONFIG_HOTPLUG_CPU */
|
#endif /* CONFIG_HOTPLUG_CPU */
|
||||||
|
|
||||||
static int __init s390_smp_init(void)
|
static int __init s390_smp_init(void)
|
||||||
|
|
|
@ -404,8 +404,7 @@ out:
|
||||||
put_online_cpus();
|
put_online_cpus();
|
||||||
return rc ? rc : count;
|
return rc ? rc : count;
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR(dispatching, 0644, dispatching_show,
|
static DEVICE_ATTR_RW(dispatching);
|
||||||
dispatching_store);
|
|
||||||
|
|
||||||
static ssize_t cpu_polarization_show(struct device *dev,
|
static ssize_t cpu_polarization_show(struct device *dev,
|
||||||
struct device_attribute *attr, char *buf)
|
struct device_attribute *attr, char *buf)
|
||||||
|
|
|
@ -38,7 +38,6 @@ CONFIG_IP_MULTICAST=y
|
||||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||||
# CONFIG_IPV6 is not set
|
# CONFIG_IPV6 is not set
|
||||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_CMDLINE_PARTS=y
|
CONFIG_MTD_CMDLINE_PARTS=y
|
||||||
CONFIG_MTD_BLOCK=y
|
CONFIG_MTD_BLOCK=y
|
||||||
|
|
|
@ -24,7 +24,7 @@ static ssize_t switch_show(struct device *dev,
|
||||||
struct push_switch_platform_info *psw_info = dev->platform_data;
|
struct push_switch_platform_info *psw_info = dev->platform_data;
|
||||||
return sprintf(buf, "%s\n", psw_info->name);
|
return sprintf(buf, "%s\n", psw_info->name);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR(switch, S_IRUGO, switch_show, NULL);
|
static DEVICE_ATTR_RO(switch);
|
||||||
|
|
||||||
static void switch_timer(struct timer_list *t)
|
static void switch_timer(struct timer_list *t)
|
||||||
{
|
{
|
||||||
|
|
|
@ -159,7 +159,6 @@ CONFIG_DNS_RESOLVER=y
|
||||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
CONFIG_DEVTMPFS_MOUNT=y
|
CONFIG_DEVTMPFS_MOUNT=y
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_CONNECTOR=y
|
CONFIG_CONNECTOR=y
|
||||||
CONFIG_BLK_DEV_LOOP=y
|
CONFIG_BLK_DEV_LOOP=y
|
||||||
CONFIG_BLK_DEV_CRYPTOLOOP=m
|
CONFIG_BLK_DEV_CRYPTOLOOP=m
|
||||||
|
|
|
@ -289,7 +289,6 @@ CONFIG_DNS_RESOLVER=y
|
||||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
CONFIG_DEVTMPFS_MOUNT=y
|
CONFIG_DEVTMPFS_MOUNT=y
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
CONFIG_CONNECTOR=y
|
CONFIG_CONNECTOR=y
|
||||||
CONFIG_BLK_DEV_LOOP=y
|
CONFIG_BLK_DEV_LOOP=y
|
||||||
CONFIG_BLK_DEV_CRYPTOLOOP=m
|
CONFIG_BLK_DEV_CRYPTOLOOP=m
|
||||||
|
|
|
@ -38,7 +38,7 @@ static ssize_t chip_width_show(struct device *dev,
|
||||||
{
|
{
|
||||||
return sprintf(page, "%u\n", smp_width);
|
return sprintf(page, "%u\n", smp_width);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR(chip_width, 0444, chip_width_show, NULL);
|
static DEVICE_ATTR_RO(chip_width);
|
||||||
|
|
||||||
static ssize_t chip_height_show(struct device *dev,
|
static ssize_t chip_height_show(struct device *dev,
|
||||||
struct device_attribute *attr,
|
struct device_attribute *attr,
|
||||||
|
@ -46,7 +46,7 @@ static ssize_t chip_height_show(struct device *dev,
|
||||||
{
|
{
|
||||||
return sprintf(page, "%u\n", smp_height);
|
return sprintf(page, "%u\n", smp_height);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR(chip_height, 0444, chip_height_show, NULL);
|
static DEVICE_ATTR_RO(chip_height);
|
||||||
|
|
||||||
static ssize_t chip_serial_show(struct device *dev,
|
static ssize_t chip_serial_show(struct device *dev,
|
||||||
struct device_attribute *attr,
|
struct device_attribute *attr,
|
||||||
|
@ -54,7 +54,7 @@ static ssize_t chip_serial_show(struct device *dev,
|
||||||
{
|
{
|
||||||
return get_hv_confstr(page, HV_CONFSTR_CHIP_SERIAL_NUM);
|
return get_hv_confstr(page, HV_CONFSTR_CHIP_SERIAL_NUM);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR(chip_serial, 0444, chip_serial_show, NULL);
|
static DEVICE_ATTR_RO(chip_serial);
|
||||||
|
|
||||||
static ssize_t chip_revision_show(struct device *dev,
|
static ssize_t chip_revision_show(struct device *dev,
|
||||||
struct device_attribute *attr,
|
struct device_attribute *attr,
|
||||||
|
@ -62,7 +62,7 @@ static ssize_t chip_revision_show(struct device *dev,
|
||||||
{
|
{
|
||||||
return get_hv_confstr(page, HV_CONFSTR_CHIP_REV);
|
return get_hv_confstr(page, HV_CONFSTR_CHIP_REV);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR(chip_revision, 0444, chip_revision_show, NULL);
|
static DEVICE_ATTR_RO(chip_revision);
|
||||||
|
|
||||||
|
|
||||||
static ssize_t type_show(struct device *dev,
|
static ssize_t type_show(struct device *dev,
|
||||||
|
@ -71,7 +71,7 @@ static ssize_t type_show(struct device *dev,
|
||||||
{
|
{
|
||||||
return sprintf(page, "tilera\n");
|
return sprintf(page, "tilera\n");
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR(type, 0444, type_show, NULL);
|
static DEVICE_ATTR_RO(type);
|
||||||
|
|
||||||
#define HV_CONF_ATTR(name, conf) \
|
#define HV_CONF_ATTR(name, conf) \
|
||||||
static ssize_t name ## _show(struct device *dev, \
|
static ssize_t name ## _show(struct device *dev, \
|
||||||
|
@ -184,7 +184,7 @@ static ssize_t hv_stats_store(struct device *dev,
|
||||||
return n < 0 ? n : count;
|
return n < 0 ? n : count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static DEVICE_ATTR(hv_stats, 0644, hv_stats_show, hv_stats_store);
|
static DEVICE_ATTR_RW(hv_stats);
|
||||||
|
|
||||||
static int hv_stats_device_add(struct device *dev, struct subsys_interface *sif)
|
static int hv_stats_device_add(struct device *dev, struct subsys_interface *sif)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1265,9 +1265,9 @@ config MICROCODE
|
||||||
CONFIG_BLK_DEV_INITRD in order for the loader to be able to scan the
|
CONFIG_BLK_DEV_INITRD in order for the loader to be able to scan the
|
||||||
initrd for microcode blobs.
|
initrd for microcode blobs.
|
||||||
|
|
||||||
In addition, you can build-in the microcode into the kernel. For that you
|
In addition, you can build the microcode into the kernel. For that you
|
||||||
need to enable FIRMWARE_IN_KERNEL and add the vendor-supplied microcode
|
need to add the vendor-supplied microcode to the CONFIG_EXTRA_FIRMWARE
|
||||||
to the CONFIG_EXTRA_FIRMWARE config option.
|
config option.
|
||||||
|
|
||||||
config MICROCODE_INTEL
|
config MICROCODE_INTEL
|
||||||
bool "Intel microcode loading support"
|
bool "Intel microcode loading support"
|
||||||
|
|
|
@ -560,7 +560,7 @@ static ssize_t pf_show(struct device *dev,
|
||||||
return sprintf(buf, "0x%x\n", uci->cpu_sig.pf);
|
return sprintf(buf, "0x%x\n", uci->cpu_sig.pf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static DEVICE_ATTR(reload, 0200, NULL, reload_store);
|
static DEVICE_ATTR_WO(reload);
|
||||||
static DEVICE_ATTR(version, 0400, version_show, NULL);
|
static DEVICE_ATTR(version, 0400, version_show, NULL);
|
||||||
static DEVICE_ATTR(processor_flags, 0400, pf_show, NULL);
|
static DEVICE_ATTR(processor_flags, 0400, pf_show, NULL);
|
||||||
|
|
||||||
|
|
|
@ -357,7 +357,7 @@ static ssize_t real_power_state_show(struct device *dev,
|
||||||
return sprintf(buf, "%s\n", acpi_power_state_string(state));
|
return sprintf(buf, "%s\n", acpi_power_state_string(state));
|
||||||
}
|
}
|
||||||
|
|
||||||
static DEVICE_ATTR(real_power_state, 0444, real_power_state_show, NULL);
|
static DEVICE_ATTR_RO(real_power_state);
|
||||||
|
|
||||||
static ssize_t power_state_show(struct device *dev,
|
static ssize_t power_state_show(struct device *dev,
|
||||||
struct device_attribute *attr, char *buf)
|
struct device_attribute *attr, char *buf)
|
||||||
|
@ -367,7 +367,7 @@ static ssize_t power_state_show(struct device *dev,
|
||||||
return sprintf(buf, "%s\n", acpi_power_state_string(adev->power.state));
|
return sprintf(buf, "%s\n", acpi_power_state_string(adev->power.state));
|
||||||
}
|
}
|
||||||
|
|
||||||
static DEVICE_ATTR(power_state, 0444, power_state_show, NULL);
|
static DEVICE_ATTR_RO(power_state);
|
||||||
|
|
||||||
static ssize_t
|
static ssize_t
|
||||||
acpi_eject_store(struct device *d, struct device_attribute *attr,
|
acpi_eject_store(struct device *d, struct device_attribute *attr,
|
||||||
|
@ -462,7 +462,7 @@ static ssize_t description_show(struct device *dev,
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR(description, 0444, description_show, NULL);
|
static DEVICE_ATTR_RO(description);
|
||||||
|
|
||||||
static ssize_t
|
static ssize_t
|
||||||
acpi_device_sun_show(struct device *dev, struct device_attribute *attr,
|
acpi_device_sun_show(struct device *dev, struct device_attribute *attr,
|
||||||
|
|
|
@ -86,10 +86,9 @@ config FW_LOADER
|
||||||
require userspace firmware loading support, but a module built
|
require userspace firmware loading support, but a module built
|
||||||
out-of-tree does.
|
out-of-tree does.
|
||||||
|
|
||||||
config FIRMWARE_IN_KERNEL
|
config EXTRA_FIRMWARE
|
||||||
bool "Include in-kernel firmware blobs in kernel binary"
|
string "External firmware blobs to build into the kernel binary"
|
||||||
depends on FW_LOADER
|
depends on FW_LOADER
|
||||||
default y
|
|
||||||
help
|
help
|
||||||
Various drivers in the kernel source tree may require firmware,
|
Various drivers in the kernel source tree may require firmware,
|
||||||
which is generally available in your distribution's linux-firmware
|
which is generally available in your distribution's linux-firmware
|
||||||
|
@ -99,23 +98,6 @@ config FIRMWARE_IN_KERNEL
|
||||||
/lib/firmware/ on your system, so they can be loaded by userspace
|
/lib/firmware/ on your system, so they can be loaded by userspace
|
||||||
helpers on request.
|
helpers on request.
|
||||||
|
|
||||||
Enabling this option will build each required firmware blob
|
|
||||||
specified by EXTRA_FIRMWARE into the kernel directly, where
|
|
||||||
request_firmware() will find them without having to call out to
|
|
||||||
userspace. This may be useful if your root file system requires a
|
|
||||||
device that uses such firmware and you do not wish to use an
|
|
||||||
initrd.
|
|
||||||
|
|
||||||
This single option controls the inclusion of firmware for
|
|
||||||
every driver that uses request_firmware(), which avoids a
|
|
||||||
proliferation of 'Include firmware for xxx device' options.
|
|
||||||
|
|
||||||
Say 'N' and let firmware be loaded from userspace.
|
|
||||||
|
|
||||||
config EXTRA_FIRMWARE
|
|
||||||
string "External firmware blobs to build into the kernel binary"
|
|
||||||
depends on FW_LOADER
|
|
||||||
help
|
|
||||||
This option allows firmware to be built into the kernel for the case
|
This option allows firmware to be built into the kernel for the case
|
||||||
where the user either cannot or doesn't want to provide it from
|
where the user either cannot or doesn't want to provide it from
|
||||||
userspace at runtime (for example, when the firmware in question is
|
userspace at runtime (for example, when the firmware in question is
|
||||||
|
@ -126,11 +108,11 @@ config EXTRA_FIRMWARE
|
||||||
firmware files -- the same names that appear in MODULE_FIRMWARE()
|
firmware files -- the same names that appear in MODULE_FIRMWARE()
|
||||||
and request_firmware() in the source. These files should exist under
|
and request_firmware() in the source. These files should exist under
|
||||||
the directory specified by the EXTRA_FIRMWARE_DIR option, which is
|
the directory specified by the EXTRA_FIRMWARE_DIR option, which is
|
||||||
by default the firmware subdirectory of the kernel source tree.
|
/lib/firmware by default.
|
||||||
|
|
||||||
For example, you might set CONFIG_EXTRA_FIRMWARE="usb8388.bin", copy
|
For example, you might set CONFIG_EXTRA_FIRMWARE="usb8388.bin", copy
|
||||||
the usb8388.bin file into the firmware directory, and build the kernel.
|
the usb8388.bin file into /lib/firmware, and build the kernel. Then
|
||||||
Then any request_firmware("usb8388.bin") will be satisfied internally
|
any request_firmware("usb8388.bin") will be satisfied internally
|
||||||
without needing to call out to userspace.
|
without needing to call out to userspace.
|
||||||
|
|
||||||
WARNING: If you include additional firmware files into your binary
|
WARNING: If you include additional firmware files into your binary
|
||||||
|
|
|
@ -1,15 +1,9 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* Arch specific cpu topology information
|
* Arch specific cpu topology information
|
||||||
*
|
*
|
||||||
* Copyright (C) 2016, ARM Ltd.
|
* Copyright (C) 2016, ARM Ltd.
|
||||||
* Written by: Juri Lelli, ARM Ltd.
|
* Written by: Juri Lelli, ARM Ltd.
|
||||||
*
|
|
||||||
* This file is subject to the terms and conditions of the GNU General Public
|
|
||||||
* License. See the file "COPYING" in the main directory of this archive
|
|
||||||
* for more details.
|
|
||||||
*
|
|
||||||
* Released under the GPLv2 only.
|
|
||||||
* SPDX-License-Identifier: GPL-2.0
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/acpi.h>
|
#include <linux/acpi.h>
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* attribute_container.c - implementation of a simple container for classes
|
* attribute_container.c - implementation of a simple container for classes
|
||||||
*
|
*
|
||||||
* Copyright (c) 2005 - James Bottomley <James.Bottomley@steeleye.com>
|
* Copyright (c) 2005 - James Bottomley <James.Bottomley@steeleye.com>
|
||||||
*
|
*
|
||||||
* This file is licensed under GPLv2
|
|
||||||
*
|
|
||||||
* The basic idea here is to enable a device to be attached to an
|
* The basic idea here is to enable a device to be attached to an
|
||||||
* aritrary numer of classes without having to allocate storage for them.
|
* aritrary numer of classes without having to allocate storage for them.
|
||||||
* Instead, the contained classes select the devices they need to attach
|
* Instead, the contained classes select the devices they need to attach
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* bus.c - bus driver management
|
* bus.c - bus driver management
|
||||||
*
|
*
|
||||||
|
@ -5,9 +6,6 @@
|
||||||
* Copyright (c) 2002-3 Open Source Development Labs
|
* Copyright (c) 2002-3 Open Source Development Labs
|
||||||
* Copyright (c) 2007 Greg Kroah-Hartman <gregkh@suse.de>
|
* Copyright (c) 2007 Greg Kroah-Hartman <gregkh@suse.de>
|
||||||
* Copyright (c) 2007 Novell Inc.
|
* Copyright (c) 2007 Novell Inc.
|
||||||
*
|
|
||||||
* This file is released under the GPLv2
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/async.h>
|
#include <linux/async.h>
|
||||||
|
@ -309,7 +307,7 @@ int bus_for_each_dev(struct bus_type *bus, struct device *start,
|
||||||
|
|
||||||
klist_iter_init_node(&bus->p->klist_devices, &i,
|
klist_iter_init_node(&bus->p->klist_devices, &i,
|
||||||
(start ? &start->p->knode_bus : NULL));
|
(start ? &start->p->knode_bus : NULL));
|
||||||
while ((dev = next_device(&i)) && !error)
|
while (!error && (dev = next_device(&i)))
|
||||||
error = fn(dev, data);
|
error = fn(dev, data);
|
||||||
klist_iter_exit(&i);
|
klist_iter_exit(&i);
|
||||||
return error;
|
return error;
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* cacheinfo support - processor cache information via sysfs
|
* cacheinfo support - processor cache information via sysfs
|
||||||
*
|
*
|
||||||
* Based on arch/x86/kernel/cpu/intel_cacheinfo.c
|
* Based on arch/x86/kernel/cpu/intel_cacheinfo.c
|
||||||
* Author: Sudeep Holla <sudeep.holla@arm.com>
|
* Author: Sudeep Holla <sudeep.holla@arm.com>
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License version 2 as
|
|
||||||
* published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* This program is distributed "as is" WITHOUT ANY WARRANTY of any
|
|
||||||
* kind, whether express or implied; without even the implied warranty
|
|
||||||
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* class.c - basic device class management
|
* class.c - basic device class management
|
||||||
*
|
*
|
||||||
|
@ -5,9 +6,6 @@
|
||||||
* Copyright (c) 2002-3 Open Source Development Labs
|
* Copyright (c) 2002-3 Open Source Development Labs
|
||||||
* Copyright (c) 2003-2004 Greg Kroah-Hartman
|
* Copyright (c) 2003-2004 Greg Kroah-Hartman
|
||||||
* Copyright (c) 2003-2004 IBM Corp.
|
* Copyright (c) 2003-2004 IBM Corp.
|
||||||
*
|
|
||||||
* This file is released under the GPLv2
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/device.h>
|
#include <linux/device.h>
|
||||||
|
|
|
@ -1,10 +1,7 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* Componentized device handling.
|
* Componentized device handling.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License version 2 as
|
|
||||||
* published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* This is work in progress. We gather up the component devices into a list,
|
* This is work in progress. We gather up the component devices into a list,
|
||||||
* and bind them when instructed. At the moment, we're specific to the DRM
|
* and bind them when instructed. At the moment, we're specific to the DRM
|
||||||
* subsystem, and only handles one master device, but this doesn't have to be
|
* subsystem, and only handles one master device, but this doesn't have to be
|
||||||
|
@ -17,6 +14,7 @@
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/mutex.h>
|
#include <linux/mutex.h>
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
|
#include <linux/debugfs.h>
|
||||||
|
|
||||||
struct component;
|
struct component;
|
||||||
|
|
||||||
|
@ -41,6 +39,7 @@ struct master {
|
||||||
const struct component_master_ops *ops;
|
const struct component_master_ops *ops;
|
||||||
struct device *dev;
|
struct device *dev;
|
||||||
struct component_match *match;
|
struct component_match *match;
|
||||||
|
struct dentry *dentry;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct component {
|
struct component {
|
||||||
|
@ -56,6 +55,80 @@ static DEFINE_MUTEX(component_mutex);
|
||||||
static LIST_HEAD(component_list);
|
static LIST_HEAD(component_list);
|
||||||
static LIST_HEAD(masters);
|
static LIST_HEAD(masters);
|
||||||
|
|
||||||
|
#ifdef CONFIG_DEBUG_FS
|
||||||
|
|
||||||
|
static struct dentry *component_debugfs_dir;
|
||||||
|
|
||||||
|
static int component_devices_show(struct seq_file *s, void *data)
|
||||||
|
{
|
||||||
|
struct master *m = s->private;
|
||||||
|
struct component_match *match = m->match;
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
mutex_lock(&component_mutex);
|
||||||
|
seq_printf(s, "%-40s %20s\n", "master name", "status");
|
||||||
|
seq_puts(s, "-------------------------------------------------------------\n");
|
||||||
|
seq_printf(s, "%-40s %20s\n\n",
|
||||||
|
dev_name(m->dev), m->bound ? "bound" : "not bound");
|
||||||
|
|
||||||
|
seq_printf(s, "%-40s %20s\n", "device name", "status");
|
||||||
|
seq_puts(s, "-------------------------------------------------------------\n");
|
||||||
|
for (i = 0; i < match->num; i++) {
|
||||||
|
struct device *d = (struct device *)match->compare[i].data;
|
||||||
|
|
||||||
|
seq_printf(s, "%-40s %20s\n", dev_name(d),
|
||||||
|
match->compare[i].component ?
|
||||||
|
"registered" : "not registered");
|
||||||
|
}
|
||||||
|
mutex_unlock(&component_mutex);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int component_devices_open(struct inode *inode, struct file *file)
|
||||||
|
{
|
||||||
|
return single_open(file, component_devices_show, inode->i_private);
|
||||||
|
}
|
||||||
|
|
||||||
|
static const struct file_operations component_devices_fops = {
|
||||||
|
.open = component_devices_open,
|
||||||
|
.read = seq_read,
|
||||||
|
.llseek = seq_lseek,
|
||||||
|
.release = single_release,
|
||||||
|
};
|
||||||
|
|
||||||
|
static int __init component_debug_init(void)
|
||||||
|
{
|
||||||
|
component_debugfs_dir = debugfs_create_dir("device_component", NULL);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
core_initcall(component_debug_init);
|
||||||
|
|
||||||
|
static void component_master_debugfs_add(struct master *m)
|
||||||
|
{
|
||||||
|
m->dentry = debugfs_create_file(dev_name(m->dev), 0444,
|
||||||
|
component_debugfs_dir,
|
||||||
|
m, &component_devices_fops);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void component_master_debugfs_del(struct master *m)
|
||||||
|
{
|
||||||
|
debugfs_remove(m->dentry);
|
||||||
|
m->dentry = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
static void component_master_debugfs_add(struct master *m)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
static void component_master_debugfs_del(struct master *m)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
static struct master *__master_find(struct device *dev,
|
static struct master *__master_find(struct device *dev,
|
||||||
const struct component_master_ops *ops)
|
const struct component_master_ops *ops)
|
||||||
{
|
{
|
||||||
|
@ -290,6 +363,7 @@ static void free_master(struct master *master)
|
||||||
struct component_match *match = master->match;
|
struct component_match *match = master->match;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
component_master_debugfs_del(master);
|
||||||
list_del(&master->node);
|
list_del(&master->node);
|
||||||
|
|
||||||
if (match) {
|
if (match) {
|
||||||
|
@ -323,6 +397,7 @@ int component_master_add_with_match(struct device *dev,
|
||||||
master->ops = ops;
|
master->ops = ops;
|
||||||
master->match = match;
|
master->match = match;
|
||||||
|
|
||||||
|
component_master_debugfs_add(master);
|
||||||
/* Add to the list of available masters. */
|
/* Add to the list of available masters. */
|
||||||
mutex_lock(&component_mutex);
|
mutex_lock(&component_mutex);
|
||||||
list_add(&master->node, &masters);
|
list_add(&master->node, &masters);
|
||||||
|
|
|
@ -1,12 +1,9 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* System bus type for containers.
|
* System bus type for containers.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2013, Intel Corporation
|
* Copyright (C) 2013, Intel Corporation
|
||||||
* Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
|
* Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License version 2 as
|
|
||||||
* published by the Free Software Foundation.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/container.h>
|
#include <linux/container.h>
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* drivers/base/core.c - core driver model code (device registration, etc)
|
* drivers/base/core.c - core driver model code (device registration, etc)
|
||||||
*
|
*
|
||||||
|
@ -5,9 +6,6 @@
|
||||||
* Copyright (c) 2002-3 Open Source Development Labs
|
* Copyright (c) 2002-3 Open Source Development Labs
|
||||||
* Copyright (c) 2006 Greg Kroah-Hartman <gregkh@suse.de>
|
* Copyright (c) 2006 Greg Kroah-Hartman <gregkh@suse.de>
|
||||||
* Copyright (c) 2006 Novell, Inc.
|
* Copyright (c) 2006 Novell, Inc.
|
||||||
*
|
|
||||||
* This file is released under the GPLv2
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/device.h>
|
#include <linux/device.h>
|
||||||
|
@ -2116,7 +2114,7 @@ int device_for_each_child(struct device *parent, void *data,
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
klist_iter_init(&parent->p->klist_children, &i);
|
klist_iter_init(&parent->p->klist_children, &i);
|
||||||
while ((child = next_device(&i)) && !error)
|
while (!error && (child = next_device(&i)))
|
||||||
error = fn(child, data);
|
error = fn(child, data);
|
||||||
klist_iter_exit(&i);
|
klist_iter_exit(&i);
|
||||||
return error;
|
return error;
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* CPU subsystem support
|
* CPU subsystem support
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* drivers/base/dd.c - The core device/driver interactions.
|
* drivers/base/dd.c - The core device/driver interactions.
|
||||||
*
|
*
|
||||||
|
@ -13,8 +14,6 @@
|
||||||
* Copyright (c) 2002-3 Open Source Development Labs
|
* Copyright (c) 2002-3 Open Source Development Labs
|
||||||
* Copyright (c) 2007-2009 Greg Kroah-Hartman <gregkh@suse.de>
|
* Copyright (c) 2007-2009 Greg Kroah-Hartman <gregkh@suse.de>
|
||||||
* Copyright (c) 2007-2009 Novell Inc.
|
* Copyright (c) 2007-2009 Novell Inc.
|
||||||
*
|
|
||||||
* This file is released under the GPLv2
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/device.h>
|
#include <linux/device.h>
|
||||||
|
@ -289,6 +288,18 @@ static void driver_bound(struct device *dev)
|
||||||
kobject_uevent(&dev->kobj, KOBJ_BIND);
|
kobject_uevent(&dev->kobj, KOBJ_BIND);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static ssize_t coredump_store(struct device *dev, struct device_attribute *attr,
|
||||||
|
const char *buf, size_t count)
|
||||||
|
{
|
||||||
|
device_lock(dev);
|
||||||
|
if (dev->driver->coredump)
|
||||||
|
dev->driver->coredump(dev);
|
||||||
|
device_unlock(dev);
|
||||||
|
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
static DEVICE_ATTR_WO(coredump);
|
||||||
|
|
||||||
static int driver_sysfs_add(struct device *dev)
|
static int driver_sysfs_add(struct device *dev)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -298,14 +309,26 @@ static int driver_sysfs_add(struct device *dev)
|
||||||
BUS_NOTIFY_BIND_DRIVER, dev);
|
BUS_NOTIFY_BIND_DRIVER, dev);
|
||||||
|
|
||||||
ret = sysfs_create_link(&dev->driver->p->kobj, &dev->kobj,
|
ret = sysfs_create_link(&dev->driver->p->kobj, &dev->kobj,
|
||||||
|
kobject_name(&dev->kobj));
|
||||||
|
if (ret)
|
||||||
|
goto fail;
|
||||||
|
|
||||||
|
ret = sysfs_create_link(&dev->kobj, &dev->driver->p->kobj,
|
||||||
|
"driver");
|
||||||
|
if (ret)
|
||||||
|
goto rm_dev;
|
||||||
|
|
||||||
|
if (!IS_ENABLED(CONFIG_DEV_COREDUMP) || !dev->driver->coredump ||
|
||||||
|
!device_create_file(dev, &dev_attr_coredump))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
sysfs_remove_link(&dev->kobj, "driver");
|
||||||
|
|
||||||
|
rm_dev:
|
||||||
|
sysfs_remove_link(&dev->driver->p->kobj,
|
||||||
kobject_name(&dev->kobj));
|
kobject_name(&dev->kobj));
|
||||||
if (ret == 0) {
|
|
||||||
ret = sysfs_create_link(&dev->kobj, &dev->driver->p->kobj,
|
fail:
|
||||||
"driver");
|
|
||||||
if (ret)
|
|
||||||
sysfs_remove_link(&dev->driver->p->kobj,
|
|
||||||
kobject_name(&dev->kobj));
|
|
||||||
}
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -314,6 +337,8 @@ static void driver_sysfs_remove(struct device *dev)
|
||||||
struct device_driver *drv = dev->driver;
|
struct device_driver *drv = dev->driver;
|
||||||
|
|
||||||
if (drv) {
|
if (drv) {
|
||||||
|
if (drv->coredump)
|
||||||
|
device_remove_file(dev, &dev_attr_coredump);
|
||||||
sysfs_remove_link(&drv->p->kobj, kobject_name(&dev->kobj));
|
sysfs_remove_link(&drv->p->kobj, kobject_name(&dev->kobj));
|
||||||
sysfs_remove_link(&dev->kobj, "driver");
|
sysfs_remove_link(&dev->kobj, "driver");
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,23 +1,8 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* This file is provided under the GPLv2 license.
|
|
||||||
*
|
|
||||||
* GPL LICENSE SUMMARY
|
|
||||||
*
|
|
||||||
* Copyright(c) 2014 Intel Mobile Communications GmbH
|
* Copyright(c) 2014 Intel Mobile Communications GmbH
|
||||||
* Copyright(c) 2015 Intel Deutschland GmbH
|
* Copyright(c) 2015 Intel Deutschland GmbH
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of version 2 of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* The full GNU General Public License is included in this distribution
|
|
||||||
* in the file called COPYING.
|
|
||||||
*
|
|
||||||
* Contact Information:
|
* Contact Information:
|
||||||
* Intel Linux Wireless <ilw@linux.intel.com>
|
* Intel Linux Wireless <ilw@linux.intel.com>
|
||||||
* Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
|
* Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* drivers/base/devres.c - device resource management
|
* drivers/base/devres.c - device resource management
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006 SUSE Linux Products GmbH
|
* Copyright (c) 2006 SUSE Linux Products GmbH
|
||||||
* Copyright (c) 2006 Tejun Heo <teheo@suse.de>
|
* Copyright (c) 2006 Tejun Heo <teheo@suse.de>
|
||||||
*
|
|
||||||
* This file is released under the GPLv2.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/device.h>
|
#include <linux/device.h>
|
||||||
|
|
|
@ -1,14 +1,10 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
/*
|
/*
|
||||||
* Contiguous Memory Allocator for DMA mapping framework
|
* Contiguous Memory Allocator for DMA mapping framework
|
||||||
* Copyright (c) 2010-2011 by Samsung Electronics.
|
* Copyright (c) 2010-2011 by Samsung Electronics.
|
||||||
* Written by:
|
* Written by:
|
||||||
* Marek Szyprowski <m.szyprowski@samsung.com>
|
* Marek Szyprowski <m.szyprowski@samsung.com>
|
||||||
* Michal Nazarewicz <mina86@mina86.com>
|
* Michal Nazarewicz <mina86@mina86.com>
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of the
|
|
||||||
* License or (at your optional) any later version of the license.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define pr_fmt(fmt) "cma: " fmt
|
#define pr_fmt(fmt) "cma: " fmt
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* drivers/base/dma-mapping.c - arch-independent dma-mapping routines
|
* drivers/base/dma-mapping.c - arch-independent dma-mapping routines
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006 SUSE Linux Products GmbH
|
* Copyright (c) 2006 SUSE Linux Products GmbH
|
||||||
* Copyright (c) 2006 Tejun Heo <teheo@suse.de>
|
* Copyright (c) 2006 Tejun Heo <teheo@suse.de>
|
||||||
*
|
|
||||||
* This file is released under the GPLv2.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/acpi.h>
|
#include <linux/acpi.h>
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* driver.c - centralized device driver management
|
* driver.c - centralized device driver management
|
||||||
*
|
*
|
||||||
|
@ -5,9 +6,6 @@
|
||||||
* Copyright (c) 2002-3 Open Source Development Labs
|
* Copyright (c) 2002-3 Open Source Development Labs
|
||||||
* Copyright (c) 2007 Greg Kroah-Hartman <gregkh@suse.de>
|
* Copyright (c) 2007 Greg Kroah-Hartman <gregkh@suse.de>
|
||||||
* Copyright (c) 2007 Novell Inc.
|
* Copyright (c) 2007 Novell Inc.
|
||||||
*
|
|
||||||
* This file is released under the GPLv2
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/device.h>
|
#include <linux/device.h>
|
||||||
|
@ -52,7 +50,7 @@ int driver_for_each_device(struct device_driver *drv, struct device *start,
|
||||||
|
|
||||||
klist_iter_init_node(&drv->p->klist_devices, &i,
|
klist_iter_init_node(&drv->p->klist_devices, &i,
|
||||||
start ? &start->p->knode_driver : NULL);
|
start ? &start->p->knode_driver : NULL);
|
||||||
while ((dev = next_device(&i)) && !error)
|
while (!error && (dev = next_device(&i)))
|
||||||
error = fn(dev, data);
|
error = fn(dev, data);
|
||||||
klist_iter_exit(&i);
|
klist_iter_exit(&i);
|
||||||
return error;
|
return error;
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* firmware.c - firmware subsystem hoohaw.
|
* firmware.c - firmware subsystem hoohaw.
|
||||||
*
|
*
|
||||||
|
@ -5,8 +6,6 @@
|
||||||
* Copyright (c) 2002-3 Open Source Development Labs
|
* Copyright (c) 2002-3 Open Source Development Labs
|
||||||
* Copyright (c) 2007 Greg Kroah-Hartman <gregkh@suse.de>
|
* Copyright (c) 2007 Greg Kroah-Hartman <gregkh@suse.de>
|
||||||
* Copyright (c) 2007 Novell Inc.
|
* Copyright (c) 2007 Novell Inc.
|
||||||
*
|
|
||||||
* This file is released under the GPLv2
|
|
||||||
*/
|
*/
|
||||||
#include <linux/kobject.h>
|
#include <linux/kobject.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,11 +1,10 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* hypervisor.c - /sys/hypervisor subsystem.
|
* hypervisor.c - /sys/hypervisor subsystem.
|
||||||
*
|
*
|
||||||
* Copyright (C) IBM Corp. 2006
|
* Copyright (C) IBM Corp. 2006
|
||||||
* Copyright (C) 2007 Greg Kroah-Hartman <gregkh@suse.de>
|
* Copyright (C) 2007 Greg Kroah-Hartman <gregkh@suse.de>
|
||||||
* Copyright (C) 2007 Novell Inc.
|
* Copyright (C) 2007 Novell Inc.
|
||||||
*
|
|
||||||
* This file is released under the GPLv2
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/kobject.h>
|
#include <linux/kobject.h>
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2002-3 Patrick Mochel
|
* Copyright (c) 2002-3 Patrick Mochel
|
||||||
* Copyright (c) 2002-3 Open Source Development Labs
|
* Copyright (c) 2002-3 Open Source Development Labs
|
||||||
*
|
|
||||||
* This file is released under the GPLv2
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/device.h>
|
#include <linux/device.h>
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* ISA bus.
|
* ISA bus.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* linux/drivers/base/map.c
|
* linux/drivers/base/map.c
|
||||||
*
|
*
|
||||||
* (C) Copyright Al Viro 2002,2003
|
* (C) Copyright Al Viro 2002,2003
|
||||||
* Released under GPL v2.
|
|
||||||
*
|
*
|
||||||
* NOTE: data structure needs to be changed. It works, but for large dev_t
|
* NOTE: data structure needs to be changed. It works, but for large dev_t
|
||||||
* it will be too slow. It is isolated, though, so these changes will be
|
* it will be too slow. It is isolated, though, so these changes will be
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* module.c - module sysfs fun for drivers
|
* module.c - module sysfs fun for drivers
|
||||||
*
|
|
||||||
* This file is released under the GPLv2
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
#include <linux/device.h>
|
#include <linux/device.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* Driver core interface to the pinctrl subsystem.
|
* Driver core interface to the pinctrl subsystem.
|
||||||
*
|
*
|
||||||
|
@ -6,8 +7,6 @@
|
||||||
* Based on bits of regulator core, gpio core and clk core
|
* Based on bits of regulator core, gpio core and clk core
|
||||||
*
|
*
|
||||||
* Author: Linus Walleij <linus.walleij@linaro.org>
|
* Author: Linus Walleij <linus.walleij@linaro.org>
|
||||||
*
|
|
||||||
* License terms: GNU General Public License (GPL) version 2
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/device.h>
|
#include <linux/device.h>
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* MSI framework for platform devices
|
* MSI framework for platform devices
|
||||||
*
|
*
|
||||||
* Copyright (C) 2015 ARM Limited, All Rights Reserved.
|
* Copyright (C) 2015 ARM Limited, All Rights Reserved.
|
||||||
* Author: Marc Zyngier <marc.zyngier@arm.com>
|
* Author: Marc Zyngier <marc.zyngier@arm.com>
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License version 2 as
|
|
||||||
* published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/device.h>
|
#include <linux/device.h>
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* platform.c - platform 'pseudo' bus for legacy devices
|
* platform.c - platform 'pseudo' bus for legacy devices
|
||||||
*
|
*
|
||||||
* Copyright (c) 2002-3 Patrick Mochel
|
* Copyright (c) 2002-3 Patrick Mochel
|
||||||
* Copyright (c) 2002-3 Open Source Development Labs
|
* Copyright (c) 2002-3 Open Source Development Labs
|
||||||
*
|
*
|
||||||
* This file is released under the GPLv2
|
|
||||||
*
|
|
||||||
* Please see Documentation/driver-model/platform.txt for more
|
* Please see Documentation/driver-model/platform.txt for more
|
||||||
* information.
|
* information.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,13 +1,10 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* property.c - Unified device property interface.
|
* property.c - Unified device property interface.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2014, Intel Corporation
|
* Copyright (C) 2014, Intel Corporation
|
||||||
* Authors: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
|
* Authors: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
|
||||||
* Mika Westerberg <mika.westerberg@linux.intel.com>
|
* Mika Westerberg <mika.westerberg@linux.intel.com>
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License version 2 as
|
|
||||||
* published by the Free Software Foundation.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/acpi.h>
|
#include <linux/acpi.h>
|
||||||
|
@ -699,6 +696,23 @@ int fwnode_property_get_reference_args(const struct fwnode_handle *fwnode,
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(fwnode_property_get_reference_args);
|
EXPORT_SYMBOL_GPL(fwnode_property_get_reference_args);
|
||||||
|
|
||||||
|
static void property_entry_free_data(const struct property_entry *p)
|
||||||
|
{
|
||||||
|
size_t i, nval;
|
||||||
|
|
||||||
|
if (p->is_array) {
|
||||||
|
if (p->is_string && p->pointer.str) {
|
||||||
|
nval = p->length / sizeof(const char *);
|
||||||
|
for (i = 0; i < nval; i++)
|
||||||
|
kfree(p->pointer.str[i]);
|
||||||
|
}
|
||||||
|
kfree(p->pointer.raw_data);
|
||||||
|
} else if (p->is_string) {
|
||||||
|
kfree(p->value.str);
|
||||||
|
}
|
||||||
|
kfree(p->name);
|
||||||
|
}
|
||||||
|
|
||||||
static int property_copy_string_array(struct property_entry *dst,
|
static int property_copy_string_array(struct property_entry *dst,
|
||||||
const struct property_entry *src)
|
const struct property_entry *src)
|
||||||
{
|
{
|
||||||
|
@ -729,34 +743,24 @@ static int property_entry_copy_data(struct property_entry *dst,
|
||||||
{
|
{
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
dst->name = kstrdup(src->name, GFP_KERNEL);
|
|
||||||
if (!dst->name)
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
if (src->is_array) {
|
if (src->is_array) {
|
||||||
if (!src->length) {
|
if (!src->length)
|
||||||
error = -ENODATA;
|
return -ENODATA;
|
||||||
goto out_free_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (src->is_string) {
|
if (src->is_string) {
|
||||||
error = property_copy_string_array(dst, src);
|
error = property_copy_string_array(dst, src);
|
||||||
if (error)
|
if (error)
|
||||||
goto out_free_name;
|
return error;
|
||||||
} else {
|
} else {
|
||||||
dst->pointer.raw_data = kmemdup(src->pointer.raw_data,
|
dst->pointer.raw_data = kmemdup(src->pointer.raw_data,
|
||||||
src->length, GFP_KERNEL);
|
src->length, GFP_KERNEL);
|
||||||
if (!dst->pointer.raw_data) {
|
if (!dst->pointer.raw_data)
|
||||||
error = -ENOMEM;
|
return -ENOMEM;
|
||||||
goto out_free_name;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else if (src->is_string) {
|
} else if (src->is_string) {
|
||||||
dst->value.str = kstrdup(src->value.str, GFP_KERNEL);
|
dst->value.str = kstrdup(src->value.str, GFP_KERNEL);
|
||||||
if (!dst->value.str && src->value.str) {
|
if (!dst->value.str && src->value.str)
|
||||||
error = -ENOMEM;
|
return -ENOMEM;
|
||||||
goto out_free_name;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
dst->value.raw_data = src->value.raw_data;
|
dst->value.raw_data = src->value.raw_data;
|
||||||
}
|
}
|
||||||
|
@ -765,28 +769,15 @@ static int property_entry_copy_data(struct property_entry *dst,
|
||||||
dst->is_array = src->is_array;
|
dst->is_array = src->is_array;
|
||||||
dst->is_string = src->is_string;
|
dst->is_string = src->is_string;
|
||||||
|
|
||||||
|
dst->name = kstrdup(src->name, GFP_KERNEL);
|
||||||
|
if (!dst->name)
|
||||||
|
goto out_free_data;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
out_free_name:
|
out_free_data:
|
||||||
kfree(dst->name);
|
property_entry_free_data(dst);
|
||||||
return error;
|
return -ENOMEM;
|
||||||
}
|
|
||||||
|
|
||||||
static void property_entry_free_data(const struct property_entry *p)
|
|
||||||
{
|
|
||||||
size_t i, nval;
|
|
||||||
|
|
||||||
if (p->is_array) {
|
|
||||||
if (p->is_string && p->pointer.str) {
|
|
||||||
nval = p->length / sizeof(const char *);
|
|
||||||
for (i = 0; i < nval; i++)
|
|
||||||
kfree(p->pointer.str[i]);
|
|
||||||
}
|
|
||||||
kfree(p->pointer.raw_data);
|
|
||||||
} else if (p->is_string) {
|
|
||||||
kfree(p->value.str);
|
|
||||||
}
|
|
||||||
kfree(p->name);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* Copyright (C) ST-Ericsson SA 2011
|
* Copyright (C) ST-Ericsson SA 2011
|
||||||
*
|
*
|
||||||
* Author: Lee Jones <lee.jones@linaro.org> for ST-Ericsson.
|
* Author: Lee Jones <lee.jones@linaro.org> for ST-Ericsson.
|
||||||
* License terms: GNU General Public License (GPL), version 2
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/sysfs.h>
|
#include <linux/sysfs.h>
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* syscore.c - Execution of system core operations.
|
* syscore.c - Execution of system core operations.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2011 Rafael J. Wysocki <rjw@sisk.pl>, Novell Inc.
|
* Copyright (C) 2011 Rafael J. Wysocki <rjw@sisk.pl>, Novell Inc.
|
||||||
*
|
|
||||||
* This file is released under the GPLv2.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscore_ops.h>
|
#include <linux/syscore_ops.h>
|
||||||
|
|
|
@ -1,14 +1,6 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2014 Google, Inc.
|
* Copyright (C) 2014 Google, Inc.
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License version 2 as
|
|
||||||
* published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
/*
|
/*
|
||||||
* driver/base/topology.c - Populate sysfs with cpu topology information
|
* driver/base/topology.c - Populate sysfs with cpu topology information
|
||||||
*
|
*
|
||||||
|
@ -6,22 +7,6 @@
|
||||||
* Copyright (C) 2006, Intel Corp.
|
* Copyright (C) 2006, Intel Corp.
|
||||||
*
|
*
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
|
|
||||||
* NON INFRINGEMENT. See the GNU General Public License for more
|
|
||||||
* details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
#include <linux/mm.h>
|
#include <linux/mm.h>
|
||||||
#include <linux/cpu.h>
|
#include <linux/cpu.h>
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue