From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hui Wang Subject: Re: [PATCH v3 1/5] phy: Add driver for Exynos MIPI CSIS/DSIM DPHYs Date: Fri, 28 Jun 2013 16:17:28 +0800 Message-ID: <51CD4698.3070409@gmail.com> References: <1372258946-15607-1-git-send-email-s.nawrocki@samsung.com> <1372258946-15607-2-git-send-email-s.nawrocki@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1372258946-15607-2-git-send-email-s.nawrocki@samsung.com> Sender: linux-samsung-soc-owner@vger.kernel.org To: Sylwester Nawrocki Cc: linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, kishon@ti.com, linux-media@vger.kernel.org, kyungmin.park@samsung.com, balbi@ti.com, t.figa@samsung.com, devicetree-discuss@lists.ozlabs.org, kgene.kim@samsung.com, dh09.lee@samsung.com, jg1.han@samsung.com, inki.dae@samsung.com, plagnioj@jcrosoft.com, linux-fbdev@vger.kernel.org List-Id: devicetree@vger.kernel.org On 06/26/2013 11:02 PM, Sylwester Nawrocki wrote: > Add a PHY provider driver for the Samsung S5P/Exynos SoC MIPI CSI-2 > receiver and MIPI DSI transmitter DPHYs. > > Signed-off-by: Sylwester Nawrocki > Signed-off-by: Kyungmin Park > --- > Changes since v2: > - adapted to the generic PHY API v9: use phy_set/get_drvdata(), > - fixed of_xlate callback to return ERR_PTR() instead of NULL, > - namespace cleanup, put "GPL v2" as MODULE_LICENSE, removed pr_debug, > - removed phy id check in __set_phy_state(). > --- [...] > + > + if (IS_EXYNOS_MIPI_DSIM_PHY_ID(id)) > + reset = EXYNOS_MIPI_PHY_MRESETN; > + else > + reset = EXYNOS_MIPI_PHY_SRESETN; > + > + spin_lock_irqsave(&state->slock, flags); Sorry for one stupid question here, why do you use spin_lock_irqsave() rather than spin_lock(), I don't see the irq handler will use this spinlock anywhere in this c file. Regards, Hui. > + reg = readl(addr); > + if (on) > + reg |= reset; > + else > + reg &= ~reset; > + writel(reg, addr); > + > + /* Clear ENABLE bit only if MRESETN, SRESETN bits are not set. */ > + if (on) > + reg |= EXYNOS_MIPI_PHY_ENABLE; > + else if (!(reg & EXYNOS_MIPI_PHY_RESET_MASK)) > + reg &= ~EXYNOS_MIPI_PHY_ENABLE; > + > + writel(reg, addr); > + spin_unlock_irqrestore(&state->slock, flags); > + return 0; > +} > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hui Wang Date: Fri, 28 Jun 2013 08:17:28 +0000 Subject: Re: [PATCH v3 1/5] phy: Add driver for Exynos MIPI CSIS/DSIM DPHYs Message-Id: <51CD4698.3070409@gmail.com> List-Id: References: <1372258946-15607-1-git-send-email-s.nawrocki@samsung.com> <1372258946-15607-2-git-send-email-s.nawrocki@samsung.com> In-Reply-To: <1372258946-15607-2-git-send-email-s.nawrocki@samsung.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-arm-kernel@lists.infradead.org On 06/26/2013 11:02 PM, Sylwester Nawrocki wrote: > Add a PHY provider driver for the Samsung S5P/Exynos SoC MIPI CSI-2 > receiver and MIPI DSI transmitter DPHYs. > > Signed-off-by: Sylwester Nawrocki > Signed-off-by: Kyungmin Park > --- > Changes since v2: > - adapted to the generic PHY API v9: use phy_set/get_drvdata(), > - fixed of_xlate callback to return ERR_PTR() instead of NULL, > - namespace cleanup, put "GPL v2" as MODULE_LICENSE, removed pr_debug, > - removed phy id check in __set_phy_state(). > --- [...] > + > + if (IS_EXYNOS_MIPI_DSIM_PHY_ID(id)) > + reset = EXYNOS_MIPI_PHY_MRESETN; > + else > + reset = EXYNOS_MIPI_PHY_SRESETN; > + > + spin_lock_irqsave(&state->slock, flags); Sorry for one stupid question here, why do you use spin_lock_irqsave() rather than spin_lock(), I don't see the irq handler will use this spinlock anywhere in this c file. Regards, Hui. > + reg = readl(addr); > + if (on) > + reg |= reset; > + else > + reg &= ~reset; > + writel(reg, addr); > + > + /* Clear ENABLE bit only if MRESETN, SRESETN bits are not set. */ > + if (on) > + reg |= EXYNOS_MIPI_PHY_ENABLE; > + else if (!(reg & EXYNOS_MIPI_PHY_RESET_MASK)) > + reg &= ~EXYNOS_MIPI_PHY_ENABLE; > + > + writel(reg, addr); > + spin_unlock_irqrestore(&state->slock, flags); > + return 0; > +} > From mboxrd@z Thu Jan 1 00:00:00 1970 From: jason77.wang@gmail.com (Hui Wang) Date: Fri, 28 Jun 2013 16:17:28 +0800 Subject: [PATCH v3 1/5] phy: Add driver for Exynos MIPI CSIS/DSIM DPHYs In-Reply-To: <1372258946-15607-2-git-send-email-s.nawrocki@samsung.com> References: <1372258946-15607-1-git-send-email-s.nawrocki@samsung.com> <1372258946-15607-2-git-send-email-s.nawrocki@samsung.com> Message-ID: <51CD4698.3070409@gmail.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 06/26/2013 11:02 PM, Sylwester Nawrocki wrote: > Add a PHY provider driver for the Samsung S5P/Exynos SoC MIPI CSI-2 > receiver and MIPI DSI transmitter DPHYs. > > Signed-off-by: Sylwester Nawrocki > Signed-off-by: Kyungmin Park > --- > Changes since v2: > - adapted to the generic PHY API v9: use phy_set/get_drvdata(), > - fixed of_xlate callback to return ERR_PTR() instead of NULL, > - namespace cleanup, put "GPL v2" as MODULE_LICENSE, removed pr_debug, > - removed phy id check in __set_phy_state(). > --- [...] > + > + if (IS_EXYNOS_MIPI_DSIM_PHY_ID(id)) > + reset = EXYNOS_MIPI_PHY_MRESETN; > + else > + reset = EXYNOS_MIPI_PHY_SRESETN; > + > + spin_lock_irqsave(&state->slock, flags); Sorry for one stupid question here, why do you use spin_lock_irqsave() rather than spin_lock(), I don't see the irq handler will use this spinlock anywhere in this c file. Regards, Hui. > + reg = readl(addr); > + if (on) > + reg |= reset; > + else > + reg &= ~reset; > + writel(reg, addr); > + > + /* Clear ENABLE bit only if MRESETN, SRESETN bits are not set. */ > + if (on) > + reg |= EXYNOS_MIPI_PHY_ENABLE; > + else if (!(reg & EXYNOS_MIPI_PHY_RESET_MASK)) > + reg &= ~EXYNOS_MIPI_PHY_ENABLE; > + > + writel(reg, addr); > + spin_unlock_irqrestore(&state->slock, flags); > + return 0; > +} >