search for: start_slot

Displaying 20 results from an estimated 33 matches for "start_slot".

2018 Dec 14
1
[WIP PATCH 01/15] drm/dp_mst: Remove bogus conditional in drm_dp_update_payload_part1()
....9b1b5c9b1fa0 100644 > --- a/drivers/gpu/drm/drm_dp_mst_topology.c > +++ b/drivers/gpu/drm/drm_dp_mst_topology.c > @@ -1896,9 +1896,7 @@ int drm_dp_update_payload_part1(struct drm_dp_mst_topology_mgr *mgr) > req_payload.num_slots = 0; > } > > - if (mgr->payloads[i].start_slot != req_payload.start_slot) { > - mgr->payloads[i].start_slot = req_payload.start_slot; > - } > + mgr->payloads[i].start_slot = req_payload.start_slot; Entertaining! Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch> > /* work out what is required to happen with...
2018 Dec 14
1
[WIP PATCH 02/15] drm/dp_mst: Refactor drm_dp_update_payload_part1()
...r (i = 0; i < mgr->max_payloads; i++) { > + struct drm_dp_vcpi *vcpi = mgr->proposed_vcpis[i]; > + struct drm_dp_payload *payload = &mgr->payloads[i]; > + > /* solve the current payloads - compare to the hw ones > - update the hw view */ > req_payload.start_slot = cur_slots; > - if (mgr->proposed_vcpis[i]) { > - port = container_of(mgr->proposed_vcpis[i], struct drm_dp_mst_port, vcpi); > + if (vcpi) { > + port = container_of(vcpi, struct drm_dp_mst_port, > + vcpi); > port = drm_dp_get_validated_port_ref(mgr, port);...
2018 Dec 14
0
[WIP PATCH 02/15] drm/dp_mst: Refactor drm_dp_update_payload_part1()
...mp;mgr->payload_lock); for (i = 0; i < mgr->max_payloads; i++) { + struct drm_dp_vcpi *vcpi = mgr->proposed_vcpis[i]; + struct drm_dp_payload *payload = &mgr->payloads[i]; + /* solve the current payloads - compare to the hw ones - update the hw view */ req_payload.start_slot = cur_slots; - if (mgr->proposed_vcpis[i]) { - port = container_of(mgr->proposed_vcpis[i], struct drm_dp_mst_port, vcpi); + if (vcpi) { + port = container_of(vcpi, struct drm_dp_mst_port, + vcpi); port = drm_dp_get_validated_port_ref(mgr, port); if (!port) { mutex_u...
2018 Dec 14
0
[WIP PATCH 01/15] drm/dp_mst: Remove bogus conditional in drm_dp_update_payload_part1()
..._mst_topology.c index ad0fb6d003be..9b1b5c9b1fa0 100644 --- a/drivers/gpu/drm/drm_dp_mst_topology.c +++ b/drivers/gpu/drm/drm_dp_mst_topology.c @@ -1896,9 +1896,7 @@ int drm_dp_update_payload_part1(struct drm_dp_mst_topology_mgr *mgr) req_payload.num_slots = 0; } - if (mgr->payloads[i].start_slot != req_payload.start_slot) { - mgr->payloads[i].start_slot = req_payload.start_slot; - } + mgr->payloads[i].start_slot = req_payload.start_slot; /* work out what is required to happen with this payload */ if (mgr->payloads[i].num_slots != req_payload.num_slots) { -- 2.19.2
2014 Jun 15
4
[PATCH v2 0/3] ARB_viewport_array for nvc0
This patch-series implements the ARB_viewport_array for nvc0 and does a little house-cleanig afterwords. V2: Add Release-Notes, mark this in GL3 as done for nvc0 Don't mark the scissors dirty when we don't need to do that Tobias Klausmann (3): nvc0: implement multiple viewports/scissors, enable ARB_viewport_array docs: update GL3.txt, relnotes: mark GL_ARB_viewport_array as done
2014 Jun 15
0
[PATCH v2 1/3] nvc0: implement multiple viewports/scissors, enable ARB_viewport_array
...unsigned num_scissors, const struct pipe_scissor_state *scissor) { - struct nvc0_context *nvc0 = nvc0_context(pipe); + struct nvc0_context *nvc0 = nvc0_context(pipe); + int i; - nvc0->scissor = *scissor; - nvc0->dirty |= NVC0_NEW_SCISSOR; + assert(start_slot + num_scissors <= NVC0_MAX_VIEWPORTS); + for (i = 0; i < num_scissors; i++) { + if (!memcmp(&nvc0->scissors[start_slot + i], &scissor[i], sizeof(*scissor))) + continue; + nvc0->scissors[start_slot + i] = scissor[i]; + nvc0->scissors_dirty |= 1 <&lt...
2014 Jun 14
0
[PATCH 1/3] nvc0: implement multiple viewports/scissors, enable ARB_viewport_array
...unsigned num_scissors, const struct pipe_scissor_state *scissor) { - struct nvc0_context *nvc0 = nvc0_context(pipe); + struct nvc0_context *nvc0 = nvc0_context(pipe); + int i; - nvc0->scissor = *scissor; - nvc0->dirty |= NVC0_NEW_SCISSOR; + assert(start_slot + num_scissors <= NVC0_MAX_VIEWPORTS); + for (i = 0; i < num_scissors; i++) { + if (!memcmp(&nvc0->scissors[start_slot + i], &scissor[i], sizeof(*scissor))) + continue; + nvc0->scissors[start_slot + i] = scissor[i]; + nvc0->scissors_dirty |= 1 <&lt...
2018 Nov 17
0
[PATCH 2/6] drm/nouveau: Use drm_dp_get_payload_info() for getting payload/vcpi
...gt;encoder.name, vcpi); - for (i = 0; i < mstm->mgr.max_payloads; i++) { - struct drm_dp_payload *payload = &mstm->mgr.payloads[i]; - NV_ATOMIC(drm, "%s: %d: vcpi %d start 0x%02x slots 0x%02x\n", - mstm->outp->base.base.name, i, payload->vcpi, - payload->start_slot, payload->num_slots); - } - - for (i = 0; i < mstm->mgr.max_payloads; i++) { - struct drm_dp_payload *payload = &mstm->mgr.payloads[i]; - if (payload->vcpi == vcpi) - return payload; - } - - return NULL; -} - static void nv50_msto_cleanup(struct nv50_msto *msto) { struct...
2014 Jun 14
7
[PATCH 0/3] ARB_viewport_array for nvc0
This patch-series implements the ARB_viewport_array for nvc0 and does a little house-cleanig afterwords. Tobias Klausmann (3): nvc0: implement multiple viewports/scissors, enable ARB_viewport_array nvc0: mark scissor in nvc0_clear_{} nv50/ir: Remove NV50_SEMANTIC_VIEWPORTINDEX and its last consumer .../drivers/nouveau/codegen/nv50_ir_driver.h | 1 -
2014 Feb 04
2
[PATCH 1/3] nv50: rework primid logic
Functionally identical but much simpler. Should also better integrate with future layer/viewport changes/fixes. Cc: 10.1 <mesa-stable at lists.freedesktop.org> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu> --- Not *strictly* necessary in stable, but it will make backporting later fixes easier. No regressions in piglit. src/gallium/drivers/nouveau/nv50/nv50_program.c | 5
2018 Dec 14
0
[WIP PATCH 10/15] drm/nouveau: Stop unsetting mstc->port, use malloc refs
...0_msto *msto) }; NV_ATOMIC(drm, "%s: msto prepare\n", msto->encoder.name); - if (mstc->port && mstc->port->vcpi.vcpi > 0) { + if (mstc->port->vcpi.vcpi > 0) { struct drm_dp_payload *payload = nv50_msto_payload(msto); if (payload) { args.vcpi.start_slot = payload->start_slot; @@ -832,8 +831,7 @@ nv50_msto_disable(struct drm_encoder *encoder) struct nv50_mstc *mstc = msto->mstc; struct nv50_mstm *mstm = mstc->mstm; - if (mstc->port) - drm_dp_mst_reset_vcpi_slots(&mstm->mgr, mstc->port); + drm_dp_mst_reset_vcpi_slots(&am...
2012 Sep 17
0
[PATCH] Btrfs: do not hold the write_lock on the extent tree while logging V2
...continue; + } + + write_unlock(&tree->lock); /* * If the previous EM and the last extent we left off on aren''t @@ -2971,21 +2979,25 @@ static int btrfs_log_changed_extents(struct btrfs_trans_handle *trans, ret = copy_items(trans, inode, dst_path, args.src, args.start_slot, args.nr, LOG_INODE_ALL); - if (ret) + if (ret) { + free_extent_map(em); continue; + } btrfs_release_path(path); args.nr = 0; } ret = log_one_extent(trans, inode, root, em, path, dst_path, &args); + free_extent_map(em); + write_lock(&tree->lock);...
2014 Nov 27
0
[Mesa-dev] [RFC] tegra: Initial support
...tegra_context(pcontext); > + > + return context->gpu->create_sampler_state(context->gpu, cso); > +} > + > +static void > +tegra_bind_sampler_states(struct pipe_context *pcontext, > + unsigned shader, > + unsigned start_slot, > + unsigned num_samplers, > + void **samplers) > +{ > + struct tegra_context *context = to_tegra_context(pcontext); > + > + context->gpu->bind_sampler_states(context->gpu, shader, start_slot, > +...
2018 Nov 17
9
[PATCH 0/6] Remove all bad dp_mst_port uses and hide struct def
So we don't ever have to worry about drivers touching drm_dp_mst_port structs without verifying them and crashing again. Lyude Paul (6): drm/dp_mst: Add drm_dp_get_payload_info() drm/nouveau: Use drm_dp_get_payload_info() for getting payload/vcpi drm/nouveau: Stop reading port->mgr in nv50_mstc_get_modes() drm/nouveau: Stop reading port->mgr in nv50_mstc_detect() drm/dp_mst:
2018 Dec 14
22
[WIP PATCH 00/15] MST refcounting/atomic helpers cleanup
This is a WIP version of the series I've been working on for a while now to get all of the atomic DRM drivers in the tree to use the atomic MST helpers, and to make the atomic MST helpers actually idempotent. Turns out it's a lot more difficult to do that without also fixing how port and branch device refcounting works so that it actually makes sense, since the current upstream
2014 Nov 27
7
[RFC] tegra: Initial support
...+ const struct pipe_sampler_state *cso) +{ + struct tegra_context *context = to_tegra_context(pcontext); + + return context->gpu->create_sampler_state(context->gpu, cso); +} + +static void +tegra_bind_sampler_states(struct pipe_context *pcontext, + unsigned shader, + unsigned start_slot, + unsigned num_samplers, + void **samplers) +{ + struct tegra_context *context = to_tegra_context(pcontext); + + context->gpu->bind_sampler_states(context->gpu, shader, start_slot, + num_samplers, samplers); +} + +static void +tegra_delete_sampler_state(struct pipe_context *...
2011 Jun 21
19
[GIT PULL v3] Btrfs: improve write ahead log with sub transaction
I''ve been working to try to improve the write-ahead log''s performance, and I found that the bottleneck addresses in the checksum items, especially when we want to make a random write on a large file, e.g a 4G file. Then a idea for this suggested by Chris is to use sub transaction ids and just to log the part of inode that had changed since either the last log commit or the last
2013 Nov 12
0
[PATCH] Btrfs: incompatible format change to remove hole extents V4
...t log_inode_item(struct btrfs_trans_handle *trans, static noinline int copy_items(struct btrfs_trans_handle *trans, struct inode *inode, struct btrfs_path *dst_path, - struct extent_buffer *src, + struct btrfs_path *src_path, u64 *last_extent, int start_slot, int nr, int inode_only) { unsigned long src_offset; @@ -3196,6 +3196,8 @@ static noinline int copy_items(struct btrfs_trans_handle *trans, struct btrfs_root *log = BTRFS_I(inode)->root->log_root; struct btrfs_file_extent_item *extent; struct btrfs_inode_item *inode_item; + struct ex...
2018 Dec 14
0
[WIP PATCH 11/15] drm/nouveau: Grab payload lock in nv50_msto_payload()
..."%s: msto prepare\n", msto->encoder.name); if (mstc->port->vcpi.vcpi > 0) { struct drm_dp_payload *payload = nv50_msto_payload(msto); @@ -748,7 +752,9 @@ nv50_msto_prepare(struct nv50_msto *msto) msto->encoder.name, msto->head->base.base.name, args.vcpi.start_slot, args.vcpi.num_slots, args.vcpi.pbn, args.vcpi.aligned_pbn); + nvif_mthd(&drm->display->disp.object, 0, &args, sizeof(args)); + mutex_unlock(&mstm->mgr.payload_lock); } static int -- 2.19.2
2018 Nov 07
5
[PATCH RESEND v3 0/5] drm/dp_mst: Improve VCPI helpers, use in nouveau
[sorry about the resend-copy pasted the wrong header and I want to make sure this doesn't get missed!] This patchset does some cleaning up of the atomic VCPI helpers for MST, and converts nouveau over to using them. I would have included amdgpu in this patch as well, but at the moment moving them over to the atomic helpers is nontrivial. Cc: Daniel Vetter <daniel at ffwll.ch> Lyude