[PATCH 5/7] iplink_can: add initial CAN XL support

Vincent Mailhol posted 7 patches 2 days, 6 hours ago
Re: [PATCH 5/7] iplink_can: add initial CAN XL support
Posted by Stephen Hemminger 2 days, 5 hours ago
On Sat, 29 Nov 2025 16:29:10 +0100
Vincent Mailhol <mailhol@kernel.org> wrote:

> +		} else if (matches(*argv, "xl") == 0) {
> +			NEXT_ARG();
> +			set_ctrlmode("xl", *argv, &cm, CAN_CTRLMODE_XL);
> +		} else if (matches(*argv, "xbitrate") == 0) {
> +			NEXT_ARG();
> +			if (get_u32(&xl_dbt.bitrate, *argv, 0))
> +				invarg("invalid \"xbitrate\" value", *argv);
> +		} else if (matches(*argv, "xsample-point") == 0) {
> +			float sp;
> +
> +			NEXT_ARG();
> +			if (get_float(&sp, *argv))
> +				invarg("invalid \"xsample-point\" value", *argv);
> +			xl_dbt.sample_point = (__u32)(sp * 1000);
> +		} else if (matches(*argv, "xtq") == 0) {
> +			NEXT_ARG();
> +			if (get_u32(&xl_dbt.tq, *argv, 0))
> +				invarg("invalid \"xtq\" value", *argv);
> +		} else if (matches(*argv, "xprop-seg") == 0) {
> +			NEXT_ARG();
> +			if (get_u32(&xl_dbt.prop_seg, *argv, 0))
> +				invarg("invalid \"xprop-seg\" value", *argv);
> +		} else if (matches(*argv, "xphase-seg1") == 0) {
> +			NEXT_ARG();
> +			if (get_u32(&xl_dbt.phase_seg1, *argv, 0))
> +				invarg("invalid \"xphase-seg1\" value", *argv);
> +		} else if (matches(*argv, "xphase-seg2") == 0) {
> +			NEXT_ARG();
> +			if (get_u32(&xl_dbt.phase_seg2, *argv, 0))
> +				invarg("invalid \"xphase-seg2\" value", *argv);
> +		} else if (matches(*argv, "xsjw") == 0) {
> +			NEXT_ARG();
> +			if (get_u32(&xl_dbt.sjw, *argv, 0))
> +				invarg("invalid \"xsjw\" value", *argv);
> +		} else if (matches(*argv, "xtdcv") == 0) {
> +			NEXT_ARG();
> +			if (get_u32(&xl.tdcv, *argv, 0))
> +				invarg("invalid \"xtdcv\" value", *argv);
> +		} else if (matches(*argv, "xtdco") == 0) {
> +			NEXT_ARG();
> +			if (get_u32(&xl.tdco, *argv, 0))
> +				invarg("invalid \"xtdco\" value", *argv);
> +		} else if (matches(*argv, "xtdcf") == 0) {
> +			NEXT_ARG();
> +			if (get_u32(&xl.tdcf, *argv, 0))
> +				invarg("invalid \"xtdcf\" value", *argv);
>  		} else if (matches(*argv, "loopback") == 0) {
>  			NEXT_ARG();

not accepting any new code with matches()
Re: [PATCH 5/7] iplink_can: add initial CAN XL support
Posted by Vincent Mailhol 1 day, 22 hours ago
On 29/11/2025 at 18:04, Stephen Hemminger wrote:
> On Sat, 29 Nov 2025 16:29:10 +0100
> Vincent Mailhol <mailhol@kernel.org> wrote:
> 
>> +		} else if (matches(*argv, "xl") == 0) {
>> +			NEXT_ARG();
>> +			set_ctrlmode("xl", *argv, &cm, CAN_CTRLMODE_XL);
>> +		} else if (matches(*argv, "xbitrate") == 0) {
>> +			NEXT_ARG();
>> +			if (get_u32(&xl_dbt.bitrate, *argv, 0))
>> +				invarg("invalid \"xbitrate\" value", *argv);
>> +		} else if (matches(*argv, "xsample-point") == 0) {
>> +			float sp;
>> +
>> +			NEXT_ARG();
>> +			if (get_float(&sp, *argv))
>> +				invarg("invalid \"xsample-point\" value", *argv);
>> +			xl_dbt.sample_point = (__u32)(sp * 1000);
>> +		} else if (matches(*argv, "xtq") == 0) {
>> +			NEXT_ARG();
>> +			if (get_u32(&xl_dbt.tq, *argv, 0))
>> +				invarg("invalid \"xtq\" value", *argv);
>> +		} else if (matches(*argv, "xprop-seg") == 0) {
>> +			NEXT_ARG();
>> +			if (get_u32(&xl_dbt.prop_seg, *argv, 0))
>> +				invarg("invalid \"xprop-seg\" value", *argv);
>> +		} else if (matches(*argv, "xphase-seg1") == 0) {
>> +			NEXT_ARG();
>> +			if (get_u32(&xl_dbt.phase_seg1, *argv, 0))
>> +				invarg("invalid \"xphase-seg1\" value", *argv);
>> +		} else if (matches(*argv, "xphase-seg2") == 0) {
>> +			NEXT_ARG();
>> +			if (get_u32(&xl_dbt.phase_seg2, *argv, 0))
>> +				invarg("invalid \"xphase-seg2\" value", *argv);
>> +		} else if (matches(*argv, "xsjw") == 0) {
>> +			NEXT_ARG();
>> +			if (get_u32(&xl_dbt.sjw, *argv, 0))
>> +				invarg("invalid \"xsjw\" value", *argv);
>> +		} else if (matches(*argv, "xtdcv") == 0) {
>> +			NEXT_ARG();
>> +			if (get_u32(&xl.tdcv, *argv, 0))
>> +				invarg("invalid \"xtdcv\" value", *argv);
>> +		} else if (matches(*argv, "xtdco") == 0) {
>> +			NEXT_ARG();
>> +			if (get_u32(&xl.tdco, *argv, 0))
>> +				invarg("invalid \"xtdco\" value", *argv);
>> +		} else if (matches(*argv, "xtdcf") == 0) {
>> +			NEXT_ARG();
>> +			if (get_u32(&xl.tdcf, *argv, 0))
>> +				invarg("invalid \"xtdcf\" value", *argv);
>>  		} else if (matches(*argv, "loopback") == 0) {
>>  			NEXT_ARG();
> 
> not accepting any new code with matches()

Ack. I will do a s/matches/strcmp/g in the next version.

For the old code, I assume that we should keep it as-is, otherwise that would be
a breaking change.


Yours sincerely,
Vincent Mailhol