You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'clocksource/cleanup' into next/cleanup
Clockevent cleanup series from Shawn Guo. Resolved move/change conflict in mach-pxa/time.c due to the sys_timer cleanup. * clocksource/cleanup: clocksource: use clockevents_config_and_register() where possible ARM: use clockevents_config_and_register() where possible clockevents: export clockevents_config_and_register for module use + sync to Linux 3.8-rc3 Signed-off-by: Olof Johansson <olof@lixom.net> Conflicts: arch/arm/mach-pxa/time.c
This commit is contained in:
@@ -116,7 +116,7 @@ my_suspend (struct pci_dev * pci_dev,
|
||||
return 0; /* a negative value on error, 0 on success. */
|
||||
}
|
||||
|
||||
static void __devexit
|
||||
static void
|
||||
my_remove (struct pci_dev * pci_dev)
|
||||
{
|
||||
my_device *my = pci_get_drvdata (pci_dev);
|
||||
@@ -124,7 +124,7 @@ my_remove (struct pci_dev * pci_dev)
|
||||
/* Describe me. */
|
||||
}
|
||||
|
||||
static int __devinit
|
||||
static int
|
||||
my_probe (struct pci_dev * pci_dev,
|
||||
const struct pci_device_id * pci_id)
|
||||
{
|
||||
@@ -157,7 +157,7 @@ my_pci_driver = {
|
||||
.id_table = my_pci_device_ids,
|
||||
|
||||
.probe = my_probe,
|
||||
.remove = __devexit_p (my_remove),
|
||||
.remove = my_remove,
|
||||
|
||||
/* Power management functions. */
|
||||
.suspend = my_suspend,
|
||||
|
||||
@@ -76,7 +76,7 @@ To notify SR-IOV core of Virtual Function Migration:
|
||||
|
||||
Following piece of code illustrates the usage of the SR-IOV API.
|
||||
|
||||
static int __devinit dev_probe(struct pci_dev *dev, const struct pci_device_id *id)
|
||||
static int dev_probe(struct pci_dev *dev, const struct pci_device_id *id)
|
||||
{
|
||||
pci_enable_sriov(dev, NR_VIRTFN);
|
||||
|
||||
@@ -85,7 +85,7 @@ static int __devinit dev_probe(struct pci_dev *dev, const struct pci_device_id *
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void __devexit dev_remove(struct pci_dev *dev)
|
||||
static void dev_remove(struct pci_dev *dev)
|
||||
{
|
||||
pci_disable_sriov(dev);
|
||||
|
||||
@@ -131,7 +131,7 @@ static struct pci_driver dev_driver = {
|
||||
.name = "SR-IOV Physical Function driver",
|
||||
.id_table = dev_id_table,
|
||||
.probe = dev_probe,
|
||||
.remove = __devexit_p(dev_remove),
|
||||
.remove = dev_remove,
|
||||
.suspend = dev_suspend,
|
||||
.resume = dev_resume,
|
||||
.shutdown = dev_shutdown,
|
||||
|
||||
@@ -183,12 +183,6 @@ Please mark the initialization and cleanup functions where appropriate
|
||||
initializes.
|
||||
__exit Exit code. Ignored for non-modular drivers.
|
||||
|
||||
|
||||
__devinit Device initialization code.
|
||||
Identical to __init if the kernel is not compiled
|
||||
with CONFIG_HOTPLUG, normal function otherwise.
|
||||
__devexit The same for __exit.
|
||||
|
||||
Tips on when/where to use the above attributes:
|
||||
o The module_init()/module_exit() functions (and all
|
||||
initialization functions called _only_ from these)
|
||||
@@ -196,20 +190,6 @@ Tips on when/where to use the above attributes:
|
||||
|
||||
o Do not mark the struct pci_driver.
|
||||
|
||||
o The ID table array should be marked __devinitconst; this is done
|
||||
automatically if the table is declared with DEFINE_PCI_DEVICE_TABLE().
|
||||
|
||||
o The probe() and remove() functions should be marked __devinit
|
||||
and __devexit respectively. All initialization functions
|
||||
exclusively called by the probe() routine, can be marked __devinit.
|
||||
Ditto for remove() and __devexit.
|
||||
|
||||
o If mydriver_remove() is marked with __devexit(), then all address
|
||||
references to mydriver_remove must use __devexit_p(mydriver_remove)
|
||||
(in the struct pci_driver declaration for example).
|
||||
__devexit_p() will generate the function name _or_ NULL if the
|
||||
function will be discarded. For an example, see drivers/net/tg3.c.
|
||||
|
||||
o Do NOT mark a function if you are not sure which mark to use.
|
||||
Better to not mark the function than mark the function wrong.
|
||||
|
||||
|
||||
@@ -185,7 +185,7 @@ input driver:
|
||||
.acpi_match_table ACPI_PTR(mpu3050_acpi_match),
|
||||
},
|
||||
.probe = mpu3050_probe,
|
||||
.remove = __devexit_p(mpu3050_remove),
|
||||
.remove = mpu3050_remove,
|
||||
.id_table = mpu3050_ids,
|
||||
};
|
||||
|
||||
|
||||
@@ -60,11 +60,6 @@ clks: clkctrl@80040000 {
|
||||
compatible = "fsl,imx23-clkctrl";
|
||||
reg = <0x80040000 0x2000>;
|
||||
#clock-cells = <1>;
|
||||
clock-output-names =
|
||||
...
|
||||
"uart", /* 32 */
|
||||
...
|
||||
"end_of_list";
|
||||
};
|
||||
|
||||
auart0: serial@8006c000 {
|
||||
|
||||
@@ -146,10 +146,6 @@ clks: ccm@53f80000 {
|
||||
compatible = "fsl,imx25-ccm";
|
||||
reg = <0x53f80000 0x4000>;
|
||||
interrupts = <31>;
|
||||
clock-output-names = ...
|
||||
"uart_ipg",
|
||||
"uart_serial",
|
||||
...;
|
||||
};
|
||||
|
||||
uart1: serial@43f90000 {
|
||||
|
||||
@@ -83,11 +83,6 @@ clks: clkctrl@80040000 {
|
||||
compatible = "fsl,imx28-clkctrl";
|
||||
reg = <0x80040000 0x2000>;
|
||||
#clock-cells = <1>;
|
||||
clock-output-names =
|
||||
...
|
||||
"uart", /* 45 */
|
||||
...
|
||||
"end_of_list";
|
||||
};
|
||||
|
||||
auart0: serial@8006a000 {
|
||||
|
||||
@@ -211,10 +211,6 @@ clks: ccm@020c4000 {
|
||||
reg = <0x020c4000 0x4000>;
|
||||
interrupts = <0 87 0x04 0 88 0x04>;
|
||||
#clock-cells = <1>;
|
||||
clock-output-names = ...
|
||||
"uart_ipg",
|
||||
"uart_serial",
|
||||
...;
|
||||
};
|
||||
|
||||
uart1: serial@02020000 {
|
||||
|
||||
@@ -1,4 +1,19 @@
|
||||
GPIO line that should be set high/low to power off a device
|
||||
Driver a GPIO line that can be used to turn the power off.
|
||||
|
||||
The driver supports both level triggered and edge triggered power off.
|
||||
At driver load time, the driver will request the given gpio line and
|
||||
install a pm_power_off handler. If the optional properties 'input' is
|
||||
not found, the GPIO line will be driven in the inactive
|
||||
state. Otherwise its configured as an input.
|
||||
|
||||
When the pm_power_off is called, the gpio is configured as an output,
|
||||
and drive active, so triggering a level triggered power off
|
||||
condition. This will also cause an inactive->active edge condition, so
|
||||
triggering positive edge triggered power off. After a delay of 100ms,
|
||||
the GPIO is set to inactive, thus causing an active->inactive edge,
|
||||
triggering negative edge triggered power off. After another 100ms
|
||||
delay the GPIO is driver active again. If the power is still on and
|
||||
the CPU still running after a 3000ms delay, a WARN_ON(1) is emitted.
|
||||
|
||||
Required properties:
|
||||
- compatible : should be "gpio-poweroff".
|
||||
@@ -13,10 +28,9 @@ Optional properties:
|
||||
property is not specified, the GPIO is initialized as an output in its
|
||||
inactive state.
|
||||
|
||||
|
||||
Examples:
|
||||
|
||||
gpio-poweroff {
|
||||
compatible = "gpio-poweroff";
|
||||
gpios = <&gpio 4 0>; /* GPIO 4 Active Low */
|
||||
gpios = <&gpio 4 0>;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
CSR SiRFprimaII pinmux controller
|
||||
|
||||
Required properties:
|
||||
- compatible : "sirf,prima2-pinctrl"
|
||||
- reg : Address range of the pinctrl registers
|
||||
- interrupts : Interrupts used by every GPIO group
|
||||
- gpio-controller : Indicates this device is a GPIO controller
|
||||
- interrupt-controller : Marks the device node as an interrupt controller
|
||||
Optional properties:
|
||||
- sirf,pullups : if n-th bit of m-th bank is set, set a pullup on GPIO-n of bank m
|
||||
- sirf,pulldowns : if n-th bit of m-th bank is set, set a pulldown on GPIO-n of bank m
|
||||
|
||||
Please refer to pinctrl-bindings.txt in this directory for details of the common
|
||||
pinctrl bindings used by client devices.
|
||||
|
||||
SiRFprimaII's pinmux nodes act as a container for an abitrary number of subnodes.
|
||||
Each of these subnodes represents some desired configuration for a group of pins.
|
||||
|
||||
Required subnode-properties:
|
||||
- sirf,pins : An array of strings. Each string contains the name of a group.
|
||||
- sirf,function: A string containing the name of the function to mux to the
|
||||
group.
|
||||
|
||||
Valid values for group and function names can be found from looking at the
|
||||
group and function arrays in driver files:
|
||||
drivers/pinctrl/pinctrl-sirf.c
|
||||
|
||||
For example, pinctrl might have subnodes like the following:
|
||||
uart2_pins_a: uart2@0 {
|
||||
uart {
|
||||
sirf,pins = "uart2grp";
|
||||
sirf,function = "uart2";
|
||||
};
|
||||
};
|
||||
uart2_noflow_pins_a: uart2@1 {
|
||||
uart {
|
||||
sirf,pins = "uart2_nostreamctrlgrp";
|
||||
sirf,function = "uart2_nostreamctrl";
|
||||
};
|
||||
};
|
||||
|
||||
For a specific board, if it wants to use uart2 without hardware flow control,
|
||||
it can add the following to its board-specific .dts file.
|
||||
uart2: uart@0xb0070000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart2_noflow_pins_a>;
|
||||
}
|
||||
@@ -91,7 +91,7 @@ Example (from the nxp OHCI driver):
|
||||
|
||||
static const unsigned short normal_i2c[] = { 0x2c, 0x2d, I2C_CLIENT_END };
|
||||
|
||||
static int __devinit usb_hcd_nxp_probe(struct platform_device *pdev)
|
||||
static int usb_hcd_nxp_probe(struct platform_device *pdev)
|
||||
{
|
||||
(...)
|
||||
struct i2c_adapter *i2c_adap;
|
||||
|
||||
@@ -36,7 +36,7 @@ neigh/default/unres_qlen_bytes - INTEGER
|
||||
The maximum number of bytes which may be used by packets
|
||||
queued for each unresolved address by other network layers.
|
||||
(added in linux 3.3)
|
||||
Seting negative value is meaningless and will retrun error.
|
||||
Setting negative value is meaningless and will return error.
|
||||
Default: 65536 Bytes(64KB)
|
||||
|
||||
neigh/default/unres_qlen - INTEGER
|
||||
@@ -215,7 +215,7 @@ tcp_ecn - INTEGER
|
||||
Possible values are:
|
||||
0 Disable ECN. Neither initiate nor accept ECN.
|
||||
1 Always request ECN on outgoing connection attempts.
|
||||
2 Enable ECN when requested by incomming connections
|
||||
2 Enable ECN when requested by incoming connections
|
||||
but do not request ECN on outgoing connections.
|
||||
Default: 2
|
||||
|
||||
@@ -503,7 +503,7 @@ tcp_fastopen - INTEGER
|
||||
tcp_syn_retries - INTEGER
|
||||
Number of times initial SYNs for an active TCP connection attempt
|
||||
will be retransmitted. Should not be higher than 255. Default value
|
||||
is 6, which corresponds to 63seconds till the last restransmission
|
||||
is 6, which corresponds to 63seconds till the last retransmission
|
||||
with the current initial RTO of 1second. With this the final timeout
|
||||
for an active TCP connection attempt will happen after 127seconds.
|
||||
|
||||
@@ -1331,6 +1331,12 @@ force_tllao - BOOLEAN
|
||||
race condition where the sender deletes the cached link-layer address
|
||||
prior to receiving a response to a previous solicitation."
|
||||
|
||||
ndisc_notify - BOOLEAN
|
||||
Define mode for notification of address and device changes.
|
||||
0 - (default): do nothing
|
||||
1 - Generate unsolicited neighbour advertisements when device is brought
|
||||
up or hardware address changes.
|
||||
|
||||
icmp/*:
|
||||
ratelimit - INTEGER
|
||||
Limit the maximal rates for sending ICMPv6 packets.
|
||||
@@ -1530,7 +1536,7 @@ cookie_hmac_alg - STRING
|
||||
* sha1
|
||||
* none
|
||||
Ability to assign md5 or sha1 as the selected alg is predicated on the
|
||||
configuarion of those algorithms at build time (CONFIG_CRYPTO_MD5 and
|
||||
configuration of those algorithms at build time (CONFIG_CRYPTO_MD5 and
|
||||
CONFIG_CRYPTO_SHA1).
|
||||
|
||||
Default: Dependent on configuration. MD5 if available, else SHA1 if
|
||||
@@ -1548,7 +1554,7 @@ rcvbuf_policy - INTEGER
|
||||
blocking.
|
||||
|
||||
1: rcvbuf space is per association
|
||||
0: recbuf space is per socket
|
||||
0: rcvbuf space is per socket
|
||||
|
||||
Default: 0
|
||||
|
||||
|
||||
@@ -642,12 +642,13 @@ out the following operations:
|
||||
* During system suspend it calls pm_runtime_get_noresume() and
|
||||
pm_runtime_barrier() for every device right before executing the
|
||||
subsystem-level .suspend() callback for it. In addition to that it calls
|
||||
pm_runtime_disable() for every device right after executing the
|
||||
subsystem-level .suspend() callback for it.
|
||||
__pm_runtime_disable() with 'false' as the second argument for every device
|
||||
right before executing the subsystem-level .suspend_late() callback for it.
|
||||
|
||||
* During system resume it calls pm_runtime_enable() and pm_runtime_put_sync()
|
||||
for every device right before and right after executing the subsystem-level
|
||||
.resume() callback for it, respectively.
|
||||
for every device right after executing the subsystem-level .resume_early()
|
||||
callback and right after executing the subsystem-level .resume() callback
|
||||
for it, respectively.
|
||||
|
||||
7. Generic subsystem callbacks
|
||||
|
||||
|
||||
@@ -236,7 +236,7 @@ static int rpmsg_sample_probe(struct rpmsg_channel *rpdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void __devexit rpmsg_sample_remove(struct rpmsg_channel *rpdev)
|
||||
static void rpmsg_sample_remove(struct rpmsg_channel *rpdev)
|
||||
{
|
||||
dev_info(&rpdev->dev, "rpmsg sample client driver is removed\n");
|
||||
}
|
||||
@@ -253,7 +253,7 @@ static struct rpmsg_driver rpmsg_sample_client = {
|
||||
.id_table = rpmsg_driver_sample_id_table,
|
||||
.probe = rpmsg_sample_probe,
|
||||
.callback = rpmsg_sample_cb,
|
||||
.remove = __devexit_p(rpmsg_sample_remove),
|
||||
.remove = rpmsg_sample_remove,
|
||||
};
|
||||
|
||||
static int __init init(void)
|
||||
|
||||
@@ -345,7 +345,7 @@ SPI protocol drivers somewhat resemble platform device drivers:
|
||||
},
|
||||
|
||||
.probe = CHIP_probe,
|
||||
.remove = __devexit_p(CHIP_remove),
|
||||
.remove = CHIP_remove,
|
||||
.suspend = CHIP_suspend,
|
||||
.resume = CHIP_resume,
|
||||
};
|
||||
@@ -355,7 +355,7 @@ device whose board_info gave a modalias of "CHIP". Your probe() code
|
||||
might look like this unless you're creating a device which is managing
|
||||
a bus (appearing under /sys/class/spi_master).
|
||||
|
||||
static int __devinit CHIP_probe(struct spi_device *spi)
|
||||
static int CHIP_probe(struct spi_device *spi)
|
||||
{
|
||||
struct CHIP *chip;
|
||||
struct CHIP_platform_data *pdata;
|
||||
|
||||
@@ -38,6 +38,7 @@ show up in /proc/sys/kernel:
|
||||
- l2cr [ PPC only ]
|
||||
- modprobe ==> Documentation/debugging-modules.txt
|
||||
- modules_disabled
|
||||
- msg_next_id [ sysv ipc ]
|
||||
- msgmax
|
||||
- msgmnb
|
||||
- msgmni
|
||||
@@ -62,7 +63,9 @@ show up in /proc/sys/kernel:
|
||||
- rtsig-max
|
||||
- rtsig-nr
|
||||
- sem
|
||||
- sem_next_id [ sysv ipc ]
|
||||
- sg-big-buff [ generic SCSI device (sg) ]
|
||||
- shm_next_id [ sysv ipc ]
|
||||
- shm_rmid_forced
|
||||
- shmall
|
||||
- shmmax [ sysv ipc ]
|
||||
@@ -320,6 +323,22 @@ to false.
|
||||
|
||||
==============================================================
|
||||
|
||||
msg_next_id, sem_next_id, and shm_next_id:
|
||||
|
||||
These three toggles allows to specify desired id for next allocated IPC
|
||||
object: message, semaphore or shared memory respectively.
|
||||
|
||||
By default they are equal to -1, which means generic allocation logic.
|
||||
Possible values to set are in range {0..INT_MAX}.
|
||||
|
||||
Notes:
|
||||
1) kernel doesn't guarantee, that new object will have desired id. So,
|
||||
it's up to userspace, how to handle an object with "wrong" id.
|
||||
2) Toggle with non-default value will be set back to -1 by kernel after
|
||||
successful IPC object allocation.
|
||||
|
||||
==============================================================
|
||||
|
||||
nmi_watchdog:
|
||||
|
||||
Enables/Disables the NMI watchdog on x86 systems. When the value is
|
||||
@@ -542,6 +561,19 @@ are doing anyway :)
|
||||
|
||||
==============================================================
|
||||
|
||||
shmall:
|
||||
|
||||
This parameter sets the total amount of shared memory pages that
|
||||
can be used system wide. Hence, SHMALL should always be at least
|
||||
ceil(shmmax/PAGE_SIZE).
|
||||
|
||||
If you are not sure what the default PAGE_SIZE is on your Linux
|
||||
system, you can run the following command:
|
||||
|
||||
# getconf PAGE_SIZE
|
||||
|
||||
==============================================================
|
||||
|
||||
shmmax:
|
||||
|
||||
This value can be used to query and set the run time limit
|
||||
|
||||
@@ -174,8 +174,7 @@ The recommended approach is as follows:
|
||||
|
||||
static atomic_t drv_instance = ATOMIC_INIT(0);
|
||||
|
||||
static int __devinit drv_probe(struct pci_dev *pdev,
|
||||
const struct pci_device_id *pci_id)
|
||||
static int drv_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id)
|
||||
{
|
||||
...
|
||||
state->instance = atomic_inc_return(&drv_instance) - 1;
|
||||
|
||||
@@ -182,8 +182,7 @@ int iterate(void *p)
|
||||
|
||||
static atomic_t drv_instance = ATOMIC_INIT(0);
|
||||
|
||||
static int __devinit drv_probe(struct pci_dev *pdev,
|
||||
const struct pci_device_id *pci_id)
|
||||
static int drv_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id)
|
||||
{
|
||||
...
|
||||
state->instance = atomic_inc_return(&drv_instance) - 1;
|
||||
|
||||
+134
-75
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
VERSION = 3
|
||||
PATCHLEVEL = 8
|
||||
SUBLEVEL = 0
|
||||
EXTRAVERSION = -rc2
|
||||
EXTRAVERSION = -rc3
|
||||
NAME = Terrified Chipmunk
|
||||
|
||||
# *DOCUMENTATION*
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user