> +static bool ines_match(struct sk_buff *skb, unsigned int ptp_class,
> +                    struct ines_timestamp *ts);
> +static int ines_rxfifo_read(struct ines_port *port);
> +static u64 ines_rxts64(struct ines_port *port, unsigned int words);
> +static bool ines_timestamp_expired(struct ines_timestamp *ts);
> +static u64 ines_txts64(struct ines_port *port, unsigned int words);
> +static void ines_txtstamp_work(struct work_struct *work);
> +static bool is_sync_pdelay_resp(struct sk_buff *skb, int type);
> +static u8 tag_to_msgtype(u8 tag);

Hi Richard

I don't know about the PTP subsystem, but in general, forward
declarations are frowned upon, and it is generally requested to
reorder the functions to remove them.

> +static struct platform_driver ines_ptp_ctrl_driver = {
> +     .probe  = ines_ptp_ctrl_probe,
> +     .remove = ines_ptp_ctrl_remove,
> +     .driver = {
> +             .name = "ines_ptp_ctrl",
> +             .of_match_table = of_match_ptr(ines_ptp_ctrl_of_match),
> +     },
> +};
> +
> +static int __init ines_ptp_init(void)
> +{
> +     return platform_driver_register(&ines_ptp_ctrl_driver);
> +}
> +
> +static void __exit ines_ptp_cleanup(void)
> +{
> +     platform_driver_unregister(&ines_ptp_ctrl_driver);
> +}

include/linux/platform_device.h:

/* module_platform_driver() - Helper macro for drivers that don't do
 * anything special in module init/exit.  This eliminates a lot of
 * boilerplate.  Each module may only use this macro once, and
 * calling it replaces module_init() and module_exit()
 */
#define module_platform_driver(__platform_driver) \
        module_driver(__platform_driver, platform_driver_register, \
                        platform_driver_unregister)

        Andrew

Reply via email to