> +static struct rpmsg_gpio_fixed_up imx_fixed_up_data = {
> + .recv_fixed_up = rpmsg_gpio_imx_recv_fixed_up,
> + .send_fixed_up = rpmsg_gpio_imx_send_fixed_up,
> +};
> +
> static int rpmsg_gpio_send_message(struct rpmsg_gpio_port *port,
> struct rpmsg_gpio_packet *msg,
> bool sync)
> @@ -572,6 +711,10 @@ static const struct of_device_id rpmsg_gpio_dt_ids[] = {
>
> static struct rpmsg_device_id rpmsg_gpio_channel_id_table[] = {
> { .name = "rpmsg-io" },
> + {
> + .name = "rpmsg-io-channel",
> + .driver_data = (kernel_ulong_t)(uintptr_t)&imx_fixed_up_data
> + },
Its not clear to me how this gets applied. Don't you need a different
compatible? fsl,rpmsg-gpio-legacy or something?
I would also put it behind a CONFIG_ option, and in a different
module. Nobody needs this code other than your legacy products. You
don't need the bloat for your new devices and other vendors don't need
it.
Andrew