aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorMaciej Patelczyk <maciej.patelczyk@intel.com>2011-04-28 18:06:11 -0400
committerDan Williams <dan.j.williams@intel.com>2011-07-03 07:00:38 -0400
commite1e72a00dd9db0cd2b7d106916645626f53c0382 (patch)
treebd10e14596426f86f8ff3789e7fa2b2a4a4ccca5 /drivers/scsi
parentd3757c3aeb75259e0b86a872e98841a2ea4cb5e8 (diff)
isci: Removed sci_base_object from scic_sds_phy.
The 'struct sci_base_object' was removed from the struct scic_sds_phy and was replaced by a pointer to struct isci_phy. Signed-off-by: Maciej Patelczyk <maciej.patelczyk@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/isci/core/scic_sds_phy.c83
-rw-r--r--drivers/scsi/isci/core/scic_sds_phy.h5
-rw-r--r--drivers/scsi/isci/core/scic_sds_port.c2
-rw-r--r--drivers/scsi/isci/phy.c3
-rw-r--r--drivers/scsi/isci/port.c6
-rw-r--r--drivers/scsi/isci/sci_environment.h2
6 files changed, 33 insertions, 68 deletions
diff --git a/drivers/scsi/isci/core/scic_sds_phy.c b/drivers/scsi/isci/core/scic_sds_phy.c
index 3b53968abb0a..c935c0482470 100644
--- a/drivers/scsi/isci/core/scic_sds_phy.c
+++ b/drivers/scsi/isci/core/scic_sds_phy.c
@@ -1565,9 +1565,7 @@ static const struct scic_sds_phy_state_handler scic_sds_phy_starting_substate_ha
1565 */ 1565 */
1566static void scic_sds_phy_starting_initial_substate_enter(void *object) 1566static void scic_sds_phy_starting_initial_substate_enter(void *object)
1567{ 1567{
1568 struct scic_sds_phy *sci_phy; 1568 struct scic_sds_phy *sci_phy = object;
1569
1570 sci_phy = (struct scic_sds_phy *)object;
1571 1569
1572 scic_sds_phy_set_starting_substate_handlers( 1570 scic_sds_phy_set_starting_substate_handlers(
1573 sci_phy, SCIC_SDS_PHY_STARTING_SUBSTATE_INITIAL); 1571 sci_phy, SCIC_SDS_PHY_STARTING_SUBSTATE_INITIAL);
@@ -1587,9 +1585,7 @@ static void scic_sds_phy_starting_initial_substate_enter(void *object)
1587 */ 1585 */
1588static void scic_sds_phy_starting_await_ossp_en_substate_enter(void *object) 1586static void scic_sds_phy_starting_await_ossp_en_substate_enter(void *object)
1589{ 1587{
1590 struct scic_sds_phy *sci_phy; 1588 struct scic_sds_phy *sci_phy = object;
1591
1592 sci_phy = (struct scic_sds_phy *)object;
1593 1589
1594 scic_sds_phy_set_starting_substate_handlers( 1590 scic_sds_phy_set_starting_substate_handlers(
1595 sci_phy, SCIC_SDS_PHY_STARTING_SUBSTATE_AWAIT_OSSP_EN 1591 sci_phy, SCIC_SDS_PHY_STARTING_SUBSTATE_AWAIT_OSSP_EN
@@ -1607,9 +1603,7 @@ static void scic_sds_phy_starting_await_ossp_en_substate_enter(void *object)
1607static void scic_sds_phy_starting_await_sas_speed_en_substate_enter( 1603static void scic_sds_phy_starting_await_sas_speed_en_substate_enter(
1608 void *object) 1604 void *object)
1609{ 1605{
1610 struct scic_sds_phy *sci_phy; 1606 struct scic_sds_phy *sci_phy = object;
1611
1612 sci_phy = (struct scic_sds_phy *)object;
1613 1607
1614 scic_sds_phy_set_starting_substate_handlers( 1608 scic_sds_phy_set_starting_substate_handlers(
1615 sci_phy, SCIC_SDS_PHY_STARTING_SUBSTATE_AWAIT_SAS_SPEED_EN 1609 sci_phy, SCIC_SDS_PHY_STARTING_SUBSTATE_AWAIT_SAS_SPEED_EN
@@ -1626,9 +1620,7 @@ static void scic_sds_phy_starting_await_sas_speed_en_substate_enter(
1626 */ 1620 */
1627static void scic_sds_phy_starting_await_iaf_uf_substate_enter(void *object) 1621static void scic_sds_phy_starting_await_iaf_uf_substate_enter(void *object)
1628{ 1622{
1629 struct scic_sds_phy *sci_phy; 1623 struct scic_sds_phy *sci_phy = object;
1630
1631 sci_phy = (struct scic_sds_phy *)object;
1632 1624
1633 scic_sds_phy_set_starting_substate_handlers( 1625 scic_sds_phy_set_starting_substate_handlers(
1634 sci_phy, SCIC_SDS_PHY_STARTING_SUBSTATE_AWAIT_IAF_UF 1626 sci_phy, SCIC_SDS_PHY_STARTING_SUBSTATE_AWAIT_IAF_UF
@@ -1646,9 +1638,7 @@ static void scic_sds_phy_starting_await_iaf_uf_substate_enter(void *object)
1646 */ 1638 */
1647static void scic_sds_phy_starting_await_sas_power_substate_enter(void *object) 1639static void scic_sds_phy_starting_await_sas_power_substate_enter(void *object)
1648{ 1640{
1649 struct scic_sds_phy *sci_phy; 1641 struct scic_sds_phy *sci_phy = object;
1650
1651 sci_phy = (struct scic_sds_phy *)object;
1652 1642
1653 scic_sds_phy_set_starting_substate_handlers( 1643 scic_sds_phy_set_starting_substate_handlers(
1654 sci_phy, SCIC_SDS_PHY_STARTING_SUBSTATE_AWAIT_SAS_POWER 1644 sci_phy, SCIC_SDS_PHY_STARTING_SUBSTATE_AWAIT_SAS_POWER
@@ -1670,9 +1660,7 @@ static void scic_sds_phy_starting_await_sas_power_substate_enter(void *object)
1670 */ 1660 */
1671static void scic_sds_phy_starting_await_sas_power_substate_exit(void *object) 1661static void scic_sds_phy_starting_await_sas_power_substate_exit(void *object)
1672{ 1662{
1673 struct scic_sds_phy *sci_phy; 1663 struct scic_sds_phy *sci_phy = object;
1674
1675 sci_phy = (struct scic_sds_phy *)object;
1676 1664
1677 scic_sds_controller_power_control_queue_remove( 1665 scic_sds_controller_power_control_queue_remove(
1678 scic_sds_phy_get_controller(sci_phy), sci_phy 1666 scic_sds_phy_get_controller(sci_phy), sci_phy
@@ -1690,9 +1678,7 @@ static void scic_sds_phy_starting_await_sas_power_substate_exit(void *object)
1690 */ 1678 */
1691static void scic_sds_phy_starting_await_sata_power_substate_enter(void *object) 1679static void scic_sds_phy_starting_await_sata_power_substate_enter(void *object)
1692{ 1680{
1693 struct scic_sds_phy *sci_phy; 1681 struct scic_sds_phy *sci_phy = object;
1694
1695 sci_phy = (struct scic_sds_phy *)object;
1696 1682
1697 scic_sds_phy_set_starting_substate_handlers( 1683 scic_sds_phy_set_starting_substate_handlers(
1698 sci_phy, SCIC_SDS_PHY_STARTING_SUBSTATE_AWAIT_SATA_POWER 1684 sci_phy, SCIC_SDS_PHY_STARTING_SUBSTATE_AWAIT_SATA_POWER
@@ -1714,9 +1700,7 @@ static void scic_sds_phy_starting_await_sata_power_substate_enter(void *object)
1714 */ 1700 */
1715static void scic_sds_phy_starting_await_sata_power_substate_exit(void *object) 1701static void scic_sds_phy_starting_await_sata_power_substate_exit(void *object)
1716{ 1702{
1717 struct scic_sds_phy *sci_phy; 1703 struct scic_sds_phy *sci_phy = object;
1718
1719 sci_phy = (struct scic_sds_phy *)object;
1720 1704
1721 scic_sds_controller_power_control_queue_remove( 1705 scic_sds_controller_power_control_queue_remove(
1722 scic_sds_phy_get_controller(sci_phy), 1706 scic_sds_phy_get_controller(sci_phy),
@@ -1734,7 +1718,7 @@ static void scic_sds_phy_starting_await_sata_power_substate_exit(void *object)
1734 */ 1718 */
1735static void scic_sds_phy_starting_await_sata_phy_substate_enter(void *object) 1719static void scic_sds_phy_starting_await_sata_phy_substate_enter(void *object)
1736{ 1720{
1737 struct scic_sds_phy *sci_phy = (struct scic_sds_phy *)object; 1721 struct scic_sds_phy *sci_phy = object;
1738 1722
1739 scic_sds_phy_set_starting_substate_handlers( 1723 scic_sds_phy_set_starting_substate_handlers(
1740 sci_phy, 1724 sci_phy,
@@ -1756,7 +1740,7 @@ static void scic_sds_phy_starting_await_sata_phy_substate_enter(void *object)
1756static inline void scic_sds_phy_starting_await_sata_phy_substate_exit( 1740static inline void scic_sds_phy_starting_await_sata_phy_substate_exit(
1757 void *object) 1741 void *object)
1758{ 1742{
1759 struct scic_sds_phy *sci_phy = (struct scic_sds_phy *)object; 1743 struct scic_sds_phy *sci_phy = object;
1760 1744
1761 isci_timer_stop(sci_phy->sata_timeout_timer); 1745 isci_timer_stop(sci_phy->sata_timeout_timer);
1762} 1746}
@@ -1771,7 +1755,7 @@ static inline void scic_sds_phy_starting_await_sata_phy_substate_exit(
1771 */ 1755 */
1772static void scic_sds_phy_starting_await_sata_speed_substate_enter(void *object) 1756static void scic_sds_phy_starting_await_sata_speed_substate_enter(void *object)
1773{ 1757{
1774 struct scic_sds_phy *sci_phy = (struct scic_sds_phy *)object; 1758 struct scic_sds_phy *sci_phy = object;
1775 1759
1776 scic_sds_phy_set_starting_substate_handlers( 1760 scic_sds_phy_set_starting_substate_handlers(
1777 sci_phy, 1761 sci_phy,
@@ -1793,7 +1777,7 @@ static void scic_sds_phy_starting_await_sata_speed_substate_enter(void *object)
1793static inline void scic_sds_phy_starting_await_sata_speed_substate_exit( 1777static inline void scic_sds_phy_starting_await_sata_speed_substate_exit(
1794 void *object) 1778 void *object)
1795{ 1779{
1796 struct scic_sds_phy *sci_phy = (struct scic_sds_phy *)object; 1780 struct scic_sds_phy *sci_phy = object;
1797 1781
1798 isci_timer_stop(sci_phy->sata_timeout_timer); 1782 isci_timer_stop(sci_phy->sata_timeout_timer);
1799} 1783}
@@ -1811,7 +1795,7 @@ static inline void scic_sds_phy_starting_await_sata_speed_substate_exit(
1811static void scic_sds_phy_starting_await_sig_fis_uf_substate_enter(void *object) 1795static void scic_sds_phy_starting_await_sig_fis_uf_substate_enter(void *object)
1812{ 1796{
1813 bool continue_to_ready_state; 1797 bool continue_to_ready_state;
1814 struct scic_sds_phy *sci_phy = (struct scic_sds_phy *)object; 1798 struct scic_sds_phy *sci_phy = object;
1815 1799
1816 scic_sds_phy_set_starting_substate_handlers( 1800 scic_sds_phy_set_starting_substate_handlers(
1817 sci_phy, 1801 sci_phy,
@@ -1848,9 +1832,7 @@ static void scic_sds_phy_starting_await_sig_fis_uf_substate_enter(void *object)
1848static inline void scic_sds_phy_starting_await_sig_fis_uf_substate_exit( 1832static inline void scic_sds_phy_starting_await_sig_fis_uf_substate_exit(
1849 void *object) 1833 void *object)
1850{ 1834{
1851 struct scic_sds_phy *sci_phy; 1835 struct scic_sds_phy *sci_phy = object;
1852
1853 sci_phy = (struct scic_sds_phy *)object;
1854 1836
1855 isci_timer_stop(sci_phy->sata_timeout_timer); 1837 isci_timer_stop(sci_phy->sata_timeout_timer);
1856} 1838}
@@ -1866,9 +1848,7 @@ static inline void scic_sds_phy_starting_await_sig_fis_uf_substate_exit(
1866 */ 1848 */
1867static void scic_sds_phy_starting_final_substate_enter(void *object) 1849static void scic_sds_phy_starting_final_substate_enter(void *object)
1868{ 1850{
1869 struct scic_sds_phy *sci_phy; 1851 struct scic_sds_phy *sci_phy = object;
1870
1871 sci_phy = container_of(object, typeof(*sci_phy), parent);
1872 1852
1873 scic_sds_phy_set_starting_substate_handlers(sci_phy, 1853 scic_sds_phy_set_starting_substate_handlers(sci_phy,
1874 SCIC_SDS_PHY_STARTING_SUBSTATE_FINAL); 1854 SCIC_SDS_PHY_STARTING_SUBSTATE_FINAL);
@@ -2200,9 +2180,7 @@ static void scu_link_layer_tx_hard_reset(
2200 */ 2180 */
2201static void scic_sds_phy_initial_state_enter(void *object) 2181static void scic_sds_phy_initial_state_enter(void *object)
2202{ 2182{
2203 struct scic_sds_phy *sci_phy; 2183 struct scic_sds_phy *sci_phy = object;
2204
2205 sci_phy = (struct scic_sds_phy *)object;
2206 2184
2207 scic_sds_phy_set_base_state_handlers(sci_phy, SCI_BASE_PHY_STATE_INITIAL); 2185 scic_sds_phy_set_base_state_handlers(sci_phy, SCI_BASE_PHY_STATE_INITIAL);
2208} 2186}
@@ -2218,12 +2196,10 @@ static void scic_sds_phy_initial_state_enter(void *object)
2218 */ 2196 */
2219static void scic_sds_phy_stopped_state_enter(void *object) 2197static void scic_sds_phy_stopped_state_enter(void *object)
2220{ 2198{
2221 struct scic_sds_phy *sci_phy = (struct scic_sds_phy *)object; 2199 struct scic_sds_phy *sci_phy = object;
2222 struct scic_sds_controller *scic = scic_sds_phy_get_controller(sci_phy); 2200 struct scic_sds_controller *scic = scic_sds_phy_get_controller(sci_phy);
2223 struct isci_host *ihost = scic->ihost; 2201 struct isci_host *ihost = scic->ihost;
2224 2202
2225 sci_phy = (struct scic_sds_phy *)object;
2226
2227 /* 2203 /*
2228 * @todo We need to get to the controller to place this PE in a 2204 * @todo We need to get to the controller to place this PE in a
2229 * reset state 2205 * reset state
@@ -2262,9 +2238,7 @@ static void scic_sds_phy_stopped_state_enter(void *object)
2262 */ 2238 */
2263static void scic_sds_phy_starting_state_enter(void *object) 2239static void scic_sds_phy_starting_state_enter(void *object)
2264{ 2240{
2265 struct scic_sds_phy *sci_phy; 2241 struct scic_sds_phy *sci_phy = object;
2266
2267 sci_phy = (struct scic_sds_phy *)object;
2268 2242
2269 scic_sds_phy_set_base_state_handlers(sci_phy, SCI_BASE_PHY_STATE_STARTING); 2243 scic_sds_phy_set_base_state_handlers(sci_phy, SCI_BASE_PHY_STATE_STARTING);
2270 2244
@@ -2300,9 +2274,7 @@ static void scic_sds_phy_starting_state_enter(void *object)
2300 */ 2274 */
2301static void scic_sds_phy_ready_state_enter(void *object) 2275static void scic_sds_phy_ready_state_enter(void *object)
2302{ 2276{
2303 struct scic_sds_phy *sci_phy; 2277 struct scic_sds_phy *sci_phy = object;
2304
2305 sci_phy = (struct scic_sds_phy *)object;
2306 2278
2307 scic_sds_phy_set_base_state_handlers(sci_phy, SCI_BASE_PHY_STATE_READY); 2279 scic_sds_phy_set_base_state_handlers(sci_phy, SCI_BASE_PHY_STATE_READY);
2308 2280
@@ -2323,9 +2295,7 @@ static void scic_sds_phy_ready_state_enter(void *object)
2323 */ 2295 */
2324static void scic_sds_phy_ready_state_exit(void *object) 2296static void scic_sds_phy_ready_state_exit(void *object)
2325{ 2297{
2326 struct scic_sds_phy *sci_phy; 2298 struct scic_sds_phy *sci_phy = object;
2327
2328 sci_phy = (struct scic_sds_phy *)object;
2329 2299
2330 scic_sds_phy_suspend(sci_phy); 2300 scic_sds_phy_suspend(sci_phy);
2331} 2301}
@@ -2340,9 +2310,7 @@ static void scic_sds_phy_ready_state_exit(void *object)
2340 */ 2310 */
2341static void scic_sds_phy_resetting_state_enter(void *object) 2311static void scic_sds_phy_resetting_state_enter(void *object)
2342{ 2312{
2343 struct scic_sds_phy *sci_phy; 2313 struct scic_sds_phy *sci_phy = object;
2344
2345 sci_phy = (struct scic_sds_phy *)object;
2346 2314
2347 scic_sds_phy_set_base_state_handlers(sci_phy, SCI_BASE_PHY_STATE_RESETTING); 2315 scic_sds_phy_set_base_state_handlers(sci_phy, SCI_BASE_PHY_STATE_RESETTING);
2348 2316
@@ -2375,9 +2343,7 @@ static void scic_sds_phy_resetting_state_enter(void *object)
2375 */ 2343 */
2376static void scic_sds_phy_final_state_enter(void *object) 2344static void scic_sds_phy_final_state_enter(void *object)
2377{ 2345{
2378 struct scic_sds_phy *sci_phy; 2346 struct scic_sds_phy *sci_phy = object;
2379
2380 sci_phy = (struct scic_sds_phy *)object;
2381 2347
2382 scic_sds_phy_set_base_state_handlers(sci_phy, SCI_BASE_PHY_STATE_FINAL); 2348 scic_sds_phy_set_base_state_handlers(sci_phy, SCI_BASE_PHY_STATE_FINAL);
2383 2349
@@ -2412,9 +2378,8 @@ void scic_sds_phy_construct(struct scic_sds_phy *sci_phy,
2412 struct scic_sds_port *owning_port, u8 phy_index) 2378 struct scic_sds_port *owning_port, u8 phy_index)
2413{ 2379{
2414 2380
2415 sci_phy->parent.private = NULL;
2416 sci_base_state_machine_construct(&sci_phy->state_machine, 2381 sci_base_state_machine_construct(&sci_phy->state_machine,
2417 &sci_phy->parent, 2382 sci_phy,
2418 scic_sds_phy_state_table, 2383 scic_sds_phy_state_table,
2419 SCI_BASE_PHY_STATE_INITIAL); 2384 SCI_BASE_PHY_STATE_INITIAL);
2420 2385
@@ -2434,7 +2399,7 @@ void scic_sds_phy_construct(struct scic_sds_phy *sci_phy,
2434 2399
2435 /* Initialize the the substate machines */ 2400 /* Initialize the the substate machines */
2436 sci_base_state_machine_construct(&sci_phy->starting_substate_machine, 2401 sci_base_state_machine_construct(&sci_phy->starting_substate_machine,
2437 &sci_phy->parent, 2402 sci_phy,
2438 scic_sds_phy_starting_substates, 2403 scic_sds_phy_starting_substates,
2439 SCIC_SDS_PHY_STARTING_SUBSTATE_INITIAL); 2404 SCIC_SDS_PHY_STARTING_SUBSTATE_INITIAL);
2440} 2405}
diff --git a/drivers/scsi/isci/core/scic_sds_phy.h b/drivers/scsi/isci/core/scic_sds_phy.h
index fb99d472ce60..fca95c1c027a 100644
--- a/drivers/scsi/isci/core/scic_sds_phy.h
+++ b/drivers/scsi/isci/core/scic_sds_phy.h
@@ -217,6 +217,7 @@ enum scic_sds_phy_protocol {
217 SCIC_SDS_MAX_PHY_PROTOCOLS 217 SCIC_SDS_MAX_PHY_PROTOCOLS
218}; 218};
219 219
220struct isci_phy;
220/** 221/**
221 * struct scic_sds_phy - This structure contains or references all of the data 222 * struct scic_sds_phy - This structure contains or references all of the data
222 * necessary to represent the core phy object and SCU harware protocol 223 * necessary to represent the core phy object and SCU harware protocol
@@ -226,9 +227,9 @@ enum scic_sds_phy_protocol {
226 */ 227 */
227struct scic_sds_phy { 228struct scic_sds_phy {
228 /** 229 /**
229 * This field depicts the parent object (struct sci_base_object) for the phy. 230 * This field depicts the peer object for the phy.
230 */ 231 */
231 struct sci_base_object parent; 232 struct isci_phy *iphy;
232 233
233 /** 234 /**
234 * This field contains the information for the base phy state machine. 235 * This field contains the information for the base phy state machine.
diff --git a/drivers/scsi/isci/core/scic_sds_port.c b/drivers/scsi/isci/core/scic_sds_port.c
index 857482b27ffc..d6339c41c392 100644
--- a/drivers/scsi/isci/core/scic_sds_port.c
+++ b/drivers/scsi/isci/core/scic_sds_port.c
@@ -680,7 +680,7 @@ void scic_sds_port_deactivate_phy(struct scic_sds_port *sci_port,
680 struct scic_sds_controller *scic = scic_sds_port_get_controller(sci_port); 680 struct scic_sds_controller *scic = scic_sds_port_get_controller(sci_port);
681 struct isci_port *iport = sci_object_get_association(sci_port); 681 struct isci_port *iport = sci_object_get_association(sci_port);
682 struct isci_host *ihost = scic->ihost; 682 struct isci_host *ihost = scic->ihost;
683 struct isci_phy *iphy = sci_object_get_association(sci_phy); 683 struct isci_phy *iphy = sci_phy->iphy;
684 684
685 sci_port->active_phy_mask &= ~(1 << sci_phy->phy_index); 685 sci_port->active_phy_mask &= ~(1 << sci_phy->phy_index);
686 686
diff --git a/drivers/scsi/isci/phy.c b/drivers/scsi/isci/phy.c
index 9e081a4c8a3c..a690b6b664f7 100644
--- a/drivers/scsi/isci/phy.c
+++ b/drivers/scsi/isci/phy.c
@@ -57,6 +57,7 @@
57#include "phy.h" 57#include "phy.h"
58#include "scic_port.h" 58#include "scic_port.h"
59#include "scic_config_parameters.h" 59#include "scic_config_parameters.h"
60#include "core/scic_sds_phy.h"
60 61
61struct scic_sds_phy; 62struct scic_sds_phy;
62extern enum sci_status scic_sds_phy_start(struct scic_sds_phy *sci_phy); 63extern enum sci_status scic_sds_phy_start(struct scic_sds_phy *sci_phy);
@@ -88,8 +89,8 @@ void isci_phy_init(
88 89
89 status = scic_controller_get_phy_handle(scic, index, &scic_phy); 90 status = scic_controller_get_phy_handle(scic, index, &scic_phy);
90 if (status == SCI_SUCCESS) { 91 if (status == SCI_SUCCESS) {
91 sci_object_set_association(scic_phy, (void *)phy);
92 phy->sci_phy_handle = scic_phy; 92 phy->sci_phy_handle = scic_phy;
93 scic_phy->iphy = phy;
93 } else 94 } else
94 dev_err(&isci_host->pdev->dev, 95 dev_err(&isci_host->pdev->dev,
95 "failed scic_controller_get_phy_handle\n"); 96 "failed scic_controller_get_phy_handle\n");
diff --git a/drivers/scsi/isci/port.c b/drivers/scsi/isci/port.c
index c0916b199b70..d600b09192e7 100644
--- a/drivers/scsi/isci/port.c
+++ b/drivers/scsi/isci/port.c
@@ -137,8 +137,7 @@ void isci_port_bc_change_received(
137 struct scic_sds_port *port, 137 struct scic_sds_port *port,
138 struct scic_sds_phy *phy) 138 struct scic_sds_phy *phy)
139{ 139{
140 struct isci_phy *isci_phy = 140 struct isci_phy *isci_phy = phy->iphy;
141 (struct isci_phy *)sci_object_get_association(phy);
142 141
143 dev_dbg(&isci_host->pdev->dev, 142 dev_dbg(&isci_host->pdev->dev,
144 "%s: isci_phy = %p, sas_phy = %p\n", 143 "%s: isci_phy = %p, sas_phy = %p\n",
@@ -170,10 +169,9 @@ void isci_port_link_up(
170{ 169{
171 unsigned long flags; 170 unsigned long flags;
172 struct scic_port_properties properties; 171 struct scic_port_properties properties;
173 struct isci_phy *isci_phy
174 = (struct isci_phy *)sci_object_get_association(phy);
175 struct isci_port *isci_port 172 struct isci_port *isci_port
176 = (struct isci_port *)sci_object_get_association(port); 173 = (struct isci_port *)sci_object_get_association(port);
174 struct isci_phy *isci_phy = phy->iphy;
177 enum sci_status call_status; 175 enum sci_status call_status;
178 unsigned long success = true; 176 unsigned long success = true;
179 177
diff --git a/drivers/scsi/isci/sci_environment.h b/drivers/scsi/isci/sci_environment.h
index 6be9274975d0..744016dffecb 100644
--- a/drivers/scsi/isci/sci_environment.h
+++ b/drivers/scsi/isci/sci_environment.h
@@ -73,7 +73,7 @@ static inline struct device *scic_to_dev(struct scic_sds_controller *scic)
73 73
74static inline struct device *sciphy_to_dev(struct scic_sds_phy *sci_phy) 74static inline struct device *sciphy_to_dev(struct scic_sds_phy *sci_phy)
75{ 75{
76 struct isci_phy *iphy = sci_object_get_association(sci_phy); 76 struct isci_phy *iphy = sci_phy->iphy;
77 77
78 if (!iphy || !iphy->isci_port || !iphy->isci_port->isci_host) 78 if (!iphy || !iphy->isci_port || !iphy->isci_port->isci_host)
79 return NULL; 79 return NULL;