ata: ahci_st: fixup layering violations / drvdata errors
authorPeter Griffin <peter.griffin@linaro.org>
Mon, 20 Apr 2015 13:41:05 +0000 (14:41 +0100)
committerTejun Heo <tj@kernel.org>
Mon, 20 Apr 2015 17:36:38 +0000 (13:36 -0400)
commite0e2674b92056c24c69940d5f405ea4aef5e4010
treeab0213bd4d1259819f640373d15ea430f11b5e31
parent5df07b74f671d1dfc1d81c3e791c335183cfc515
ata: ahci_st: fixup layering violations / drvdata errors

Brian noticed while working on another SATA driver that uses libahci_platform,
an error in this driver; it tries to the the driver data for its
device, while libata also thinks it can set the driver data. See:

  ahci_platform_init_host()
  -> ata_host_alloc_pinfo()
     -> ata_host_alloc()
        -> dev_set_drvdata()

So instead of sticking the IP-specific platform data into drvdata, let's
use the plat_data variable that is reserved for this use.

Addtionally plat_data isn't set until ahci_platform_init_host() has been
called further down in probe(). So re-work the st_ahci_probe_resets and
st_ahci_deassert_resets functions to take ahci_host_priv *hpriv as a
parameter.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Suggested-by: Brian Norris <computersforpeace@gmail.com>
Cc: Srinivas Kandagatla <srinivas.kandagatla@gmail.com>
Cc: Maxime Coquelin <maxime.coquelin@st.com>
Cc: Patrice Chotard <patrice.chotard@st.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
drivers/ata/ahci_st.c