ARM: soc: updates for v7.2

Minor update for omap_device core code.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEe4dGDhaSf6n1v/EMWTcYmtP7xmUFAmom3ToACgkQWTcYmtP7
 xmW/9xAAmyL8ao7ODL7GxLl2ft5fkyqziiYvH12b/qVuPOiegQ3f3NqgI7GHCIUJ
 lrUdeRwv7NHD0brB2EAHZRwNhfx2tZhmtq5OCru6+IgJlUrtkDJXr/t/26H90EvW
 6iOCBR0aN9X0lRjW6f4DDiVWfDufYZgQFmMgsSskgl7q+0bdQ6G8pmwCBygFbRJp
 L+QqifolihspsghYvPTT7B02QCnjTFcutFY5KPcClh1Aac1SJQGQJrMsfPzWz5os
 dUuVtduGlLJB5KQnSQ5a4Wd9fT+9mSwYjV/v7iMJSqF565O9SQ61ek2FyUDYWtsU
 fpNxzhQZTCmD78jUM270C/VMwPGnVMFYOCqkwH5M50OMcpw3aCdf7eUL4Pt7fIMv
 e8BzJt2BryJdtx4EwjiNTN7OLq+OW/ZFqBoO7oq4nlxL9EUic+5oWgA9VJHbk2v1
 o0rFMmHTcJdul12Eb3/rA1+LzFpE2cUGdkvH8cpsT1JMUEmDPiBDmE6iVyTgfShz
 FrQ+KWMCs/niAa4G4ff1OiktEzpXVZd+1t/KVpkHh1wJm4TrMymlkIbYSLwvpnu+
 PrUFNWyqNtErFLIlonC+/mqLNWHoRIL3Rd6cHbAQbRE3pKs51Lh+hq5Jjh9TkCF9
 DoxfcVLYxJ6XP3FVsfhv7xDnjS9o9g5H7M6IqLwddcdtmPsxzVo=
 =7DRL
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmon+qEACgkQmmx57+YA
 GNk5lw/+L5GrJLTwOZhH3Cw/l0VhIIptgem+EQ9Jg7aewLHNgepLR73jSqbUS0px
 nmzqhPhZGaTbAS+79UWe8r7wrFwCmeKFW1SmrVos2PCYk9mH1V0f3fDH8rhTCDU8
 2UjqSztwy4HYougURwb2JddOwXLdIui4WGBudnWNvp/Zf6fsgMgGv3Fiy7Csd8g+
 jfWnZOTZNeRD90Ii8qc6n2o0vMUF5gxNUVtDqlbyIUTRtGskLoX/NifGpRTgoHBT
 bjJBmjoQrWCbEUtzEGz/8NTgKqlHqvKdFGz1Kn1rvNZ+Yd5D+apwgPBjjO58rOBh
 1jiZJHF/w6teBNCCoaOIFYQqLswt40rm/8LfdCZB0agQrh2ySF0EVJB298KusXo+
 jQCj1kEBCiNSh7rjZ28H/VcWvfwCM4zTRSgnT7Tl9QvO7IU8ykARE76PK7UXCbcI
 kaY/HgikuW5SkdrTB+X2MTvrbtgLiGRiapzwemae+7ZXm3R1MAiidUVqSUD9EtTO
 gBzmxHk2IbyqDLPFE227p5DBfzbrcMYupXT14GGjbtTVGnzOu6fIgIZqt2Ks6LxK
 bBC14hZtEWeWmNyL+9mfEbop1qrpTsfw5hspHfBITFYvH2XwaxSOwE9unTjsAyM1
 wKtyV7u01cC+9vuKmvIxhkH5YO2y/1B491bcs028ktJ4KQzSa5Y=
 =Vqea
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v7.2/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap into soc/arm

ARM: soc: updates for v7.2

Minor update for omap_device core code.

* tag 'omap-for-v7.2/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap:
  ARM: omap2: simplify allocation for omap_device

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2026-06-09 13:35:58 +02:00
commit e9282defad
2 changed files with 12 additions and 21 deletions

View File

@ -307,35 +307,27 @@ static struct omap_device *omap_device_alloc(struct platform_device *pdev,
int ret = -ENOMEM;
struct omap_device *od;
int i;
struct omap_hwmod **hwmods;
struct omap_hwmod *hwmod;
od = kzalloc_obj(struct omap_device);
if (!od)
goto oda_exit1;
od = kzalloc_flex(*od, hwmods, oh_cnt);
if (!od) {
dev_err(&pdev->dev, "omap_device: build failed (%d)\n", ret);
return ERR_PTR(ret);
}
od->hwmods_cnt = oh_cnt;
memcpy(od->hwmods, ohs, oh_cnt * sizeof(*od->hwmods));
hwmods = kmemdup_array(ohs, oh_cnt, sizeof(*hwmods), GFP_KERNEL);
if (!hwmods)
goto oda_exit2;
od->hwmods = hwmods;
od->pdev = pdev;
pdev->archdata.od = od;
for (i = 0; i < oh_cnt; i++) {
hwmods[i]->od = od;
_add_hwmod_clocks_clkdev(od, hwmods[i]);
hwmod = od->hwmods[i];
hwmod->od = od;
_add_hwmod_clocks_clkdev(od, hwmod);
}
return od;
oda_exit2:
kfree(od);
oda_exit1:
dev_err(&pdev->dev, "omap_device: build failed (%d)\n", ret);
return ERR_PTR(ret);
}
static void omap_device_delete(struct omap_device *od)
@ -344,7 +336,6 @@ static void omap_device_delete(struct omap_device *od)
return;
od->pdev->archdata.od = NULL;
kfree(od->hwmods);
kfree(od);
}

View File

@ -37,11 +37,11 @@
/**
* struct omap_device - omap_device wrapper for platform_devices
* @pdev: platform_device
* @hwmods: (one .. many per omap_device)
* @hwmods_cnt: ARRAY_SIZE() of @hwmods
* @_state: one of OMAP_DEVICE_STATE_* (see above)
* @flags: device flags
* @_driver_status: one of BUS_NOTIFY_*_DRIVER from <linux/device.h>
* @hwmods: (one .. many per omap_device)
*
* Integrates omap_hwmod data into Linux platform_device.
*
@ -51,11 +51,11 @@
*/
struct omap_device {
struct platform_device *pdev;
struct omap_hwmod **hwmods;
unsigned long _driver_status;
u8 hwmods_cnt;
u8 _state;
u8 flags;
struct omap_hwmod *hwmods[] __counted_by(hwmods_cnt);
};
/* Device driver interface (call via platform_data fn ptrs) */