mirror of
https://github.com/torvalds/linux.git
synced 2026-07-29 10:41:49 +02:00
Pin control fixes for the v7.2 series:
- Wakeup nits on the Qualcomm SC8280XP.
- Double-free issues on the device tree parsing error path.
- Fixup of the S4 sleep state handling on AMD pin control.
- Missing Kconfig select REGMAP_MMIO for the Microchip
driver leading to compile stalls.
- Missing Kconfig select GENERIC_PINCONF for the Bitmain
BM1880 leading to compile stalls.
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEElDRnuGcz/wPCXQWMQRCzN7AZXXMFAmpnIncACgkQQRCzN7AZ
XXPYww/6A9lTia3eOzmtjGCJZpKtIjQQ1S6E9/Fm8zSkWJGEDykcPRu2TE4cj12L
6ciGxdfUOhcRS+Trjezz9QntwF1QXQCFx+BuDHMUOVqHOSwmzsX2qCEr1w056nk5
6DcMDvF11/k9axkZfSI9SQtUacI0eCRXVGJ3y1TVkgm6KS3fhrzDl0dUmlhSbj5H
bzNWyzJT9CdNAZEXily3phfKbPB8C+j7cy7MHX/T7QVt/GMGYR9VxZUkrqBknQXc
Bnv+TkNrmrOcOlFgEVJ1iwjXi19yvf+E/9xSTgSO/K7piTLNjPJebV0g4OOc3iNF
Lu6DxMVkj3To+LoknmatSK0Dnns97qngZalxmKwo0ptzccXNuae6rgsAAeHQLGvZ
iZ33xYOkWj2deMPH5H2su1YPxIN6YwOdT9dmvO52nZ4mG5khqp23idgyzLK/VCo/
yglJ158QTFa1oH9Vk8qvNTG5c4gQsoLIj1e8vGHUdZtswTDoJrYu3qTo9OkX98yc
97hxits+kw31ZH65w9bXfneHV1hc53BqTr8FKqkjHTQV8NPBe5rVehitRWYoTGn0
wfhkgOcvtYzGRII6QbBqMm4BW+0GnIddXFp8EUEm+tDF9Uh9sviJigjvLYjPt2VA
QalF6hDrSwZE/IQLccG1YaxdQxq+ddUaIEMn++vP1uFOly56pys=
=GI5s
-----END PGP SIGNATURE-----
Merge tag 'pinctrl-v7.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
Pull pin control fixes from Linus Walleij:
"The most interesting commit is the S4 fix for AMD, which probably is
helpful to a whole bunch of important machines.
- Wakeup nits on the Qualcomm SC8280XP
- Double-free issues on the device tree parsing error path
- Fixup of the S4 sleep state handling on AMD pin control
- Missing Kconfig select REGMAP_MMIO for the Microchip driver leading
to compile stalls
- Missing Kconfig select GENERIC_PINCONF for the Bitmain BM1880
leading to compile stalls"
* tag 'pinctrl-v7.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
pinctrl: bm1880: add missing select GENERIC_PINCONF
pinctrl-amd: Don't clear S4 wake bits at probe
pinctrl: microchip-sgpio: add missing select REGMAP_MMIO
pinctrl: devicetree: don't free uninitialized dev_name on error path
pinctrl: qcom: sc8280xp: Add missing wakeup entries for GPIO143/151
pinctrl: qcom: Unconditionally mark gpio as wakeup enable
This commit is contained in:
commit
e63c75f72f
|
|
@ -166,6 +166,7 @@ config PINCTRL_BM1880
|
|||
depends on OF && (ARCH_BITMAIN || COMPILE_TEST)
|
||||
default ARCH_BITMAIN
|
||||
select PINMUX
|
||||
select GENERIC_PINCONF
|
||||
help
|
||||
Pinctrl driver for Bitmain BM1880 SoC.
|
||||
|
||||
|
|
@ -426,6 +427,7 @@ config PINCTRL_MICROCHIP_SGPIO
|
|||
select GENERIC_PINCONF
|
||||
select GENERIC_PINCTRL_GROUPS
|
||||
select GENERIC_PINMUX_FUNCTIONS
|
||||
select REGMAP_MMIO
|
||||
help
|
||||
Support for the serial GPIO interface used on Microsemi and
|
||||
Microchip SoCs. By using a serial interface, the SIO
|
||||
|
|
|
|||
|
|
@ -69,6 +69,10 @@ static int dt_remember_or_free_map(struct pinctrl *p, const char *statename,
|
|||
int i;
|
||||
struct pinctrl_dt_map *dt_map;
|
||||
|
||||
/* Initialize dev_name before any allocation can fail */
|
||||
for (i = 0; i < num_maps; i++)
|
||||
map[i].dev_name = NULL;
|
||||
|
||||
/* Initialize common mapping table entry fields */
|
||||
for (i = 0; i < num_maps; i++) {
|
||||
const char *devname;
|
||||
|
|
|
|||
|
|
@ -884,8 +884,7 @@ static void amd_gpio_irq_init(struct amd_gpio *gpio_dev)
|
|||
u32 pin_reg, mask;
|
||||
int i;
|
||||
|
||||
mask = BIT(WAKE_CNTRL_OFF_S0I3) | BIT(WAKE_CNTRL_OFF_S3) |
|
||||
BIT(WAKE_CNTRL_OFF_S4);
|
||||
mask = BIT(WAKE_CNTRL_OFF_S0I3) | BIT(WAKE_CNTRL_OFF_S3);
|
||||
|
||||
for (i = 0; i < desc->npins; i++) {
|
||||
int pin = desc->pins[i].number;
|
||||
|
|
|
|||
|
|
@ -1240,12 +1240,12 @@ static int msm_gpio_irq_reqres(struct irq_data *d)
|
|||
/*
|
||||
* If the wakeup_enable bit is present and marked as available for the
|
||||
* requested GPIO, it should be enabled when the GPIO is marked as
|
||||
* wake irq in order to allow the interrupt event to be transfered to
|
||||
* the PDC HW.
|
||||
* wake irq in order to allow the interrupt event to be transferred to
|
||||
* the PDC/MPM HW.
|
||||
* While the name implies only the wakeup event, it's also required for
|
||||
* the interrupt event.
|
||||
*/
|
||||
if (test_bit(d->hwirq, pctrl->skip_wake_irqs) && g->intr_wakeup_present_bit) {
|
||||
if (g->intr_wakeup_present_bit) {
|
||||
u32 intr_cfg;
|
||||
|
||||
raw_spin_lock_irqsave(&pctrl->lock, flags);
|
||||
|
|
@ -1273,7 +1273,7 @@ static void msm_gpio_irq_relres(struct irq_data *d)
|
|||
unsigned long flags;
|
||||
|
||||
/* Disable the wakeup_enable bit if it has been set in msm_gpio_irq_reqres() */
|
||||
if (test_bit(d->hwirq, pctrl->skip_wake_irqs) && g->intr_wakeup_present_bit) {
|
||||
if (g->intr_wakeup_present_bit) {
|
||||
u32 intr_cfg;
|
||||
|
||||
raw_spin_lock_irqsave(&pctrl->lock, flags);
|
||||
|
|
|
|||
|
|
@ -1881,16 +1881,17 @@ static const struct msm_gpio_wakeirq_map sc8280xp_pdc_map[] = {
|
|||
{ 126, 200 }, { 127, 225 }, { 128, 262 }, { 129, 201 },
|
||||
{ 130, 209 }, { 131, 173 }, { 132, 202 }, { 136, 210 },
|
||||
{ 138, 171 }, { 139, 226 }, { 140, 227 }, { 142, 228 },
|
||||
{ 144, 229 }, { 145, 230 }, { 146, 231 }, { 148, 232 },
|
||||
{ 149, 233 }, { 150, 234 }, { 152, 235 }, { 154, 212 },
|
||||
{ 157, 213 }, { 161, 219 }, { 170, 236 }, { 171, 221 },
|
||||
{ 174, 222 }, { 175, 237 }, { 176, 223 }, { 177, 170 },
|
||||
{ 180, 238 }, { 181, 239 }, { 182, 240 }, { 183, 241 },
|
||||
{ 184, 242 }, { 185, 243 }, { 190, 178 }, { 193, 184 },
|
||||
{ 196, 185 }, { 198, 186 }, { 200, 174 }, { 201, 175 },
|
||||
{ 205, 176 }, { 206, 177 }, { 208, 187 }, { 210, 198 },
|
||||
{ 211, 199 }, { 212, 204 }, { 215, 205 }, { 220, 188 },
|
||||
{ 221, 194 }, { 223, 195 }, { 225, 196 }, { 227, 197 },
|
||||
{ 143, 261 }, { 144, 229 }, { 145, 230 }, { 146, 231 },
|
||||
{ 148, 232 }, { 149, 233 }, { 150, 234 }, { 151, 264 },
|
||||
{ 152, 235 }, { 154, 212 }, { 157, 213 }, { 161, 219 },
|
||||
{ 170, 236 }, { 171, 221 }, { 174, 222 }, { 175, 237 },
|
||||
{ 176, 223 }, { 177, 170 }, { 180, 238 }, { 181, 239 },
|
||||
{ 182, 240 }, { 183, 241 }, { 184, 242 }, { 185, 243 },
|
||||
{ 190, 178 }, { 193, 184 }, { 196, 185 }, { 198, 186 },
|
||||
{ 200, 174 }, { 201, 175 }, { 205, 176 }, { 206, 177 },
|
||||
{ 208, 187 }, { 210, 198 }, { 211, 199 }, { 212, 204 },
|
||||
{ 215, 205 }, { 220, 188 }, { 221, 194 }, { 223, 195 },
|
||||
{ 225, 196 }, { 227, 197 },
|
||||
};
|
||||
|
||||
static struct msm_pinctrl_soc_data sc8280xp_pinctrl = {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user