Skip to content

Support for flag GS_CAN_FEATURE_BERR_REPORTING breaks all CAN software #308

Description

@Elmue

Marc, you made a big error how you implemented GS_CAN_FEATURE_BERR_REPORTING (#303).

bool can_drv_bus_error_pending(const struct can_channel *channel)
{
	if (!(channel->feature & GS_CAN_FEATURE_BERR_REPORTING)) {
		return false;
	}
        .....
}

Your old firmware and my new Candlelight 2.5 firmware were sending error reports by default.
The flag GS_CAN_FEATURE_BERR_REPORTING was not used at all.
This flag was not even set in the device capabilities.

The consequence is that all the CAN software expects error frames to be sent automatically by the firmware.
Now you are breaking this completely by expecting the host to set this flag.
Otherwise your firmware will not send any error reports.

The consequence is that nobody in the world will never see a CAN error again using your firmware.
There is no software that sets this flag.
There is no firmware except yours the cares about this flag that was dead all these years.

You made a big error implementing this today.
It is too late.
You should have done this years ago when you started working on this project.

The default for ALL Candlelight firmware is to sent error reports by default.
You break this by expecting a flag to be set that nobody will ever set.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions