Hi Marek,
We used to use of_reserved_mem_device_init() in such a context in GPU drivers: -------------------->8------------------- /* Get the optional framebuffer memory resource */ ret = of_reserved_mem_device_init(drm->dev); if (ret && ret != -ENODEV) return ret; -------------------->8-------------------
The point is we may have a dedicated reserved memory area or may not have (depends on a particular .dts). Our expectation is if reserved memory area is missing then of_reserved_mem_device_init() just returns -ENODEV and it used to work like this.
Now with your commit 59ce4039727e "of: reserved_mem: add support for using more than one region for given device" behavior is different. of_reserved_mem_device_init_by_idx() has this: -------------------->8------------------- target = of_parse_phandle(np, "memory-region", idx); if (!target) return -EINVAL; -------------------->8-------------------
So I'm wondering which part should be fixed: 1) of_reserved_mem itself or 2) users of of_reserved_mem_device_init()
Any thoughts?
Regards, Alexey
Hi Alexey
On 2016-06-16 18:47, Alexey Brodkin wrote:
Hi Marek,
We used to use of_reserved_mem_device_init() in such a context in GPU drivers: -------------------->8------------------- /* Get the optional framebuffer memory resource */ ret = of_reserved_mem_device_init(drm->dev); if (ret && ret != -ENODEV) return ret; -------------------->8-------------------
The point is we may have a dedicated reserved memory area or may not have (depends on a particular .dts). Our expectation is if reserved memory area is missing then of_reserved_mem_device_init() just returns -ENODEV and it used to work like this.
Now with your commit 59ce4039727e "of: reserved_mem: add support for using more than one region for given device" behavior is different. of_reserved_mem_device_init_by_idx() has this: -------------------->8------------------- target = of_parse_phandle(np, "memory-region", idx); if (!target) return -EINVAL; -------------------->8-------------------
So I'm wondering which part should be fixed:
- of_reserved_mem itself or
- users of of_reserved_mem_device_init()
Any thoughts?
This was my fault. The fix is already queued to linux-next, see commit 9f5a802b1d51dc80a27d828a5f7dcc8ec4a72f03 ("[media] of: reserved_mem: restore old behavior when no region is defined"), http://www.spinics.net/lists/linux-media/msg100972.html
Best regards
Hi Marek,
On Fri, 2016-06-17 at 07:28 +0200, Marek Szyprowski wrote:
Hi Alexey
On 2016-06-16 18:47, Alexey Brodkin wrote:
Hi Marek,
We used to use of_reserved_mem_device_init() in such a context in GPU drivers: -------------------->8------------------- /* Get the optional framebuffer memory resource */ ret = of_reserved_mem_device_init(drm->dev); if (ret && ret != -ENODEV) return ret; -------------------->8-------------------
The point is we may have a dedicated reserved memory area or may not have (depends on a particular .dts). Our expectation is if reserved memory area is missing then of_reserved_mem_device_init() just returns -ENODEV and it used to work like this.
Now with your commit 59ce4039727e "of: reserved_mem: add support for using more than one region for given device" behavior is different. of_reserved_mem_device_init_by_idx() has this: -------------------->8------------------- target = of_parse_phandle(np, "memory-region", idx); if (!target) return -EINVAL; -------------------->8-------------------
So I'm wondering which part should be fixed: 1) of_reserved_mem itself or 2) users of of_reserved_mem_device_init()
Any thoughts?
This was my fault. The fix is already queued to linux-next, see commit 9f5a802b1d51dc80a27d828a5f7dcc8ec4a72f03 ("[media] of: reserved_mem: restore old behavior when no region is defined"), http://www.spinics.net/lists/linux-media/msg100972.html
Indeed with mentioned fix GPU driver now works again! Sorry for the noise and thank you for fixing it that fast.
Regards, Alexey
dri-devel@lists.freedesktop.org