Skip to content

Commit 441f0ec

Browse files
committed
Merge tag 'drm-misc-next-2022-11-03' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
drm-misc-next for 6.2: UAPI Changes: Cross-subsystem Changes: - dma-buf: locking improvements - firmware: New API in the RaspberryPi firmware driver used by vc4 Core Changes: - client: Null pointer dereference fix in drm_client_buffer_delete() - mm/buddy: Add back random seed log - ttm: Convert ttm_resource to use size_t for its size, fix for an undefined behaviour Driver Changes: - bridge: - adv7511: use dev_err_probe - it6505: Fix return value check of pm_runtime_get_sync - panel: - sitronix: Fixes and clean-ups - lcdif: Increase DMA burst size - rockchip: runtime_pm improvements - vc4: Fix for a regression preventing the use of 4k @ 60Hz, and further HDMI rate constraints check. - vmwgfx: Cursor improvements Signed-off-by: Dave Airlie <[email protected]> From: Maxime Ripard <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/20221103083437.ksrh3hcdvxaof62l@houat
2 parents f80c71f + ce28ab1 commit 441f0ec

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+346
-274
lines changed

drivers/clk/bcm/clk-raspberrypi.c

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -18,25 +18,6 @@
1818

1919
#include <soc/bcm2835/raspberrypi-firmware.h>
2020

