ssb: fix init regression with SoCs
authorHauke Mehrtens <hauke@hauke-m.de>
Mon, 5 Dec 2011 22:19:51 +0000 (23:19 +0100)
committerRohan Somvanshi <rsomvanshi@nvidia.com>
Wed, 11 Jan 2012 17:26:57 +0000 (09:26 -0800)
commit8ff7ddbd24419964e511d6cd334f2387a83ab80f
treeb6cd16c82559ac73dc9704278fab02e5c37b1e69
parentb5f50e1779db150d7c907f1ecf3caa7e31458787
ssb: fix init regression with SoCs

commit 329456d1ffb416c220813725b7363cda9975c9aa upstream.

This fixes a Data bus error on some SoCs. The first fix for this
problem did not solve it on all devices.
    commit 6ae8ec27868bfdbb815287bee8146acbefaee867
    Author: Rafał Miłecki <zajec5@gmail.com>
    Date:   Tue Jul 5 17:25:32 2011 +0200
        ssb: fix init regression of hostmode PCI core

In ssb_pcicore_fix_sprom_core_index() the sprom on the PCI core is
accessed, but the sprom only exists when the ssb bus is connected over
a PCI bus to the rest of the system and not when the SSB Bus is the
main system bus. SoCs sometimes have a PCI host controller and there
this code will not be executed, but there are some old SoCs with an PCI
controller in client mode around and ssb_pcicore_fix_sprom_core_index()
should not be called on these devices too. The PCI controller on these
devices are unused, but without this fix it results in an Data bus
error when it gets initialized.

Cc: Michael Buesch <m@bues.ch>
Cc: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

Change-Id: I105bad88a8944eac1e9652f6473b0ae5853b8985
Reviewed-on: http://git-master/r/74169
Reviewed-by: Varun Wadekar <vwadekar@nvidia.com>
Tested-by: Varun Wadekar <vwadekar@nvidia.com>
drivers/ssb/driver_pcicore.c