* Fix duplicate nodes for sun50i-h5-orangepi-pc2
* Remove unused patch for pinctrl: sunxi: Fix deadlock.
This fix duplicates the upstream commit
896d1b8a36129c3f1378fbbafd7c394a877635b5 of the linux-5.15.y branch
pinctrl: sunxi: Use unique lockdep classes for IRQs
commit bac129dbc6560dfeb634c03f0c08b78024e71915 upstream.
This driver, like several others, uses a chained IRQ for each GPIO bank,
and forwards .irq_set_wake to the GPIO bank's upstream IRQ. As a result,
a call to irq_set_irq_wake() needs to lock both the upstream and
downstream irq_desc's. Lockdep considers this to be a possible deadlock
when the irq_desc's share lockdep classes, which they do by default:
============================================
WARNING: possible recursive locking detected
5.17.0-rc3-00394-gc849047c2473 #1 Not tainted
...
* Add to series.armbian Fix-duplicate-nodes-for-sun50i-h5-orangepi-pc2.patch
The problem with duplicate nodes in the device tree is that the first
one in the queue will be applied. The subsequent one will be ignored,
not replaced.
Fix spi-nor node initialization error for orangepi-pc2
[ 1.288263] spi-nor spi0.0: supply vdd not found, using dummy regulator
[ 1.306391] spi-nor spi0.0: mx25l1606e (2048 Kbytes)
[ 1.845203] Freeing initrd memory: 10824K
[ 1.855263] sun6i-spi 1c68000.spi: chipselect 0 already in use
[ 1.861159] spi_master spi0: spi_device register error /soc/spi@1c68000/spi-flash@0
[ 1.868842] spi_master spi0: Failed to create SPI device for /soc/spi@1c68000/spi-flash@0
Remove duplicate nodes from applied patches for the board
sun50i-h5-orangepi-pc2. After this fix:
[ 1.290252] sun50i-h5-pinctrl 1c20800.pinctrl: supply vcc-pc not found, using dummy regulator
[ 1.291250] spi-nor spi0.0: supply vdd not found, using dummy regulator
[ 1.310397] spi-nor spi0.0: mx25l1606e (2048 Kbytes)
[ 1.845686] Freeing initrd memory: 10824K
[ 1.854333] 2 fixed-partitions partitions found on MTD device spi0.0
[ 1.854369] Creating 2 MTD partitions on "spi0.0":
[ 1.854381] 0x000000000000-0x000000100000 : "uboot"
[ 1.855679] 0x000000100000-0x000000200000 : "env"
* Remove unused pinctrl-sunxi-Fix-misleading-lockdep-deadlock-warnin.patch
The problem was solved in the upstream kernel.
commit e221ef82d9f5e97bca61f7c25e2b58b04466de87 linux-5.16.y branch.
commit bac129dbc6560dfeb634c03f0c08b78024e71915 upstream.
This driver, like several others, uses a chained IRQ for each GPIO bank,
and forwards .irq_set_wake to the GPIO bank's upstream IRQ. As a result,
a call to irq_set_irq_wake() needs to lock both the upstream and
downstream irq_desc's. Lockdep considers this to be a possible deadlock
when the irq_desc's share lockdep classes, which they do by default:
============================================
WARNING: possible recursive locking detected
5.17.0-rc3-00394-gc849047c2473 #1 Not tainted
...
* Fix spi-nor node initialization error for orangepi-pc2
[ 1.288263] spi-nor spi0.0: supply vdd not found, using dummy regulator
[ 1.306391] spi-nor spi0.0: mx25l1606e (2048 Kbytes)
[ 1.845203] Freeing initrd memory: 10824K
[ 1.855263] sun6i-spi 1c68000.spi: chipselect 0 already in use
[ 1.861159] spi_master spi0: spi_device register error /soc/spi@1c68000/spi-flash@0
[ 1.868842] spi_master spi0: Failed to create SPI device for /soc/spi@1c68000/spi-flash@0
Remove duplicate nodes from applied patches for the board
sun50i-h5-orangepi-pc2. After this fix:
[ 1.290252] sun50i-h5-pinctrl 1c20800.pinctrl: supply vcc-pc not found, using dummy regulator
[ 1.291250] spi-nor spi0.0: supply vdd not found, using dummy regulator
[ 1.310397] spi-nor spi0.0: mx25l1606e (2048 Kbytes)
[ 1.845686] Freeing initrd memory: 10824K
[ 1.854333] 2 fixed-partitions partitions found on MTD device spi0.0
[ 1.854369] Creating 2 MTD partitions on "spi0.0":
[ 1.854381] 0x000000000000-0x000000100000 : "uboot"
[ 1.855679] 0x000000100000-0x000000200000 : "env"
* Do not overwrite config-default.conf
Previously, when config-example.conf was missing, it would be created
and config-default.conf would be made a symlink to it. However, this
would overwrite any existing config-default.conf, potentially throwing
away a user's data. This occurs when you clean up and throw away the
(cluttering) config-example.conf (and depending on whether you use a
symlink to another named config, or put data in config-default.conf,
this would either just replace the symlink, or throw away your actual
config data).
This commit splits the update checks, so no files are ever overwritten,
except a broken config-default.conf symlink.
* Do not recreate example.conf if you remove it
Previously, whenever config-example.conf (and some others) was missing,
it start copying any missing example configs. This means that if you
would remove config-example.conf to clean up your userpatches directory,
it would be recreated everytime.
Now, this is triggered by a missing config-default.conf (which is also
created by the same block of code). The creating of config-example.conf
is still there, so if you have no config-default.conf (or one of the
others listed), then config-example.conf is created anyway, with
config-default.conf being a link to it, just like before (so the
first-run behavior is unmodified).