diff mbox

[v2] spi: ti-qspi: Fix getting correct address for qspi

Message ID 1389092643.3991.1.camel@phoenix (mailing list archive)
State Accepted
Headers show

Commit Message

Axel Lin Jan. 7, 2014, 11:04 a.m. UTC
Now platform_get_drvdata() returns the address of qspi rather than master.
Also drop unneeded spi_unregister_master() call in ti_qspi_remove() because
we use devm_spi_register_master() in probe.

commit cbcabb7a300b "spi/qspi: Fix qspi remove path" assumes 
platform_get_drvdata() returns address of master. However,
commit 160a061301c7 "spi/qspi: set correct platform drvdata in ti_qspi_probe()"
pass qspi to platform_set_drvdata().

Signed-off-by: Axel Lin <axel.lin@ingics.com>
---
v2: Update commit log, and drop fixes tag ( the fixes commit id is wrong).

 drivers/spi/spi-ti-qspi.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

Comments

Poddar, Sourav Jan. 7, 2014, 11:05 a.m. UTC | #1
On Tuesday 07 January 2014 04:34 PM, Axel Lin wrote:
> Now platform_get_drvdata() returns the address of qspi rather than master.
> Also drop unneeded spi_unregister_master() call in ti_qspi_remove() because
> we use devm_spi_register_master() in probe.
>
> commit cbcabb7a300b "spi/qspi: Fix qspi remove path" assumes
> platform_get_drvdata() returns address of master. However,
> commit 160a061301c7 "spi/qspi: set correct platform drvdata in ti_qspi_probe()"
> pass qspi to platform_set_drvdata().
>
> Signed-off-by: Axel Lin<axel.lin@ingics.com>
> ---
> v2: Update commit log, and drop fixes tag ( the fixes commit id is wrong).
>
>   drivers/spi/spi-ti-qspi.c | 8 +-------
>   1 file changed, 1 insertion(+), 7 deletions(-)
>
> diff --git a/drivers/spi/spi-ti-qspi.c b/drivers/spi/spi-ti-qspi.c
> index 9190e03..4b413e9 100644
> --- a/drivers/spi/spi-ti-qspi.c
> +++ b/drivers/spi/spi-ti-qspi.c
> @@ -563,13 +563,9 @@ free_master:
>
>   static int ti_qspi_remove(struct platform_device *pdev)
>   {
> -	struct spi_master *master;
> -	struct ti_qspi *qspi;
> +	struct ti_qspi *qspi = platform_get_drvdata(pdev);
>   	int ret;
>
> -	master = platform_get_drvdata(pdev);
> -	qspi = spi_master_get_devdata(master);
> -
>   	ret = pm_runtime_get_sync(qspi->dev);
>   	if (ret<  0) {
>   		dev_err(qspi->dev, "pm_runtime_get_sync() failed\n");
> @@ -581,8 +577,6 @@ static int ti_qspi_remove(struct platform_device *pdev)
>   	pm_runtime_put(qspi->dev);
>   	pm_runtime_disable(&pdev->dev);
>
> -	spi_unregister_master(master);
> -
why this is removed?
>   	return 0;
>   }
>

--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Axel Lin Jan. 7, 2014, 11:18 a.m. UTC | #2
2014/1/7 Sourav Poddar <sourav.poddar@ti.com>:
> On Tuesday 07 January 2014 04:34 PM, Axel Lin wrote:
>>
>> Now platform_get_drvdata() returns the address of qspi rather than master.
>> Also drop unneeded spi_unregister_master() call in ti_qspi_remove()
>> because
>> we use devm_spi_register_master() in probe.
>>
>> commit cbcabb7a300b "spi/qspi: Fix qspi remove path" assumes
>> platform_get_drvdata() returns address of master. However,
>> commit 160a061301c7 "spi/qspi: set correct platform drvdata in
>> ti_qspi_probe()"
>> pass qspi to platform_set_drvdata().
>>
>> Signed-off-by: Axel Lin<axel.lin@ingics.com>
>> ---
>> v2: Update commit log, and drop fixes tag ( the fixes commit id is wrong).
>>
>>   drivers/spi/spi-ti-qspi.c | 8 +-------
>>   1 file changed, 1 insertion(+), 7 deletions(-)
>>
>> diff --git a/drivers/spi/spi-ti-qspi.c b/drivers/spi/spi-ti-qspi.c
>> index 9190e03..4b413e9 100644
>> --- a/drivers/spi/spi-ti-qspi.c
>> +++ b/drivers/spi/spi-ti-qspi.c
>> @@ -563,13 +563,9 @@ free_master:
>>
>>   static int ti_qspi_remove(struct platform_device *pdev)
>>   {
>> -       struct spi_master *master;
>> -       struct ti_qspi *qspi;
>> +       struct ti_qspi *qspi = platform_get_drvdata(pdev);
>>         int ret;
>>
>> -       master = platform_get_drvdata(pdev);
>> -       qspi = spi_master_get_devdata(master);
>> -
>>         ret = pm_runtime_get_sync(qspi->dev);
>>         if (ret<  0) {
>>                 dev_err(qspi->dev, "pm_runtime_get_sync() failed\n");
>> @@ -581,8 +577,6 @@ static int ti_qspi_remove(struct platform_device
>> *pdev)
>>         pm_runtime_put(qspi->dev);
>>         pm_runtime_disable(&pdev->dev);
>>
>> -       spi_unregister_master(master);
>> -
>
> why this is removed?

If you use spi_register_master(), then you need to call spi_unregister_master()
in  ti_qspi_remove().
However, current code uses devm_spi_register_master(). So you don't need to
expilictly call spi_unregister_master(). It's done by devm_* APIs.

Regards,
Axel
--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Poddar, Sourav Jan. 7, 2014, 11:22 a.m. UTC | #3
On Tuesday 07 January 2014 04:48 PM, Axel Lin wrote:
> 2014/1/7 Sourav Poddar<sourav.poddar@ti.com>:
>> On Tuesday 07 January 2014 04:34 PM, Axel Lin wrote:
>>> Now platform_get_drvdata() returns the address of qspi rather than master.
>>> Also drop unneeded spi_unregister_master() call in ti_qspi_remove()
>>> because
>>> we use devm_spi_register_master() in probe.
>>>
>>> commit cbcabb7a300b "spi/qspi: Fix qspi remove path" assumes
>>> platform_get_drvdata() returns address of master. However,
>>> commit 160a061301c7 "spi/qspi: set correct platform drvdata in
>>> ti_qspi_probe()"
>>> pass qspi to platform_set_drvdata().
>>>
>>> Signed-off-by: Axel Lin<axel.lin@ingics.com>
>>> ---
>>> v2: Update commit log, and drop fixes tag ( the fixes commit id is wrong).
>>>
>>>    drivers/spi/spi-ti-qspi.c | 8 +-------
>>>    1 file changed, 1 insertion(+), 7 deletions(-)
>>>
>>> diff --git a/drivers/spi/spi-ti-qspi.c b/drivers/spi/spi-ti-qspi.c
>>> index 9190e03..4b413e9 100644
>>> --- a/drivers/spi/spi-ti-qspi.c
>>> +++ b/drivers/spi/spi-ti-qspi.c
>>> @@ -563,13 +563,9 @@ free_master:
>>>
>>>    static int ti_qspi_remove(struct platform_device *pdev)
>>>    {
>>> -       struct spi_master *master;
>>> -       struct ti_qspi *qspi;
>>> +       struct ti_qspi *qspi = platform_get_drvdata(pdev);
>>>          int ret;
>>>
>>> -       master = platform_get_drvdata(pdev);
>>> -       qspi = spi_master_get_devdata(master);
>>> -
>>>          ret = pm_runtime_get_sync(qspi->dev);
>>>          if (ret<   0) {
>>>                  dev_err(qspi->dev, "pm_runtime_get_sync() failed\n");
>>> @@ -581,8 +577,6 @@ static int ti_qspi_remove(struct platform_device
>>> *pdev)
>>>          pm_runtime_put(qspi->dev);
>>>          pm_runtime_disable(&pdev->dev);
>>>
>>> -       spi_unregister_master(master);
>>> -
>> why this is removed?
> If you use spi_register_master(), then you need to call spi_unregister_master()
> in  ti_qspi_remove().
> However, current code uses devm_spi_register_master(). So you don't need to
> expilictly call spi_unregister_master(). It's done by devm_* APIs.
>
> Regards,
> Axel

hmm..missed that point.
Reviewed-by: Sourav Poddar <sourav.poddar@ti.com>
--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Mark Brown Jan. 7, 2014, 11:38 a.m. UTC | #4
On Tue, Jan 07, 2014 at 07:04:03PM +0800, Axel Lin wrote:
> Now platform_get_drvdata() returns the address of qspi rather than master.
> Also drop unneeded spi_unregister_master() call in ti_qspi_remove() because
> we use devm_spi_register_master() in probe.

Applied, thanks.
diff mbox

Patch

diff --git a/drivers/spi/spi-ti-qspi.c b/drivers/spi/spi-ti-qspi.c
index 9190e03..4b413e9 100644
--- a/drivers/spi/spi-ti-qspi.c
+++ b/drivers/spi/spi-ti-qspi.c
@@ -563,13 +563,9 @@  free_master:
 
 static int ti_qspi_remove(struct platform_device *pdev)
 {
-	struct spi_master *master;
-	struct ti_qspi *qspi;
+	struct ti_qspi *qspi = platform_get_drvdata(pdev);
 	int ret;
 
-	master = platform_get_drvdata(pdev);
-	qspi = spi_master_get_devdata(master);
-
 	ret = pm_runtime_get_sync(qspi->dev);
 	if (ret < 0) {
 		dev_err(qspi->dev, "pm_runtime_get_sync() failed\n");
@@ -581,8 +577,6 @@  static int ti_qspi_remove(struct platform_device *pdev)
 	pm_runtime_put(qspi->dev);
 	pm_runtime_disable(&pdev->dev);
 
-	spi_unregister_master(master);
-
 	return 0;
 }