Re: [PATCH 2/2] SPI: Add support for Zynq Quad SPI controller
From: Harini Katakam
Date: Fri Apr 04 2014 - 08:28:18 EST
Hi Mark,
On Fri, Apr 4, 2014 at 4:38 PM, Mark Brown <broonie@xxxxxxxxxx> wrote:
> On Fri, Apr 04, 2014 at 08:59:47AM +0530, Harini Katakam wrote:
>> On Fri, Apr 4, 2014 at 2:59 AM, Mark Brown <broonie@xxxxxxxxxx> wrote:
>
>> > Why would a transfer be being set up without a transfer being provided?
>
>> The setup function calls this function before a transfer is initiated.
>> In this case NULL is passed to setup_transfer (see below) and
>> SPI is initialized with default clock configuration.
>> This initialization is necessary because otherwise this clock config
>> would be done
>> only after SPI is enabled in prepare_hardware, which is wrong.
>> (I'm checking for master->busy in setup to address your previous
>> comment on SPI).
>
> The requirement for setup() to work when other transfers are in progress
> is clear and unambiguous, it really isn't acceptable to reconfigure
> hardware in use by a runing transfer in setup().
>
OK. I'll remove setup_transfer here and handle clock configuration elsewhere.
>> I explained the same in SPI v2 changes and this valid there too.
>
> This is v2?
>
No. This "Zynq QSPI" patch is v1.
I was referring to "Cadence SPI" v2 patch in which you pointed to these
comments.
Sorry for the confusion.
<snip>
>> >> +static int __maybe_unused zynq_qspi_suspend(struct device *_dev)
>> >> +{
>> >> + struct platform_device *pdev = container_of(_dev,
>> >> + struct platform_device, dev);
>> >> + struct spi_master *master = platform_get_drvdata(pdev);
>> >> +
>> >> + spi_master_suspend(master);
>> >> +
>> >> + zynq_unprepare_transfer_hardware(master);
>
>> > Why are you unpreparing the hardware - the framework should be doing
>> > that for you if the device is active, if it's not you've got an extra
>> > clock disable here?
>
>> I called unprepare_hardware becuase it does the things necessary
>> after master suspend - disable clock and controller.
>> (I thought this was your suggestion for SPI?)
>
> Why are these things required after the core has already idled the
> device (using exactly the same function)?
Ok. It's unecessary I'll remove it.
Regards,
Harini
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/