Commit Graph

25984 Commits

Author SHA1 Message Date
Ankur Nandwani
b0039b0384 wcnss: New mechanism to indicate external 48MHz XO option
Platform data is added to the WCNSS platform device to indicate if the
board containing the WCNSS device is configured with an external 48MHz
XO.  In addition a module param is added to the WCNSS driver to allow
the platform data to be overridden.

CRs-Fixed: 288847
Signed-off-by: Ankur Nandwani <ankurn@codeaurora.org>
Acked-by: Jeff Johnson <jjohnson@qca.qualcomm.com>
2011-10-03 16:14:53 -07:00
Abhijeet Dharmapurikar
76d4db9366 power: pm8921-bms: Add calibration for hkadc
The output of hkadc calibration steps are voltages measured at
0.625V and 1.25V.  We use these to adjust the vbatt readings.

Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
2011-10-03 16:14:50 -07:00
Abhijeet Dharmapurikar
f734c67fa1 power: pmic8058-charger: api to get fsm state
Implement an api to return the pmic internal charging state.

Now that we have a enum to define the states, replace the hard-coded
state numbers to enum values.

CRs-Fixed: 299629
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
2011-10-03 16:14:33 -07:00
Willie Ruan
368db79940 misc: pm8058-pwm: add two APIs
These two new APIs allow a driver to specify its PWM period
and duty cycle separately using PM8058 chip specific parameters
or raw values. The API to program a duty cycle uses hardware
module's LUT (LookUpTable) to output PWM value, which can be
used to alleviate potential glitches using direct writing to
PWM register.

Signed-off-by: Willie Ruan <wruan@codeaurora.org>
2011-10-03 16:14:26 -07:00
Willie Ruan
d3337ed9e3 misc: pm8058-pwm: split pw8058_pwm_config to smaller structs
A big struct of pw8058_pwm_config is not easy to manage. Split it
to smaller structs and make the period struct public.

Signed-off-by: Willie Ruan <wruan@codeaurora.org>
2011-10-03 16:14:25 -07:00
Mona Hossain
5c8ea1f266 crypto: Clean up header file inclusion and location
- Create a flat directory structure for hw crypto modules
  that includes all source and all header files.
- Remove msm/inc directory
- Relocate qcedev.h header file to include/linux

Signed-off-by: Mona Hossain <mhossain@codeaurora.org>
2011-10-03 16:14:07 -07:00
Wu Fengguang
ac693061b1 writeback: introduce .tagged_writepages for the WB_SYNC_NONE sync stage
commit 6e6938b6d3130305a5960c86b1a9b21e58cf6144 upstream.

sync(2) is performed in two stages: the WB_SYNC_NONE sync and the
WB_SYNC_ALL sync. Identify the first stage with .tagged_writepages and
do livelock prevention for it, too.

Jan's commit f446daaea9 ("mm: implement writeback livelock avoidance
using page tagging") is a partial fix in that it only fixed the
WB_SYNC_ALL phase livelock.

Although ext4 is tested to no longer livelock with commit f446daaea9,
it may due to some "redirty_tail() after pages_skipped" effect which
is by no means a guarantee for _all_ the file systems.

Note that writeback_inodes_sb() is called by not only sync(), they are
treated the same because the other callers also need livelock prevention.

Impact:  It changes the order in which pages/inodes are synced to disk.
Now in the WB_SYNC_NONE stage, it won't proceed to write the next inode
until finished with the current inode.

Acked-by: Jan Kara <jack@suse.cz>
CC: Dave Chinner <david@fromorbit.com>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-10-03 11:40:43 -07:00
Mark Brown
7edcab4419 mfd: Fix value of WM8994_CONFIGURE_GPIO
commit 8efcc57dedfebc99c3cd39564e3fc47cd1a24b75 upstream.

This needs to be an out of band value for the register and on this device
registers are 16 bit so we must shift left one to the 17th bit.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-10-03 11:40:26 -07:00
John Stultz
1ed2053563 rtc: Fix RTC PIE frequency limit
commit 938f97bcf1bdd1b681d5d14d1d7117a2e22d4434 upstream.

