Patching a module does not really change the way. What you basically need is to put all files you need to compile an out-of-tree build of your particular kernel module into a folder
/usr/src/<modulename>-</moduleversion>/ and you need to add a configuration file
dkms.conf into that folder.
Basically it should look like this:
MAKE="make -C $kernel_source_dir M=\$(pwd)"
For patches, you should have a look at the man page for dkms linked to below, as an excerpt:
Use the PATCH directive array to specify patches which should be applied to
your source before a build occurs. All patches are expected to be in -p1
format and are applied with the patch -p1 command. Each directive should
specify the filename of the patch to apply, and all patches must be located
in the patches subdirectory of your source directory ( /usr/src/<mod‐
ule>-<module-version>/patches/ ). If any patch fails to apply, the build
will be halted and the rejections can be inspected in /var/lib/dkms/<mod‐
ule>/<module-version>/build/. If a PATCH should only be applied condition‐
ally, the PATCH_MATCH[#] array should be used, and a corresponding regular
expression should be placed in PATCH_MATCH[#] which will alert dkms to only
use that PATCH[#] if the regular expression matches the kernel which the mod‐
ule is currently being built for.
See the above description for PATCH[#] directives. If you only want a patch
applied in certain scenarios, the PATCH_MATCH array should be utilized by
giving a regular expression which matches the kernels you intend the corre‐
sponding PATCH[#] to be applied to before building that module.
Then you want to register it with dkms, build and install the module
dkms add -m hwmon -v 184.108.40.206
dkms build -m hwmon -v 220.127.116.11
dkms install -m hwmon -v 18.104.22.168
I've used placeholders for module name and version, but you should get the idea. This is all covered in the man page for dkms.