On 3/18/24 12:58 PM, Markus Elfring wrote:
…
+++ b/drivers/misc/mikrobus/mikrobus_core.c
…
+static int mikrobus_pinctrl_setup(struct mikrobus_port *port,
+ struct addon_board_info *board)
+{
+ int ret;
+
+ if (!board || board->pin_state[MIKROBUS_PIN_PWM] == MIKROBUS_STATE_PWM)
+ ret = mikrobus_pinctrl_select(port, "pwm_default");
+ else
+ ret = mikrobus_pinctrl_select(port, "pwm_gpio");
…
How do you think about to avoid the specification of a bit of duplicate source code here
by using conditional operator expressions?
ret = mikrobus_pinctrl_select(port,
((!board ||
board->pin_state[MIKROBUS_PIN_PWM] == MIKROBUS_STATE_PWM)
? "pwm_default"
: "pwm_gpio"));
No.
It's a complex enough bit of logic without trying to bury
it inside the parameters passed to the function.
-Alex
Regards,
Markus