Fixes for omaps
A few fixes for omaps: - A regression fix for ti-sysc interconnect target module driver to not access registers after reset if srst_udelay quirk is needed - DRA7 L3 NoC node register size fix -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEEkgNvrZJU/QSQYIcQG9Q+yVyrpXMFAmVzCN8RHHRvbnlAYXRv bWlkZS5jb20ACgkQG9Q+yVyrpXOEig/+M2KjohrRcQ3yzS1K1+abpiK/+Zud+8D7 4sUjv4R3DB4X0TA91m41Nm/cqnIayrwtekiWdBdyEarp+KEZxIt4UHUKLypNb52u MdhGp/n2662FPrgmj1gRKOZuu1rtKG30QdBXBA8mZAffC23uQXBImWIE4BBGQtHf MnLBhH7y+7CHLuISnC4pViGMO1mP+6VV4ienM5FEn+e9QkFZazzGYVi7hbQLc1dZ XCwdO7vecPscHKZwNuxOdHlmp1QRWmu7sdXqerDhewnzk2qN0AvWxfgJl0I7ovy+ +k0wjnrN6RVuVypLC4/wAQAmLM/FZwJapSWp/ZdwOTz2R1FXLk1pRar7XpGgQojM z5Q9zCPqLZ+HhbTJSRz8pMYGnjuibQ877N0d0/ECc8gqCb/Y74bGxApoTcqWnZj1 1UP54AWSO2VvnkhlIeD8o2dnrVbKpYBNEkZ690nHy8JDbUz8KYosKJ1u1L/4pOTl SwZY3WH8d7I3nxfpF8AtqVJLmVQ7W2RHLSa/3ovFGGkgj9Bfo8srTdSKcrvGhFQc 3fwf5e3t//K7/MkdRJ8YWmAeuw8QlmqgaUeK48Y+ZlN0QW7MNWBAcIbYd6sfGZuM 1IYZPb0PyfFNPkMXQvoJwERqkz/z48vij/4HPmIhJcEC/RD34I6bj23JkQLVivho hcU5yZgAXLY= =U4b9 -----END PGP SIGNATURE----- gpgsig -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmWC19cACgkQYKtH/8kJ Uic66w/+KwhrJQKv9dMEUJspCho572cA/b+ecmwSMse3WNuTtuLoH3OA7in/TT8o l9B1UJqW1zrVH94+kpKgBlvhVQnryZBx8KD/RBxh9tW9mkWlTRlxwCguVhllKXyk Nmjz0HQG6vshE1RsLy/yrZiGklc8HEg6ImV7g9aQxg3ajKjHFapzD2RiCWJtvAD9 BAT2+pJpR5Mq93i9xbGooJKB/ICL1AXbWOC/xmTjKPcDVtdxArVcmnAoRQ7dMUOl 4yx+tklpRYOkX+qiWEKwRsbuMAKEUmKKkLbON/gVyw+cSB29HXJaysOsWc3LgrY1 zNaBnhQtWy5FsUeCcOJgi54OyKpN/QJkM3IY3UxdVnyyftfxrbGlJdCel59Y+0V1 DK4Ab3OSHNiUm4zMv+31rHyCS71jnK245dMFqHcuF7Ij+lIyT1IRiIUHDntpkl0A 3thG618Du9iyz/NS2hwlJ7B/vhCT3JGZDJwFv/d0qCrI560PD5tlPWlLteCCRbB3 aj9p5XjurPdTlvUY1AIFoFy5zNNd7kEV4hc+hmCreRX2+fi3zerIR3L+AmLv5zKH Yivw06zBopu4cUaHGw4o8NCPsKMaUL3gYZlL6fl5W1yx702CkEXFlJMT86gLd+y3 xsJ9QaDpdvhXops63muj5k0wcQ+SuxMiI/894G0yjgkVie4R4ro= =IJiJ -----END PGP SIGNATURE----- Merge tag 'omap-for-v6.7/fixes-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/fixes Fixes for omaps A few fixes for omaps: - A regression fix for ti-sysc interconnect target module driver to not access registers after reset if srst_udelay quirk is needed - DRA7 L3 NoC node register size fix * tag 'omap-for-v6.7/fixes-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP2+: Fix null pointer dereference and memory leak in omap_soc_device_init ARM: dts: dra7: Fix DRA7 L3 NoC node register size bus: ti-sysc: Flush posted write only after srst_udelay Link: https://lore.kernel.org/r/pull-1702037799-781982@atomide.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
commit
2096d3ec46
@ -147,7 +147,7 @@
|
||||
|
||||
l3-noc@44000000 {
|
||||
compatible = "ti,dra7-l3-noc";
|
||||
reg = <0x44000000 0x1000>,
|
||||
reg = <0x44000000 0x1000000>,
|
||||
<0x45000000 0x1000>;
|
||||
interrupts-extended = <&crossbar_mpu GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<&wakeupgen GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -793,11 +793,16 @@ void __init omap_soc_device_init(void)
|
||||
|
||||
soc_dev_attr->machine = soc_name;
|
||||
soc_dev_attr->family = omap_get_family();
|
||||
if (!soc_dev_attr->family) {
|
||||
kfree(soc_dev_attr);
|
||||
return;
|
||||
}
|
||||
soc_dev_attr->revision = soc_rev;
|
||||
soc_dev_attr->custom_attr_group = omap_soc_groups[0];
|
||||
|
||||
soc_dev = soc_device_register(soc_dev_attr);
|
||||
if (IS_ERR(soc_dev)) {
|
||||
kfree(soc_dev_attr->family);
|
||||
kfree(soc_dev_attr);
|
||||
return;
|
||||
}
|
||||
|
@ -2158,13 +2158,23 @@ static int sysc_reset(struct sysc *ddata)
|
||||
sysc_val = sysc_read_sysconfig(ddata);
|
||||
sysc_val |= sysc_mask;
|
||||
sysc_write(ddata, sysc_offset, sysc_val);
|
||||
/* Flush posted write */
|
||||
|
||||
/*
|
||||
* Some devices need a delay before reading registers
|
||||
* after reset. Presumably a srst_udelay is not needed
|
||||
* for devices that use a rstctrl register reset.
|
||||
*/
|
||||
if (ddata->cfg.srst_udelay)
|
||||
fsleep(ddata->cfg.srst_udelay);
|
||||
|
||||
/*
|
||||
* Flush posted write. For devices needing srst_udelay
|
||||
* this should trigger an interconnect error if the
|
||||
* srst_udelay value is needed but not configured.
|
||||
*/
|
||||
sysc_val = sysc_read_sysconfig(ddata);
|
||||
}
|
||||
|
||||
if (ddata->cfg.srst_udelay)
|
||||
fsleep(ddata->cfg.srst_udelay);
|
||||
|
||||
if (ddata->post_reset_quirk)
|
||||
ddata->post_reset_quirk(ddata);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user