On Tue, 2023-09-26 at 16:16 +0300, Andy Shevchenko wrote: > On Mon, Sep 25, 2023 at 12:45:55PM -0700, Srinivas Pandruvada wrote: > > The driver is using 256 as the size while calling devm_ioremap(). > > The > > maximum offset is already part of struct isst_mmio_range. Use the > > maximum offset (end field of the struct) plus 4 as the map size to > > remove > > hardcoded value of 256. > > ... > > > + punit_dev->mmio_range = (struct isst_mmio_range *) ent- > > >driver_data; > > + > > + punit_dev->punit_mmio = devm_ioremap(&pdev->dev, base_addr, > > + punit_dev- > > >mmio_range[1].end + sizeof(u32)); > > Can we rather fix the mmio_range driver data to have end be actually > not the > offset of the last dword? (Better maybe to keep length there.) > We can. But that has to be separate patch on top as there are other places this range is used. > With help of > > struct resource r; > ... > r = DEFINE_RES_MEM(base_addr, mmio_range.beg + > mmio_range.len); > > you can switch to devm_ioremap_resource() API. What is the advantage of creating a resource and then call devm_ioremap_resource()? Thanks, Srinivas >