diff mbox

phy: exynos-mipi-video: simplify check for coupled phy status

Message ID 1470127956-22476-1-git-send-email-m.szyprowski@samsung.com (mailing list archive)
State Not Applicable
Headers show

Commit Message

Marek Szyprowski Aug. 2, 2016, 8:52 a.m. UTC
There is no need to access regmap of coupled phy to check its state - such
information is already in the phy device itself, so use it directly. This
let us to avoid possible access to registers of the device in the disabled
power domain if the coupled phy is already disabled.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
---
 drivers/phy/phy-exynos-mipi-video.c | 15 +--------------
 1 file changed, 1 insertion(+), 14 deletions(-)

Comments

On 08/02/2016 10:52 AM, Marek Szyprowski wrote:
> There is no need to access regmap of coupled phy to check its state - such
> information is already in the phy device itself, so use it directly. This
> let us to avoid possible access to registers of the device in the disabled
> power domain if the coupled phy is already disabled.
> 
> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>

Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com>

--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
kernel test robot Aug. 2, 2016, 9:30 a.m. UTC | #2
Hi Marek,

[auto build test ERROR on phy/next]
[also build test ERROR on v4.7 next-20160802]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Marek-Szyprowski/phy-exynos-mipi-video-simplify-check-for-coupled-phy-status/20160802-170240
base:   https://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy.git next
config: sparc64-allyesconfig (attached as .config)
compiler: sparc64-linux-gnu-gcc (Debian 5.4.0-6) 5.4.0 20160609
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=sparc64 

All errors (new ones prefixed by >>):

   drivers/phy/phy-exynos-mipi-video.c: In function '__set_phy_state':
>> drivers/phy/phy-exynos-mipi-video.c:241:22: error: 'const struct exynos_mipi_phy_desc' has no member named 'coupled_id'
         state->phys[data->coupled_id].phy->power_count == 0) {
                         ^

vim +241 drivers/phy/phy-exynos-mipi-video.c

   235		u32 val;
   236	
   237		spin_lock(&state->slock);
   238	
   239		/* disable in PMU sysreg */
   240		if (!on && data->coupled_phy_id >= 0 &&
 > 241		    state->phys[data->coupled_id].phy->power_count == 0) {
   242			regmap_read(state->regmaps[data->enable_map], data->enable_reg,
   243				    &val);
   244			val &= ~data->enable_val;

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
kernel test robot Aug. 2, 2016, 9:31 a.m. UTC | #3
Hi Marek,

[auto build test ERROR on phy/next]
[also build test ERROR on v4.7 next-20160802]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Marek-Szyprowski/phy-exynos-mipi-video-simplify-check-for-coupled-phy-status/20160802-170240
base:   https://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy.git next
config: x86_64-allyesconfig (attached as .config)
compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   drivers/phy/phy-exynos-mipi-video.c: In function '__set_phy_state':
>> drivers/phy/phy-exynos-mipi-video.c:241:22: error: 'const struct exynos_mipi_phy_desc' has no member named 'coupled_id'; did you mean 'coupled_phy_id'?
         state->phys[data->coupled_id].phy->power_count == 0) {
                         ^~

vim +241 drivers/phy/phy-exynos-mipi-video.c

   235		u32 val;
   236	
   237		spin_lock(&state->slock);
   238	
   239		/* disable in PMU sysreg */
   240		if (!on && data->coupled_phy_id >= 0 &&
 > 241		    state->phys[data->coupled_id].phy->power_count == 0) {
   242			regmap_read(state->regmaps[data->enable_map], data->enable_reg,
   243				    &val);
   244			val &= ~data->enable_val;

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
diff mbox

Patch

diff --git a/drivers/phy/phy-exynos-mipi-video.c b/drivers/phy/phy-exynos-mipi-video.c
index 8b851f7..e185234 100644
--- a/drivers/phy/phy-exynos-mipi-video.c
+++ b/drivers/phy/phy-exynos-mipi-video.c
@@ -229,19 +229,6 @@  struct exynos_mipi_video_phy {
 	spinlock_t slock;
 };
 
-static inline int __is_running(const struct exynos_mipi_phy_desc *data,
-			struct exynos_mipi_video_phy *state)
-{
-	u32 val;
-	int ret;
-
-	ret = regmap_read(state->regmaps[data->resetn_map], data->resetn_reg, &val);
-	if (ret)
-		return 0;
-
-	return val & data->resetn_val;
-}
-
 static int __set_phy_state(const struct exynos_mipi_phy_desc *data,
 			   struct exynos_mipi_video_phy *state, unsigned int on)
 {
@@ -251,7 +238,7 @@  static int __set_phy_state(const struct exynos_mipi_phy_desc *data,
 
 	/* disable in PMU sysreg */
 	if (!on && data->coupled_phy_id >= 0 &&
-	    !__is_running(state->phys[data->coupled_phy_id].data, state)) {
+	    state->phys[data->coupled_id].phy->power_count == 0) {
 		regmap_read(state->regmaps[data->enable_map], data->enable_reg,
 			    &val);
 		val &= ~data->enable_val;