On Thu, 27 Dec 2012 10:42:29 +0100, Gabor Juhos <juh...@openwrt.org> wrote:
> The SPI controller of the AR7xxx/AR9xxx SoCs
> have a special mode which allows the SoC to
> directly read data from SPI flash chips. In
> this mode, the content of the SPI flash chip
> can be accessed via a memory mapped region.
> 
> During early init time, the kernel expects
> that the flash chip is accessible through
> that memory region because it reads board
> specific values (e.g. MAC address, WiFi
> calibration data) from the flash on various
> boards.
> 
> This is working if the kernel is loaded
> directly by the bootloader because that
> leaves the SPI controller in the special
> mode. However it is not working in a kexec'd
> kernel because the SPI driver does not restore
> the special mode during shutdown.
> 
> The patch adds a shutdown handler to fix this
> issue.
> 
> Signed-off-by: Gabor Juhos <juh...@openwrt.org>
> ---
>  drivers/spi/spi-ath79.c |   12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/spi/spi-ath79.c b/drivers/spi/spi-ath79.c
> index 842acd8..73e491e 100644
> --- a/drivers/spi/spi-ath79.c
> +++ b/drivers/spi/spi-ath79.c
> @@ -293,7 +293,7 @@ err_put_master:
>       return ret;
>  }
>  
> -static int ath79_spi_remove(struct platform_device *pdev)
> +static void __ath79_spi_remove(struct platform_device *pdev)
>  {
>       struct ath79_spi *sp = platform_get_drvdata(pdev);
>  
> @@ -304,13 +304,23 @@ static int ath79_spi_remove(struct platform_device 
> *pdev)
>       iounmap(sp->base);
>       platform_set_drvdata(pdev, NULL);
>       spi_master_put(sp->bitbang.master);
> +}
>  
> +static int ath79_spi_remove(struct platform_device *pdev)
> +{
> +     __ath79_spi_remove(pdev);
>       return 0;
>  }
>  
> +static void ath79_spi_shutdown(struct platform_device *pdev)
> +{
> +     __ath79_spi_remove(pdev);
> +}

Just call ath79_spi_remote(pdev) directly from ath79_spi_shutdown(). No
need for the extra hook and __ version of the original function.

g.


------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013 
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general

Reply via email to