Thomas earlier submitted a fix to limit the RTC PIE freq, but
picked 5000Hz out of the air. Willy noticed that we should
instead use the 8192Hz max from the rtc man documentation.

Cc: Willy Tarreau <w@1wt.eu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-10-03 11:40:08 -07:00
Jiri Slaby
a38df1a013 TTY: pty, fix pty counting
commit 24d406a6bf736f7aebdc8fa0f0ec86e0890c6d24 upstream.

tty_operations->remove is normally called like:
queue_release_one_tty
 ->tty_shutdown
   ->tty_driver_remove_tty
     ->tty_operations->remove

However tty_shutdown() is called from queue_release_one_tty() only if
tty_operations->shutdown is NULL. But for pty, it is not.
pty_unix98_shutdown() is used there as ->shutdown.

So tty_operations->remove of pty (i.e. pty_unix98_remove()) is never
called. This results in invalid pty_count. I.e. what can be seen in
/proc/sys/kernel/pty/nr.

I see this was already reported at:
  https://lkml.org/lkml/2009/11/5/370
But it was not fixed since then.

This patch is kind of a hackish way. The problem lies in ->install. We
allocate there another tty (so-called tty->link). So ->install is
called once, but ->remove twice, for both tty and tty->link. The fix
here is to count both tty and tty->link and divide the count by 2 for
user.

And to have ->remove called, let's make tty_driver_remove_tty() global
and call that from pty_unix98_shutdown() (tty_operations->shutdown).

While at it, let's document that when ->shutdown is defined,
tty_shutdown() is not called.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: Alan Cox <alan@linux.intel.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-10-03 11:39:49 -07:00
Alexandre Bounine
ae0250b118 rapidio: fix use of non-compatible registers
commit 284fb68d00c56e971ed01e0b4bac5ddd4d1b74ab upstream.

Replace/remove use of RIO v.1.2 registers/bits that are not
forward-compatible with newer versions of RapidIO specification.

RapidIO specification v.1.3 removed Write Port CSR, Doorbell CSR,
Mailbox CSR and Mailbox and Doorbell bits of the PEF CAR.

Use of removed (since RIO v.1.3) register bits affects users of
currently available 1.3 and 2.x compliant devices who may use not so
recent kernel versions.

Removing checks for unsupported bits makes corresponding routines
compatible with all versions of RapidIO specification.  Therefore,
backporting makes stable kernel versions compliant with RIO v.1.3 and
later as well.

Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com>
Cc: Kumar Gala <galak@kernel.crashing.org>
Cc: Matt Porter <mporter@kernel.crashing.org>
Cc: Li Yang <leoli@freescale.com>
Cc: Thomas Moll <thomas.moll@sysgo.com>
Cc: Chul Kim <chul.kim@idt.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-10-03 11:39:46 -07:00
Jay Chokshi
12e49bfea7 pm8xxx-led: Add API to configure pm8xxx LEDs
Add pm8xxx_led_configure API. It takes LED Id, mode,
and maximum current to be set.
Moreover,
1) Convert current values to actual current level using
   appropriate LED current factor.
2) Check brightness values against acceptable
   limits.

Signed-off-by: Jay Chokshi <jchokshi@codeaurora.org>
2011-10-03 10:28:59 -07:00
Willie Ruan
6a3c91408d mfd: pmic8058: add pm8058_stay_on API
PMIC stay-on feature allows PMIC to ignore MSM PS_HOLD=low
signal so that some special functions like debugging could be
performed.

This feature should not be used in any product release.

Signed-off-by: Willie Ruan <wruan@codeaurora.org>
2011-10-03 10:28:53 -07:00
Swaminathan Sathappan
150f788698 msm: audio: qdsp6v2: Add format type adif in aac driver
Signed-off-by: Swaminathan Sathappan <Swami@codeaurora.org>
2011-10-03 10:28:53 -07:00
Maheshwar Ajja
1d053f856b vidc: 720p: Add IDR Frame type support for H264 format
Read IDR frame type from 720p core register set and
propagate it to user space using new IDR frame type
enumeration added in api header file. The IDR frame
type info is used in SYNCFRAME logic for H264 format
in userspace.

