* [RFC] spi: Switch call order of spi master setup and spi_set_cs @ 2015-10-12 21:01 Franklin S Cooper Jr 2015-10-12 21:01 ` [RFC][PATCH] spi: Setup the master controller driver before setting the chipselect Franklin S Cooper Jr 2015-10-13 12:10 ` [RFC] spi: Switch call order of spi master setup and spi_set_cs Mark Brown 0 siblings, 2 replies; 8+ messages in thread From: Franklin S Cooper Jr @ 2015-10-12 21:01 UTC (permalink / raw) To: linux-kernel, linux-spi, broonie, nsekhar, ssantosh, iivanov, m-karicheri2 Cc: Franklin S Cooper Jr Keystone 2 devices currently fail to boot in linux-next after the below commit was applied: spi: bitbang: switch to the generic implementation of transfer_one_message commit: 0037686596832572bbca05ab168d9884d7d704c1 This patch allows Keystone 2 devices to boot again in linux-next. Tested this patch on K2E evm and am437 starterkit which both have SPI devices to insure regressions aren't seen. Franklin S Cooper Jr (1): spi: Setup the master controller driver before setting the chipselect drivers/spi/spi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.6.1 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [RFC][PATCH] spi: Setup the master controller driver before setting the chipselect 2015-10-12 21:01 [RFC] spi: Switch call order of spi master setup and spi_set_cs Franklin S Cooper Jr @ 2015-10-12 21:01 ` Franklin S Cooper Jr 2015-10-14 9:47 ` Ivan T. Ivanov 2015-10-13 12:10 ` [RFC] spi: Switch call order of spi master setup and spi_set_cs Mark Brown 1 sibling, 1 reply; 8+ messages in thread From: Franklin S Cooper Jr @ 2015-10-12 21:01 UTC (permalink / raw) To: linux-kernel, linux-spi, broonie, nsekhar, ssantosh, iivanov, m-karicheri2 Cc: Franklin S Cooper Jr Some devices depend on the master controller driver setup function being called before calling any chipselect functions. Insure that this is done otherwise uninitialized structures may be accessed causing a kernel panic. Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> --- drivers/spi/spi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index 38006cc..9374d82 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -2053,11 +2053,11 @@ int spi_setup(struct spi_device *spi) if (!spi->max_speed_hz) spi->max_speed_hz = spi->master->max_speed_hz; - spi_set_cs(spi, false); - if (spi->master->setup) status = spi->master->setup(spi); + spi_set_cs(spi, false); + dev_dbg(&spi->dev, "setup mode %d, %s%s%s%s%u bits/w, %u Hz max --> %d\n", (int) (spi->mode & (SPI_CPOL | SPI_CPHA)), (spi->mode & SPI_CS_HIGH) ? "cs_high, " : "", -- 2.6.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [RFC][PATCH] spi: Setup the master controller driver before setting the chipselect 2015-10-12 21:01 ` [RFC][PATCH] spi: Setup the master controller driver before setting the chipselect Franklin S Cooper Jr @ 2015-10-14 9:47 ` Ivan T. Ivanov 2015-10-14 11:08 ` Andy Shevchenko 0 siblings, 1 reply; 8+ messages in thread From: Ivan T. Ivanov @ 2015-10-14 9:47 UTC (permalink / raw) To: Franklin S Cooper Jr, Andy Shevchenko Cc: linux-kernel, linux-spi, broonie, nsekhar, ssantosh, Ivan T. Ivanov, m-karicheri2 Adding Andy. > On Oct 13, 2015, at 12:01 AM, Franklin S Cooper Jr <fcooper@ti.com> wrote: > > Some devices depend on the master controller driver setup function being > called before calling any chipselect functions. > > Insure that this is done otherwise uninitialized structures may be > accessed causing a kernel panic. > > Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> > --- > drivers/spi/spi.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c > index 38006cc..9374d82 100644 > --- a/drivers/spi/spi.c > +++ b/drivers/spi/spi.c > @@ -2053,11 +2053,11 @@ int spi_setup(struct spi_device *spi) > if (!spi->max_speed_hz) > spi->max_speed_hz = spi->master->max_speed_hz; > > - spi_set_cs(spi, false); > - > if (spi->master->setup) > status = spi->master->setup(spi); > > + spi_set_cs(spi, false); > + > dev_dbg(&spi->dev, "setup mode %d, %s%s%s%s%u bits/w, %u Hz max --> %d\n", > (int) (spi->mode & (SPI_CPOL | SPI_CPHA)), > (spi->mode & SPI_CS_HIGH) ? "cs_high, " : "", > -- > 2.6.1 > > -- > 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 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC][PATCH] spi: Setup the master controller driver before setting the chipselect 2015-10-14 9:47 ` Ivan T. Ivanov @ 2015-10-14 11:08 ` Andy Shevchenko 2015-10-14 11:45 ` Heiner Kallweit 0 siblings, 1 reply; 8+ messages in thread From: Andy Shevchenko @ 2015-10-14 11:08 UTC (permalink / raw) To: Ivan T. Ivanov, Jarkko Nikula Cc: Franklin S Cooper Jr, linux-kernel@vger.kernel.org, linux-spi, Mark Brown, Sekhar Nori, ssantosh, Ivan T. Ivanov, m-karicheri2 +Cc: Jarkko to see from spi-pxa2xx prospective On Wed, Oct 14, 2015 at 12:47 PM, Ivan T. Ivanov <iivanov.xz@gmail.com> wrote: > Adding Andy. > > >> On Oct 13, 2015, at 12:01 AM, Franklin S Cooper Jr <fcooper@ti.com> wrote: >> >> Some devices depend on the master controller driver setup function being >> called before calling any chipselect functions. >> >> Insure that this is done otherwise uninitialized structures may be >> accessed causing a kernel panic. As far as I understand my concern should be about spi-dw driver. So, I have just tested yesterday's linux-next with and without proposed patch. Works for me: Tested-by: Andy Shevchenko <andy.shevchenko@gmail.com> >> >> Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> >> --- >> drivers/spi/spi.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c >> index 38006cc..9374d82 100644 >> --- a/drivers/spi/spi.c >> +++ b/drivers/spi/spi.c >> @@ -2053,11 +2053,11 @@ int spi_setup(struct spi_device *spi) >> if (!spi->max_speed_hz) >> spi->max_speed_hz = spi->master->max_speed_hz; >> >> - spi_set_cs(spi, false); >> - >> if (spi->master->setup) >> status = spi->master->setup(spi); >> >> + spi_set_cs(spi, false); >> + >> dev_dbg(&spi->dev, "setup mode %d, %s%s%s%s%u bits/w, %u Hz max --> %d\n", >> (int) (spi->mode & (SPI_CPOL | SPI_CPHA)), >> (spi->mode & SPI_CS_HIGH) ? "cs_high, " : "", >> -- >> 2.6.1 >> >> -- >> 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 > -- With Best Regards, Andy Shevchenko ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC][PATCH] spi: Setup the master controller driver before setting the chipselect 2015-10-14 11:08 ` Andy Shevchenko @ 2015-10-14 11:45 ` Heiner Kallweit 2015-10-15 20:50 ` Franklin S Cooper Jr. 0 siblings, 1 reply; 8+ messages in thread From: Heiner Kallweit @ 2015-10-14 11:45 UTC (permalink / raw) To: Andy Shevchenko Cc: Ivan T. Ivanov, Jarkko Nikula, Franklin S Cooper Jr, linux-kernel@vger.kernel.org, linux-spi@vger.kernel.org, Mark Brown, Sekhar Nori, ssantosh, Ivan T. Ivanov, m-karicheri2 On Wed, Oct 14, 2015 at 1:08 PM, Andy Shevchenko <andy.shevchenko@gmail.com> wrote: > +Cc: Jarkko to see from spi-pxa2xx prospective > > On Wed, Oct 14, 2015 at 12:47 PM, Ivan T. Ivanov <iivanov.xz@gmail.com> wrote: >> Adding Andy. >> >> >>> On Oct 13, 2015, at 12:01 AM, Franklin S Cooper Jr <fcooper@ti.com> wrote: >>> >>> Some devices depend on the master controller driver setup function being >>> called before calling any chipselect functions. >>> >>> Insure that this is done otherwise uninitialized structures may be >>> accessed causing a kernel panic. > > As far as I understand my concern should be about spi-dw driver. > > So, I have just tested yesterday's linux-next with and without > proposed patch. Works for me: > Tested-by: Andy Shevchenko <andy.shevchenko@gmail.com> > >>> >>> Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> >>> --- >>> drivers/spi/spi.c | 4 ++-- >>> 1 file changed, 2 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c >>> index 38006cc..9374d82 100644 >>> --- a/drivers/spi/spi.c >>> +++ b/drivers/spi/spi.c >>> @@ -2053,11 +2053,11 @@ int spi_setup(struct spi_device *spi) >>> if (!spi->max_speed_hz) >>> spi->max_speed_hz = spi->master->max_speed_hz; >>> >>> - spi_set_cs(spi, false); >>> - >>> if (spi->master->setup) >>> status = spi->master->setup(spi); >>> >>> + spi_set_cs(spi, false); >>> + >>> dev_dbg(&spi->dev, "setup mode %d, %s%s%s%s%u bits/w, %u Hz max --> %d\n", >>> (int) (spi->mode & (SPI_CPOL | SPI_CPHA)), >>> (spi->mode & SPI_CS_HIGH) ? "cs_high, " : "", >>> -- >>> 2.6.1 >>> >>> -- >>> 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 >> > > > > -- > With Best Regards, > Andy Shevchenko > -- > 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 The recent change to the bitbang driver leads to the the set_cs hook of spi_master being set now for all drivers using the bitbang layer. This hook is called also from spi_setup and therefore one possible side effect is issues with bitbang drivers implementing the chipselect hook of spi_bitbang with a dependency on the master being set up before. The proposed patch looks good to me. There should be no impact on drivers not using bitbang. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC][PATCH] spi: Setup the master controller driver before setting the chipselect 2015-10-14 11:45 ` Heiner Kallweit @ 2015-10-15 20:50 ` Franklin S Cooper Jr. 0 siblings, 0 replies; 8+ messages in thread From: Franklin S Cooper Jr. @ 2015-10-15 20:50 UTC (permalink / raw) To: Heiner Kallweit Cc: Ivan T. Ivanov, Jarkko Nikula, linux-kernel@vger.kernel.org, linux-spi@vger.kernel.org, Mark Brown, Sekhar Nori, ssantosh, Ivan T. Ivanov, m-karicheri2, Andy Shevchenko On 10/14/2015 06:45 AM, Heiner Kallweit wrote: > On Wed, Oct 14, 2015 at 1:08 PM, Andy Shevchenko > <andy.shevchenko@gmail.com> wrote: >> +Cc: Jarkko to see from spi-pxa2xx prospective >> >> On Wed, Oct 14, 2015 at 12:47 PM, Ivan T. Ivanov <iivanov.xz@gmail.com> wrote: >>> Adding Andy. >>> >>> >>>> On Oct 13, 2015, at 12:01 AM, Franklin S Cooper Jr <fcooper@ti.com> wrote: >>>> >>>> Some devices depend on the master controller driver setup function being >>>> called before calling any chipselect functions. >>>> >>>> Insure that this is done otherwise uninitialized structures may be >>>> accessed causing a kernel panic. >> As far as I understand my concern should be about spi-dw driver. >> >> So, I have just tested yesterday's linux-next with and without >> proposed patch. Works for me: >> Tested-by: Andy Shevchenko <andy.shevchenko@gmail.com> >> >>>> Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> >>>> --- >>>> drivers/spi/spi.c | 4 ++-- >>>> 1 file changed, 2 insertions(+), 2 deletions(-) >>>> >>>> diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c >>>> index 38006cc..9374d82 100644 >>>> --- a/drivers/spi/spi.c >>>> +++ b/drivers/spi/spi.c >>>> @@ -2053,11 +2053,11 @@ int spi_setup(struct spi_device *spi) >>>> if (!spi->max_speed_hz) >>>> spi->max_speed_hz = spi->master->max_speed_hz; >>>> >>>> - spi_set_cs(spi, false); >>>> - >>>> if (spi->master->setup) >>>> status = spi->master->setup(spi); >>>> >>>> + spi_set_cs(spi, false); >>>> + >>>> dev_dbg(&spi->dev, "setup mode %d, %s%s%s%s%u bits/w, %u Hz max --> %d\n", >>>> (int) (spi->mode & (SPI_CPOL | SPI_CPHA)), >>>> (spi->mode & SPI_CS_HIGH) ? "cs_high, " : "", >>>> -- >>>> 2.6.1 >>>> >>>> -- >>>> 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 >> >> >> -- >> With Best Regards, >> Andy Shevchenko >> -- >> 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 > The recent change to the bitbang driver leads to the the set_cs hook > of spi_master being set > now for all drivers using the bitbang layer. This hook is called also > from spi_setup and therefore > one possible side effect is issues with bitbang drivers implementing > the chipselect hook of > spi_bitbang with a dependency on the master being set up before. > The proposed patch looks good to me. > There should be no impact on drivers not using bitbang. Thank all. Since nothing obvious seems wrong with this patch I will resend this patch without the RFC. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC] spi: Switch call order of spi master setup and spi_set_cs 2015-10-12 21:01 [RFC] spi: Switch call order of spi master setup and spi_set_cs Franklin S Cooper Jr 2015-10-12 21:01 ` [RFC][PATCH] spi: Setup the master controller driver before setting the chipselect Franklin S Cooper Jr @ 2015-10-13 12:10 ` Mark Brown 2015-10-13 14:03 ` Franklin S Cooper Jr. 1 sibling, 1 reply; 8+ messages in thread From: Mark Brown @ 2015-10-13 12:10 UTC (permalink / raw) To: Franklin S Cooper Jr Cc: linux-kernel, linux-spi, nsekhar, ssantosh, iivanov, m-karicheri2 [-- Attachment #1: Type: text/plain, Size: 464 bytes --] On Mon, Oct 12, 2015 at 04:01:10PM -0500, Franklin S Cooper Jr wrote: > Keystone 2 devices currently fail to boot in linux-next after the > below commit was applied: Please don't send cover letters for single patches, if there is anything that needs saying put it in the changelog of the patch or after the --- if it's administrative stuff. This reduces mail volume and ensures that any important information is recorded in the changelog rather than being lost. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 473 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC] spi: Switch call order of spi master setup and spi_set_cs 2015-10-13 12:10 ` [RFC] spi: Switch call order of spi master setup and spi_set_cs Mark Brown @ 2015-10-13 14:03 ` Franklin S Cooper Jr. 0 siblings, 0 replies; 8+ messages in thread From: Franklin S Cooper Jr. @ 2015-10-13 14:03 UTC (permalink / raw) To: Mark Brown Cc: linux-kernel, linux-spi, nsekhar, ssantosh, iivanov, m-karicheri2 On 10/13/2015 07:10 AM, Mark Brown wrote: > On Mon, Oct 12, 2015 at 04:01:10PM -0500, Franklin S Cooper Jr wrote: >> Keystone 2 devices currently fail to boot in linux-next after the >> below commit was applied: > Please don't send cover letters for single patches, if there is anything > that needs saying put it in the changelog of the patch or after the --- > if it's administrative stuff. This reduces mail volume and ensures that > any important information is recorded in the changelog rather than being > lost. Sorry about that. Will do next time. ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2015-10-15 20:51 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-10-12 21:01 [RFC] spi: Switch call order of spi master setup and spi_set_cs Franklin S Cooper Jr 2015-10-12 21:01 ` [RFC][PATCH] spi: Setup the master controller driver before setting the chipselect Franklin S Cooper Jr 2015-10-14 9:47 ` Ivan T. Ivanov 2015-10-14 11:08 ` Andy Shevchenko 2015-10-14 11:45 ` Heiner Kallweit 2015-10-15 20:50 ` Franklin S Cooper Jr. 2015-10-13 12:10 ` [RFC] spi: Switch call order of spi master setup and spi_set_cs Mark Brown 2015-10-13 14:03 ` Franklin S Cooper Jr.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox