Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b13bc8dd authored by Linus Torvalds's avatar Linus Torvalds
Browse files


Pull staging tree patches from Greg Kroah-Hartman:
 "Here's the big staging tree merge for the 3.6-rc1 merge window.

  There are some patches in here outside of drivers/staging/, notibly
  the iio code (which is still stradeling the staging / not staging
  boundry), the pstore code, and the tracing code.  All of these have
  gotten acks from the various subsystem maintainers to be included in
  this tree.  The pstore and tracing patches are related, and are coming
  here as they replace one of the android staging drivers.

  Otherwise, the normal staging mess.  Lots of cleanups and a few new
  drivers (some iio drivers, and the large csr wireless driver
  abomination.)

  Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org&gt;">

Fixed up trivial conflicts in drivers/staging/comedi/drivers/s626.h and
drivers/staging/gdm72xx/netlink_k.c

* tag 'staging-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (1108 commits)
  staging: csr: delete a bunch of unused library functions
  staging: csr: remove csr_utf16.c
  staging: csr: remove csr_pmem.h
  staging: csr: remove CsrPmemAlloc
  staging: csr: remove CsrPmemFree()
  staging: csr: remove CsrMemAllocDma()
  staging: csr: remove CsrMemCalloc()
  staging: csr: remove CsrMemAlloc()
  staging: csr: remove CsrMemFree() and CsrMemFreeDma()
  staging: csr: remove csr_util.h
  staging: csr: remove CsrOffSetOf()
  stating: csr: remove unneeded #includes in csr_util.c
  staging: csr: make CsrUInt16ToHex static
  staging: csr: remove CsrMemCpy()
  staging: csr: remove CsrStrLen()
  staging: csr: remove CsrVsnprintf()
  staging: csr: remove CsrStrDup
  staging: csr: remove CsrStrChr()
  staging: csr: remove CsrStrNCmp
  staging: csr: remove CsrStrCmp
  ...
parents 9fc37779 419e9266
Loading
Loading
Loading
Loading
+28 −26
Original line number Diff line number Diff line
@@ -40,9 +40,9 @@ Contact: linux-iio@vger.kernel.org
Description:
		Some devices have internal clocks.  This parameter sets the
		resulting sampling frequency.  In many devices this
		parameter has an effect on input filters etc rather than
		parameter has an effect on input filters etc. rather than
		simply controlling when the input is sampled.  As this
		effects datardy triggers, hardware buffers and the sysfs
		effects data ready triggers, hardware buffers and the sysfs
		direct access interfaces, it may be found in any of the
		relevant directories.  If it effects all of the above
		then it is to be found in the base device directory.
@@ -74,7 +74,7 @@ What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_supply_raw
KernelVersion:	2.6.35
Contact:	linux-iio@vger.kernel.org
Description:
		Raw (unscaled no bias removal etc) voltage measurement from
		Raw (unscaled no bias removal etc.) voltage measurement from
		channel Y. In special cases where the channel does not
		correspond to externally available input one of the named
		versions may be used. The number must always be specified and
@@ -118,11 +118,11 @@ What: /sys/bus/iio/devices/iio:deviceX/in_temp_z_raw
KernelVersion:	2.6.35
Contact:	linux-iio@vger.kernel.org
Description:
		Raw (unscaled no bias removal etc) temperature measurement.
		Raw (unscaled no bias removal etc.) temperature measurement.
		If an axis is specified it generally means that the temperature
		sensor is associated with one part of a compound device (e.g.
		a gyroscope axis). Units after application of scale and offset
		are milli degrees Celsuis.
		are milli degrees Celsius.

What:		/sys/bus/iio/devices/iio:deviceX/in_tempX_input
KernelVersion:	2.6.38
@@ -148,10 +148,9 @@ KernelVersion: 2.6.35
Contact:	linux-iio@vger.kernel.org
Description:
		Angular velocity about axis x, y or z (may be arbitrarily
		assigned) Data converted by application of offset then scale to
		radians per second. Has all the equivalent parameters as
		per voltageY. Units after application of scale and offset are
		radians per second.
		assigned). Has all the equivalent parameters as	per voltageY.
		Units after application of scale and offset are	radians per
		second.

What:		/sys/bus/iio/devices/iio:deviceX/in_incli_x_raw
What:		/sys/bus/iio/devices/iio:deviceX/in_incli_y_raw
@@ -161,7 +160,7 @@ Contact: linux-iio@vger.kernel.org
Description:
		Inclination raw reading about axis x, y or z (may be
		arbitrarily assigned). Data converted by application of offset
		and scale to Degrees.
		and scale to degrees.