CRs-Fixed: 296738
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
2011-10-03 10:28:44 -07:00
Bradley Rubin
4283a4c56a ASoC: WCD9310: Fixes issues with ANC
ANC register writes were improperly packed into
integers. ANC register writes were not correctly
performed, as the mask was incorrectly applied.

Signed-off-by: Brad Rubin <brubin@codeaurora.org>
2011-10-03 10:28:20 -07:00
Anirudh Ghayal
6804c742a1 mfd: pm8921: Add cell data for pm8921 vibrator
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
2011-10-03 10:28:13 -07:00
Anirudh Ghayal
fcfbea6273 drivers: misc: Add pm8xxx based vibrator driver
This driver uses the timed output framework to
support the vibrator functionality.

Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
2011-10-03 10:28:13 -07:00
Abhijeet Dharmapurikar
e0c3e5f39e power: pm8921-charger: implement CURRENT_NOW property
The pm8921 bms driver can provide instantaneous current. Use the
current now property of the power_supply class to expose this
feature.

Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
2011-10-03 10:27:44 -07:00
Gopikrishnaiah Anandan
248eac2b15 vidc: vdec: Report dropped field for interlace clips.
For field based interlace clips, video core will generate
an error when one of field is missing in bitstream.
Driver will report this to upper layer, so that it can
take appropriate action.

CRs-fixed: 290659
Signed-off-by: Gopikrishnaiah Anandan <gopikr@codeaurora.org>
2011-10-03 10:27:41 -07:00
Karthikeyan Ramasubramanian
cc450c9f1c msm: ipc: Update server lookup to multiple compatible services
IPC Router looks up all compatible services during the server
lookup using the compatibility mask provided by the clients.

Signed-off-by: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
2011-10-03 10:27:39 -07:00
Gopikrishnaiah Anandan
746d9ab0da vidc: vdec: Report bitstream errors to driver client.
When video core generates recoverable bitstream errors,
driver will report them to upper layer.

CRs-fixed: 290659
Signed-off-by: Gopikrishnaiah Anandan <gopikr@codeaurora.org>
2011-10-03 10:27:29 -07:00
Sagar Dharia
98a7ecb14c slimbus: Support ability to specify maximum and minimum clock gears
Slimbus can run in clock gears 1 through 10 per spec. Scheduling
algorithm tries to find the optimum clock gear depending on bandwidth
usage for messaging and active data channels.
However, not all controllers may have the ability to support all the
10 clock gears. This patch provides ability so that scheduling
algorithm will only run the bus in supported slimbus clock gear.
Controllers can specify supported minimum and maximum clock gear
during registration with the framework.

Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
2011-10-03 10:27:10 -07:00
Laura Abbott
1e36a02967 pmem: ensure SMI correctness
Due to hardware constraints, the SMI should not be mapped
in the kernel space when not in use. Unmap the SMI from
the kernel address space when the last allocation is freed.
Vote for bus bandwidth as well while the SMI is allocated.

CRs-Fixed: 281723
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
2011-10-03 10:27:04 -07:00
Kobi Cohen Arazi
18b04783a0 Add missing header guards in msm_rotator.h
msm_rotator.h was missing define __MSM_ROTATOR_H__

Signed-off-by: Kobi Cohen-Arazi <kobic@codeaurora.org>
2011-10-03 10:27:02 -07:00
Pratik Patel
cfca519f00 Revert "workqueue: add workqueue_empty() api"
This reverts commit bccb069835ef880e437c68a7fed9529c2549605f.

Since the workqueue code deletes the work before executing it,
checking for no work item being currently queued to the workqueue
is not sufficient to guarantee that all the works have finished
execution. Hence, we have moved to using a counter based solution
and so this change is no longer required.

Signed-off-by: Pratik Patel <pratikp@codeaurora.org>
2011-10-03 10:26:58 -07:00
David Collins
63e1f9ff17 regulator: pm8921-regulator: Add enable_time platform data entry
Add an enable_time platform data member which can be used to specify
the board dependent enable (rise) time of each regulator.

