<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/arm/common/sa1111.c, branch linux-4.14.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.14.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.14.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-09-21T17:52:45Z</updated>
<entry>
<title>ARM: sa1111: provide to_sa1111_device() macro</title>
<updated>2016-09-21T17:52:45Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2016-09-06T12:46:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b60752f2b20c167859943e001727f0d4da419b23'/>
<id>urn:sha1:b60752f2b20c167859943e001727f0d4da419b23</id>
<content type='text'>
Provide a nicer to_sa1111_device macro to convert a struct device to a
sa1111_dev.  We will need this for drivers when converting them to
dev_pm_ops, or removing shutdown methods.

Signed-off-by: Russell King &lt;rmk+kernel@armlinux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: sa1111: add sa1111_get_irq()</title>
<updated>2016-09-20T13:21:08Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2016-09-05T23:45:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cf6e4ca3e53f734f8fcb253a686c1fdbb6a50e85'/>
<id>urn:sha1:cf6e4ca3e53f734f8fcb253a686c1fdbb6a50e85</id>
<content type='text'>
Add a helper function to get the irq number for a device.

Signed-off-by: Russell King &lt;rmk+kernel@armlinux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: sa1111: clean up duplication in IRQ chip implementation</title>
<updated>2016-09-20T13:21:08Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2016-09-06T17:43:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1629c9ab3679908d2e18ca306df1f07f48713f6b'/>
<id>urn:sha1:1629c9ab3679908d2e18ca306df1f07f48713f6b</id>
<content type='text'>
Clean up the duplication in the IRQ chip implementation - we can compute
the register address from the interrupt number rather than duplicating
the code for each register.

Signed-off-by: Russell King &lt;rmk+kernel@armlinux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: sa1111: implement a gpio_chip for SA1111 GPIOs</title>
<updated>2016-09-20T13:21:08Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2016-08-31T07:49:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=17cf50116e10affaadfee9af2253c841f7ac0623'/>
<id>urn:sha1:17cf50116e10affaadfee9af2253c841f7ac0623</id>
<content type='text'>
Add a gpio_chip instance for SA1111 GPIOs.  This allows us to use
gpiolib to lookup and manipulate SA1111 GPIOs.

Signed-off-by: Russell King &lt;rmk+kernel@armlinux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: sa1111: move irq cleanup to separate function</title>
<updated>2016-09-20T13:21:08Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2016-09-06T15:01:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ccb7d854d65a09ffe4b6c8342b8d1c6bee6740bb'/>
<id>urn:sha1:ccb7d854d65a09ffe4b6c8342b8d1c6bee6740bb</id>
<content type='text'>
Move the SA1111 interrupt cleanup to a separate function, so it can be
re-used in the probe error cleanup path.

Signed-off-by: Russell King &lt;rmk+kernel@armlinux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: sa1111: use devm_clk_get()</title>
<updated>2016-09-20T13:21:07Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2016-08-30T21:47:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=deee856a5c6293c50ad6589c9f8a1cca5ed08ae9'/>
<id>urn:sha1:deee856a5c6293c50ad6589c9f8a1cca5ed08ae9</id>
<content type='text'>
Convert sa1111 to use devm_clk_get() to get its clock resource, and
strip out the clk_put() calls.  This simplifies the error handling
a little.

Signed-off-by: Russell King &lt;rmk+kernel@armlinux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: sa1111: use devm_kzalloc()</title>
<updated>2016-09-20T13:21:07Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2016-09-06T14:29:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7d53c1f01210aa79838f1fe34b2a89f8e900d720'/>
<id>urn:sha1:7d53c1f01210aa79838f1fe34b2a89f8e900d720</id>
<content type='text'>
Use devm_kzalloc() to allocate our driver data, so we can eliminate its
kfree() from the device removal and error cleanup paths.

Signed-off-by: Russell King &lt;rmk+kernel@armlinux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: sa1111: ensure we only touch RAB bus type devices when removing</title>
<updated>2016-09-20T13:21:07Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2016-09-03T08:14:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=eac8dbf74f30479b70b9a53f3b24285bd6229d09'/>
<id>urn:sha1:eac8dbf74f30479b70b9a53f3b24285bd6229d09</id>
<content type='text'>
When removing a SA1111 device, we try to remove all child devices.
However, we must only remove our own RAB bus typed devices from the
tree, there may be other devices present which should not be touched.

This is necessary before we introduce gpiochip to SA1111 to avoid
incorrectly trying to remove the gpiochip device, leading to an oops
in __release_resource().

Signed-off-by: Russell King &lt;rmk+kernel@armlinux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: sa1111: fix missing clk_disable()</title>
<updated>2016-09-12T10:04:05Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2016-09-06T15:09:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=87d5dd62c07f90ed2b0d6718f5c666f69e7d39b0'/>
<id>urn:sha1:87d5dd62c07f90ed2b0d6718f5c666f69e7d39b0</id>
<content type='text'>
SA1111 forgets to call clk_disable() in the probe error cleanup path.
Add the necessary call.

Signed-off-by: Russell King &lt;rmk+kernel@armlinux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: sa1111: fix pcmcia suspend/resume</title>
<updated>2016-09-12T10:04:05Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2016-09-06T13:34:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=06dfe5cc0cc684e735cb0232fdb756d30780b05d'/>
<id>urn:sha1:06dfe5cc0cc684e735cb0232fdb756d30780b05d</id>
<content type='text'>
SA1111 PCMCIA was broken when PCMCIA switched to using dev_pm_ops for
the PCMCIA socket class.  PCMCIA used to handle suspend/resume via the
socket hosting device, which happened at normal device suspend/resume
time.

However, the referenced commit changed this: much of the resume now
happens much earlier, in the noirq resume handler of dev_pm_ops.

However, on SA1111, the PCMCIA device is not accessible as the SA1111
has not been resumed at _noirq time.  It's slightly worse than that,
because the SA1111 has already been put to sleep at _noirq time, so
suspend doesn't work properly.

Fix this by converting the core SA1111 code to use dev_pm_ops as well,
and performing its own suspend/resume at noirq time.

This fixes these errors in the kernel log:

pcmcia_socket pcmcia_socket0: time out after reset
pcmcia_socket pcmcia_socket1: time out after reset

and the resulting lack of PCMCIA cards after a S2RAM cycle.

Fixes: d7646f7632549 ("pcmcia: use dev_pm_ops for class pcmcia_socket_class")
Signed-off-by: Russell King &lt;rmk+kernel@armlinux.org.uk&gt;
</content>
</entry>
</feed>
