@@ -258,23 +258,21 @@ static inline void setup_mac_filter(ETH_HandleTypeDef *heth)
258
258
{
259
259
__ASSERT_NO_MSG (heth != NULL );
260
260
261
- #if DT_HAS_COMPAT_STATUS_OKAY ( st_stm32h7_ethernet )
261
+ #if defined( CONFIG_ETH_STM32_HAL_API_V2 )
262
262
ETH_MACFilterConfigTypeDef MACFilterConf ;
263
263
264
264
HAL_ETH_GetMACFilterConfig (heth , & MACFilterConf );
265
- #if defined(CONFIG_ETH_STM32_MULTICAST_FILTER )
266
- MACFilterConf .HashMulticast = ENABLE ;
267
- MACFilterConf .PassAllMulticast = DISABLE ;
268
- #else
269
- MACFilterConf .HashMulticast = DISABLE ;
270
- MACFilterConf .PassAllMulticast = ENABLE ;
271
- #endif /* CONFIG_ETH_STM32_MULTICAST_FILTER */
265
+
266
+ MACFilterConf .HashMulticast =
267
+ IS_ENABLED (CONFIG_ETH_STM32_MULTICAST_FILTER ) ? ENABLE : DISABLE ;
268
+ MACFilterConf .PassAllMulticast =
269
+ IS_ENABLED (CONFIG_ETH_STM32_MULTICAST_FILTER ) ? DISABLE : ENABLE ;
272
270
MACFilterConf .HachOrPerfectFilter = DISABLE ;
273
271
274
272
HAL_ETH_SetMACFilterConfig (heth , & MACFilterConf );
275
273
276
274
k_sleep (K_MSEC (1 ));
277
- #else
275
+ #else /* CONFIG_ETH_STM32_HAL_API_V2 */
278
276
uint32_t tmp = heth -> Instance -> MACFFR ;
279
277
280
278
/* clear all multicast filter bits, resulting in perfect filtering */
@@ -299,7 +297,7 @@ static inline void setup_mac_filter(ETH_HandleTypeDef *heth)
299
297
tmp = heth -> Instance -> MACFFR ;
300
298
k_sleep (K_MSEC (1 ));
301
299
heth -> Instance -> MACFFR = tmp ;
302
- #endif /* DT_HAS_COMPAT_STATUS_OKAY(st_stm32h7_ethernet) */
300
+ #endif /* CONFIG_ETH_STM32_HAL_API_V2 */
303
301
}
304
302
305
303
#if defined(CONFIG_PTP_CLOCK_STM32_HAL )
@@ -1304,19 +1302,19 @@ static int eth_stm32_hal_get_config(const struct device *dev, enum ethernet_conf
1304
1302
break ;
1305
1303
case ETHERNET_CONFIG_TYPE_PROMISC_MODE :
1306
1304
#if defined(CONFIG_NET_PROMISCUOUS_MODE )
1307
- #if DT_HAS_COMPAT_STATUS_OKAY ( st_stm32h7_ethernet )
1308
- if ( heth -> Instance -> MACPFR & ETH_MACPFR_PR ) {
1309
- config -> promisc_mode = true;
1310
- } else {
1311
- config -> promisc_mode = false;
1312
- }
1305
+ #if defined( CONFIG_ETH_STM32_HAL_API_V2 )
1306
+ ETH_MACFilterConfigTypeDef MACFilterConf ;
1307
+
1308
+ HAL_ETH_GetMACFilterConfig ( heth , & MACFilterConf );
1309
+
1310
+ config -> promisc_mode = ( MACFilterConf . PromiscuousMode == ENABLE );
1313
1311
#else
1314
1312
if (heth -> Instance -> MACFFR & ETH_MACFFR_PM ) {
1315
1313
config -> promisc_mode = true;
1316
1314
} else {
1317
1315
config -> promisc_mode = false;
1318
1316
}
1319
- #endif /* DT_HAS_COMPAT_STATUS_OKAY(st_stm32h7_ethernet) */
1317
+ #endif /* CONFIG_ETH_STM32_HAL_API_V2 */
1320
1318
ret = 0 ;
1321
1319
#endif /* CONFIG_NET_PROMISCUOUS_MODE */
1322
1320
break ;
@@ -1354,19 +1352,21 @@ static int eth_stm32_hal_set_config(const struct device *dev,
1354
1352
break ;
1355
1353
case ETHERNET_CONFIG_TYPE_PROMISC_MODE :
1356
1354
#if defined(CONFIG_NET_PROMISCUOUS_MODE )
1357
- #if DT_HAS_COMPAT_STATUS_OKAY (st_stm32h7_ethernet )
1358
- if (config -> promisc_mode ) {
1359
- heth -> Instance -> MACPFR |= ETH_MACPFR_PR ;
1360
- } else {
1361
- heth -> Instance -> MACPFR &= ~ETH_MACPFR_PR ;
1362
- }
1355
+ #if defined(CONFIG_ETH_STM32_HAL_API_V2 )
1356
+ ETH_MACFilterConfigTypeDef MACFilterConf ;
1357
+
1358
+ HAL_ETH_GetMACFilterConfig (heth , & MACFilterConf );
1359
+
1360
+ MACFilterConf .PromiscuousMode = config -> promisc_mode ? ENABLE : DISABLE ;
1361
+
1362
+ HAL_ETH_SetMACFilterConfig (heth , & MACFilterConf );
1363
1363
#else
1364
1364
if (config -> promisc_mode ) {
1365
1365
heth -> Instance -> MACFFR |= ETH_MACFFR_PM ;
1366
1366
} else {
1367
1367
heth -> Instance -> MACFFR &= ~ETH_MACFFR_PM ;
1368
1368
}
1369
- #endif /* DT_HAS_COMPAT_STATUS_OKAY(st_stm32h7_ethernet) */
1369
+ #endif /* CONFIG_ETH_STM32_HAL_API_V2 */
1370
1370
ret = 0 ;
1371
1371
#endif /* CONFIG_NET_PROMISCUOUS_MODE */
1372
1372
break ;
0 commit comments