Signed-off-by: David Collins <collinsd@codeaurora.org>
2011-10-03 10:26:51 -07:00
kuogee hsieh
405dc3051b msm_fb: display: add ioctl for mixer info
Add new ioctl to allow user to query mdp mixer detail configuration.

Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
2011-10-03 10:26:42 -07:00
Ben Romberger
c49b85db0b msm: audio: qdsp6v2: Support for RX & TX ADM topology
This adds support to store separate RX & TX topology for
the audio device manager (ADM).

Signed-off-by: Ben Romberger <bromberg@codeaurora.org>
2011-10-03 10:26:11 -07:00
Bradley Rubin
229c6a5dc0 ASoC: WCD9310: Add Active Noise Cancellation support
ANC is a feature which reduces noise on the near-end
by pushing anti-noise onto the audio stream heard
by the user.  ANC mixes the anti-noise signal
inside of the WCD9310 codec.

Signed-off-by: Brad Rubin <brubin@codeaurora.org>
2011-10-03 10:26:06 -07:00
Shubhraprakash Das
5cd33b3765 mm: ashmem: Add cache clean and invalidate ioctls for ashmem
CRs-fixed: 291124
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
2011-10-03 10:25:50 -07:00
Lucille Sylvester
7f12ebf6a2 msm: kgsl: Remove unused variable w/ unneeded ifdef
This variable/ifdef should have been removed in a prior change.

Signed-off-by: Lucille Sylvester <lsylvest@codeaurora.org>
2011-10-03 10:25:45 -07:00
Abhijeet Dharmapurikar
57390b03ac power: msm_charger: control system power
Some chargers can control their current supply for the system. Provide
facility in the msm_charger to choose which charger supplies system
current. It is guaranteed that start charging will always be called
on a charger that has been previously been asked to provide system
current.

Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
2011-10-03 10:25:43 -07:00
Shubhraprakash Das
79c87bf556 Kbuild: Export ashmem header file to user space
CRs-fixed: 291124
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
2011-10-03 09:59:11 -07:00
Ashay Jaiswal
4d1ab557f0 drivers: rtc-pm8058: Fix automatic wakeup of APPS due to RTC alarm.
Alarm interrupt causes automatic wakeup even when the phone is in
powerdown state.

CRs-Fixed: 286086
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
2011-10-03 09:59:08 -07:00
Abhijeet Dharmapurikar
52344ac584 power: pm8921-bms: add nano-doc comments to exported functions
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
2011-10-03 09:59:06 -07:00
Abhijeet Dharmapurikar
2fb6f08e50 power: pm8921-bms: Add api to read Vsense
The Rsense resistor connects between the -ve end of the battery
and GND. The voltage across the Rsense gives us a good indication
of the current flowing through the battery.

Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
2011-10-03 09:59:06 -07:00
Abhijeet Dharmapurikar
c448d98e7e power: pm8921-bms: read temperature and voltage via adc
Read the battery temeperature and voltage from the adc driver instead
of hard coding them in the driver.

In the charing began and charing end functions, use
pm8921_bms_get_percent_charge api. This prevents duplicating calling
the adc functions.

Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
2011-10-03 09:59:00 -07:00
Larry Bassel
7429cea50e pmem: remove support for unstable PMEM devices
This functionality has never been used, is ugly and
complicates the DMM design.

Signed-off-by: Larry Bassel <lbassel@codeaurora.org>
2011-10-03 09:58:55 -07:00
Anirudh Ghayal
15187778e4 input: touchscreen: Move power mode handling to platform data
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
2011-10-03 09:58:24 -07:00
Jason Varbedian
80ba33d88f msm: kgsl: change readtimestamp from IOR to IOWR and keep legacy
Signed-off-by: Jason Varbedian <jasonv@codeaurora.org>
2011-10-03 09:58:23 -07:00
Bryan Huntsman
3f2bc4d6eb Initial Contribution
msm-2.6.38: tag AU_LINUX_ANDROID_GINGERBREAD.02.03.04.00.142