What:		/sys/bus/iio/devices/iio:deviceX/in_magn_x_raw
What:		/sys/bus/iio/devices/iio:deviceX/in_magn_y_raw
@@ -203,7 +202,7 @@ Contact: linux-iio@vger.kernel.org
Description:
		If known for a device, offset to be added to <type>[Y]_raw prior
		to scaling by <type>[Y]_scale in order to obtain value in the
		<type> units as specified in <type>[y]_raw documentation.
		<type> units as specified in <type>[Y]_raw documentation.
		Not present if the offset is always 0 or unknown. If Y or
		axis <x|y|z> is not present, then the offset applies to all
		in channels of <type>.
@@ -249,7 +248,7 @@ What: /sys/bus/iio/devices/iio:deviceX/in_proximity0_calibbias
KernelVersion:	2.6.35
Contact:	linux-iio@vger.kernel.org
Description:
		Hardware applied calibration offset. (assumed to fix production
		Hardware applied calibration offset (assumed to fix production
		inaccuracies).

What		/sys/bus/iio/devices/iio:deviceX/in_voltageY_calibscale
@@ -266,7 +265,7 @@ what /sys/bus/iio/devices/iio:deviceX/in_proximity0_calibscale
KernelVersion:	2.6.35
Contact:	linux-iio@vger.kernel.org
Description:
		Hardware applied calibration scale factor. (assumed to fix
		Hardware applied calibration scale factor (assumed to fix
		production inaccuracies).  If shared across all channels,
		<type>_calibscale is used.

@@ -276,10 +275,10 @@ What: /sys/.../iio:deviceX/in_voltage-voltage_scale_available
What:		/sys/.../iio:deviceX/out_voltageX_scale_available
What:		/sys/.../iio:deviceX/out_altvoltageX_scale_available
What:		/sys/.../iio:deviceX/in_capacitance_scale_available
KernelVersion:	2.635
KernelVersion:	2.6.35
Contact:	linux-iio@vger.kernel.org
Description:
		If a discrete set of scale values are available, they
		If a discrete set of scale values is available, they
		are listed in this attribute.

What		/sys/bus/iio/devices/iio:deviceX/out_voltageY_hardwaregain
@@ -330,9 +329,11 @@ Contact: linux-iio@vger.kernel.org
Description:
		Specifies the output powerdown mode.
		DAC output stage is disconnected from the amplifier and
		1kohm_to_gnd: connected to ground via an 1kOhm resistor
		100kohm_to_gnd: connected to ground via an 100kOhm resistor
		three_state: left floating
		1kohm_to_gnd: connected	to ground via an 1kOhm resistor,
		6kohm_to_gnd: connected to ground via a 6kOhm resistor,
		20kohm_to_gnd: connected to ground via a 20kOhm resistor,
		100kohm_to_gnd: connected to ground via an 100kOhm resistor,
		three_state: left floating.
		For a list of available output power down options read
		outX_powerdown_mode_available. If Y is not present the
		mode is shared across all outputs.
@@ -355,9 +356,10 @@ KernelVersion: 2.6.38
Contact:	linux-iio@vger.kernel.org
Description:
		Writing 1 causes output Y to enter the power down mode specified
		by the corresponding outY_powerdown_mode. Clearing returns to
		normal operation. Y may be suppressed if all outputs are
		controlled together.
		by the corresponding outY_powerdown_mode. DAC output stage is
		disconnected from the amplifier. Clearing returns to normal
		operation. Y may be suppressed if all outputs are controlled
		together.

What:		/sys/bus/iio/devices/iio:deviceX/out_altvoltageY_frequency
KernelVersion:	3.4.0
@@ -421,12 +423,12 @@ Description:
		different values, but the device can only enable both thresholds
		or neither.
		Note the driver will assume the last p events requested are
		to be enabled where p is however many it supports (which may
		vary depending on the exact set requested. So if you want to be
		to be enabled where p is how many it supports (which may vary
		depending on the exact set requested. So if you want to be
		sure you have set what you think you have, check the contents of
		these attributes after everything is configured. Drivers may
		have to buffer any parameters so that they are consistent when
		a given event type is enabled a future point (and not those for
		a given event type is enabled at a future point (and not those for
		whatever event was previously enabled).

What:		/sys/.../iio:deviceX/events/in_accel_x_roc_rising_en
@@ -702,7 +704,7 @@ What: /sys/.../buffer/scan_elements/in_anglvel_type
What:		/sys/.../buffer/scan_elements/in_magn_type
What:		/sys/.../buffer/scan_elements/in_incli_type
What:		/sys/.../buffer/scan_elements/in_voltageY_type
What:		/sys/.../buffer/scan_elements/in_voltage-in_type
What:		/sys/.../buffer/scan_elements/in_voltage_type
What:		/sys/.../buffer/scan_elements/in_voltageY_supply_type
What:		/sys/.../buffer/scan_elements/in_timestamp_type
KernelVersion:	2.6.37
@@ -723,7 +725,7 @@ Description:
		the buffer output value appropriately.  The storagebits value
		also specifies the data alignment.  So s48/64>>2 will be a
		signed 48 bit integer stored in a 64 bit location aligned to
		a a64 bit boundary. To obtain the clean value, shift right 2
		a 64 bit boundary. To obtain the clean value, shift right 2
		and apply a mask to zero the top 16 bits of the result.
		For other storage combinations this attribute will be extended
		appropriately.
+37 −0
Original line number Diff line number Diff line
What:		/sys/bus/iio/devices/iio:deviceX/pll2_feedback_clk_present
What:		/sys/bus/iio/devices/iio:deviceX/pll2_reference_clk_present
What:		/sys/bus/iio/devices/iio:deviceX/pll1_reference_clk_a_present
What:		/sys/bus/iio/devices/iio:deviceX/pll1_reference_clk_b_present
What:		/sys/bus/iio/devices/iio:deviceX/pll1_reference_clk_test_present
What:		/sys/bus/iio/devices/iio:deviceX/vcxo_clk_present
KernelVersion:	3.4.0
Contact:	linux-iio@vger.kernel.org
Description:
		Reading returns either '1' or '0'.
		'1' means that the clock in question is present.
		'0' means that the clock is missing.

What:		/sys/bus/iio/devices/iio:deviceX/pllY_locked
KernelVersion:	3.4.0
Contact:	linux-iio@vger.kernel.org
Description:
		Reading returns either '1' or '0'. '1' means that the
		pllY is locked.

What:		/sys/bus/iio/devices/iio:deviceX/store_eeprom
KernelVersion:	3.4.0
Contact:	linux-iio@vger.kernel.org
Description:
		Writing '1' stores the current device configuration into
		on-chip EEPROM. After power-up or chip reset the device will
		automatically load the saved configuration.

What:		/sys/bus/iio/devices/iio:deviceX/sync_dividers
KernelVersion:	3.4.0
Contact:	linux-iio@vger.kernel.org
Description:
		Writing '1' triggers the clock distribution synchronization
		functionality. All dividers are reset and the channels start
		with their predefined phase offsets (out_altvoltageY_phase).
		Writing this file has the effect as driving the external
		/SYNC pin low.
+21 −0
Original line number Diff line number Diff line
What:		/sys/bus/iio/devices/iio:deviceX/out_altvoltageY_frequency_resolution
KernelVersion:	3.4.0
Contact:	linux-iio@vger.kernel.org
Description:
		Stores channel Y frequency resolution/channel spacing in Hz.
		The value given directly influences the MODULUS used by
		the fractional-N PLL. It is assumed that the algorithm
		that is used to compute the various dividers, is able to
		generate proper values for multiples of channel spacing.

What:		/sys/bus/iio/devices/iio:deviceX/out_altvoltageY_refin_frequency
KernelVersion:	3.4.0
Contact:	linux-iio@vger.kernel.org
Description:
		Sets channel Y REFin frequency in Hz. In some clock chained
		applications, the reference frequency used by the PLL may
		change during runtime. This attribute allows the user to
		adjust the reference frequency accordingly.
		The value written has no effect until out_altvoltageY_frequency
		is updated. Consider to use out_altvoltageY_powerdown to power
		down the PLL and it's RFOut buffers during REFin changes.
+61 −0
Original line number Diff line number Diff line
What:		/sys/.../events/in_illuminance0_thresh_either_en
Date:		April 2012
KernelVersion:	3.5
Contact:	Johan Hovold <jhovold@gmail.com>
Description:
		Event generated when channel passes one of the four thresholds
		in each direction (rising|falling) and a zone change occurs.
		The corresponding light zone can be read from
		in_illuminance0_zone.

What:		/sys/.../events/in_illuminance0_threshY_hysteresis
Date:		May 2012
KernelVersion:	3.5
Contact:	Johan Hovold <jhovold@gmail.com>
Description:
		Get the hysteresis for thresholds Y, that is,
		threshY_hysteresis = threshY_raising - threshY_falling

What:		/sys/.../events/illuminance_threshY_falling_value
What:		/sys/.../events/illuminance_threshY_raising_value
Date:		April 2012
KernelVersion:	3.5
Contact:	Johan Hovold <jhovold@gmail.com>
Description:
		Specifies the value of threshold that the device is comparing
		against for the events enabled by
		in_illuminance0_thresh_either_en (0..255), where Y in 0..3.

		Note that threshY_falling must be less than or equal to
		threshY_raising.

		These thresholds correspond to the eight zone-boundary
		registers (boundaryY_{low,high}) and define the five light
		zones.

What:		/sys/bus/iio/devices/iio:deviceX/in_illuminance0_zone
Date:		April 2012
KernelVersion:	3.5
Contact:	Johan Hovold <jhovold@gmail.com>
Description:
		Get the current light zone (0..4) as defined by the
		in_illuminance0_threshY_{falling,rising} thresholds.

What:		/sys/bus/iio/devices/iio:deviceX/out_currentY_raw
Date:		May 2012
KernelVersion:	3.5
Contact:	Johan Hovold <jhovold@gmail.com>
Description:
		Get output current for channel Y (0..255), that is,
		out_currentY_currentZ_raw, where Z is the current zone.

What:		/sys/bus/iio/devices/iio:deviceX/out_currentY_currentZ_raw
Date:		May 2012
KernelVersion:	3.5
Contact:	Johan Hovold <jhovold@gmail.com>
Description:
		Set the output current for channel out_currentY when in zone
		Z (0..255), where Y in 0..2 and Z in 0..4.

		These values correspond to the ALS-mapper target registers for
		ALS-mapper Y + 1.
+39 −0
Original line number Diff line number Diff line
@@ -40,6 +40,12 @@ corrupt, but usually it is restorable.
Setting the ramoops parameters can be done in 2 different manners:
 1. Use the module parameters (which have the names of the variables described
 as before).
 For quick debugging, you can also reserve parts of memory during boot
 and then use the reserved memory for ramoops. For example, assuming a machine
 with > 128 MB of memory, the following kernel command line will tell the
 kernel to use only the first 128 MB of memory, and place ECC-protected ramoops
 region at 128 MB boundary:
 "mem=128M ramoops.mem_address=0x8000000 ramoops.ecc=1"
 2. Use a platform device and set the platform data. The parameters can then
 be set through that platform data. An example of doing that is:

@@ -70,6 +76,14 @@ if (ret) {
	return ret;
}

You can specify either RAM memory or peripheral devices' memory. However, when
specifying RAM, be sure to reserve the memory by issuing memblock_reserve()
very early in the architecture code, e.g.:

#include <linux/memblock.h>

memblock_reserve(ramoops_data.mem_address, ramoops_data.mem_size);

3. Dump format

The data dump begins with a header, currently defined as "====" followed by a
@@ -80,3 +94,28 @@ timestamp and a new line. The dump then continues with the actual data.
The dump data can be read from the pstore filesystem. The format for these
files is "dmesg-ramoops-N", where N is the record number in memory. To delete
a stored record from RAM, simply unlink the respective pstore file.

5. Persistent function tracing

Persistent function tracing might be useful for debugging software or hardware
related hangs. The functions call chain log is stored in a "ftrace-ramoops"
file. Here is an example of usage:

 # mount -t debugfs debugfs /sys/kernel/debug/
 # cd /sys/kernel/debug/tracing
 # echo function > current_tracer
 # echo 1 > options/func_pstore
 # reboot -f
 [...]
 # mount -t pstore pstore /mnt/
 # tail /mnt/ftrace-ramoops
 0 ffffffff8101ea64  ffffffff8101bcda  native_apic_mem_read <- disconnect_bsp_APIC+0x6a/0xc0
 0 ffffffff8101ea44  ffffffff8101bcf6  native_apic_mem_write <- disconnect_bsp_APIC+0x86/0xc0
 0 ffffffff81020084  ffffffff8101a4b5  hpet_disable <- native_machine_shutdown+0x75/0x90
 0 ffffffff81005f94  ffffffff8101a4bb  iommu_shutdown_noop <- native_machine_shutdown+0x7b/0x90
 0 ffffffff8101a6a1  ffffffff8101a437  native_machine_emergency_restart <- native_machine_restart+0x37/0x40
 0 ffffffff811f9876  ffffffff8101a73a  acpi_reboot <- native_machine_emergency_restart+0xaa/0x1e0
 0 ffffffff8101a514  ffffffff8101a772  mach_reboot_fixups <- native_machine_emergency_restart+0xe2/0x1e0
 0 ffffffff811d9c54  ffffffff8101a7a0  __const_udelay <- native_machine_emergency_restart+0x110/0x1e0
 0 ffffffff811d9c34  ffffffff811d9c80  __delay <- __const_udelay+0x30/0x40
 0 ffffffff811d9d14  ffffffff811d9c3f  delay_tsc <- __delay+0xf/0x20
Loading