From: Hans de Goede <hdegoede@redhat.com>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Jarkko Nikula <jarkko.nikula@linux.intel.com>,
Wolfram Sang <wsa@the-dreams.de>, Len Brown <lenb@kernel.org>
Cc: "Mika Westerberg" <mika.westerberg@linux.intel.com>,
"Jani Nikula" <jani.nikula@linux.intel.com>,
"Ville Syrjälä" <ville.syrjala@linux.intel.com>,
"Takashi Iwai" <tiwai@suse.de>,
"russianneuromancer @ ya . ru" <russianneuromancer@ya.ru>,
linux-i2c@vger.kernel.org,
intel-gfx <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH v5 5/6] i2c: designware-baytrail: Fix race when resetting the semaphore
Date: Mon, 2 Jan 2017 10:55:56 +0100 [thread overview]
Message-ID: <d8525a7d-2363-3065-bc3d-22c7a0553d75@redhat.com> (raw)
In-Reply-To: <1483349801.9552.187.camel@linux.intel.com>
Hi,
On 02-01-17 10:36, Andy Shevchenko wrote:
> On Sun, 2017-01-01 at 21:15 +0100, Hans de Goede wrote:
>> Use iosf_mbi_modify instead of iosf_mbi_read + iosf_mbi_write so that
>> we keep the iosf_mbi_lock locked during the read-modify-write done to
>> reset the semaphore.
>>
>
> While patch itself looks good to me, I think it reduces a probability to
> race and doesn't eliminate an issue completely.
All accesses through this register are done through the
iosf_mbi_ helpers, and the modify helper holds the
iosf_mbi_lock during the entire read-modify-wrtie cycle,
so I don't see how there can still be any issue left.
> Can you check i915 code
> how it's done there?
AFAIK the i915 code never takes the pmic i2c bus semaphore.
Regards,
Hans
p.s.
Since you're interested in this set, you may also be interested
in this RFC patch-set:
https://www.spinics.net/lists/intel-gfx/msg115833.html
>
>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>> ---
>> Changes in v5:
>> -New patch in v5 of this patch-set
>> ---
>> drivers/i2c/busses/i2c-designware-baytrail.c | 11 ++---------
>> 1 file changed, 2 insertions(+), 9 deletions(-)
>>
>> diff --git a/drivers/i2c/busses/i2c-designware-baytrail.c
>> b/drivers/i2c/busses/i2c-designware-baytrail.c
>> index 650a700..8df529c 100644
>> --- a/drivers/i2c/busses/i2c-designware-baytrail.c
>> +++ b/drivers/i2c/busses/i2c-designware-baytrail.c
>> @@ -47,15 +47,8 @@ static int get_sem(struct dw_i2c_dev *dev, u32
>> *sem)
>>
>> static void reset_semaphore(struct dw_i2c_dev *dev)
>> {
>> - u32 data;
>> -
>> - if (iosf_mbi_read(BT_MBI_UNIT_PMC, MBI_REG_READ,
>> PUNIT_SEMAPHORE, &data)) {
>> - dev_err(dev->dev, "iosf failed to reset punit
>> semaphore during read\n");
>> - return;
>> - }
>> -
>> - data &= ~PUNIT_SEMAPHORE_BIT;
>> - if (iosf_mbi_write(BT_MBI_UNIT_PMC, MBI_REG_WRITE,
>> PUNIT_SEMAPHORE, data))
>> + if (iosf_mbi_modify(BT_MBI_UNIT_PMC, MBI_REG_READ,
>> PUNIT_SEMAPHORE,
>> + 0, PUNIT_SEMAPHORE_BIT))
>> dev_err(dev->dev, "iosf failed to reset punit
>> semaphore during write\n");
>>
>> pm_qos_update_request(&dev->pm_qos, PM_QOS_DEFAULT_VALUE);
>
next prev parent reply other threads:[~2017-01-02 9:56 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-01 20:15 [PATCH v5 1/6] i2c: designware: Rename accessor_flags to flags Hans de Goede
2017-01-01 20:15 ` [PATCH v5 2/6] i2c: designware-baytrail: Pass dw_i2c_dev into helper functions Hans de Goede
2017-01-01 20:15 ` [PATCH v5 3/6] i2c: designware-baytrail: Only check iosf_mbi_available() for shared hosts Hans de Goede
2017-01-01 20:15 ` [PATCH v5 4/6] i2c: designware-baytrail: Disallow the CPU to enter C6 or C7 while holding the punit semaphore Hans de Goede
2017-01-01 20:15 ` [PATCH v5 5/6] i2c: designware-baytrail: Fix race when resetting the semaphore Hans de Goede
2017-01-02 9:36 ` Andy Shevchenko
2017-01-02 9:55 ` Hans de Goede [this message]
2017-01-02 10:06 ` Andy Shevchenko
2017-01-10 13:16 ` Jarkko Nikula
2017-01-01 20:15 ` [PATCH v5 6/6] i2c: designware-baytrail: Add support for cherrytrail Hans de Goede
2017-01-15 15:18 ` [PATCH v5 1/6] i2c: designware: Rename accessor_flags to flags Wolfram Sang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d8525a7d-2363-3065-bc3d-22c7a0553d75@redhat.com \
--to=hdegoede@redhat.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@linux.intel.com \
--cc=jarkko.nikula@linux.intel.com \
--cc=lenb@kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=mika.westerberg@linux.intel.com \
--cc=russianneuromancer@ya.ru \
--cc=tiwai@suse.de \
--cc=ville.syrjala@linux.intel.com \
--cc=wsa@the-dreams.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).