Signed-off-by: Bryan Huntsman <bryanh@codeaurora.org>
2011-10-03 09:57:10 -07:00
Bryan Huntsman
f06154cc47 Merge branch 'devicetree/next' of git://git.secretlab.ca/git/linux-2.6
* 'devicetree/next' of git://git.secretlab.ca/git/linux-2.6:
  dt: include linux/errno.h in linux/of_address.h
  of/address: Add of_find_matching_node_by_address helper
  dt: remove extra xsysace platform_driver registration
  tty/serial: Add devicetree support for nVidia Tegra serial ports
  dt: add empty of_property_read_u32[_array] for non-dt
  dt: bindings: move SEC node under new crypto/
  dt: add helper function to read u32 arrays
  tty/serial: change of_serial to use new of_property_read_u32() api
  dt: add 'const' for of_property_read_string parameter **out_string
  dt: add helper functions to read u32 and string property values
  tty: of_serial: support for 32 bit accesses
  dt: document the of_serial bindings
  dt/platform: allow device name to be overridden
  drivers/amba: create devices from device tree
  dt: add of_platform_populate() for creating device from the device tree
  dt: Add default match table for bus ids
2011-09-23 11:47:21 -07:00
Bryan Huntsman
66589de55e Merge remote-tracking branch 'linux-audio/sgc/topic/omap_3.0'
* linux-audio/sgc/topic/omap_3.0: (106 commits)
  ASoC: twl6040: Configure init gain to minimal value
  ASoC: ABE: Protect playback/capture triggers against removal
  ASoC: DSP: Connect FE->BE links if FE is active
  ASoC: McPDM: Update channel management (for squash)
  ASoC: OMAP4 - Port Manager: Fix up DEBUG_FS compilation error
  ASoC: ABE DSP: Fixes for firmware equalizer parsing
  ASoC: ABE DSP: Use same firmware strategy for built-in and modules
  ASoC: ABE HAL: Allow flexible firmware loading
  ASoC: ABE DSP: Fix compilation warnings
  ASoC: OMAP ABE: update Firmware version 09.45
  ASoC: pcm - fix locking for dsp ops
  ASoC: OMAP ABE: Update for PM.
  ASoC: McPDM: Update channels management to link UL and DL
  ASoC: ABE DAI: Call modem trigger in bespoke_trigger()
  ASoC: ABE DAI: support 2 channels for MODEM DAI
  OMAP4: SDP4430: Fix merge issue with new MFD driver
  ASoC: OMAP: SDP4430 fix merge issue.
  ASoC: dapm: Fix long_name pointer for DAPM muxes
  ASoC: mcpdm: Enable watchdog during audio activity
  ASoC: SDP4430: Fix DMICs stream name
  ...
2011-09-23 11:00:20 -07:00
Jaikumar Ganesh
8bf44e90c8 HID: Add input_register callback.
Add input_register callback which gets called after
hid_configure_usage is called for all the reports
and before the input device is registered. This allows
individual drivers to do extra work like input mapping just
before device registration.

Based on discussions with David Herrmann <dh.herrmann@googlemail.com>

Change-Id: Idab6fb4f7b1e5e569bd0410967288717e9d34c98
Signed-off-by: Jaikumar Ganesh <jaikumarg@android.com>
2011-09-21 13:47:49 -07:00
Dima Zavin
6b82151ce5 usb: otg_id: add suspend/resume interface
It is possible that while one driver has already suspended,
another driver calls otg_id_notify() because it has not yet been
suspended. It would then be possible for the suspended driver's
detect callback to be called. This is undesirable.

Introduce new otg_id_suspend/otg_id_resume functions that
keep a suspended count, and if a notification happens while
someone is suspended, that notification is deferred until
all the drivers are resumed. If the notification happens before
the last driver is suspended, that suspend will be aborted
and once the final driver resumes through otg_id_resume, the
notification will be delivered.

Change-Id: I32fd32bec65e366e5f97a25c15255d94773b85b3
Signed-off-by: Dima Zavin <dima@android.com>
2011-09-11 12:38:48 -07:00
Colin Cross
07b26cd3da mmc: core: host: only use wakelock for detect work
There is no need to take a wakelock for delayed lazy disable
work, it will be cancelled in the suspend handler and force
disabled.  Only take the wakelock when the detect work is
queued, and make sure to drop the wakelock if the work is
cancelled.

