diff for duplicates of <576A83A0.3080908@rock-chips.com> diff --git a/N1/1.1.hdr b/N1/1.1.hdr new file mode 100644 index 0000000..22343e8 --- /dev/null +++ b/N1/1.1.hdr @@ -0,0 +1,2 @@ +Content-Type: text/plain; charset=utf-8; format=flowed +Content-Transfer-Encoding: quoted-printable diff --git a/a/1.txt b/N1/1.1.txt similarity index 100% rename from a/1.txt rename to N1/1.1.txt diff --git a/a/2.bin b/N1/1.2.bin similarity index 100% rename from a/2.bin rename to N1/1.2.bin diff --git a/N1/1.2.hdr b/N1/1.2.hdr new file mode 100644 index 0000000..6fa471c --- /dev/null +++ b/N1/1.2.hdr @@ -0,0 +1,2 @@ +Content-Type: text/html; charset=utf-8 +Content-Transfer-Encoding: quoted-printable diff --git a/a/2.hdr b/N1/2.hdr index 432d92c..5216513 100644 --- a/a/2.hdr +++ b/N1/2.hdr @@ -1,2 +1,4 @@ -Content-Type: text/html; charset=utf-8 -Content-Transfer-Encoding: 8bit +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: base64 +Content-Disposition: inline diff --git a/N1/2.txt b/N1/2.txt new file mode 100644 index 0000000..3b3a377 --- /dev/null +++ b/N1/2.txt @@ -0,0 +1,4 @@ +_______________________________________________ +dri-devel mailing list +dri-devel@lists.freedesktop.org +https://lists.freedesktop.org/mailman/listinfo/dri-devel diff --git a/a/content_digest b/N1/content_digest index 7293f7c..a63ffdb 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -10,17 +10,16 @@ mark.yao@rock-chips.com " myungjoo.ham@samsung.com\0" "Cc\0mturquette@baylibre.com" + dbasehore@chromium.org sboyd@codeaurora.org - linux-clk@vger.kernel.org - linux-arm-kernel@lists.infradead.org - linux-rockchip@lists.infradead.org - airlied@linux.ie - dri-devel@lists.freedesktop.org linux-kernel@vger.kernel.org - kyungmin.park@samsung.com + dri-devel@lists.freedesktop.org dianders@chromium.org - " dbasehore@chromium.org\0" - "\01:1\0" + linux-rockchip@lists.infradead.org + kyungmin.park@samsung.com + linux-clk@vger.kernel.org + " linux-arm-kernel@lists.infradead.org\0" + "\02:1.1\0" "b\0" "Hi Chanwoo Choi,\n" "\n" @@ -178,191 +177,197 @@ "\n" "-- \n" Lin Huang + "\02:1.2\0" + "b\0" + "<html>\r\n" + " <head>\r\n" + " <meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\">\r\n" + " </head>\r\n" + " <body bgcolor=\"#FFFFFF\" text=\"#000000\">\r\n" + " Hi Chanwoo Choi,<br>\r\n" + " <br>\r\n" + " <div class=\"moz-cite-prefix\">On 2016\345\271\26406\346\234\21022\346\227\245 15:11, Chanwoo Choi\r\n" + " wrote:<br>\r\n" + " </div>\r\n" + " <blockquote cite=\"mid:576A3A38.3000306@samsung.com\" type=\"cite\">\r\n" + " <pre wrap=\"\">Hi,\r\n" + "\r\n" + "On 2016\353\205\204 06\354\233\224 06\354\235\274 19:13, Lin Huang wrote:\r\n" + "</pre>\r\n" + " <blockquote type=\"cite\">\r\n" + " <pre wrap=\"\">when in ddr frequency scaling process, vop can not do\r\n" + "enable or disable operate, since dcf will base on vop vblank\r\n" + "time to do frequency scaling and need to get vop irq if there\r\n" + "have vop enabled. So need register to dmc notifier, and we can\r\n" + "get the dmc status.\r\n" + "</pre>\r\n" + " </blockquote>\r\n" + " <pre wrap=\"\">\r\n" + "If you want to know when ddr frequency is chanaged,\r\n" + "you can use the DEVFREQ_TRANSITION_NOTIFIER notifier[1] (merged to v4.7-rc1)\r\n" + "which includes the following notification:\r\n" + "- DEVFREQ_PRECHANGE\r\n" + "- DEVFREQ_POSTCHANGE\t\r\n" + "\r\n" + "[1] \"PM / devfreq: Add new DEVFREQ_TRANSITION_NOTIFIER notifier\"\r\n" + "- <a class=\"moz-txt-link-freetext\" href=\"https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=0fe3a66410a3ba96679be903f1e287d7a0a264a9\">https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=0fe3a66410a3ba96679be903f1e287d7a0a264a9</a></pre>\r\n" + " </blockquote>\r\n" + " Check the code, if the set target fail, it will not send\r\n" + " DEVFREQ_POSTCHANGE, but in our case, whether the target<br>\r\n" + " setting sucess or fail, it should send message to vop driver,\302\240 tell\r\n" + " vop driver dmc have finish frequency setting.<br>\r\n" + " <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">\r\n" + " <span style=\"color: rgb(0, 128, 0); font-family: monospace; font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: pre; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; float: none; background-color: rgb(255, 255, 255);\"></span>\r\n" + " <blockquote cite=\"mid:576A3A38.3000306@samsung.com\" type=\"cite\">\r\n" + " <pre wrap=\"\">\r\n" + "\r\n" + "Thanks,\r\n" + "Chanwoo Choi\r\n" + "\r\n" + "</pre>\r\n" + " <blockquote type=\"cite\">\r\n" + " <pre wrap=\"\">\r\n" + "Signed-off-by: Lin Huang <a class=\"moz-txt-link-rfc2396E\" href=\"mailto:hl@rock-chips.com\"><hl@rock-chips.com></a>\r\n" + "---\r\n" + "\r\n" + "Changes in v2:\r\n" + "- None\r\n" + "\r\n" + "Changes in v1:\r\n" + "- use wait_event instead usleep\r\n" + "\r\n" + " drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 43 +++++++++++++++++++++++++++--\r\n" + " 1 file changed, 41 insertions(+), 2 deletions(-)\r\n" + "\r\n" + "diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c\r\n" + "index 1c4d5b5..8286048 100644\r\n" + "--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c\r\n" + "+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c\r\n" + "@@ -31,6 +31,8 @@\r\n" + " #include <linux/reset.h>\r\n" + " #include <linux/delay.h>\r\n" + " \r\n" + "+#include <soc/rockchip/rockchip_dmc.h>\r\n" + "+\r\n" + " #include \"rockchip_drm_drv.h\"\r\n" + " #include \"rockchip_drm_gem.h\"\r\n" + " #include \"rockchip_drm_fb.h\"\r\n" + "@@ -116,6 +118,10 @@ struct vop {\r\n" + " \r\n" + " \tconst struct vop_data *data;\r\n" + " \r\n" + "+\tstruct notifier_block dmc_nb;\r\n" + "+\tint dmc_in_process;\r\n" + "+\twait_queue_head_t\twait_dmc_queue;\r\n" + "+\r\n" + " \tuint32_t *regsbak;\r\n" + " \tvoid __iomem *regs;\r\n" + " \r\n" + "@@ -426,6 +432,21 @@ static void vop_dsp_hold_valid_irq_disable(struct vop *vop)\r\n" + " \tspin_unlock_irqrestore(&vop->irq_lock, flags);\r\n" + " }\r\n" + " \r\n" + "+static int dmc_notify(struct notifier_block *nb, unsigned long event,\r\n" + "+\t\t void *data)\r\n" + "+{\r\n" + "+\tstruct vop *vop = container_of(nb, struct vop, dmc_nb);\r\n" + "+\r\n" + "+\tif (event == DMCFREQ_ADJUST) {\r\n" + "+\t\tvop->dmc_in_process = 1;\r\n" + "+\t} else if (event == DMCFREQ_FINISH) {\r\n" + "+\t\tvop->dmc_in_process = 0;\r\n" + "+\t\twake_up(&vop->wait_dmc_queue);\r\n" + "+\t}\r\n" + "+\r\n" + "+\treturn NOTIFY_OK;\r\n" + "+}\r\n" + "+\r\n" + " static void vop_enable(struct drm_crtc *crtc)\r\n" + " {\r\n" + " \tstruct vop *vop = to_vop(crtc);\r\n" + "@@ -434,6 +455,13 @@ static void vop_enable(struct drm_crtc *crtc)\r\n" + " \tif (vop->is_enabled)\r\n" + " \t\treturn;\r\n" + " \r\n" + "+\t/*\r\n" + "+\t * if in dmc scaling frequency process, wait until it finish\r\n" + "+\t * use 100ms as timeout time.\r\n" + "+\t */\r\n" + "+\twait_event_timeout(vop->wait_dmc_queue,\r\n" + "+\t\t\t !vop->dmc_in_process, HZ / 10);\r\n" + "+\r\n" + " \tret = pm_runtime_get_sync(vop->dev);\r\n" + " \tif (ret < 0) {\r\n" + " \t\tdev_err(vop->dev, \"failed to get pm runtime: %d\\n\", ret);\r\n" + "@@ -485,6 +513,7 @@ static void vop_enable(struct drm_crtc *crtc)\r\n" + " \tenable_irq(vop->irq);\r\n" + " \r\n" + " \tdrm_crtc_vblank_on(crtc);\r\n" + "+\trockchip_dmc_get(&vop->dmc_nb);\r\n" + " \r\n" + " \treturn;\r\n" + " \r\n" + "@@ -505,6 +534,13 @@ static void vop_crtc_disable(struct drm_crtc *crtc)\r\n" + " \t\treturn;\r\n" + " \r\n" + " \t/*\r\n" + "+\t * if in dmc scaling frequency process, wait until it finish\r\n" + "+\t * use 100ms as timeout time.\r\n" + "+\t */\r\n" + "+\twait_event_timeout(vop->wait_dmc_queue,\r\n" + "+\t\t\t !vop->dmc_in_process, HZ / 10);\r\n" + "+\r\n" + "+\t/*\r\n" + " \t * We need to make sure that all windows are disabled before we\r\n" + " \t * disable that crtc. Otherwise we might try to scan from a destroyed\r\n" + " \t * buffer later.\r\n" + "@@ -517,7 +553,7 @@ static void vop_crtc_disable(struct drm_crtc *crtc)\r\n" + " \t\tVOP_WIN_SET(vop, win, enable, 0);\r\n" + " \t\tspin_unlock(&vop->reg_lock);\r\n" + " \t}\r\n" + "-\r\n" + "+\trockchip_dmc_put(&vop->dmc_nb);\r\n" + " \tdrm_crtc_vblank_off(crtc);\r\n" + " \r\n" + " \t/*\r\n" + "@@ -1243,7 +1279,7 @@ static int vop_create_crtc(struct vop *vop)\r\n" + " \t\tret = -ENOENT;\r\n" + " \t\tgoto err_cleanup_crtc;\r\n" + " \t}\r\n" + "-\r\n" + "+\tvop->dmc_nb.notifier_call = dmc_notify;\r\n" + " \tinit_completion(&vop->dsp_hold_completion);\r\n" + " \tinit_completion(&vop->wait_update_complete);\r\n" + " \tcrtc->port = port;\r\n" + "@@ -1465,6 +1501,9 @@ static int vop_bind(struct device *dev, struct device *master, void *data)\r\n" + " \t/* IRQ is initially disabled; it gets enabled in power_on */\r\n" + " \tdisable_irq(vop->irq);\r\n" + " \r\n" + "+\tinit_waitqueue_head(&vop->wait_dmc_queue);\r\n" + "+\tvop->dmc_in_process = 0;\r\n" + "+\r\n" + " \tret = vop_create_crtc(vop);\r\n" + " \tif (ret)\r\n" + " \t\treturn ret;\r\n" + "\r\n" + "</pre>\r\n" + " </blockquote>\r\n" + " <pre wrap=\"\">\r\n" + "\r\n" + "\r\n" + "\r\n" + "</pre>\r\n" + " </blockquote>\r\n" + " <br>\r\n" + " <pre class=\"moz-signature\" cols=\"72\">-- \r\n" + "Lin Huang</pre>\r\n" + " </body>\r\n" + "</html>\r\n" "\01:2\0" "b\0" - "<html>\n" - " <head>\n" - " <meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\">\n" - " </head>\n" - " <body bgcolor=\"#FFFFFF\" text=\"#000000\">\n" - " Hi Chanwoo Choi,<br>\n" - " <br>\n" - " <div class=\"moz-cite-prefix\">On 2016\345\271\26406\346\234\21022\346\227\245 15:11, Chanwoo Choi\n" - " wrote:<br>\n" - " </div>\n" - " <blockquote cite=\"mid:576A3A38.3000306@samsung.com\" type=\"cite\">\n" - " <pre wrap=\"\">Hi,\n" - "\n" - "On 2016\353\205\204 06\354\233\224 06\354\235\274 19:13, Lin Huang wrote:\n" - "</pre>\n" - " <blockquote type=\"cite\">\n" - " <pre wrap=\"\">when in ddr frequency scaling process, vop can not do\n" - "enable or disable operate, since dcf will base on vop vblank\n" - "time to do frequency scaling and need to get vop irq if there\n" - "have vop enabled. So need register to dmc notifier, and we can\n" - "get the dmc status.\n" - "</pre>\n" - " </blockquote>\n" - " <pre wrap=\"\">\n" - "If you want to know when ddr frequency is chanaged,\n" - "you can use the DEVFREQ_TRANSITION_NOTIFIER notifier[1] (merged to v4.7-rc1)\n" - "which includes the following notification:\n" - "- DEVFREQ_PRECHANGE\n" - "- DEVFREQ_POSTCHANGE\t\n" - "\n" - "[1] \"PM / devfreq: Add new DEVFREQ_TRANSITION_NOTIFIER notifier\"\n" - "- <a class=\"moz-txt-link-freetext\" href=\"https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=0fe3a66410a3ba96679be903f1e287d7a0a264a9\">https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=0fe3a66410a3ba96679be903f1e287d7a0a264a9</a></pre>\n" - " </blockquote>\n" - " Check the code, if the set target fail, it will not send\n" - " DEVFREQ_POSTCHANGE, but in our case, whether the target<br>\n" - " setting sucess or fail, it should send message to vop driver,\302\240 tell\n" - " vop driver dmc have finish frequency setting.<br>\n" - " <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">\n" - " <span style=\"color: rgb(0, 128, 0); font-family: monospace; font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: pre; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; float: none; background-color: rgb(255, 255, 255);\"></span>\n" - " <blockquote cite=\"mid:576A3A38.3000306@samsung.com\" type=\"cite\">\n" - " <pre wrap=\"\">\n" - "\n" - "Thanks,\n" - "Chanwoo Choi\n" - "\n" - "</pre>\n" - " <blockquote type=\"cite\">\n" - " <pre wrap=\"\">\n" - "Signed-off-by: Lin Huang <a class=\"moz-txt-link-rfc2396E\" href=\"mailto:hl@rock-chips.com\"><hl@rock-chips.com></a>\n" - "---\n" - "\n" - "Changes in v2:\n" - "- None\n" - "\n" - "Changes in v1:\n" - "- use wait_event instead usleep\n" - "\n" - " drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 43 +++++++++++++++++++++++++++--\n" - " 1 file changed, 41 insertions(+), 2 deletions(-)\n" - "\n" - "diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c\n" - "index 1c4d5b5..8286048 100644\n" - "--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c\n" - "+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c\n" - "@@ -31,6 +31,8 @@\n" - " #include <linux/reset.h>\n" - " #include <linux/delay.h>\n" - " \n" - "+#include <soc/rockchip/rockchip_dmc.h>\n" - "+\n" - " #include \"rockchip_drm_drv.h\"\n" - " #include \"rockchip_drm_gem.h\"\n" - " #include \"rockchip_drm_fb.h\"\n" - "@@ -116,6 +118,10 @@ struct vop {\n" - " \n" - " \tconst struct vop_data *data;\n" - " \n" - "+\tstruct notifier_block dmc_nb;\n" - "+\tint dmc_in_process;\n" - "+\twait_queue_head_t\twait_dmc_queue;\n" - "+\n" - " \tuint32_t *regsbak;\n" - " \tvoid __iomem *regs;\n" - " \n" - "@@ -426,6 +432,21 @@ static void vop_dsp_hold_valid_irq_disable(struct vop *vop)\n" - " \tspin_unlock_irqrestore(&vop->irq_lock, flags);\n" - " }\n" - " \n" - "+static int dmc_notify(struct notifier_block *nb, unsigned long event,\n" - "+\t\t void *data)\n" - "+{\n" - "+\tstruct vop *vop = container_of(nb, struct vop, dmc_nb);\n" - "+\n" - "+\tif (event == DMCFREQ_ADJUST) {\n" - "+\t\tvop->dmc_in_process = 1;\n" - "+\t} else if (event == DMCFREQ_FINISH) {\n" - "+\t\tvop->dmc_in_process = 0;\n" - "+\t\twake_up(&vop->wait_dmc_queue);\n" - "+\t}\n" - "+\n" - "+\treturn NOTIFY_OK;\n" - "+}\n" - "+\n" - " static void vop_enable(struct drm_crtc *crtc)\n" - " {\n" - " \tstruct vop *vop = to_vop(crtc);\n" - "@@ -434,6 +455,13 @@ static void vop_enable(struct drm_crtc *crtc)\n" - " \tif (vop->is_enabled)\n" - " \t\treturn;\n" - " \n" - "+\t/*\n" - "+\t * if in dmc scaling frequency process, wait until it finish\n" - "+\t * use 100ms as timeout time.\n" - "+\t */\n" - "+\twait_event_timeout(vop->wait_dmc_queue,\n" - "+\t\t\t !vop->dmc_in_process, HZ / 10);\n" - "+\n" - " \tret = pm_runtime_get_sync(vop->dev);\n" - " \tif (ret < 0) {\n" - " \t\tdev_err(vop->dev, \"failed to get pm runtime: %d\\n\", ret);\n" - "@@ -485,6 +513,7 @@ static void vop_enable(struct drm_crtc *crtc)\n" - " \tenable_irq(vop->irq);\n" - " \n" - " \tdrm_crtc_vblank_on(crtc);\n" - "+\trockchip_dmc_get(&vop->dmc_nb);\n" - " \n" - " \treturn;\n" - " \n" - "@@ -505,6 +534,13 @@ static void vop_crtc_disable(struct drm_crtc *crtc)\n" - " \t\treturn;\n" - " \n" - " \t/*\n" - "+\t * if in dmc scaling frequency process, wait until it finish\n" - "+\t * use 100ms as timeout time.\n" - "+\t */\n" - "+\twait_event_timeout(vop->wait_dmc_queue,\n" - "+\t\t\t !vop->dmc_in_process, HZ / 10);\n" - "+\n" - "+\t/*\n" - " \t * We need to make sure that all windows are disabled before we\n" - " \t * disable that crtc. Otherwise we might try to scan from a destroyed\n" - " \t * buffer later.\n" - "@@ -517,7 +553,7 @@ static void vop_crtc_disable(struct drm_crtc *crtc)\n" - " \t\tVOP_WIN_SET(vop, win, enable, 0);\n" - " \t\tspin_unlock(&vop->reg_lock);\n" - " \t}\n" - "-\n" - "+\trockchip_dmc_put(&vop->dmc_nb);\n" - " \tdrm_crtc_vblank_off(crtc);\n" - " \n" - " \t/*\n" - "@@ -1243,7 +1279,7 @@ static int vop_create_crtc(struct vop *vop)\n" - " \t\tret = -ENOENT;\n" - " \t\tgoto err_cleanup_crtc;\n" - " \t}\n" - "-\n" - "+\tvop->dmc_nb.notifier_call = dmc_notify;\n" - " \tinit_completion(&vop->dsp_hold_completion);\n" - " \tinit_completion(&vop->wait_update_complete);\n" - " \tcrtc->port = port;\n" - "@@ -1465,6 +1501,9 @@ static int vop_bind(struct device *dev, struct device *master, void *data)\n" - " \t/* IRQ is initially disabled; it gets enabled in power_on */\n" - " \tdisable_irq(vop->irq);\n" - " \n" - "+\tinit_waitqueue_head(&vop->wait_dmc_queue);\n" - "+\tvop->dmc_in_process = 0;\n" - "+\n" - " \tret = vop_create_crtc(vop);\n" - " \tif (ret)\n" - " \t\treturn ret;\n" - "\n" - "</pre>\n" - " </blockquote>\n" - " <pre wrap=\"\">\n" - "\n" - "\n" - "\n" - "</pre>\n" - " </blockquote>\n" - " <br>\n" - " <pre class=\"moz-signature\" cols=\"72\">-- \n" - "Lin Huang</pre>\n" - " </body>\n" - "</html>\n" + "_______________________________________________\n" + "dri-devel mailing list\n" + "dri-devel@lists.freedesktop.org\n" + https://lists.freedesktop.org/mailman/listinfo/dri-devel -d8cfa2645328a37635ea2b37414d2605557d0e52c6c96edb4a7f56f697c7b0a6 +7c982d6ad99ad4f3308b27d30f76b728c0e1a68d4e3d01f711039b3514a0bba9
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.