> +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

Reply via email to