Change-Id: I1e507a5f98848954ea21d45e23b6192c3132a349
Signed-off-by: Colin Cross <ccross@android.com>
2011-09-07 17:30:23 -07:00
Andi Kleen
512228f0be Add a personality to report 2.6.x version numbers
commit be27425dcc516fd08245b047ea57f83b8f6f0903 upstream.

I ran into a couple of programs which broke with the new Linux 3.0
version.  Some of those were binary only.  I tried to use LD_PRELOAD to
work around it, but it was quite difficult and in one case impossible
because of a mix of 32bit and 64bit executables.

For example, all kind of management software from HP doesnt work, unless
we pretend to run a 2.6 kernel.

  $ uname -a
  Linux svivoipvnx001 3.0.0-08107-g97cd98f #1062 SMP Fri Aug 12 18:11:45 CEST 2011 i686 i686 i386 GNU/Linux

  $ hpacucli ctrl all show

  Error: No controllers detected.

  $ rpm -qf /usr/sbin/hpacucli
  hpacucli-8.75-12.0

Another notable case is that Python now reports "linux3" from
sys.platform(); which in turn can break things that were checking
sys.platform() == "linux2":

  https://bugzilla.mozilla.org/show_bug.cgi?id=664564

It seems pretty clear to me though it's a bug in the apps that are using
'==' instead of .startswith(), but this allows us to unbreak broken
programs.

This patch adds a UNAME26 personality that makes the kernel report a
2.6.40+x version number instead.  The x is the x in 3.x.

I know this is somewhat ugly, but I didn't find a better workaround, and
compatibility to existing programs is important.

Some programs also read /proc/sys/kernel/osrelease.  This can be worked
around in user space with mount --bind (and a mount namespace)

To use:

  wget ftp://ftp.kernel.org/pub/linux/kernel/people/ak/uname26/uname26.c
  gcc -o uname26 uname26.c
  ./uname26 program

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-08-29 13:29:16 -07:00
Suresh Siddha
6857336c7f x86, mtrr: lock stop machine during MTRR rendezvous sequence
commit 6d3321e8e2b3bf6a5892e2ef673c7bf536e3f904 upstream.

MTRR rendezvous sequence using stop_one_cpu_nowait() can potentially
happen in parallel with another system wide rendezvous using
stop_machine(). This can lead to deadlock (The order in which
works are queued can be different on different cpu's. Some cpu's
will be running the first rendezvous handler and others will be running
the second rendezvous handler. Each set waiting for the other set to join
for the system wide rendezvous, leading to a deadlock).

MTRR rendezvous sequence is not implemented using stop_machine() as this
gets called both from the process context aswell as the cpu online paths
(where the cpu has not come online and the interrupts are disabled etc).
stop_machine() works with only online cpus.

For now, take the stop_machine mutex in the MTRR rendezvous sequence that
gets called from an online cpu (here we are in the process context
and can potentially sleep while taking the mutex). And the MTRR rendezvous
that gets triggered during cpu online doesn't need to take this stop_machine
lock (as the stop_machine() already ensures that there is no cpu hotplug
going on in parallel by doing get_online_cpus())

    TBD: Pursue a cleaner solution of extending the stop_machine()
         infrastructure to handle the case where the calling cpu is
         still not online and use this for MTRR rendezvous sequence.

fixes: https://bugzilla.novell.com/show_bug.cgi?id=672008

Reported-by: Vadim Kotelnikov <vadimuzzz@inbox.ru>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Link: http://lkml.kernel.org/r/20110623182056.807230326@sbsiddha-MOBL3.sc.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-08-29 13:29:08 -07:00
Nishanth Menon
efcf89c8eb panic: Add board ID to panic output
At times, it is necessary for boards to provide some additional information
as part of panic logs. Provide information on the board hardware as part
of panic logs.

It is safer to print this information at the very end in case something
bad happens as part of the information retrieval itself.

To use this, set global mach_panic_string to an appropriate string in the
board file.

Change-Id: Id12cdda87b0cd2940dd01d52db97e6162f671b4d
Signed-off-by: Nishanth Menon <nm@ti.com>
2011-08-19 11:41:00 -07:00