21-
enum rpi_firmware_clk_id {
22-
RPI_FIRMWARE_EMMC_CLK_ID = 1,
23-
RPI_FIRMWARE_UART_CLK_ID,
24-
RPI_FIRMWARE_ARM_CLK_ID,
25-
RPI_FIRMWARE_CORE_CLK_ID,
26-
RPI_FIRMWARE_V3D_CLK_ID,
27-
RPI_FIRMWARE_H264_CLK_ID,
28-
RPI_FIRMWARE_ISP_CLK_ID,
29-
RPI_FIRMWARE_SDRAM_CLK_ID,
30-
RPI_FIRMWARE_PIXEL_CLK_ID,
31-
RPI_FIRMWARE_PWM_CLK_ID,
32-
RPI_FIRMWARE_HEVC_CLK_ID,
33-
RPI_FIRMWARE_EMMC2_CLK_ID,
34-
RPI_FIRMWARE_M2MC_CLK_ID,
35-
RPI_FIRMWARE_PIXEL_BVB_CLK_ID,
36-
RPI_FIRMWARE_VEC_CLK_ID,
37-
RPI_FIRMWARE_NUM_CLK_ID,
38-
};
39-
4021
static char *rpi_firmware_clk_names[] = {
4122
[RPI_FIRMWARE_EMMC_CLK_ID] = "emmc",
4223
[RPI_FIRMWARE_UART_CLK_ID] = "uart",

drivers/dma-buf/dma-buf.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -995,10 +995,10 @@ static void __unmap_dma_buf(struct dma_buf_attachment *attach,
995995
*/
996996
void dma_buf_detach(struct dma_buf *dmabuf, struct dma_buf_attachment *attach)
997997
{
998-
if (WARN_ON(!dmabuf || !attach))
998+
if (WARN_ON(!dmabuf || !attach || dmabuf != attach->dmabuf))
999999
return;
10001000

1001-
dma_resv_lock(attach->dmabuf->resv, NULL);
1001+
dma_resv_lock(dmabuf->resv, NULL);
10021002

10031003
if (attach->sgt) {
10041004

drivers/firmware/raspberrypi.c

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,26 @@ static void rpi_register_clk_driver(struct device *dev)
228228
-1, NULL, 0);
229229
}
230230

231+
unsigned int rpi_firmware_clk_get_max_rate(struct rpi_firmware *fw, unsigned int id)
232+
{
233+
struct rpi_firmware_clk_rate_request msg =
234+
RPI_FIRMWARE_CLK_RATE_REQUEST(id);
235+
int ret;
236+
237+
ret = rpi_firmware_property(fw, RPI_FIRMWARE_GET_MAX_CLOCK_RATE,
238+
&msg, sizeof(msg));
239+
if (ret)
240+
/*
241+
* If our firmware doesn't support that operation, or fails, we
242+
* assume the maximum clock rate is absolute maximum we can
243+
* store over our type.
244+
*/
245+
return UINT_MAX;
246+
247+
return le32_to_cpu(msg.rate);
248+
}
249+
EXPORT_SYMBOL_GPL(rpi_firmware_clk_get_max_rate);
250+
231251
static void rpi_firmware_delete(struct kref *kref)
232252
{
233253
struct rpi_firmware *fw = container_of(kref, struct rpi_firmware,
@@ -311,6 +331,18 @@ static int rpi_firmware_remove(struct platform_device *pdev)
311331
return 0;
312332
}
313333

334+
static const struct of_device_id rpi_firmware_of_match[] = {
335+
{ .compatible = "raspberrypi,bcm2835-firmware", },
336+
{},
337+
};
338+
MODULE_DEVICE_TABLE(of, rpi_firmware_of_match);
339+
340+
struct device_node *rpi_firmware_find_node(void)
341+
{
342+
return of_find_matching_node(NULL, rpi_firmware_of_match);
343+
}
344+
EXPORT_SYMBOL_GPL(rpi_firmware_find_node);
345+
314346
/**
315347
* rpi_firmware_get - Get pointer to rpi_firmware structure.
316348
* @firmware_node: Pointer to the firmware Device Tree node.
@@ -366,12 +398,6 @@ struct rpi_firmware *devm_rpi_firmware_get(struct device *dev,
366398
}
367399
EXPORT_SYMBOL_GPL(devm_rpi_firmware_get);
368400

369-
static const struct of_device_id rpi_firmware_of_match[] = {
370-
{ .compatible = "raspberrypi,bcm2835-firmware", },
371-
{},
372-
};
373-
MODULE_DEVICE_TABLE(of, rpi_firmware_of_match);
374-
375401
static struct platform_driver rpi_firmware_driver = {
376402
.driver = {
377403
.name = "raspberrypi-firmware",

drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ static int amdgpu_gtt_mgr_new(struct ttm_resource_manager *man,
144144
node->base.start = node->mm_nodes[0].start;
145145
} else {
146146
node->mm_nodes[0].start = 0;
147-
node->mm_nodes[0].size = node->base.num_pages;
147+
node->mm_nodes[0].size = PFN_UP(node->base.size);
148148
node->base.start = AMDGPU_BO_INVALID_OFFSET;
149149
}
150150

drivers/gpu/drm/amd/amdgpu/amdgpu_object.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -542,6 +542,7 @@ int amdgpu_bo_create(struct amdgpu_device *adev,
542542
/* GWS and OA don't need any alignment. */
543543
page_align = bp->byte_align;
544544
size <<= PAGE_SHIFT;
545+
545546
} else if (bp->domain & AMDGPU_GEM_DOMAIN_GDS) {
546547
/* Both size and alignment must be a multiple of 4. */
547548
page_align = ALIGN(bp->byte_align, 4);
@@ -776,7 +777,7 @@ int amdgpu_bo_kmap(struct amdgpu_bo *bo, void **ptr)
776777
return 0;
777778
}
778779

779-
r = ttm_bo_kmap(&bo->tbo, 0, bo->tbo.resource->num_pages, &bo->kmap);
780+
r = ttm_bo_kmap(&bo->tbo, 0, PFN_UP(bo->tbo.base.size), &bo->kmap);
780781
if (r)
781782
return r;
782783

drivers/gpu/drm/amd/amdgpu/amdgpu_res_cursor.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ static inline void amdgpu_res_first(struct ttm_resource *res,
6262
if (!res)
6363
goto fallback;
6464

65-
BUG_ON(start + size > res->num_pages << PAGE_SHIFT);
65+
BUG_ON(start + size > res->size);
6666

6767
cur->mem_type = res->mem_type;
6868

@@ -110,7 +110,7 @@ static inline void amdgpu_res_first(struct ttm_resource *res,
110110
cur->size = size;
111111
cur->remaining = size;
112112
cur->node = NULL;
113-
WARN_ON(res && start + size > res->num_pages << PAGE_SHIFT);
113+
WARN_ON(res && start + size > res->size);
114114
return;
115115
}
116116

drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ TRACE_EVENT(amdgpu_bo_create,
127127

128128
TP_fast_assign(
129129
__entry->bo = bo;
130-
__entry->pages = bo->tbo.resource->num_pages;
130+
__entry->pages = PFN_UP(bo->tbo.resource->size);
131131
__entry->type = bo->tbo.resource->mem_type;
132132
__entry->prefer = bo->preferred_domains;
133133
__entry->allow = bo->allowed_domains;

drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ static int amdgpu_move_blit(struct ttm_buffer_object *bo,
381381
dst.offset = 0;
382382

383383
r = amdgpu_ttm_copy_mem_to_mem(adev, &src, &dst,
384-
new_mem->num_pages << PAGE_SHIFT,
384+
new_mem->size,
385385
amdgpu_bo_encrypted(abo),
386386
bo->base.resv, &fence);
387387
if (r)
@@ -424,7 +424,7 @@ static int amdgpu_move_blit(struct ttm_buffer_object *bo,
424424
static bool amdgpu_mem_visible(struct amdgpu_device *adev,
425425
struct ttm_resource *mem)
426426
{
427-
u64 mem_size = (u64)mem->num_pages << PAGE_SHIFT;
427+
u64 mem_size = (u64)mem->size;
428428
struct amdgpu_res_cursor cursor;
429429
u64 end;
430430

@@ -571,7 +571,7 @@ static int amdgpu_ttm_io_mem_reserve(struct ttm_device *bdev,
571571
struct ttm_resource *mem)
572572
{
573573
struct amdgpu_device *adev = amdgpu_ttm_adev(bdev);
574-
size_t bus_size = (size_t)mem->num_pages << PAGE_SHIFT;
574+
size_t bus_size = (size_t)mem->size;
575575

576576
switch (mem->mem_type) {
577577
case TTM_PL_SYSTEM:

drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,7 @@ static int amdgpu_vram_mgr_new(struct ttm_resource_manager *man,
439439
/* Allocate blocks in desired range */
440440
vres->flags |= DRM_BUDDY_RANGE_ALLOCATION;
441441

442-
remaining_size = (u64)vres->base.num_pages << PAGE_SHIFT;
442+
remaining_size = (u64)vres->base.size;
443443

444444
mutex_lock(&mgr->lock);
445445
while (remaining_size) {
@@ -498,7 +498,7 @@ static int amdgpu_vram_mgr_new(struct ttm_resource_manager *man,
498498
LIST_HEAD(temp);
499499

500500
trim_list = &vres->blocks;
501-
original_size = (u64)vres->base.num_pages << PAGE_SHIFT;
501+
original_size = (u64)vres->base.size;
502502

503503
/*
504504
* If size value is rounded up to min_block_size, trim the last
@@ -533,8 +533,8 @@ static int amdgpu_vram_mgr_new(struct ttm_resource_manager *man,
533533
amdgpu_vram_mgr_block_size(block);
534534
start >>= PAGE_SHIFT;
535535

536-
if (start > vres->base.num_pages)
537-
start -= vres->base.num_pages;
536+
if (start > PFN_UP(vres->base.size))
537+
start -= PFN_UP(vres->base.size);
538538
else
539539
start = 0;
540540
vres->base.start = max(vres->base.start, start);

drivers/gpu/drm/bridge/adv7511/adv7511_drv.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1219,10 +1219,8 @@ static int adv7511_probe(struct i2c_client *i2c, const struct i2c_device_id *id)
12191219
return ret;
12201220

12211221
ret = adv7511_init_regulators(adv7511);
1222-
if (ret) {
1223-
dev_err(dev, "failed to init regulators\n");
1224-
return ret;
1225-
}
1222+
if (ret)
1223+
return dev_err_probe(dev, ret, "failed to init regulators\n");
12261224

12271225
/*
12281226
* The power down GPIO is optional. If present, toggle it from active to

0 commit comments

Comments
 (0)