Ignore:
Timestamp:
Sep 2, 2022, 4:26:36 AM (3 years ago)
Author:
Paul Smedley
Message:

WIP trying to fix non-HDA Hardware

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GPL/branches/uniaud32-next/lib32/pci.c

    r713 r718  
    11801180}
    11811181
     1182struct region_devres {
     1183        struct resource *parent;
     1184        resource_size_t start;
     1185        resource_size_t n;
     1186};
     1187
     1188static void devm_region_release(struct device *dev, void *res)
     1189{
     1190        struct region_devres *this = res;
     1191
     1192        __release_region(this->parent, this->start, this->n);
     1193}
     1194
     1195struct resource *
     1196__devm_request_region(struct device *dev, struct resource *parent,
     1197                      resource_size_t start, resource_size_t n, const char *name)
     1198{
     1199        struct region_devres *dr = NULL;
     1200        struct resource *res;
     1201
     1202        dr = devres_alloc(devm_region_release, sizeof(struct region_devres),
     1203                          GFP_KERNEL);
     1204        if (!dr)
     1205                return NULL;
     1206
     1207        dr->parent = parent;
     1208        dr->start = start;
     1209        dr->n = n;
     1210
     1211        res = __request_region(parent, start, n, name);
     1212        if (res)
     1213                devres_add(dev, dr);
     1214        else
     1215                devres_free(dr);
     1216
     1217        return res;
     1218}
     1219EXPORT_SYMBOL(__devm_request_region);
Note: See TracChangeset for help on using the changeset viewer.