CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2020-10-20 Thread Ryo Shimizu
Module Name:src
Committed By:   ryo
Date:   Tue Oct 20 09:53:59 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_atombios_dp.c

Log Message:
add header file hack to resolve conflict of ALIGN macro. (on __BIG_ENDIAN)


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_atombios_dp.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_atombios_dp.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_atombios_dp.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_atombios_dp.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_atombios_dp.c:1.2	Tue Jan  7 13:51:38 2020
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_atombios_dp.c	Tue Oct 20 09:53:59 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_atombios_dp.c,v 1.2 2020/01/07 13:51:38 msaitoh Exp $	*/
+/*	$NetBSD: radeon_atombios_dp.c,v 1.3 2020/10/20 09:53:59 ryo Exp $	*/
 
 /*
  * Copyright 2007-8 Advanced Micro Devices, Inc.
@@ -27,7 +27,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_atombios_dp.c,v 1.2 2020/01/07 13:51:38 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_atombios_dp.c,v 1.3 2020/10/20 09:53:59 ryo Exp $");
 
 #include 
 #include 
@@ -37,6 +37,8 @@ __KERNEL_RCSID(0, "$NetBSD: radeon_atomb
 #include "atom-bits.h"
 #include 
 
+#include 
+
 /* move these to drm_dp_helper.c/h */
 #define DP_LINK_CONFIGURATION_SIZE 9
 #define DP_DPCD_SIZE DP_RECEIVER_CAP_SIZE



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2020-10-17 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Sat Oct 17 10:46:39 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_gart.c

Log Message:
mb (dsb sy) is not the same as membar_sync (dmb sy) on aarch64


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.11 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.12
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.11	Mon Jan 20 23:22:09 2020
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c	Sat Oct 17 10:46:39 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_gart.c,v 1.11 2020/01/20 23:22:09 jmcneill Exp $	*/
+/*	$NetBSD: radeon_gart.c,v 1.12 2020/10/17 10:46:39 jmcneill Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_gart.c,v 1.11 2020/01/20 23:22:09 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_gart.c,v 1.12 2020/10/17 10:46:39 jmcneill Exp $");
 
 #include 
 #include 
@@ -306,7 +306,7 @@ radeon_gart_post_update(struct radeon_de
 		BUS_DMASYNC_PREWRITE);
 	}
 	if (rdev->gart.ptr != NULL) {
-		membar_sync();		/* XXX overkill */
+		mb();
 		radeon_gart_tlb_flush(rdev);
 	}
 }



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2020-04-27 Thread Izumi Tsutsui
Module Name:src
Committed By:   tsutsui
Date:   Mon Apr 27 16:57:31 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_ttm.c

Log Message:
Fix possible bus_dmamap_load(9) leak.  PR/55127

"Looks good to me" from riastradh@.
Note it was also commented "that code path is likely to be reached"
so maybe pullups are not necessary.


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.16 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.17
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.16	Fri Feb 14 04:38:24 2020
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c	Mon Apr 27 16:57:31 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_ttm.c,v 1.16 2020/02/14 04:38:24 riastradh Exp $	*/
+/*	$NetBSD: radeon_ttm.c,v 1.17 2020/04/27 16:57:31 tsutsui Exp $	*/
 
 /*
  * Copyright 2009 Jerome Glisse.
@@ -32,7 +32,7 @@
  *Dave Airlie
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_ttm.c,v 1.16 2020/02/14 04:38:24 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_ttm.c,v 1.17 2020/04/27 16:57:31 tsutsui Exp $");
 
 #include 
 #include 
@@ -923,6 +923,11 @@ static void radeon_ttm_tt_unpopulate(str
 #endif
 	bool slave = !!(ttm->page_flags & TTM_PAGE_FLAG_SG);
 
+#ifdef __NetBSD__
+	if (slave && ttm->sg) {
+		bus_dmamap_unload(ttm->bdev->dmat, gtt->ttm.dma_address);
+	}
+#endif
 	if (gtt && gtt->userptr) {
 		kfree(ttm->sg);
 		ttm->page_flags &= ~TTM_PAGE_FLAG_SG;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2020-02-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Thu Feb 27 15:41:47 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_irq_kms.c

Log Message:
Take a mutex around mode config logic as the comment advises.

XXX pullup


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_irq_kms.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_irq_kms.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_irq_kms.c:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_irq_kms.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_irq_kms.c:1.4	Mon Aug 27 07:03:26 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_irq_kms.c	Thu Feb 27 15:41:47 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_irq_kms.c,v 1.4 2018/08/27 07:03:26 riastradh Exp $	*/
+/*	$NetBSD: radeon_irq_kms.c,v 1.5 2020/02/27 15:41:47 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_irq_kms.c,v 1.4 2018/08/27 07:03:26 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_irq_kms.c,v 1.5 2020/02/27 15:41:47 riastradh Exp $");
 
 #include 
 #include 
@@ -107,11 +107,12 @@ static void radeon_dp_work_func(struct w
 	struct drm_mode_config *mode_config = &dev->mode_config;
 	struct drm_connector *connector;
 
-	/* this should take a mutex */
+	mutex_lock(&mode_config->mutex);
 	if (mode_config->num_connector) {
 		list_for_each_entry(connector, &mode_config->connector_list, head)
 			radeon_connector_hotplug(connector);
 	}
+	mutex_unlock(&mode_config->mutex);
 }
 /**
  * radeon_driver_irq_preinstall_kms - drm irq preinstall callback



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2020-02-13 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Fri Feb 14 04:29:42 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_ci_dpm.c
radeon_evergreen_cs.c radeon_rv770_dpm.c radeon_si_dpm.c
radeon_sumo_dpm.c radeon_trinity_dpm.c

Log Message:
We use -Wno-shadow for radeon; remove unused diff.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ci_dpm.c \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_si_dpm.c
cvs rdiff -u -r1.1 -r1.2 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_rv770_dpm.c \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_sumo_dpm.c \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_trinity_dpm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ci_dpm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ci_dpm.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ci_dpm.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ci_dpm.c:1.2	Fri Feb 14 04:29:19 2020
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ci_dpm.c	Fri Feb 14 04:29:42 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_ci_dpm.c,v 1.2 2020/02/14 04:29:19 riastradh Exp $	*/
+/*	$NetBSD: radeon_ci_dpm.c,v 1.3 2020/02/14 04:29:42 riastradh Exp $	*/
 
 /*
  * Copyright 2013 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_ci_dpm.c,v 1.2 2020/02/14 04:29:19 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_ci_dpm.c,v 1.3 2020/02/14 04:29:42 riastradh Exp $");
 
 #include 
 #include "drmP.h"
@@ -386,29 +386,29 @@ static int ci_min_max_v_gnbl_pm_lid_from
 	struct ci_power_info *pi = ci_get_pi(rdev);
 	u8 *hi_vid = pi->smc_powertune_table.BapmVddCVidHiSidd;
 	u8 *lo_vid = pi->smc_powertune_table.BapmVddCVidLoSidd;
-	int i, vmin, vmax;
+	int i, min, max;
 
-	vmin = vmax = hi_vid[0];
+	min = max = hi_vid[0];
 	for (i = 0; i < 8; i++) {
 		if (0 != hi_vid[i]) {
-			if (vmin > hi_vid[i])
-vmin = hi_vid[i];
-			if (vmax < hi_vid[i])
-vmax = hi_vid[i];
+			if (min > hi_vid[i])
+min = hi_vid[i];
+			if (max < hi_vid[i])
+max = hi_vid[i];
 		}
 
 		if (0 != lo_vid[i]) {
-			if (vmin > lo_vid[i])
-vmin = lo_vid[i];
-			if (vmax < lo_vid[i])
-vmax = lo_vid[i];
+			if (min > lo_vid[i])
+min = lo_vid[i];
+			if (max < lo_vid[i])
+max = lo_vid[i];
 		}
 	}
 
-	if ((vmin == 0) || (vmax == 0))
+	if ((min == 0) || (max == 0))
 		return -EINVAL;
-	pi->smc_powertune_table.GnbLPMLMaxVid = (u8)vmax;
-	pi->smc_powertune_table.GnbLPMLMinVid = (u8)vmin;
+	pi->smc_powertune_table.GnbLPMLMaxVid = (u8)max;
+	pi->smc_powertune_table.GnbLPMLMinVid = (u8)min;
 
 	return 0;
 }
@@ -2443,15 +2443,15 @@ static u8 ci_get_sleep_divider_id_from_c
 {
 	u32 i;
 	u32 tmp;
-	u32 vmin = (min_sclk_in_sr > CISLAND_MINIMUM_ENGINE_CLOCK) ?
+	u32 min = (min_sclk_in_sr > CISLAND_MINIMUM_ENGINE_CLOCK) ?
 		min_sclk_in_sr : CISLAND_MINIMUM_ENGINE_CLOCK;
 
-	if (sclk < vmin)
+	if (sclk < min)
 		return 0;
 
 	for (i = CISLAND_MAX_DEEPSLEEP_DIVIDER_ID;  ; i--) {
 		tmp = sclk / (1 << i);
-		if (tmp >= vmin || i == 0)
+		if (tmp >= min || i == 0)
 			break;
 	}
 
Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c:1.2	Fri Feb  8 04:11:53 2019
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c	Fri Feb 14 04:29:42 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_evergreen_cs.c,v 1.2 2019/02/08 04:11:53 mrg Exp $	*/
+/*	$NetBSD: radeon_evergreen_cs.c,v 1.3 2020/02/14 04:29:42 riastradh Exp $	*/
 
 /*
  * Copyright 2010 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_evergreen_cs.c,v 1.2 2019/02/08 04:11:53 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_evergreen_cs.c,v 1.3 2020/02/14 04:29:42 riastradh Exp $");
 
 #include 
 #include "radeon.h"
@@ -37,8 +37,8 @@ __KERNEL_RCSID(0, "$NetBSD: radeon_everg
 #include "cayman_reg_safe.h"
 
 #ifndef __NetBSD__
-#define MAX(a,b)			(((a)>(b))?(a):(b))
-#define MIN(a,b)			(((a)<(b))?(a):(b))
+#define MAX(a,b)   (((a)>(b))?(a):(b))
+#define MIN(a,b)   (((a)<(b))?(a):(b))
 #endif
 
 #define REG_SAFE_BM_SIZE ARRAY_SIZE(evergreen_reg_safe_bm)
@@ -455,21 +455,21 @@ static int evergreen_cs_track_validate_c
 		 */
 		if (!surf.mode) {
 			uint32_t *ib = p->ib.ptr;
-			unsigned long tmp, nby, bsize, size, vmin = 0;
+			unsigned long tmp, nby, bsize, size, min = 0;
 
 			/* find the height the ddx wants */
 			if (surf.nby > 8) {
-vmin = surf.nby - 8;
+		

CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2020-01-26 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Sun Jan 26 14:36:36 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon.h radeon_device.c

Log Message:
Zero the dummy page


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h:1.6 src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h:1.7
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h:1.6	Mon Aug 27 06:38:51 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h	Sun Jan 26 14:36:35 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon.h,v 1.6 2018/08/27 06:38:51 riastradh Exp $	*/
+/*	$NetBSD: radeon.h,v 1.7 2020/01/26 14:36:35 jmcneill Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -259,6 +259,7 @@ struct radeon_dummy_page {
 #ifdef __NetBSD__
 	bus_dma_segment_t	rdp_seg;
 	bus_dmamap_t		rdp_map;
+	void		*rdp_addr;
 #else
 	struct page	*page;
 #endif
Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c:1.6 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c:1.6	Mon Aug 27 07:48:40 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c	Sun Jan 26 14:36:35 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_device.c,v 1.6 2018/08/27 07:48:40 riastradh Exp $	*/
+/*	$NetBSD: radeon_device.c,v 1.7 2020/01/26 14:36:35 jmcneill Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_device.c,v 1.6 2018/08/27 07:48:40 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_device.c,v 1.7 2020/01/26 14:36:35 jmcneill Exp $");
 
 #include 
 #include 
@@ -835,10 +835,17 @@ int radeon_dummy_page_init(struct radeon
 	BUS_DMA_WAITOK, &rdev->dummy_page.rdp_map);
 	if (error)
 		goto fail1;
-	error = bus_dmamap_load_raw(rdev->ddev->dmat, rdev->dummy_page.rdp_map,
-	&rdev->dummy_page.rdp_seg, 1, PAGE_SIZE, BUS_DMA_WAITOK);
+	error = bus_dmamem_map(rdev->ddev->dmat, &rdev->dummy_page.rdp_seg, 1,
+	PAGE_SIZE, &rdev->dummy_page.rdp_addr,
+	BUS_DMA_WAITOK|BUS_DMA_NOCACHE);
 	if (error)
 		goto fail2;
+	error = bus_dmamap_load(rdev->ddev->dmat, rdev->dummy_page.rdp_map,
+	rdev->dummy_page.rdp_addr, PAGE_SIZE, NULL, BUS_DMA_WAITOK);
+	if (error)
+		goto fail3;
+
+	memset(rdev->dummy_page.rdp_addr, 0, PAGE_SIZE);
 
 	/* Success!  */
 	rdev->dummy_page.addr = rdev->dummy_page.rdp_map->dm_segs[0].ds_addr;
@@ -846,8 +853,10 @@ int radeon_dummy_page_init(struct radeon
 		rdev->dummy_page.addr, RADEON_GART_PAGE_DUMMY);
 	return 0;
 
-fail3: __unused
+fail4: __unused
 	bus_dmamap_unload(rdev->ddev->dmat, rdev->dummy_page.rdp_map);
+fail3:	bus_dmamem_unmap(rdev->ddev->dmat, rdev->dummy_page.rdp_addr,
+	PAGE_SIZE);
 fail2:	bus_dmamap_destroy(rdev->ddev->dmat, rdev->dummy_page.rdp_map);
 fail1:	bus_dmamem_free(rdev->ddev->dmat, &rdev->dummy_page.rdp_seg, 1);
 fail0:	KASSERT(error);
@@ -888,6 +897,8 @@ void radeon_dummy_page_fini(struct radeo
 	if (rdev->dummy_page.rdp_map == NULL)
 		return;
 	bus_dmamap_unload(rdev->ddev->dmat, rdev->dummy_page.rdp_map);
+	bus_dmamem_unmap(rdev->ddev->dmat, rdev->dummy_page.rdp_addr,
+	PAGE_SIZE);
 	bus_dmamap_destroy(rdev->ddev->dmat, rdev->dummy_page.rdp_map);
 	bus_dmamem_free(rdev->ddev->dmat, &rdev->dummy_page.rdp_seg, 1);
 	rdev->dummy_page.rdp_map = NULL;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2020-01-20 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Mon Jan 20 23:22:09 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_gart.c

Log Message:
add missing memset in radeon_gart_table_ram_alloc


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.10 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.11
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.10	Mon Aug 27 13:56:22 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c	Mon Jan 20 23:22:09 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_gart.c,v 1.10 2018/08/27 13:56:22 riastradh Exp $	*/
+/*	$NetBSD: radeon_gart.c,v 1.11 2020/01/20 23:22:09 jmcneill Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_gart.c,v 1.10 2018/08/27 13:56:22 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_gart.c,v 1.11 2020/01/20 23:22:09 jmcneill Exp $");
 
 #include 
 #include 
@@ -93,6 +93,8 @@ int radeon_gart_table_ram_alloc(struct r
 	if (error)
 		goto fail3;
 
+	memset((void *)rdev->gart.ptr, 0, rdev->gart.table_size);
+
 	/* Success!  */
 	rdev->gart.table_addr = rdev->gart.rg_table_map->dm_segs[0].ds_addr;
 	return 0;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2020-01-19 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Sun Jan 19 11:07:00 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_vce.c

Log Message:
Fix loading TAHITI VCE firmware.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vce.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vce.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vce.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vce.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vce.c:1.3	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vce.c	Sun Jan 19 11:07:00 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_vce.c,v 1.3 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_vce.c,v 1.4 2020/01/19 11:07:00 jmcneill Exp $	*/
 
 /*
  * Copyright 2013 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_vce.c,v 1.3 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_vce.c,v 1.4 2020/01/19 11:07:00 jmcneill Exp $");
 
 #include 
 #include 
@@ -53,34 +53,38 @@ static void radeon_vce_idle_work_handler
 
 #ifdef __NetBSD__		/* XXX Ugh!  */
 static bool
-scan_2dec_u8(const char **sp, char delim, uint8_t *u8p)
+scan_2dec_uint(const char **sp, char delim, unsigned int *uintp)
 {
-	char c0, c1;
+	u_int val = 0, n;
+	char c;
 
-	if (!isdigit((unsigned char)(c0 = *(*sp)++)))
-		return false;
-	if (!isdigit((unsigned char)(c1 = *(*sp)++)))
-		return false;
-	if (*(*sp)++ != delim)
+	for (n = 0; n < 2; n++) {
+		c = *(*sp)++;
+		if (!isdigit((unsigned char)c))
+			return false;
+		if (n != 0)
+			val *= 10;
+		val += (c - '0');
+		if (*(*sp) == delim)
+			break;
+	}
+	if (*(*sp) != delim)
 		return false;
 
-	*u8p = ((c0 - '0') * 10) + (c1 - '0');
+	(*sp)++;
+	*uintp = val;
 	return true;
 }
 
 static bool
-scan_2dec_uint(const char **sp, char delim, unsigned int *uintp)
+scan_2dec_u8(const char **sp, char delim, uint8_t *u8p)
 {
-	char c0, c1;
+	unsigned int val;
 
-	if (!isdigit((unsigned char)(c0 = *(*sp)++)))
-		return false;
-	if (!isdigit((unsigned char)(c1 = *(*sp)++)))
-		return false;
-	if (*(*sp)++ != delim)
+	if (!scan_2dec_uint(sp, delim, &val))
 		return false;
 
-	*uintp = ((c0 - '0') * 10) + (c1 - '0');
+	*u8p = (uint8_t)val;
 	return true;
 }
 #endif



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2020-01-07 Thread SAITOH Masanobu
Module Name:src
Committed By:   msaitoh
Date:   Tue Jan  7 13:51:38 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_atombios_dp.c

Log Message:
 Don't call memcpy() when the length is 0 (and the source pointer is NULL)
in radeon_dp_aux_transfer_atom() to avoid undefined behavior. Found by kUBSan.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_atombios_dp.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_atombios_dp.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_atombios_dp.c:1.1 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_atombios_dp.c:1.2
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_atombios_dp.c:1.1	Mon Aug 27 14:38:20 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_atombios_dp.c	Tue Jan  7 13:51:38 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_atombios_dp.c,v 1.1 2018/08/27 14:38:20 riastradh Exp $	*/
+/*	$NetBSD: radeon_atombios_dp.c,v 1.2 2020/01/07 13:51:38 msaitoh Exp $	*/
 
 /*
  * Copyright 2007-8 Advanced Micro Devices, Inc.
@@ -27,7 +27,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_atombios_dp.c,v 1.1 2018/08/27 14:38:20 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_atombios_dp.c,v 1.2 2020/01/07 13:51:38 msaitoh Exp $");
 
 #include 
 #include 
@@ -196,9 +196,10 @@ radeon_dp_aux_transfer_atom(struct drm_d
 		tx_size = HEADER_SIZE + msg->size;
 		if (msg->size == 0)
 			tx_buf[3] |= BARE_ADDRESS_SIZE << 4;
-		else
+		else {
 			tx_buf[3] |= tx_size << 4;
-		memcpy(tx_buf + HEADER_SIZE, msg->buffer, msg->size);
+			memcpy(tx_buf + HEADER_SIZE, msg->buffer, msg->size);
+		}
 		ret = radeon_process_aux_ch(chan,
 	tx_buf, tx_size, NULL, 0, delay, &ack);
 		if (ret >= 0)



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2019-12-18 Thread SAITOH Masanobu
Module Name:src
Committed By:   msaitoh
Date:   Wed Dec 18 13:25:58 UTC 2019

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: sumod.h

Log Message:
 Use unsigned to avoid undefined behavior. Found by kUBSan.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/radeon/sumod.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/sumod.h
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/sumod.h:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/sumod.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/sumod.h:1.2	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/sumod.h	Wed Dec 18 13:25:58 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: sumod.h,v 1.2 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: sumod.h,v 1.3 2019/12/18 13:25:58 msaitoh Exp $	*/
 
 /*
  * Copyright 2012 Advanced Micro Devices, Inc.
@@ -197,7 +197,7 @@
 #   define SCLK_FSTATE_3_DIV(x) ((x) << 24)
 #   define SCLK_FSTATE_3_DIV_MASK   (0x7f << 24)
 #   define SCLK_FSTATE_3_DIV_SHIFT  24
-#   define SCLK_FSTATE_3_VLD(1 << 31)
+#   define SCLK_FSTATE_3_VLD(1U << 31)
 #define CG_SCLK_DPM_CTRL_2  0x688
 #define CG_GCOOR0x68c
 #   define PHC(x)   ((x) << 0)
@@ -243,7 +243,7 @@
 #   define DPM_SCLK_ENABLE  (1 << 18)
 #   define GNB_SLOW_FSTATE_0_MASK   (1 << 23)
 #   define GNB_SLOW_FSTATE_0_SHIFT  23
-#   define FORCE_NB_PSTATE_1(1 << 31)
+#   define FORCE_NB_PSTATE_1(1U << 31)
 
 #define CG_SSP  0x6e8
 #   define SST(x)   ((x) << 0)
@@ -263,7 +263,7 @@
 #   define DC_HDC_MASK  (0x3fff << 14)
 #   define DC_HDC_SHIFT 14
 #   define DC_HU(x) ((x) << 28)
-#   define DC_HU_MASK   (0xf << 28)
+#   define DC_HU_MASK   (0xfU << 28)
 #   define DC_HU_SHIFT  28
 #define CG_SCLK_DPM_CTRL_5  0x720
 #   define SCLK_FSTATE_BOOTUP(x)((x) << 0)
@@ -281,7 +281,7 @@
 #   define CG_R_MASK(0x << 0)
 #   define CG_R_SHIFT   0
 #   define CG_L(x)  ((x) << 16)
-#   define CG_L_MASK(0x << 16)
+#   define CG_L_MASK(0xU << 16)
 #   define CG_L_SHIFT   16
 #define CG_AT_1 0x72c
 #define CG_AT_2 0x730
@@ -351,7 +351,7 @@
 #   define HS(x)((x) << 4)
 #   define HS_MASK  (0xfff << 4)
 #   define HS_SHIFT 4
-#   define ENABLE_DS(1 << 31)
+#   define ENABLE_DS(1U << 31)
 #define DEEP_SLEEP_CNTL20x81c
 #   define LB_UFP_EN(1 << 0)
 #   define INOUT_C(x)   ((x) << 4)
@@ -363,7 +363,7 @@
 #define CG_SCLK_DPM_CTRL_11 0x830
 
 #define HW_REV   	0x5564
-#   define ATI_REV_ID_MASK  (0xf << 28)
+#   define ATI_REV_ID_MASK  (0xfU << 28)
 #   define ATI_REV_ID_SHIFT 28
 /* 0 = A0, 1 = A1, 2 = B0, 3 = C0, etc. */
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2019-02-07 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Fri Feb  8 04:11:53 UTC 2019

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_evergreen_cs.c
radeon_r300.c radeon_r420.c

Log Message:
add missing break for CP_COHER_BASE case.
convert fallthru comments.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r300.c \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r420.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c:1.1 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c:1.2
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c:1.1	Mon Aug 27 14:38:20 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c	Fri Feb  8 04:11:53 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_evergreen_cs.c,v 1.1 2018/08/27 14:38:20 riastradh Exp $	*/
+/*	$NetBSD: radeon_evergreen_cs.c,v 1.2 2019/02/08 04:11:53 mrg Exp $	*/
 
 /*
  * Copyright 2010 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_evergreen_cs.c,v 1.1 2018/08/27 14:38:20 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_evergreen_cs.c,v 1.2 2019/02/08 04:11:53 mrg Exp $");
 
 #include 
 #include "radeon.h"
@@ -1335,6 +1335,7 @@ static int evergreen_cs_handle_reg(struc
 			return -EINVAL;
 		}
 		ib[idx] += (u32)((reloc->gpu_offset >> 8) & 0x);
+		break;
 	case CB_TARGET_MASK:
 		track->cb_target_mask = radeon_get_ib_value(p, idx);
 		track->cb_dirty = true;
Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r300.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r300.c:1.1 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r300.c:1.2
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r300.c:1.1	Mon Aug 27 14:38:20 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r300.c	Fri Feb  8 04:11:53 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_r300.c,v 1.1 2018/08/27 14:38:20 riastradh Exp $	*/
+/*	$NetBSD: radeon_r300.c,v 1.2 2019/02/08 04:11:53 mrg Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_r300.c,v 1.1 2018/08/27 14:38:20 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_r300.c,v 1.2 2019/02/08 04:11:53 mrg Exp $");
 
 #include 
 #include 
@@ -846,7 +846,7 @@ static int r300_packet0_check(struct rad
 	  ((idx_value >> 21) & 0xF));
 return -EINVAL;
 			}
-			/* Pass through. */
+			/* FALLTHROUGH */
 		case 6:
 			track->cb[i].cpp = 4;
 			break;
@@ -997,7 +997,7 @@ static int r300_packet0_check(struct rad
 return -EINVAL;
 			}
 			/* The same rules apply as for DXT3/5. */
-			/* Pass through. */
+			/* FALLTHROUGH */
 		case R300_TX_FORMAT_DXT3:
 		case R300_TX_FORMAT_DXT5:
 			track->textures[i].cpp = 1;
Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r420.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r420.c:1.1 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r420.c:1.2
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r420.c:1.1	Mon Aug 27 14:38:20 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r420.c	Fri Feb  8 04:11:53 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_r420.c,v 1.1 2018/08/27 14:38:20 riastradh Exp $	*/
+/*	$NetBSD: radeon_r420.c,v 1.2 2019/02/08 04:11:53 mrg Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_r420.c,v 1.1 2018/08/27 14:38:20 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_r420.c,v 1.2 2019/02/08 04:11:53 mrg Exp $");
 
 #include 
 #include 
@@ -115,6 +115,7 @@ void r420_pipes_init(struct radeon_devic
 	default:
 		/* force to 1 pipe */
 		num_pipes = 1;
+		/* FALLTHROUGH */
 	case 1:
 		tmp = (0 << 1);
 		break;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2019-01-29 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Wed Jan 30 01:11:08 UTC 2019

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_display.c

Log Message:
revert rev 1.3 + 1.4 (2015):  blank console / CLUT attempts.
we disabled the driver for almost all r100/r200 chipsets so
this code has been obsolete for ages and doesn't need to
remain a diff against upstream.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.9 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.10
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.9	Mon Aug 27 15:22:54 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c	Wed Jan 30 01:11:08 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_display.c,v 1.9 2018/08/27 15:22:54 riastradh Exp $	*/
+/*	$NetBSD: radeon_display.c,v 1.10 2019/01/30 01:11:08 mrg Exp $	*/
 
 /*
  * Copyright 2007-8 Advanced Micro Devices, Inc.
@@ -26,7 +26,7 @@
  *  Alex Deucher
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_display.c,v 1.9 2018/08/27 15:22:54 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_display.c,v 1.10 2019/01/30 01:11:08 mrg Exp $");
 
 #include 
 #include 
@@ -188,36 +188,12 @@ static void legacy_crtc_load_lut(struct 
 		dac2_cntl |= RADEON_DAC2_PALETTE_ACC_CTL;
 	WREG32(RADEON_DAC_CNTL2, dac2_cntl);
 
-	/*
-	 * At least the RV100 [vendor 1002 product 515e (rev. 0x02)]
-	 * has an old style palette
-	 */
-	if (rdev->family < CHIP_RV280) {
-#ifdef notyet
-		/*
-		 * Leave CLUT alone for now. The code below gives us a
-		 * nice 444 grayscale, but we are not in true color mode
-		 * anymore and I don't have any docs how to do this right.
-		 */
-		WREG8(RADEON_PALETTE_INDEX, 0);
-		for (i = 0; i < 256; i++) {
-#define R(x) (radeon_crtc->lut_r[i] >> 2)
-#define G(x) (radeon_crtc->lut_g[i] >> 2)
-#define B(x) (radeon_crtc->lut_b[i] >> 2)
-			WREG32(RADEON_PALETTE_DATA, ((R(i) << 16)
-| (G(i) << 8) | B(i)) << 4);
-		}
-#else
-		printf("%s: unknown DAC, can't set lookup table\n", __func__);
-#endif
-	} else {
-		WREG8(RADEON_PALETTE_INDEX, 0);
-		for (i = 0; i < 256; i++) {
-			WREG32(RADEON_PALETTE_30_DATA,
- (radeon_crtc->lut_r[i] << 20) |
- (radeon_crtc->lut_g[i] << 10) |
- (radeon_crtc->lut_b[i] << 0));
-		}
+	WREG8(RADEON_PALETTE_INDEX, 0);
+	for (i = 0; i < 256; i++) {
+		WREG32(RADEON_PALETTE_30_DATA,
+			 (radeon_crtc->lut_r[i] << 20) |
+			 (radeon_crtc->lut_g[i] << 10) |
+			 (radeon_crtc->lut_b[i] << 0));
 	}
 }
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-29 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Aug 29 14:53:46 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_fence.c

Log Message:
Return timeout left, not error, if fence is already signaled.

fence_add_callback returns -ENOENT if fence is already signaled;
radeon_fence_default_wait is supposed to wait until fence is
signaled; this means its job is done.

Should fix spurious ENOENT in DRM_IOCTL_RADEON_GEM_WAIT_IDLE (or
_IOW('d',0x64,0x8) for you ktracers out there).


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.14 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.15
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.14	Mon Aug 27 14:20:26 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c	Wed Aug 29 14:53:46 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_fence.c,v 1.14 2018/08/27 14:20:26 riastradh Exp $	*/
+/*	$NetBSD: radeon_fence.c,v 1.15 2018/08/29 14:53:46 riastradh Exp $	*/
 
 /*
  * Copyright 2009 Jerome Glisse.
@@ -31,7 +31,7 @@
  *Dave Airlie
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_fence.c,v 1.14 2018/08/27 14:20:26 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_fence.c,v 1.15 2018/08/29 14:53:46 riastradh Exp $");
 
 #include 
 #include 
@@ -1177,8 +1177,8 @@ radeon_fence_default_wait(struct fence *
 	int r;
 
 	r = fence_add_callback(f, &fcb, radeon_fence_wakeup_cb);
-	if (r)
-		return r;
+	if (r)			/* fence is done already */
+		return timo;
 
 	spin_lock(&rdev->fence_lock);
 	if (intr) {



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 15:13:05 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_mode.h

Log Message:
Omit vestigial diff from radeon_mode.h.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_mode.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_mode.h
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_mode.h:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_mode.h:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_mode.h:1.3	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_mode.h	Mon Aug 27 15:13:05 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_mode.h,v 1.3 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_mode.h,v 1.4 2018/08/27 15:13:05 riastradh Exp $	*/
 
 /*
  * Copyright 2000 ATI Technologies Inc., Markham, Ontario, and
@@ -1014,12 +1014,4 @@ void radeon_setup_mst_connector(struct d
 
 int radeon_atom_pick_dig_encoder(struct drm_encoder *encoder, int fe_idx);
 void radeon_atom_release_dig_encoder(struct radeon_device *rdev, int enc_idx);
-
-#ifdef __NetBSD__
-struct drm_fb_helper;
-struct drm_fb_helper_surface_size;
-int	radeon_genfb_attach(struct drm_device *, struct drm_fb_helper *,
-	const struct drm_fb_helper_surface_size *, struct radeon_bo *);
-#endif
-
 #endif



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:20:26 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_fence.c

Log Message:
Notify radeon_fence_default_wait on fence signal.


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.13 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.14
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.13	Mon Aug 27 13:34:50 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c	Mon Aug 27 14:20:26 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_fence.c,v 1.13 2018/08/27 13:34:50 riastradh Exp $	*/
+/*	$NetBSD: radeon_fence.c,v 1.14 2018/08/27 14:20:26 riastradh Exp $	*/
 
 /*
  * Copyright 2009 Jerome Glisse.
@@ -31,7 +31,7 @@
  *Dave Airlie
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_fence.c,v 1.13 2018/08/27 13:34:50 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_fence.c,v 1.14 2018/08/27 14:20:26 riastradh Exp $");
 
 #include 
 #include 
@@ -1158,13 +1158,28 @@ static inline bool radeon_test_signaled(
 
 #ifdef __NetBSD__
 
+static void
+radeon_fence_wakeup_cb(struct fence *fence, struct fence_cb *cb)
+{
+	struct radeon_fence *rfence = to_radeon_fence(fence);
+	struct radeon_device *rdev = rfence->rdev;
+
+	BUG_ON(!spin_is_locked(&rdev->fence_lock));
+	cv_broadcast(&rdev->fence_queue);
+}
+
 static signed long
 radeon_fence_default_wait(struct fence *f, bool intr, signed long timo)
 {
+	struct fence_cb fcb;
 	struct radeon_fence *fence = to_radeon_fence(f);
 	struct radeon_device *rdev = fence->rdev;
 	int r;
 
+	r = fence_add_callback(f, &fcb, radeon_fence_wakeup_cb);
+	if (r)
+		return r;
+
 	spin_lock(&rdev->fence_lock);
 	if (intr) {
 		DRM_SPIN_TIMED_WAIT_UNTIL(r, &rdev->fence_queue,
@@ -1177,6 +1192,8 @@ radeon_fence_default_wait(struct fence *
 	}
 	spin_unlock(&rdev->fence_lock);
 
+	(void)fence_remove_callback(f, &fcb);
+
 	return r;
 }
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 13:58:04 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_cs.c

Log Message:
Note need_mmap_used is __diagused, not __unused.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_cs.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_cs.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_cs.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_cs.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_cs.c:1.3	Mon Aug 27 07:48:30 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_cs.c	Mon Aug 27 13:58:04 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_cs.c,v 1.3 2018/08/27 07:48:30 riastradh Exp $	*/
+/*	$NetBSD: radeon_cs.c,v 1.4 2018/08/27 13:58:04 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Jerome Glisse.
@@ -27,7 +27,7 @@
  *Jerome Glisse 
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_cs.c,v 1.3 2018/08/27 07:48:30 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_cs.c,v 1.4 2018/08/27 13:58:04 riastradh Exp $");
 
 #include 
 #include 
@@ -83,7 +83,7 @@ static int radeon_cs_parser_relocs(struc
 	struct radeon_cs_chunk *chunk;
 	struct radeon_cs_buckets buckets;
 	unsigned i;
-	bool need_mmap_lock = false;
+	bool need_mmap_lock __diagused = false;
 	int r;
 
 	if (p->chunk_relocs == NULL) {



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 13:56:22 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_gart.c

Log Message:
Fix ordering of bus_dmamap_sync.

The ordering is:

...
- driver writes to kernel pointer
- sync
- driver triggers device use of newly written data (*)
- sync
- driver writes to kernel pointer
- sync
...

The operation (*) is a DMA write.  Hence the syncs should be:

...
- driver writes to kernel pointer
- bus_dmamap_sync(BUS_DMASYNC_PREWRITE)
- driver triggers device use of newly written data
- bus_dmamap_sync(BUS_DMASYNC_POSTWRITE)
- bus_dmamap_sync(BUS_DMASYNC_PREWRITE)
- driver writes to kernel pointer
- bus_dmamap_sync(BUS_DMASYNC_POSTWRITE)
- bus_dmamap_sync(BUS_DMASYNC_PREWRITE)
...


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.9 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.10
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.9	Mon Aug 27 13:56:09 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c	Mon Aug 27 13:56:22 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_gart.c,v 1.9 2018/08/27 13:56:09 riastradh Exp $	*/
+/*	$NetBSD: radeon_gart.c,v 1.10 2018/08/27 13:56:22 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_gart.c,v 1.9 2018/08/27 13:56:09 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_gart.c,v 1.10 2018/08/27 13:56:22 riastradh Exp $");
 
 #include 
 #include 
@@ -286,7 +286,7 @@ radeon_gart_pre_update(struct radeon_dev
 
 		bus_dmamap_sync(rdev->ddev->dmat, rdev->gart.rg_table_map,
 		gpu_pgstart*entsize, gpu_npages*entsize,
-		BUS_DMASYNC_PREWRITE);
+		BUS_DMASYNC_POSTWRITE);
 	}
 }
 
@@ -301,7 +301,7 @@ radeon_gart_post_update(struct radeon_de
 
 		bus_dmamap_sync(rdev->ddev->dmat, rdev->gart.rg_table_map,
 		gpu_pgstart*entsize, gpu_npages*entsize,
-		BUS_DMASYNC_POSTWRITE);
+		BUS_DMASYNC_PREWRITE);
 	}
 	if (rdev->gart.ptr != NULL) {
 		membar_sync();		/* XXX overkill */



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 13:55:59 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_bios.c

Log Message:
get pd_rom_bst and pd_rom_found_bsh _after_ pci_map_rom

fixes early attach panic.

Author: coypu 
Committer: Taylor R Campbell 


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c:1.5 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c:1.5	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c	Mon Aug 27 13:55:59 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_bios.c,v 1.5 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_bios.c,v 1.6 2018/08/27 13:55:59 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_bios.c,v 1.5 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_bios.c,v 1.6 2018/08/27 13:55:59 riastradh Exp $");
 
 #include 
 #include "radeon_reg.h"
@@ -110,10 +110,6 @@ static bool igp_read_bios_from_vram(stru
 
 static bool radeon_read_bios(struct radeon_device *rdev)
 {
-#ifdef __NetBSD__
-	const bus_space_tag_t bst = rdev->pdev->pd_rom_bst;
-	const bus_space_handle_t bsh = rdev->pdev->pd_rom_found_bsh;
-#endif
 	uint8_t __iomem *bios, val1, val2;
 	size_t size;
 
@@ -125,6 +121,9 @@ static bool radeon_read_bios(struct rade
 	}
 
 #ifdef __NetBSD__
+	const bus_space_tag_t bst = rdev->pdev->pd_rom_bst;
+	const bus_space_handle_t bsh = rdev->pdev->pd_rom_found_bsh;
+
 	val1 = bus_space_read_1(bst, bsh, 0);
 	val2 = bus_space_read_1(bst, bsh, 1);
 #else



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 13:56:09 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_gart.c

Log Message:
GART might not be mapped with bus_dma.

Still need membar and tlb flush in that case.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.8 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.9
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.8	Mon Aug 27 06:37:00 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c	Mon Aug 27 13:56:09 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_gart.c,v 1.8 2018/08/27 06:37:00 riastradh Exp $	*/
+/*	$NetBSD: radeon_gart.c,v 1.9 2018/08/27 13:56:09 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_gart.c,v 1.8 2018/08/27 06:37:00 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_gart.c,v 1.9 2018/08/27 13:56:09 riastradh Exp $");
 
 #include 
 #include 
@@ -280,11 +280,10 @@ radeon_gart_pre_update(struct radeon_dev
 unsigned gpu_npages)
 {
 
-	if (rdev->gart.ptr != NULL) {
+	if (rdev->gart.rg_table_map != NULL) {
 		const unsigned entsize =
 		rdev->gart.table_size / rdev->gart.num_gpu_pages;
 
-		KASSERT(rdev->gart.rg_table_map != NULL);
 		bus_dmamap_sync(rdev->ddev->dmat, rdev->gart.rg_table_map,
 		gpu_pgstart*entsize, gpu_npages*entsize,
 		BUS_DMASYNC_PREWRITE);
@@ -296,15 +295,16 @@ radeon_gart_post_update(struct radeon_de
 unsigned gpu_npages)
 {
 
-	if (rdev->gart.ptr != NULL) {
+	if (rdev->gart.rg_table_map != NULL) {
 		const unsigned entsize =
 		rdev->gart.table_size / rdev->gart.num_gpu_pages;
 
-		KASSERT(rdev->gart.rg_table_map != NULL);
-		membar_sync();		/* XXX overkill */
 		bus_dmamap_sync(rdev->ddev->dmat, rdev->gart.rg_table_map,
 		gpu_pgstart*entsize, gpu_npages*entsize,
 		BUS_DMASYNC_POSTWRITE);
+	}
+	if (rdev->gart.ptr != NULL) {
+		membar_sync();		/* XXX overkill */
 		radeon_gart_tlb_flush(rdev);
 	}
 }



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 13:34:50 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_fence.c

Log Message:
Fix fence API usage: lock is _not_ held here, so acquire it.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.12 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.13
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.12	Mon Aug 27 07:49:25 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c	Mon Aug 27 13:34:50 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_fence.c,v 1.12 2018/08/27 07:49:25 riastradh Exp $	*/
+/*	$NetBSD: radeon_fence.c,v 1.13 2018/08/27 13:34:50 riastradh Exp $	*/
 
 /*
  * Copyright 2009 Jerome Glisse.
@@ -31,7 +31,7 @@
  *Dave Airlie
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_fence.c,v 1.12 2018/08/27 07:49:25 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_fence.c,v 1.13 2018/08/27 13:34:50 riastradh Exp $");
 
 #include 
 #include 
@@ -1165,7 +1165,7 @@ radeon_fence_default_wait(struct fence *
 	struct radeon_device *rdev = fence->rdev;
 	int r;
 
-	BUG_ON(!spin_is_locked(&rdev->fence_lock));
+	spin_lock(&rdev->fence_lock);
 	if (intr) {
 		DRM_SPIN_TIMED_WAIT_UNTIL(r, &rdev->fence_queue,
 		&rdev->fence_lock, timo,
@@ -1175,6 +1175,7 @@ radeon_fence_default_wait(struct fence *
 		&rdev->fence_lock, timo,
 		radeon_test_signaled(fence));
 	}
+	spin_unlock(&rdev->fence_lock);
 
 	return r;
 }



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:57:45 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: btc_dpm.c

Log Message:
Restore functions that are used outside debugfs after all.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/drm/radeon/btc_dpm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/btc_dpm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/btc_dpm.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/btc_dpm.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/btc_dpm.c:1.3	Mon Aug 27 04:58:35 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/btc_dpm.c	Mon Aug 27 07:57:45 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: btc_dpm.c,v 1.3 2018/08/27 04:58:35 riastradh Exp $	*/
+/*	$NetBSD: btc_dpm.c,v 1.4 2018/08/27 07:57:45 riastradh Exp $	*/
 
 /*
  * Copyright 2011 Advanced Micro Devices, Inc.
@@ -25,7 +25,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: btc_dpm.c,v 1.3 2018/08/27 04:58:35 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: btc_dpm.c,v 1.4 2018/08/27 07:57:45 riastradh Exp $");
 
 #include "drmP.h"
 #include "radeon.h"
@@ -2761,6 +2761,7 @@ void btc_dpm_debugfs_print_current_perfo
 			   current_index, pl->sclk, pl->mclk, pl->vddc, pl->vddci);
 	}
 }
+#endif	/* CONFIG_DEBUG_FS */
 
 u32 btc_dpm_get_current_sclk(struct radeon_device *rdev)
 {
@@ -2807,7 +2808,6 @@ u32 btc_dpm_get_current_mclk(struct rade
 		return pl->mclk;
 	}
 }
-#endif
 
 u32 btc_dpm_get_sclk(struct radeon_device *rdev, bool low)
 {



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:52:20 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_vm.c

Log Message:
ALIGN -> round_up


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vm.c:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vm.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vm.c:1.4	Mon Aug 27 07:52:10 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vm.c	Mon Aug 27 07:52:20 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_vm.c,v 1.4 2018/08/27 07:52:10 riastradh Exp $	*/
+/*	$NetBSD: radeon_vm.c,v 1.5 2018/08/27 07:52:20 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_vm.c,v 1.4 2018/08/27 07:52:10 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_vm.c,v 1.5 2018/08/27 07:52:20 riastradh Exp $");
 
 #include 
 #include 
@@ -763,7 +763,11 @@ static void radeon_vm_frag_ptes(struct r
 	uint64_t frag_align = ((rdev->family == CHIP_CAYMAN) ||
 			   (rdev->family == CHIP_ARUBA)) ? 0x200 : 0x80;
 
+#ifdef __NetBSD__		/* XXX ALIGN means something else */
+	uint64_t frag_start = round_up(pe_start, frag_align);
+#else
 	uint64_t frag_start = ALIGN(pe_start, frag_align);
+#endif
 	uint64_t frag_end = pe_end & ~(frag_align - 1);
 
 	unsigned count;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:52:32 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_vm.c

Log Message:
Use our version of initializing an interval tree.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vm.c:1.5 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vm.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vm.c:1.5	Mon Aug 27 07:52:20 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vm.c	Mon Aug 27 07:52:32 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_vm.c,v 1.5 2018/08/27 07:52:20 riastradh Exp $	*/
+/*	$NetBSD: radeon_vm.c,v 1.6 2018/08/27 07:52:32 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_vm.c,v 1.5 2018/08/27 07:52:20 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_vm.c,v 1.6 2018/08/27 07:52:32 riastradh Exp $");
 
 #include 
 #include 
@@ -1197,7 +1197,11 @@ int radeon_vm_init(struct radeon_device 
 #else
 	mutex_init(&vm->mutex);
 #endif
+#ifdef __NetBSD__
+	interval_tree_init(&vm->va);
+#else
 	vm->va = RB_ROOT;
+#endif
 	spin_lock_init(&vm->status_lock);
 	INIT_LIST_HEAD(&vm->invalidated);
 	INIT_LIST_HEAD(&vm->freed);



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:52:42 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: rs600.c

Log Message:
No arithmetic on void *.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/drm/radeon/rs600.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/rs600.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/rs600.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/rs600.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/rs600.c:1.3	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/rs600.c	Mon Aug 27 07:52:42 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: rs600.c,v 1.3 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: rs600.c,v 1.4 2018/08/27 07:52:42 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -38,7 +38,7 @@
  * of the RS600 GART block).
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: rs600.c,v 1.3 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rs600.c,v 1.4 2018/08/27 07:52:42 riastradh Exp $");
 
 #include 
 #include "radeon.h"
@@ -663,7 +663,7 @@ void rs600_gart_set_page(struct radeon_d
 			 uint64_t entry)
 {
 	void __iomem *ptr = (void *)rdev->gart.ptr;
-	writeq(entry, ptr + (i * 8));
+	writeq(entry, (char __iomem *)ptr + (i * 8));
 }
 
 #ifdef __NetBSD__



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:52:10 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_vm.c

Log Message:
Fix 64-bit printf.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vm.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vm.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vm.c:1.3	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vm.c	Mon Aug 27 07:52:10 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_vm.c,v 1.3 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_vm.c,v 1.4 2018/08/27 07:52:10 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_vm.c,v 1.3 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_vm.c,v 1.4 2018/08/27 07:52:10 riastradh Exp $");
 
 #include 
 #include 
@@ -488,7 +488,7 @@ int radeon_vm_bo_set_addr(struct radeon_
 			struct radeon_bo_va *tmp;
 			tmp = container_of(it, struct radeon_bo_va, it);
 			/* bo and tmp overlap, invalid offset */
-			dev_err(rdev->dev, "bo %p va 0x%010Lx conflict with "
+			dev_err(rdev->dev, "bo %p va 0x%010"PRIx64" conflict with "
 "(bo %p 0x%010lx 0x%010lx)\n", bo_va->bo,
 soffset, tmp->bo, tmp->it.start, tmp->it.last);
 			mutex_unlock(&vm->mutex);



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:51:27 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_ucode.c

Log Message:
const_container_of for const


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ucode.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ucode.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ucode.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ucode.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ucode.c:1.2	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ucode.c	Mon Aug 27 07:51:27 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_ucode.c,v 1.2 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_ucode.c,v 1.3 2018/08/27 07:51:27 riastradh Exp $	*/
 
 /*
  * Copyright 2014 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_ucode.c,v 1.2 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_ucode.c,v 1.3 2018/08/27 07:51:27 riastradh Exp $");
 
 #include 
 #include 
@@ -58,7 +58,7 @@ void radeon_ucode_print_mc_hdr(const str
 
 	if (version_major == 1) {
 		const struct mc_firmware_header_v1_0 *mc_hdr =
-			container_of(hdr, struct mc_firmware_header_v1_0, header);
+			const_container_of(hdr, struct mc_firmware_header_v1_0, header);
 
 		DRM_DEBUG("io_debug_size_bytes: %u\n",
 			  le32_to_cpu(mc_hdr->io_debug_size_bytes));
@@ -79,7 +79,7 @@ void radeon_ucode_print_smc_hdr(const st
 
 	if (version_major == 1) {
 		const struct smc_firmware_header_v1_0 *smc_hdr =
-			container_of(hdr, struct smc_firmware_header_v1_0, header);
+			const_container_of(hdr, struct smc_firmware_header_v1_0, header);
 
 		DRM_DEBUG("ucode_start_addr: %u\n", le32_to_cpu(smc_hdr->ucode_start_addr));
 	} else {
@@ -97,7 +97,7 @@ void radeon_ucode_print_gfx_hdr(const st
 
 	if (version_major == 1) {
 		const struct gfx_firmware_header_v1_0 *gfx_hdr =
-			container_of(hdr, struct gfx_firmware_header_v1_0, header);
+			const_container_of(hdr, struct gfx_firmware_header_v1_0, header);
 
 		DRM_DEBUG("ucode_feature_version: %u\n",
 			  le32_to_cpu(gfx_hdr->ucode_feature_version));
@@ -118,7 +118,7 @@ void radeon_ucode_print_rlc_hdr(const st
 
 	if (version_major == 1) {
 		const struct rlc_firmware_header_v1_0 *rlc_hdr =
-			container_of(hdr, struct rlc_firmware_header_v1_0, header);
+			const_container_of(hdr, struct rlc_firmware_header_v1_0, header);
 
 		DRM_DEBUG("ucode_feature_version: %u\n",
 			  le32_to_cpu(rlc_hdr->ucode_feature_version));
@@ -145,7 +145,7 @@ void radeon_ucode_print_sdma_hdr(const s
 
 	if (version_major == 1) {
 		const struct sdma_firmware_header_v1_0 *sdma_hdr =
-			container_of(hdr, struct sdma_firmware_header_v1_0, header);
+			const_container_of(hdr, struct sdma_firmware_header_v1_0, header);
 
 		DRM_DEBUG("ucode_feature_version: %u\n",
 			  le32_to_cpu(sdma_hdr->ucode_feature_version));



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:50:54 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_ttm.c

Log Message:
Kill legacy mmap in radeon like was done upstream.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.12 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.13
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.12	Mon Aug 27 07:50:43 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c	Mon Aug 27 07:50:54 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_ttm.c,v 1.12 2018/08/27 07:50:43 riastradh Exp $	*/
+/*	$NetBSD: radeon_ttm.c,v 1.13 2018/08/27 07:50:54 riastradh Exp $	*/
 
 /*
  * Copyright 2009 Jerome Glisse.
@@ -32,7 +32,7 @@
  *Dave Airlie
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_ttm.c,v 1.12 2018/08/27 07:50:43 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_ttm.c,v 1.13 2018/08/27 07:50:54 riastradh Exp $");
 
 #include 
 #include 
@@ -1093,11 +1093,10 @@ radeon_mmap_object(struct drm_device *de
 		return -EINVAL;
 
 	if (__predict_false((offset >> PAGE_SHIFT) < DRM_FILE_PAGE_OFFSET))
-		return drm_mmap_object(dev, offset, size, prot, uobjp,
-		uoffsetp, file);
-	else
-		return ttm_bo_mmap_object(&rdev->mman.bdev, offset, size, prot,
-		uobjp, uoffsetp, file);
+		return -EINVAL;
+
+	return ttm_bo_mmap_object(&rdev->mman.bdev, offset, size, prot,
+	uobjp, uoffsetp, file);
 }
 
 #else



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:50:43 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_ttm.c

Log Message:
Ifdef out some more radeon userptr code.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.11 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.12
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.11	Mon Aug 27 07:47:55 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c	Mon Aug 27 07:50:43 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_ttm.c,v 1.11 2018/08/27 07:47:55 riastradh Exp $	*/
+/*	$NetBSD: radeon_ttm.c,v 1.12 2018/08/27 07:50:43 riastradh Exp $	*/
 
 /*
  * Copyright 2009 Jerome Glisse.
@@ -32,7 +32,7 @@
  *Dave Airlie
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_ttm.c,v 1.11 2018/08/27 07:47:55 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_ttm.c,v 1.12 2018/08/27 07:50:43 riastradh Exp $");
 
 #include 
 #include 
@@ -553,6 +553,9 @@ struct radeon_ttm_tt {
 /* prepare the sg table with the user pages */
 static int radeon_ttm_tt_pin_userptr(struct ttm_tt *ttm)
 {
+#ifdef __NetBSD__
+	panic("we don't handle user pointers round these parts");
+#else
 	struct radeon_device *rdev = radeon_get_rdev(ttm->bdev);
 	struct radeon_ttm_tt *gtt = (void *)ttm;
 	unsigned pinned = 0, nents;
@@ -611,10 +614,14 @@ release_sg:
 release_pages:
 	release_pages(ttm->pages, pinned, 0);
 	return r;
+#endif
 }
 
 static void radeon_ttm_tt_unpin_userptr(struct ttm_tt *ttm)
 {
+#ifdef __NetBSD__
+	panic("some varmint pinned a userptr to my hat");
+#else
 	struct radeon_device *rdev = radeon_get_rdev(ttm->bdev);
 	struct radeon_ttm_tt *gtt = (void *)ttm;
 	struct sg_page_iter sg_iter;
@@ -640,6 +647,7 @@ static void radeon_ttm_tt_unpin_userptr(
 	}
 
 	sg_free_table(ttm->sg);
+#endif
 }
 
 static int radeon_ttm_backend_bind(struct ttm_tt *ttm,
@@ -747,12 +755,16 @@ static int radeon_ttm_tt_populate(struct
 		return 0;
 
 	if (gtt && gtt->userptr) {
+#ifdef __NetBSD__
+		panic("don't point at users, it's not polite");
+#else
 		ttm->sg = kzalloc(sizeof(struct sg_table), GFP_KERNEL);
 		if (!ttm->sg)
 			return -ENOMEM;
 
 		ttm->page_flags |= TTM_PAGE_FLAG_SG;
 		ttm->state = tt_unbound;
+#endif
 		return 0;
 	}
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:50:19 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_pm.c

Log Message:
Ifdef out sysfs in ths sisyphean update.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_pm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_pm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_pm.c:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_pm.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_pm.c:1.4	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_pm.c	Mon Aug 27 07:50:19 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_pm.c,v 1.4 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_pm.c,v 1.5 2018/08/27 07:50:19 riastradh Exp $	*/
 
 /*
  * Permission is hereby granted, free of charge, to any person obtaining a
@@ -23,7 +23,7 @@
  *  Alex Deucher 
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_pm.c,v 1.4 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_pm.c,v 1.5 2018/08/27 07:50:19 riastradh Exp $");
 
 #include 
 #include "radeon.h"
@@ -1555,6 +1555,7 @@ int radeon_pm_late_init(struct radeon_de
 
 	if (rdev->pm.pm_method == PM_METHOD_DPM) {
 		if (rdev->pm.dpm_enabled) {
+#ifndef __NetBSD__		/* XXX radeon sysfs */
 			if (!rdev->pm.sysfs_initialized) {
 ret = device_create_file(rdev->dev, &dev_attr_power_dpm_state);
 if (ret)
@@ -1571,6 +1572,7 @@ int radeon_pm_late_init(struct radeon_de
 	DRM_ERROR("failed to create device file for power method\n");
 rdev->pm.sysfs_initialized = true;
 			}
+#endif
 
 			mutex_lock(&rdev->pm.mutex);
 			ret = radeon_dpm_late_enable(rdev);
@@ -1588,6 +1590,7 @@ int radeon_pm_late_init(struct radeon_de
 	} else {
 		if ((rdev->pm.num_power_states > 1) &&
 		(!rdev->pm.sysfs_initialized)) {
+#ifndef __NetBSD__	 /* XXX radeon sysfs */
 			/* where's the best place to put these? */
 			ret = device_create_file(rdev->dev, &dev_attr_power_profile);
 			if (ret)
@@ -1597,6 +1600,7 @@ int radeon_pm_late_init(struct radeon_de
 DRM_ERROR("failed to create device file for power method\n");
 			if (!ret)
 rdev->pm.sysfs_initialized = true;
+#endif
 		}
 	}
 	return ret;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:50:30 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_uvd.c

Log Message:
No arithmetic on void *.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_uvd.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_uvd.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_uvd.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_uvd.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_uvd.c:1.3	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_uvd.c	Mon Aug 27 07:50:30 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_uvd.c,v 1.3 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_uvd.c,v 1.4 2018/08/27 07:50:30 riastradh Exp $	*/
 
 /*
  * Copyright 2011 Advanced Micro Devices, Inc.
@@ -31,7 +31,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_uvd.c,v 1.3 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_uvd.c,v 1.4 2018/08/27 07:50:30 riastradh Exp $");
 
 #include 
 #include 
@@ -753,7 +753,7 @@ int radeon_uvd_get_create_msg(struct rad
 	uint64_t offs = radeon_bo_size(rdev->uvd.vcpu_bo) -
 		RADEON_GPU_PAGE_SIZE;
 
-	uint32_t *msg = rdev->uvd.cpu_addr + offs;
+	uint32_t *msg = (void *)((char *)rdev->uvd.cpu_addr + offs);
 	uint64_t addr = rdev->uvd.gpu_addr + offs;
 
 	int r, i;
@@ -789,7 +789,7 @@ int radeon_uvd_get_destroy_msg(struct ra
 	uint64_t offs = radeon_bo_size(rdev->uvd.vcpu_bo) -
 		RADEON_GPU_PAGE_SIZE;
 
-	uint32_t *msg = rdev->uvd.cpu_addr + offs;
+	uint32_t *msg = (void *)((char *)rdev->uvd.cpu_addr + offs);
 	uint64_t addr = rdev->uvd.gpu_addr + offs;
 
 	int r, i;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:49:58 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_object.c

Log Message:
Restore chunk of code including close brace that got lost in merge.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_object.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_object.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_object.c:1.5 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_object.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_object.c:1.5	Mon Aug 27 07:49:47 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_object.c	Mon Aug 27 07:49:58 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_object.c,v 1.5 2018/08/27 07:49:47 riastradh Exp $	*/
+/*	$NetBSD: radeon_object.c,v 1.6 2018/08/27 07:49:58 riastradh Exp $	*/
 
 /*
  * Copyright 2009 Jerome Glisse.
@@ -32,7 +32,7 @@
  *Dave Airlie
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_object.c,v 1.5 2018/08/27 07:49:47 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_object.c,v 1.6 2018/08/27 07:49:58 riastradh Exp $");
 
 #include 
 #include 
@@ -598,6 +598,14 @@ int radeon_bo_list_validate(struct radeo
 		lobj->tiling_flags = bo->tiling_flags;
 	}
 
+	list_for_each_entry(lobj, &duplicates, tv.head) {
+		lobj->gpu_offset = radeon_bo_gpu_offset(lobj->robj);
+		lobj->tiling_flags = lobj->robj->tiling_flags;
+	}
+
+	return 0;
+}
+
 int radeon_bo_get_surface_reg(struct radeon_bo *bo)
 {
 	struct radeon_device *rdev = bo->rdev;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:49:25 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_fence.c

Log Message:
Fix bad merge of radeon fence wakeup.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.11 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.12
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.11	Mon Aug 27 07:49:14 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c	Mon Aug 27 07:49:25 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_fence.c,v 1.11 2018/08/27 07:49:14 riastradh Exp $	*/
+/*	$NetBSD: radeon_fence.c,v 1.12 2018/08/27 07:49:25 riastradh Exp $	*/
 
 /*
  * Copyright 2009 Jerome Glisse.
@@ -31,7 +31,7 @@
  *Dave Airlie
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_fence.c,v 1.11 2018/08/27 07:49:14 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_fence.c,v 1.12 2018/08/27 07:49:25 riastradh Exp $");
 
 #include 
 #include 
@@ -192,7 +192,7 @@ static int radeon_fence_check_signaled(w
 
 		radeon_irq_kms_sw_irq_put(fence->rdev, fence->ring);
 #ifdef __NetBSD__
-		TAILQ_REMOVE(fence, fence_check);
+		TAILQ_REMOVE(&fence->rdev->fence_check, fence, fence_check);
 #else
 		__remove_wait_queue(&fence->rdev->fence_queue, &fence->fence_wake);
 #endif
@@ -330,7 +330,7 @@ static void radeon_fence_check_lockup(st
 
 	if (radeon_fence_activity(rdev, ring))
 #ifdef __NetBSD__
-		radeon_wakeup(rdev);
+		radeon_fence_wakeup_locked(rdev);
 #else
 		wake_up_all(&rdev->fence_queue);
 #endif
@@ -346,7 +346,7 @@ static void radeon_fence_check_lockup(st
 		/* remember that we need an reset */
 		rdev->needs_reset = true;
 #ifdef __NetBSD__
-		radeon_wakeup(rdev);
+		radeon_fence_wakeup_locked(rdev);
 #else
 		wake_up_all(&rdev->fence_queue);
 #endif
@@ -370,7 +370,7 @@ static void radeon_fence_process_locked(
 {
 	if (radeon_fence_activity(rdev, ring))
 #ifdef __NetBSD__
-		radeon_wakeup(&rdev);
+		radeon_fence_wakeup_locked(rdev);
 #else
 		wake_up_all(&rdev->fence_queue);
 #endif
@@ -460,7 +460,7 @@ static bool radeon_fence_enable_signalin
 
 		if (radeon_fence_activity(rdev, fence->ring))
 #ifdef __NetBSD__
-			radeon_wakeup(rdev);
+			radeon_fence_wakeup_locked(rdev);
 #else
 			wake_up_all_locked(&rdev->fence_queue);
 #endif
@@ -585,14 +585,12 @@ static long radeon_fence_wait_seq_timeou
 	if (intr)
 		DRM_SPIN_TIMED_WAIT_UNTIL(r, &rdev->fence_queue,
 		&rdev->fence_lock, timeout,
-		((signaled = radeon_fence_any_seq_signaled(rdev,
-			target_seq))
+		(radeon_fence_any_seq_signaled(rdev, target_seq)
 			|| rdev->needs_reset));
 	else
 		DRM_SPIN_TIMED_WAIT_NOINTR_UNTIL(r, &rdev->fence_queue,
 		&rdev->fence_lock, timeout,
-		((signaled = radeon_fence_any_seq_signaled(rdev,
-			target_seq))
+		(radeon_fence_any_seq_signaled(rdev, target_seq)
 			|| rdev->needs_reset));
 #else
 	if (intr) {
@@ -993,7 +991,7 @@ int radeon_fence_driver_init(struct rade
 #ifdef __NetBSD__
 	spin_lock_init(&rdev->fence_lock);
 	DRM_INIT_WAITQUEUE(&rdev->fence_queue, "radfence");
-	TALIQ_INIT(&rdev->fence_queue);
+	TAILQ_INIT(&rdev->fence_check);
 #else
 	init_waitqueue_head(&rdev->fence_queue);
 #endif
@@ -1030,7 +1028,7 @@ void radeon_fence_driver_fini(struct rad
 		cancel_delayed_work_sync(&rdev->fence_drv[ring].lockup_work);
 #ifdef __NetBSD__
 		spin_lock(&rdev->fence_lock);
-		radeon_wakeup(rdev);
+		radeon_fence_wakeup_locked(rdev);
 		spin_unlock(&rdev->fence_lock);
 #else
 		wake_up_all(&rdev->fence_queue);



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:49:15 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_fence.c

Log Message:
Fix 64-bit printf.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.10 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.11
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.10	Mon Aug 27 06:38:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c	Mon Aug 27 07:49:14 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_fence.c,v 1.10 2018/08/27 06:38:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_fence.c,v 1.11 2018/08/27 07:49:14 riastradh Exp $	*/
 
 /*
  * Copyright 2009 Jerome Glisse.
@@ -31,7 +31,7 @@
  *Dave Airlie
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_fence.c,v 1.10 2018/08/27 06:38:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_fence.c,v 1.11 2018/08/27 07:49:14 riastradh Exp $");
 
 #include 
 #include 
@@ -339,7 +339,7 @@ static void radeon_fence_check_lockup(st
 
 		/* good news we believe it's a lockup */
 		dev_warn(rdev->dev, "GPU lockup (current fence id "
-			 "0x%016llx last fence id 0x%016llx on ring %d)\n",
+			 "0x%016"PRIx64" last fence id 0x%016"PRIx64" on ring %d)\n",
 			 (uint64_t)atomic64_read(&fence_drv->last_seq),
 			 fence_drv->sync_seq[ring], ring);
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:49:47 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_object.c

Log Message:
Mark unused variable.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_object.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_object.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_object.c:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_object.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_object.c:1.4	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_object.c	Mon Aug 27 07:49:47 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_object.c,v 1.4 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_object.c,v 1.5 2018/08/27 07:49:47 riastradh Exp $	*/
 
 /*
  * Copyright 2009 Jerome Glisse.
@@ -32,7 +32,7 @@
  *Dave Airlie
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_object.c,v 1.4 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_object.c,v 1.5 2018/08/27 07:49:47 riastradh Exp $");
 
 #include 
 #include 
@@ -325,7 +325,7 @@ struct radeon_bo *radeon_bo_ref(struct r
 void radeon_bo_unref(struct radeon_bo **bo)
 {
 	struct ttm_buffer_object *tbo;
-	struct radeon_device *rdev;
+	struct radeon_device *rdev __unused;
 
 	if ((*bo) == NULL)
 		return;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:49:04 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_display.c
radeon_dp_mst.c

Log Message:
Mark unused variables.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_dp_mst.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.7 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.7	Mon Aug 27 07:48:51 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c	Mon Aug 27 07:49:04 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_display.c,v 1.7 2018/08/27 07:48:51 riastradh Exp $	*/
+/*	$NetBSD: radeon_display.c,v 1.8 2018/08/27 07:49:04 riastradh Exp $	*/
 
 /*
  * Copyright 2007-8 Advanced Micro Devices, Inc.
@@ -26,7 +26,7 @@
  *  Alex Deucher
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_display.c,v 1.7 2018/08/27 07:48:51 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_display.c,v 1.8 2018/08/27 07:49:04 riastradh Exp $");
 
 #include 
 #include 
@@ -1768,7 +1768,7 @@ bool radeon_crtc_scaling_mode_fixup(stru
 	struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc);
 	struct radeon_encoder *radeon_encoder;
 	struct drm_connector *connector;
-	struct radeon_connector *radeon_connector;
+	struct radeon_connector *radeon_connector __unused;
 	bool first = true;
 	u32 src_v = 1, dst_v = 1;
 	u32 src_h = 1, dst_h = 1;

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_dp_mst.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_dp_mst.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_dp_mst.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_dp_mst.c:1.2	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_dp_mst.c	Mon Aug 27 07:49:04 2018
@@ -1,8 +1,8 @@
-/*	$NetBSD: radeon_dp_mst.c,v 1.2 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_dp_mst.c,v 1.3 2018/08/27 07:49:04 riastradh Exp $	*/
 
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_dp_mst.c,v 1.2 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_dp_mst.c,v 1.3 2018/08/27 07:49:04 riastradh Exp $");
 
 #include 
 #include 
@@ -398,7 +398,7 @@ radeon_mst_encoder_dpms(struct drm_encod
 	struct radeon_connector *radeon_connector;
 	struct drm_crtc *crtc;
 	struct radeon_crtc *radeon_crtc;
-	int ret, slots;
+	int ret __unused, slots;
 
 	if (!ASIC_IS_DCE5(rdev)) {
 		DRM_ERROR("got mst dpms on non-DCE5\n");



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:48:51 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_display.c

Log Message:
Ifdef out radeon prime.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.6 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.6	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c	Mon Aug 27 07:48:51 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_display.c,v 1.6 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_display.c,v 1.7 2018/08/27 07:48:51 riastradh Exp $	*/
 
 /*
  * Copyright 2007-8 Advanced Micro Devices, Inc.
@@ -26,7 +26,7 @@
  *  Alex Deucher
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_display.c,v 1.6 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_display.c,v 1.7 2018/08/27 07:48:51 riastradh Exp $");
 
 #include 
 #include 
@@ -1404,11 +1404,13 @@ radeon_user_framebuffer_create(struct dr
 		return ERR_PTR(-ENOENT);
 	}
 
+#ifndef __NetBSD__		/* XXX radeon prime */
 	/* Handle is imported dma-buf, so cannot be migrated to VRAM for scanout */
 	if (obj->import_attach) {
 		DRM_DEBUG_KMS("Cannot create framebuffer from imported dma_buf\n");
 		return ERR_PTR(-EINVAL);
 	}
+#endif
 
 	radeon_fb = kzalloc(sizeof(*radeon_fb), GFP_KERNEL);
 	if (radeon_fb == NULL) {



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:48:40 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_device.c

Log Message:
Ifdef out radeon vga in error branch.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c:1.5 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c:1.5	Mon Aug 27 07:44:12 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c	Mon Aug 27 07:48:40 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_device.c,v 1.5 2018/08/27 07:44:12 riastradh Exp $	*/
+/*	$NetBSD: radeon_device.c,v 1.6 2018/08/27 07:48:40 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_device.c,v 1.5 2018/08/27 07:44:12 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_device.c,v 1.6 2018/08/27 07:48:40 riastradh Exp $");
 
 #include 
 #include 
@@ -1697,8 +1697,10 @@ int radeon_device_init(struct radeon_dev
 	return 0;
 
 failed:
+#ifndef __NetBSD__		/* XXX radeon vga */
 	if (runtime)
 		vga_switcheroo_fini_domain_pm_ops(rdev->dev);
+#endif
 	return r;
 }
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:48:20 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_kfd.c

Log Message:
bus_space_read/write_4, not readl/writel.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c:1.5 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c:1.5	Mon Aug 27 07:48:07 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c	Mon Aug 27 07:48:20 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_kfd.c,v 1.5 2018/08/27 07:48:07 riastradh Exp $	*/
+/*	$NetBSD: radeon_kfd.c,v 1.6 2018/08/27 07:48:20 riastradh Exp $	*/
 
 /*
  * Copyright 2014 Advanced Micro Devices, Inc.
@@ -23,7 +23,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_kfd.c,v 1.5 2018/08/27 07:48:07 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_kfd.c,v 1.6 2018/08/27 07:48:20 riastradh Exp $");
 
 #include 
 #include 
@@ -342,14 +342,22 @@ static void write_register(struct kgd_de
 {
 	struct radeon_device *rdev = get_radeon_device(kgd);
 
+#ifdef __NetBSD__
+	bus_space_write_4(rdev->rmmio_bst, rdev->rmmio_bsh, offset, value);
+#else
 	writel(value, (void __iomem *)(rdev->rmmio + offset));
+#endif
 }
 
 static uint32_t read_register(struct kgd_dev *kgd, uint32_t offset)
 {
 	struct radeon_device *rdev = get_radeon_device(kgd);
 
+#ifdef __NetBSD__
+	return bus_space_read_4(rdev->rmmio_bst, rdev->rmmio_bsh, offset);
+#else
 	return readl((void __iomem *)(rdev->rmmio + offset));
+#endif
 }
 
 static void lock_srbm(struct kgd_dev *kgd, uint32_t mec, uint32_t pipe,



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:47:56 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_gem.c radeon_ttm.c

Log Message:
Disable radeon userptr for now.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gem.c
cvs rdiff -u -r1.10 -r1.11 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gem.c:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gem.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gem.c:1.4	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gem.c	Mon Aug 27 07:47:55 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_gem.c,v 1.4 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_gem.c,v 1.5 2018/08/27 07:47:55 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_gem.c,v 1.4 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_gem.c,v 1.5 2018/08/27 07:47:55 riastradh Exp $");
 
 #include 
 #include 
@@ -290,6 +290,15 @@ int radeon_gem_create_ioctl(struct drm_d
 int radeon_gem_userptr_ioctl(struct drm_device *dev, void *data,
 			 struct drm_file *filp)
 {
+#ifdef __NetBSD__
+	/*
+	 * XXX Too painful to contemplate for now.  If you add this,
+	 * make sure to update radeon_cs.c radeon_cs_parser_relocs
+	 * (need_mmap_lock), and anything else using
+	 * radeon_ttm_tt_has_userptr.
+	 */
+	return -ENODEV;
+#else
 	struct radeon_device *rdev = dev->dev_private;
 	struct drm_radeon_gem_userptr *args = data;
 	struct drm_gem_object *gobj;
@@ -373,6 +382,7 @@ handle_lockup:
 	r = radeon_gem_handle_lockup(rdev, r);
 
 	return r;
+#endif
 }
 
 int radeon_gem_set_domain_ioctl(struct drm_device *dev, void *data,

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.10 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.11
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.10	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c	Mon Aug 27 07:47:55 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_ttm.c,v 1.10 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_ttm.c,v 1.11 2018/08/27 07:47:55 riastradh Exp $	*/
 
 /*
  * Copyright 2009 Jerome Glisse.
@@ -32,7 +32,7 @@
  *Dave Airlie
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_ttm.c,v 1.10 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_ttm.c,v 1.11 2018/08/27 07:47:55 riastradh Exp $");
 
 #include 
 #include 
@@ -880,6 +880,15 @@ static const struct uvm_pagerops radeon_
 int radeon_ttm_tt_set_userptr(struct ttm_tt *ttm, uint64_t addr,
 			  uint32_t flags)
 {
+#ifdef __NetBSD__
+	/*
+	 * XXX Too painful to contemplate for now.  If you add this,
+	 * make sure to update radeon_cs.c radeon_cs_parser_relocs
+	 * (need_mmap_lock), and anything else using
+	 * radeon_ttm_tt_has_userptr.
+	 */
+	return -ENODEV;
+#else
 	struct radeon_ttm_tt *gtt = radeon_ttm_tt_to_gtt(ttm);
 
 	if (gtt == NULL)
@@ -889,6 +898,7 @@ int radeon_ttm_tt_set_userptr(struct ttm
 	gtt->usermm = current->mm;
 	gtt->userflags = flags;
 	return 0;
+#endif
 }
 
 bool radeon_ttm_tt_has_userptr(struct ttm_tt *ttm)



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:48:30 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_cs.c

Log Message:
Ifdef out unreachable linuxisms while we have no radeon userptr.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_cs.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_cs.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_cs.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_cs.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_cs.c:1.2	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_cs.c	Mon Aug 27 07:48:30 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_cs.c,v 1.2 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_cs.c,v 1.3 2018/08/27 07:48:30 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Jerome Glisse.
@@ -27,7 +27,7 @@
  *Jerome Glisse 
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_cs.c,v 1.2 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_cs.c,v 1.3 2018/08/27 07:48:30 riastradh Exp $");
 
 #include 
 #include 
@@ -181,13 +181,21 @@ static int radeon_cs_parser_relocs(struc
 	if (p->cs_flags & RADEON_CS_USE_VM)
 		p->vm_bos = radeon_vm_get_bos(p->rdev, p->ib.vm,
 	  &p->validated);
+#ifdef __NetBSD__
+	KASSERTMSG(!need_mmap_lock,
+	"someone didn't finish adding support for userptr"
+	" and it wasn't me");
+#else
 	if (need_mmap_lock)
 		down_read(¤t->mm->mmap_sem);
+#endif
 
 	r = radeon_bo_list_validate(p->rdev, &p->ticket, &p->validated, p->ring);
 
+#ifndef __NetBSD__
 	if (need_mmap_lock)
 		up_read(¤t->mm->mmap_sem);
+#endif
 
 	return r;
 }



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:48:07 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_kfd.c

Log Message:
Ifdef out a symbol_put that we won't be using.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c:1.4	Mon Aug 27 06:45:07 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c	Mon Aug 27 07:48:07 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_kfd.c,v 1.4 2018/08/27 06:45:07 riastradh Exp $	*/
+/*	$NetBSD: radeon_kfd.c,v 1.5 2018/08/27 07:48:07 riastradh Exp $	*/
 
 /*
  * Copyright 2014 Advanced Micro Devices, Inc.
@@ -23,7 +23,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_kfd.c,v 1.4 2018/08/27 06:45:07 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_kfd.c,v 1.5 2018/08/27 07:48:07 riastradh Exp $");
 
 #include 
 #include 
@@ -172,7 +172,9 @@ void radeon_kfd_fini(void)
 {
 	if (kgd2kfd) {
 		kgd2kfd->exit();
+#ifdef CONFIG_HSA_AMD_MODULE
 		symbol_put(kgd2kfd_init);
+#endif
 	}
 }
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:46:38 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_i2c.c

Log Message:
mutex init/destroy


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_i2c.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_i2c.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_i2c.c:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_i2c.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_i2c.c:1.4	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_i2c.c	Mon Aug 27 07:46:38 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_i2c.c,v 1.4 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_i2c.c,v 1.5 2018/08/27 07:46:38 riastradh Exp $	*/
 
 /*
  * Copyright 2007-8 Advanced Micro Devices, Inc.
@@ -26,7 +26,7 @@
  *  Alex Deucher
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_i2c.c,v 1.4 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_i2c.c,v 1.5 2018/08/27 07:46:38 riastradh Exp $");
 
 #include 
 #include 
@@ -933,7 +933,11 @@ struct radeon_i2c_chan *radeon_i2c_creat
 	i2c->adapter.dev.parent = dev->dev;
 	i2c->dev = dev;
 	i2c_set_adapdata(&i2c->adapter, i2c);
+#ifdef __NetBSD__
+	linux_mutex_init(&i2c->mutex);
+#else
 	mutex_init(&i2c->mutex);
+#endif
 	if (rec->mm_i2c ||
 	(rec->hw_capable &&
 	 radeon_hw_i2c &&
@@ -983,6 +987,11 @@ struct radeon_i2c_chan *radeon_i2c_creat
 
 	return i2c;
 out_free:
+#ifdef __NetBSD__
+	linux_mutex_destroy(&i2c->mutex);
+#else
+	mutex_destroy(&i2c->mutex);
+#endif
 	kfree(i2c);
 	return NULL;
 
@@ -995,6 +1004,11 @@ void radeon_i2c_destroy(struct radeon_i2
 	i2c_del_adapter(&i2c->adapter);
 	if (i2c->has_aux)
 		drm_dp_aux_unregister(&i2c->aux);
+#ifdef __NetBSD__
+	linux_mutex_destroy(&i2c->mutex);
+#else
+	mutex_destroy(&i2c->mutex);
+#endif
 	kfree(i2c);
 }
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:44:22 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_fb.c

Log Message:
Ifdef out Linux framebuffer API in error branch.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fb.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fb.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fb.c:1.6 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fb.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fb.c:1.6	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fb.c	Mon Aug 27 07:44:22 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_fb.c,v 1.6 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_fb.c,v 1.7 2018/08/27 07:44:22 riastradh Exp $	*/
 
 /*
  * Copyright © 2007 David Airlie
@@ -26,7 +26,7 @@
  * David Airlie
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_fb.c,v 1.6 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_fb.c,v 1.7 2018/08/27 07:44:22 riastradh Exp $");
 
 #include 
 #include 
@@ -327,8 +327,10 @@ static int radeonfb_create(struct drm_fb
 #endif
 	return 0;
 
+#ifndef __NetBSD__
 out_destroy_fbi:
 	drm_fb_helper_release_fbi(helper);
+#endif
 out_unref:
 	if (rbo) {
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:44:12 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_device.c

Log Message:
Assume we're not a VM guest in radeon for now.

Not sure exactly what the consequences of this are but we'll cross
that bridge when we come to it.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c:1.4	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c	Mon Aug 27 07:44:12 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_device.c,v 1.4 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_device.c,v 1.5 2018/08/27 07:44:12 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_device.c,v 1.4 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_device.c,v 1.5 2018/08/27 07:44:12 riastradh Exp $");
 
 #include 
 #include 
@@ -670,7 +670,11 @@ void radeon_gtt_location(struct radeon_d
 static bool radeon_device_is_virtual(void)
 {
 #ifdef CONFIG_X86
+#ifdef __NetBSD__		/* XXX virtualization */
+	return false;
+#else
 	return boot_cpu_has(X86_FEATURE_HYPERVISOR);
+#endif
 #else
 	return false;
 #endif



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:44:01 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_connectors.c

Log Message:
Mark unused variable as such.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_connectors.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_connectors.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_connectors.c:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_connectors.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_connectors.c:1.4	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_connectors.c	Mon Aug 27 07:44:01 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_connectors.c,v 1.4 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_connectors.c,v 1.5 2018/08/27 07:44:01 riastradh Exp $	*/
 
 /*
  * Copyright 2007-8 Advanced Micro Devices, Inc.
@@ -26,7 +26,7 @@
  *  Alex Deucher
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_connectors.c,v 1.4 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_connectors.c,v 1.5 2018/08/27 07:44:01 riastradh Exp $");
 
 #include 
 #include 
@@ -2517,7 +2517,7 @@ void radeon_setup_mst_connector(struct d
 		return;
 
 	list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
-		int ret;
+		int ret __unused;
 
 		radeon_connector = to_radeon_connector(connector);
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:43:50 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: r300.c

Log Message:
Fix variable name-o in merge.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/drm/radeon/r300.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/r300.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/r300.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/r300.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/r300.c:1.3	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/r300.c	Mon Aug 27 07:43:50 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: r300.c,v 1.3 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: r300.c,v 1.4 2018/08/27 07:43:50 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: r300.c,v 1.3 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: r300.c,v 1.4 2018/08/27 07:43:50 riastradh Exp $");
 
 #include 
 #include 
@@ -143,7 +143,7 @@ void rv370_pcie_gart_set_page(struct rad
 	/* on x86 we want this to be CPU endian, on powerpc
 	 * on powerpc without HW swappers, it'll get swapped on way
 	 * into VRAM - so no need for cpu_to_le32 on VRAM tables */
-	writel(addr, (uint8_t __iomem *)ptr + (i * 4));
+	writel(entry, (uint8_t __iomem *)ptr + (i * 4));
 }
 
 #ifdef __NetBSD__



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 07:07:12 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: evergreen_cs.c

Log Message:
Fix 64-bit printf.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c:1.5 src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c:1.5	Mon Aug 27 04:58:35 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c	Mon Aug 27 07:07:12 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: evergreen_cs.c,v 1.5 2018/08/27 04:58:35 riastradh Exp $	*/
+/*	$NetBSD: evergreen_cs.c,v 1.6 2018/08/27 07:07:12 riastradh Exp $	*/
 
 /*
  * Copyright 2010 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: evergreen_cs.c,v 1.5 2018/08/27 04:58:35 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: evergreen_cs.c,v 1.6 2018/08/27 07:07:12 riastradh Exp $");
 
 #include 
 #include "radeon.h"
@@ -2078,7 +2078,7 @@ static int evergreen_packet3_check(struc
 		}
 
 		if (idx_value + size > track->indirect_draw_buffer_size) {
-			dev_warn(p->dev, "DRAW_INDIRECT buffer too small %u + %llu > %lu\n",
+			dev_warn(p->dev, "DRAW_INDIRECT buffer too small %u + %"PRIx64" > %lu\n",
 idx_value, size, track->indirect_draw_buffer_size);
 			return -EINVAL;
 		}



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 06:45:07 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_kfd.c radeon_kfd.h

Log Message:
Revert "Add volatile to the second argument of radeon_kfd_interrupt to appease"

This reverts commit 1692f7bf1e9f150093b3c238f6706301bb243295.

Stack of things that must change is too deep -- let's just use
__UNVOLATILE here.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c:1.3	Mon Aug 27 06:43:35 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c	Mon Aug 27 06:45:07 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_kfd.c,v 1.3 2018/08/27 06:43:35 riastradh Exp $	*/
+/*	$NetBSD: radeon_kfd.c,v 1.4 2018/08/27 06:45:07 riastradh Exp $	*/
 
 /*
  * Copyright 2014 Advanced Micro Devices, Inc.
@@ -23,7 +23,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_kfd.c,v 1.3 2018/08/27 06:43:35 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_kfd.c,v 1.4 2018/08/27 06:45:07 riastradh Exp $");
 
 #include 
 #include 
@@ -210,7 +210,7 @@ void radeon_kfd_device_fini(struct radeo
 	}
 }
 
-void radeon_kfd_interrupt(struct radeon_device *rdev, const volatile void *ih_ring_entry)
+void radeon_kfd_interrupt(struct radeon_device *rdev, const void *ih_ring_entry)
 {
 	if (rdev->kfd)
 		kgd2kfd->interrupt(rdev->kfd, ih_ring_entry);
Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.h
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.h:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.h:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.h:1.3	Mon Aug 27 06:43:35 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.h	Mon Aug 27 06:45:07 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_kfd.h,v 1.3 2018/08/27 06:43:35 riastradh Exp $	*/
+/*	$NetBSD: radeon_kfd.h,v 1.4 2018/08/27 06:45:07 riastradh Exp $	*/
 
 /*
  * Copyright 2014 Advanced Micro Devices, Inc.
@@ -41,7 +41,7 @@ void radeon_kfd_fini(void);
 void radeon_kfd_suspend(struct radeon_device *rdev);
 int radeon_kfd_resume(struct radeon_device *rdev);
 void radeon_kfd_interrupt(struct radeon_device *rdev,
-			const volatile void *ih_ring_entry);
+			const void *ih_ring_entry);
 void radeon_kfd_device_probe(struct radeon_device *rdev);
 void radeon_kfd_device_init(struct radeon_device *rdev);
 void radeon_kfd_device_fini(struct radeon_device *rdev);



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 06:45:22 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: cik.c

Log Message:
Drop volatile on the floor because keeping it is too much trouble.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/dist/drm/radeon/cik.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/cik.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/cik.c:1.7 src/sys/external/bsd/drm2/dist/drm/radeon/cik.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/radeon/cik.c:1.7	Mon Aug 27 06:44:00 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/cik.c	Mon Aug 27 06:45:22 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: cik.c,v 1.7 2018/08/27 06:44:00 riastradh Exp $	*/
+/*	$NetBSD: cik.c,v 1.8 2018/08/27 06:45:22 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  * Authors: Alex Deucher
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: cik.c,v 1.7 2018/08/27 06:44:00 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cik.c,v 1.8 2018/08/27 06:45:22 riastradh Exp $");
 
 #include 
 #include 
@@ -7946,7 +7946,7 @@ restart_ih:
 		ring_index = rptr / 4;
 
 		radeon_kfd_interrupt(rdev,
-(const void *) &rdev->ih.ring[ring_index]);
+		(const void *)__UNVOLATILE(&rdev->ih.ring[ring_index]));
 
 		src_id =  le32_to_cpu(rdev->ih.ring[ring_index]) & 0xff;
 		src_data = le32_to_cpu(rdev->ih.ring[ring_index + 1]) & 0xfff;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-26 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 06:44:29 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_asic.c

Log Message:
Rename past typo CONFIG_DEBUGFS to CONFIG_DEBUG_FS to match upstream.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_asic.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_asic.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_asic.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_asic.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_asic.c:1.3	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_asic.c	Mon Aug 27 06:44:29 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_asic.c,v 1.3 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_asic.c,v 1.4 2018/08/27 06:44:29 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -29,7 +29,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_asic.c,v 1.3 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_asic.c,v 1.4 2018/08/27 06:44:29 riastradh Exp $");
 
 #include 
 #include 
@@ -1099,7 +1099,7 @@ static struct radeon_asic rv6xx_asic = {
 		.get_sclk = &rv6xx_dpm_get_sclk,
 		.get_mclk = &rv6xx_dpm_get_mclk,
 		.print_power_state = &rv6xx_dpm_print_power_state,
-#ifdef CONFIG_DEBUGFS
+#ifdef CONFIG_DEBUG_FS
 		.debugfs_print_current_performance_level = &rv6xx_dpm_debugfs_print_current_performance_level,
 #endif
 		.force_performance_level = &rv6xx_dpm_force_performance_level,
@@ -1194,7 +1194,7 @@ static struct radeon_asic rs780_asic = {
 		.get_sclk = &rs780_dpm_get_sclk,
 		.get_mclk = &rs780_dpm_get_mclk,
 		.print_power_state = &rs780_dpm_print_power_state,
-#ifdef CONFIG_DEBUGFS
+#ifdef CONFIG_DEBUG_FS
 		.debugfs_print_current_performance_level = &rs780_dpm_debugfs_print_current_performance_level,
 #endif
 		.force_performance_level = &rs780_dpm_force_performance_level,
@@ -1302,7 +1302,7 @@ static struct radeon_asic rv770_asic = {
 		.get_sclk = &rv770_dpm_get_sclk,
 		.get_mclk = &rv770_dpm_get_mclk,
 		.print_power_state = &rv770_dpm_print_power_state,
-#ifdef CONFIG_DEBUGFS
+#ifdef CONFIG_DEBUG_FS
 		.debugfs_print_current_performance_level = &rv770_dpm_debugfs_print_current_performance_level,
 #endif
 		.force_performance_level = &rv770_dpm_force_performance_level,
@@ -1424,7 +1424,7 @@ static struct radeon_asic evergreen_asic
 		.get_sclk = &rv770_dpm_get_sclk,
 		.get_mclk = &rv770_dpm_get_mclk,
 		.print_power_state = &rv770_dpm_print_power_state,
-#ifdef CONFIG_DEBUGFS
+#ifdef CONFIG_DEBUG_FS
 		.debugfs_print_current_performance_level = &rv770_dpm_debugfs_print_current_performance_level,
 #endif
 		.force_performance_level = &rv770_dpm_force_performance_level,
@@ -1520,7 +1520,7 @@ static struct radeon_asic sumo_asic = {
 		.get_sclk = &sumo_dpm_get_sclk,
 		.get_mclk = &sumo_dpm_get_mclk,
 		.print_power_state = &sumo_dpm_print_power_state,
-#ifdef CONFIG_DEBUGFS
+#ifdef CONFIG_DEBUG_FS
 		.debugfs_print_current_performance_level = &sumo_dpm_debugfs_print_current_performance_level,
 #endif
 		.force_performance_level = &sumo_dpm_force_performance_level,
@@ -1615,7 +1615,7 @@ static struct radeon_asic btc_asic = {
 		.get_sclk = &btc_dpm_get_sclk,
 		.get_mclk = &btc_dpm_get_mclk,
 		.print_power_state = &rv770_dpm_print_power_state,
-#ifdef CONFIG_DEBUGFS
+#ifdef CONFIG_DEBUG_FS
 		.debugfs_print_current_performance_level = &btc_dpm_debugfs_print_current_performance_level,
 #endif
 		.force_performance_level = &rv770_dpm_force_performance_level,
@@ -1765,7 +1765,7 @@ static struct radeon_asic cayman_asic = 
 		.get_sclk = &ni_dpm_get_sclk,
 		.get_mclk = &ni_dpm_get_mclk,
 		.print_power_state = &ni_dpm_print_power_state,
-#ifdef CONFIG_DEBUGFS
+#ifdef CONFIG_DEBUG_FS
 		.debugfs_print_current_performance_level = &ni_dpm_debugfs_print_current_performance_level,
 #endif
 		.force_performance_level = &ni_dpm_force_performance_level,
@@ -1888,7 +1888,7 @@ static struct radeon_asic trinity_asic =
 		.get_sclk = &trinity_dpm_get_sclk,
 		.get_mclk = &trinity_dpm_get_mclk,
 		.print_power_state = &trinity_dpm_print_power_state,
-#ifdef CONFIG_DEBUGFS
+#ifdef CONFIG_DEBUG_FS
 		.debugfs_print_current_performance_level = &trinity_dpm_debugfs_print_current_performance_level,
 #endif
 		.force_performance_level = &trinity_dpm_force_performance_level,
@@ -2028,7 +2028,7 @@ static struct radeon_asic si_asic = {
 		.get_sclk = &ni_dpm_get_sclk,
 		.get_mclk = &ni_dpm_get_mclk,
 		.print_power_state = &ni_dpm_print_power_state,
-#ifdef CONFIG_DEBUGFS
+#ifdef CONFIG_DEBUG_FS
 		.debugfs_print_current_performance_level = &si_dpm_debugfs_print_current_performance_level,
 #endif
 		.force_performance_level = &si_dpm_force_performance_level,
@@ -2200,7 +2200,7 @@ static struct ra

CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-26 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 06:43:35 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_kfd.c radeon_kfd.h

Log Message:
Add volatile to the second argument of radeon_kfd_interrupt to appease
gcc

(previously warning about discarded qualifier. There's only one user.)

Author: coypu 
Committer: Taylor R Campbell 


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c:1.2	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.c	Mon Aug 27 06:43:35 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_kfd.c,v 1.2 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_kfd.c,v 1.3 2018/08/27 06:43:35 riastradh Exp $	*/
 
 /*
  * Copyright 2014 Advanced Micro Devices, Inc.
@@ -23,7 +23,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_kfd.c,v 1.2 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_kfd.c,v 1.3 2018/08/27 06:43:35 riastradh Exp $");
 
 #include 
 #include 
@@ -210,7 +210,7 @@ void radeon_kfd_device_fini(struct radeo
 	}
 }
 
-void radeon_kfd_interrupt(struct radeon_device *rdev, const void *ih_ring_entry)
+void radeon_kfd_interrupt(struct radeon_device *rdev, const volatile void *ih_ring_entry)
 {
 	if (rdev->kfd)
 		kgd2kfd->interrupt(rdev->kfd, ih_ring_entry);
Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.h
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.h:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.h:1.2	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kfd.h	Mon Aug 27 06:43:35 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_kfd.h,v 1.2 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_kfd.h,v 1.3 2018/08/27 06:43:35 riastradh Exp $	*/
 
 /*
  * Copyright 2014 Advanced Micro Devices, Inc.
@@ -41,7 +41,7 @@ void radeon_kfd_fini(void);
 void radeon_kfd_suspend(struct radeon_device *rdev);
 int radeon_kfd_resume(struct radeon_device *rdev);
 void radeon_kfd_interrupt(struct radeon_device *rdev,
-			const void *ih_ring_entry);
+			const volatile void *ih_ring_entry);
 void radeon_kfd_device_probe(struct radeon_device *rdev);
 void radeon_kfd_device_init(struct radeon_device *rdev);
 void radeon_kfd_device_fini(struct radeon_device *rdev);



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-26 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 06:44:00 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: cik.c

Log Message:
Revert "No arithmetic on void *.  No dropping volatile on floor."

This reverts commit abb291aa152b53f4798447d572a47cd155052939.

Using char * in struct firmware obviated the need for this.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/sys/external/bsd/drm2/dist/drm/radeon/cik.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/cik.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/cik.c:1.6 src/sys/external/bsd/drm2/dist/drm/radeon/cik.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/radeon/cik.c:1.6	Mon Aug 27 06:41:13 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/cik.c	Mon Aug 27 06:44:00 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: cik.c,v 1.6 2018/08/27 06:41:13 riastradh Exp $	*/
+/*	$NetBSD: cik.c,v 1.7 2018/08/27 06:44:00 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  * Authors: Alex Deucher
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: cik.c,v 1.6 2018/08/27 06:41:13 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cik.c,v 1.7 2018/08/27 06:44:00 riastradh Exp $");
 
 #include 
 #include 
@@ -6373,7 +6373,7 @@ static int cik_rlc_resume(struct radeon_
 		const struct rlc_firmware_header_v1_0 *hdr =
 			(const struct rlc_firmware_header_v1_0 *)rdev->rlc_fw->data;
 		const __le32 *fw_data = (const __le32 *)
-			((const char *)rdev->rlc_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
+			(rdev->rlc_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
 
 		radeon_ucode_print_rlc_hdr(&hdr->header);
 
@@ -6869,31 +6869,31 @@ void cik_init_cp_pg_table(struct radeon_
 			if (me == 0) {
 hdr = (const struct gfx_firmware_header_v1_0 *)rdev->ce_fw->data;
 fw_data = (const __le32 *)
-	((const char *)rdev->ce_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
+	(rdev->ce_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
 table_offset = le32_to_cpu(hdr->jt_offset);
 table_size = le32_to_cpu(hdr->jt_size);
 			} else if (me == 1) {
 hdr = (const struct gfx_firmware_header_v1_0 *)rdev->pfp_fw->data;
 fw_data = (const __le32 *)
-	((const char *)rdev->pfp_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
+	(rdev->pfp_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
 table_offset = le32_to_cpu(hdr->jt_offset);
 table_size = le32_to_cpu(hdr->jt_size);
 			} else if (me == 2) {
 hdr = (const struct gfx_firmware_header_v1_0 *)rdev->me_fw->data;
 fw_data = (const __le32 *)
-	((const char *)rdev->me_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
+	(rdev->me_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
 table_offset = le32_to_cpu(hdr->jt_offset);
 table_size = le32_to_cpu(hdr->jt_size);
 			} else if (me == 3) {
 hdr = (const struct gfx_firmware_header_v1_0 *)rdev->mec_fw->data;
 fw_data = (const __le32 *)
-	((const char *)rdev->mec_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
+	(rdev->mec_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
 table_offset = le32_to_cpu(hdr->jt_offset);
 table_size = le32_to_cpu(hdr->jt_size);
 			} else {
 hdr = (const struct gfx_firmware_header_v1_0 *)rdev->mec2_fw->data;
 fw_data = (const __le32 *)
-	((const char *)rdev->mec2_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
+	(rdev->mec2_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
 table_offset = le32_to_cpu(hdr->jt_offset);
 table_size = le32_to_cpu(hdr->jt_size);
 			}
@@ -7946,7 +7946,7 @@ restart_ih:
 		ring_index = rptr / 4;
 
 		radeon_kfd_interrupt(rdev,
-(const volatile void *) &rdev->ih.ring[ring_index]);
+(const void *) &rdev->ih.ring[ring_index]);
 
 		src_id =  le32_to_cpu(rdev->ih.ring[ring_index]) & 0xff;
 		src_data = le32_to_cpu(rdev->ih.ring[ring_index + 1]) & 0xfff;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-26 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 06:41:13 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: cik.c

Log Message:
No arithmetic on void *.  No dropping volatile on floor.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/external/bsd/drm2/dist/drm/radeon/cik.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/cik.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/cik.c:1.5 src/sys/external/bsd/drm2/dist/drm/radeon/cik.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/radeon/cik.c:1.5	Mon Aug 27 06:38:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/cik.c	Mon Aug 27 06:41:13 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: cik.c,v 1.5 2018/08/27 06:38:36 riastradh Exp $	*/
+/*	$NetBSD: cik.c,v 1.6 2018/08/27 06:41:13 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  * Authors: Alex Deucher
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: cik.c,v 1.5 2018/08/27 06:38:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cik.c,v 1.6 2018/08/27 06:41:13 riastradh Exp $");
 
 #include 
 #include 
@@ -6373,7 +6373,7 @@ static int cik_rlc_resume(struct radeon_
 		const struct rlc_firmware_header_v1_0 *hdr =
 			(const struct rlc_firmware_header_v1_0 *)rdev->rlc_fw->data;
 		const __le32 *fw_data = (const __le32 *)
-			(rdev->rlc_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
+			((const char *)rdev->rlc_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
 
 		radeon_ucode_print_rlc_hdr(&hdr->header);
 
@@ -6869,31 +6869,31 @@ void cik_init_cp_pg_table(struct radeon_
 			if (me == 0) {
 hdr = (const struct gfx_firmware_header_v1_0 *)rdev->ce_fw->data;
 fw_data = (const __le32 *)
-	(rdev->ce_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
+	((const char *)rdev->ce_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
 table_offset = le32_to_cpu(hdr->jt_offset);
 table_size = le32_to_cpu(hdr->jt_size);
 			} else if (me == 1) {
 hdr = (const struct gfx_firmware_header_v1_0 *)rdev->pfp_fw->data;
 fw_data = (const __le32 *)
-	(rdev->pfp_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
+	((const char *)rdev->pfp_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
 table_offset = le32_to_cpu(hdr->jt_offset);
 table_size = le32_to_cpu(hdr->jt_size);
 			} else if (me == 2) {
 hdr = (const struct gfx_firmware_header_v1_0 *)rdev->me_fw->data;
 fw_data = (const __le32 *)
-	(rdev->me_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
+	((const char *)rdev->me_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
 table_offset = le32_to_cpu(hdr->jt_offset);
 table_size = le32_to_cpu(hdr->jt_size);
 			} else if (me == 3) {
 hdr = (const struct gfx_firmware_header_v1_0 *)rdev->mec_fw->data;
 fw_data = (const __le32 *)
-	(rdev->mec_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
+	((const char *)rdev->mec_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
 table_offset = le32_to_cpu(hdr->jt_offset);
 table_size = le32_to_cpu(hdr->jt_size);
 			} else {
 hdr = (const struct gfx_firmware_header_v1_0 *)rdev->mec2_fw->data;
 fw_data = (const __le32 *)
-	(rdev->mec2_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
+	((const char *)rdev->mec2_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
 table_offset = le32_to_cpu(hdr->jt_offset);
 table_size = le32_to_cpu(hdr->jt_size);
 			}
@@ -7946,7 +7946,7 @@ restart_ih:
 		ring_index = rptr / 4;
 
 		radeon_kfd_interrupt(rdev,
-(const void *) &rdev->ih.ring[ring_index]);
+(const volatile void *) &rdev->ih.ring[ring_index]);
 
 		src_id =  le32_to_cpu(rdev->ih.ring[ring_index]) & 0xff;
 		src_data = le32_to_cpu(rdev->ih.ring[ring_index + 1]) & 0xfff;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-26 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 06:40:56 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: ci_dpm.c

Log Message:
Formerly unused functions are no longer unused.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c:1.7 src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c:1.7	Mon Aug 27 06:38:10 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c	Mon Aug 27 06:40:56 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: ci_dpm.c,v 1.7 2018/08/27 06:38:10 riastradh Exp $	*/
+/*	$NetBSD: ci_dpm.c,v 1.8 2018/08/27 06:40:56 riastradh Exp $	*/
 
 /*
  * Copyright 2013 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: ci_dpm.c,v 1.7 2018/08/27 06:38:10 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ci_dpm.c,v 1.8 2018/08/27 06:40:56 riastradh Exp $");
 
 #include 
 #include "drmP.h"
@@ -185,10 +185,8 @@ static int ci_get_std_voltage_value_sidd
 	 struct atom_voltage_table_entry *voltage_table,
 	 u16 *std_voltage_hi_sidd, u16 *std_voltage_lo_sidd);
 static int ci_set_power_limit(struct radeon_device *rdev, u32 n);
-#ifndef __NetBSD__		/* XXX unused? */
 static int ci_set_overdrive_target_tdp(struct radeon_device *rdev,
    u32 target_tdp);
-#endif
 static int ci_update_uvd_dpm(struct radeon_device *rdev, bool gate);
 
 static PPSMC_Result ci_send_msg_to_smc_with_parameter(struct radeon_device *rdev,
@@ -743,7 +741,6 @@ static int ci_enable_thermal_based_sclk_
 		return -EINVAL;
 }
 
-#ifndef __NetBSD__		/* XXX unused? */
 static int ci_power_control_set_level(struct radeon_device *rdev)
 {
 	struct ci_power_info *pi = ci_get_pi(rdev);
@@ -765,7 +762,6 @@ static int ci_power_control_set_level(st
 
 	return ret;
 }
-#endif
 
 void ci_dpm_powergate_uvd(struct radeon_device *rdev, bool gate)
 {
@@ -1746,7 +1742,6 @@ static int ci_set_power_limit(struct rad
 	return 0;
 }
 
-#ifndef __NetBSD__		/* XXX unused? */
 static int ci_set_overdrive_target_tdp(struct radeon_device *rdev,
    u32 target_tdp)
 {
@@ -1756,7 +1751,6 @@ static int ci_set_overdrive_target_tdp(s
 		return -EINVAL;
 	return 0;
 }
-#endif
 
 #if 0
 static int ci_set_boot_state(struct radeon_device *rdev)



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-26 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 06:40:04 UTC 2018

Removed Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_trace.h

Log Message:
radeon_trace.h causes trouble, bye!


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r0 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_trace.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-26 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 06:39:38 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: cik_sdma.c

Log Message:
cik_sdma.c needs .


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/drm/radeon/cik_sdma.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/cik_sdma.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/cik_sdma.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/cik_sdma.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/cik_sdma.c:1.3	Mon Aug 27 04:58:35 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/cik_sdma.c	Mon Aug 27 06:39:38 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: cik_sdma.c,v 1.3 2018/08/27 04:58:35 riastradh Exp $	*/
+/*	$NetBSD: cik_sdma.c,v 1.4 2018/08/27 06:39:38 riastradh Exp $	*/
 
 /*
  * Copyright 2013 Advanced Micro Devices, Inc.
@@ -24,9 +24,10 @@
  * Authors: Alex Deucher
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: cik_sdma.c,v 1.3 2018/08/27 04:58:35 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cik_sdma.c,v 1.4 2018/08/27 06:39:38 riastradh Exp $");
 
 #include 
+#include 
 #include 
 #include "radeon.h"
 #include "radeon_ucode.h"



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-26 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 06:38:52 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon.h

Log Message:
Bus space for radeon mm rwreg.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h:1.5 src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h:1.6
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h:1.5	Mon Aug 27 06:38:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h	Mon Aug 27 06:38:51 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon.h,v 1.5 2018/08/27 06:38:36 riastradh Exp $	*/
+/*	$NetBSD: radeon.h,v 1.6 2018/08/27 06:38:51 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -2553,7 +2553,11 @@ static inline uint32_t r100_mm_rreg(stru
 {
 	/* The mmio size is 64kb at minimum. Allows the if to be optimized out. */
 	if ((reg < rdev->rmmio_size || reg < RADEON_MIN_MMIO_SIZE) && !always_indirect)
+#ifdef __NetBSD__
+		return bus_space_read_4(rdev->rmmio_bst, rdev->rmmio_bsh, reg);
+#else
 		return readl(((void __iomem *)rdev->rmmio) + reg);
+#endif
 	else
 		return r100_mm_rreg_slow(rdev, reg);
 }
@@ -2561,7 +2565,11 @@ static inline void r100_mm_wreg(struct r
 bool always_indirect)
 {
 	if ((reg < rdev->rmmio_size || reg < RADEON_MIN_MMIO_SIZE) && !always_indirect)
+#ifdef __NetBSD__
+		bus_space_write_4(rdev->rmmio_bst, rdev->rmmio_bsh, reg, v);
+#else
 		writel(v, ((void __iomem *)rdev->rmmio) + reg);
+#endif
 	else
 		r100_mm_wreg_slow(rdev, reg, v);
 }



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-26 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 06:38:10 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: ci_dpm.c

Log Message:
These are no longer used only by debugfs, remove ifdefs.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c:1.6 src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c:1.6	Mon Aug 27 06:32:32 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c	Mon Aug 27 06:38:10 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: ci_dpm.c,v 1.6 2018/08/27 06:32:32 riastradh Exp $	*/
+/*	$NetBSD: ci_dpm.c,v 1.7 2018/08/27 06:38:10 riastradh Exp $	*/
 
 /*
  * Copyright 2013 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: ci_dpm.c,v 1.6 2018/08/27 06:32:32 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ci_dpm.c,v 1.7 2018/08/27 06:38:10 riastradh Exp $");
 
 #include 
 #include "drmP.h"
@@ -1765,7 +1765,6 @@ static int ci_set_boot_state(struct rade
 }
 #endif
 
-#ifdef CONFIG_DEBUG_FS
 static u32 ci_get_average_sclk_freq(struct radeon_device *rdev)
 {
 	u32 sclk_freq;
@@ -1791,7 +1790,6 @@ static u32 ci_get_average_mclk_freq(stru
 
 	return mclk_freq;
 }
-#endif
 
 static void ci_dpm_start_smc(struct radeon_device *rdev)
 {



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-26 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 06:38:36 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: cik.c radeon.h
radeon_fence.c

Log Message:
Expose fence wakeup subroutine to cik.c.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/external/bsd/drm2/dist/drm/radeon/cik.c \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h
cvs rdiff -u -r1.9 -r1.10 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/cik.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/cik.c:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/cik.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/radeon/cik.c:1.4	Mon Aug 27 04:58:35 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/cik.c	Mon Aug 27 06:38:36 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: cik.c,v 1.4 2018/08/27 04:58:35 riastradh Exp $	*/
+/*	$NetBSD: cik.c,v 1.5 2018/08/27 06:38:36 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  * Authors: Alex Deucher
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: cik.c,v 1.4 2018/08/27 04:58:35 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cik.c,v 1.5 2018/08/27 06:38:36 riastradh Exp $");
 
 #include 
 #include 
@@ -8508,8 +8508,15 @@ restart_ih:
 	if (queue_hotplug)
 		schedule_delayed_work(&rdev->hotplug_work, 0);
 	if (queue_reset) {
+#ifdef __NetBSD__
+		spin_lock(&rdev->fence_lock);
+		rdev->needs_reset = true;
+		radeon_fence_wakeup_locked(rdev);
+		spin_unlock(&rdev->fence_lock);
+#else
 		rdev->needs_reset = true;
 		wake_up_all(&rdev->fence_queue);
+#endif
 	}
 	if (queue_thermal)
 		schedule_work(&rdev->pm.dpm.thermal.work);
Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h:1.5
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h:1.4	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h	Mon Aug 27 06:38:36 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon.h,v 1.4 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon.h,v 1.5 2018/08/27 06:38:36 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -400,6 +400,7 @@ int radeon_fence_driver_init(struct rade
 void radeon_fence_driver_fini(struct radeon_device *rdev);
 void radeon_fence_driver_force_completion(struct radeon_device *rdev, int ring);
 int radeon_fence_emit(struct radeon_device *rdev, struct radeon_fence **fence, int ring);
+void radeon_fence_wakeup_locked(struct radeon_device *rdev);
 void radeon_fence_process(struct radeon_device *rdev, int ring);
 bool radeon_fence_signaled(struct radeon_fence *fence);
 int radeon_fence_wait(struct radeon_fence *fence, bool interruptible);

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.9 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.10
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.9	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c	Mon Aug 27 06:38:36 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_fence.c,v 1.9 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_fence.c,v 1.10 2018/08/27 06:38:36 riastradh Exp $	*/
 
 /*
  * Copyright 2009 Jerome Glisse.
@@ -31,7 +31,7 @@
  *Dave Airlie
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_fence.c,v 1.9 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_fence.c,v 1.10 2018/08/27 06:38:36 riastradh Exp $");
 
 #include 
 #include 
@@ -203,8 +203,8 @@ static int radeon_fence_check_signaled(w
 }
 
 #ifdef __NetBSD__
-static void
-radeon_wakeup(struct radeon_device *rdev)
+void
+radeon_fence_wakeup_locked(struct radeon_device *rdev)
 {
 	struct radeon_fence *fence, *next;
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-26 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 06:37:01 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_gart.c

Log Message:
Put all the #endifs in a row!


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.7 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.7	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c	Mon Aug 27 06:37:00 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_gart.c,v 1.7 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_gart.c,v 1.8 2018/08/27 06:37:00 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_gart.c,v 1.7 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_gart.c,v 1.8 2018/08/27 06:37:00 riastradh Exp $");
 
 #include 
 #include 
@@ -484,6 +484,7 @@ int radeon_gart_bind(struct radeon_devic
 	}
 	return 0;
 }
+#endif
 
 /**
  * radeon_gart_init - init the driver info for managing the gart



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-26 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 06:32:32 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: ci_dpm.c

Log Message:
Terminate ifdef.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c:1.5 src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c:1.5	Mon Aug 27 04:58:35 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c	Mon Aug 27 06:32:32 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: ci_dpm.c,v 1.5 2018/08/27 04:58:35 riastradh Exp $	*/
+/*	$NetBSD: ci_dpm.c,v 1.6 2018/08/27 06:32:32 riastradh Exp $	*/
 
 /*
  * Copyright 2013 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: ci_dpm.c,v 1.5 2018/08/27 04:58:35 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ci_dpm.c,v 1.6 2018/08/27 06:32:32 riastradh Exp $");
 
 #include 
 #include "drmP.h"
@@ -1756,6 +1756,7 @@ static int ci_set_overdrive_target_tdp(s
 		return -EINVAL;
 	return 0;
 }
+#endif
 
 #if 0
 static int ci_set_boot_state(struct radeon_device *rdev)



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Aug  8 22:16:49 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_gart.c

Log Message:
Fix ordering of bus_dmamap_sync.

The ordering is:

...
- driver writes to kernel pointer
- sync
- driver triggers device use of newly written data (*)
- sync
- driver writes to kernel pointer
- sync
...

The operation (*) is a DMA write.  Hence the syncs should be:

...
- driver writes to kernel pointer
- bus_dmamap_sync(BUS_DMASYNC_PREWRITE)
- driver triggers device use of newly written data
- bus_dmamap_sync(BUS_DMASYNC_POSTWRITE)
- bus_dmamap_sync(BUS_DMASYNC_PREWRITE)
- driver writes to kernel pointer
- bus_dmamap_sync(BUS_DMASYNC_POSTWRITE)
- bus_dmamap_sync(BUS_DMASYNC_PREWRITE)
...

(Preemptive pullup from my DRM/KMS update branch in Git.)

XXX pullup-7
XXX pullup-8


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.5 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.5	Sat Jul 26 05:45:53 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c	Wed Aug  8 22:16:49 2018
@@ -268,7 +268,7 @@ radeon_gart_pre_update(struct radeon_dev
 
 		bus_dmamap_sync(rdev->ddev->dmat, rdev->gart.rg_table_map,
 		gpu_pgstart*entsize, gpu_npages*entsize,
-		BUS_DMASYNC_PREWRITE);
+		BUS_DMASYNC_POSTWRITE);
 	}
 }
 
@@ -284,7 +284,7 @@ radeon_gart_post_update(struct radeon_de
 
 		bus_dmamap_sync(rdev->ddev->dmat, rdev->gart.rg_table_map,
 		gpu_pgstart*entsize, gpu_npages*entsize,
-		BUS_DMASYNC_POSTWRITE);
+		BUS_DMASYNC_PREWRITE);
 	}
 	radeon_gart_tlb_flush(rdev);
 }



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2016-07-09 Thread Paul Goyette
Module Name:src
Committed By:   pgoyette
Date:   Sun Jul 10 01:35:27 UTC 2016

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_ttm.c

Log Message:
Don't assign value to rdev unless we're going to use the value.

Therefore, don't declare the variable unless we're going to assign it a
value.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.8 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.9
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.8	Sun Apr 24 04:26:12 2016
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c	Sun Jul 10 01:35:27 2016
@@ -609,7 +609,6 @@ static struct ttm_tt *radeon_ttm_tt_crea
 
 static int radeon_ttm_tt_populate(struct ttm_tt *ttm)
 {
-	struct radeon_device *rdev;
 	struct radeon_ttm_tt *gtt = (void *)ttm;
 #ifndef __NetBSD__
 	unsigned i;
@@ -631,8 +630,8 @@ static int radeon_ttm_tt_populate(struct
 #endif
 	}
 
-	rdev = radeon_get_rdev(ttm->bdev);
 #if __OS_HAS_AGP
+	struct radeon_device *rdev = radeon_get_rdev(ttm->bdev);
 	if (rdev->flags & RADEON_IS_AGP) {
 		return ttm_agp_tt_populate(ttm);
 	}
@@ -644,6 +643,9 @@ static int radeon_ttm_tt_populate(struct
 #else
 
 #ifdef CONFIG_SWIOTLB
+#if ! __OS_HAS_AGP
+	struct radeon_device *rdev = radeon_get_rdev(ttm->bdev);
+#endif
 	if (swiotlb_nr_tbl()) {
 		return ttm_dma_populate(>t->ttm, rdev->dev);
 	}
@@ -674,7 +676,6 @@ static int radeon_ttm_tt_populate(struct
 
 static void radeon_ttm_tt_unpopulate(struct ttm_tt *ttm)
 {
-	struct radeon_device *rdev;
 	struct radeon_ttm_tt *gtt = (void *)ttm;
 #ifndef __NetBSD__
 	unsigned i;
@@ -684,8 +685,8 @@ static void radeon_ttm_tt_unpopulate(str
 	if (slave)
 		return;
 
-	rdev = radeon_get_rdev(ttm->bdev);
 #if __OS_HAS_AGP
+	struct radeon_device *rdev = radeon_get_rdev(ttm->bdev);
 	if (rdev->flags & RADEON_IS_AGP) {
 		ttm_agp_tt_unpopulate(ttm);
 		return;
@@ -698,6 +699,9 @@ static void radeon_ttm_tt_unpopulate(str
 #else
 
 #ifdef CONFIG_SWIOTLB
+#if ! __OS_HAS_AGP
+	struct radeon_device *rdev = radeon_get_rdev(ttm->bdev);
+#endif
 	if (swiotlb_nr_tbl()) {
 		ttm_dma_unpopulate(>t->ttm, rdev->dev);
 		return;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2015-10-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Tue Oct 27 13:18:21 UTC 2015

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_display.c
radeon_gem.c radeon_i2c.c radeon_kms.c

Log Message:
dev->dev, not &dev->pdev->dev.

Latter is a mistake that is all my fault.  Oops.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gem.c \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_i2c.c \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kms.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.4	Sat Apr 25 20:50:04 2015
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c	Tue Oct 27 13:18:21 2015
@@ -1301,7 +1301,7 @@ radeon_user_framebuffer_create(struct dr
 
 	obj = drm_gem_object_lookup(dev, file_priv, mode_cmd->handles[0]);
 	if (obj ==  NULL) {
-		dev_err(&dev->pdev->dev, "No GEM object associated to handle 0x%08X, "
+		dev_err(dev->dev, "No GEM object associated to handle 0x%08X, "
 			"can't create framebuffer\n", mode_cmd->handles[0]);
 		return ERR_PTR(-ENOENT);
 	}

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gem.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gem.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gem.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gem.c	Tue Oct 27 13:18:21 2015
@@ -446,7 +446,7 @@ int radeon_gem_va_ioctl(struct drm_devic
 	}
 
 	if (args->offset < RADEON_VA_RESERVED_SIZE) {
-		dev_err(&dev->pdev->dev,
+		dev_err(dev->dev,
 			"offset 0x%lX is in reserved area 0x%X\n",
 			(unsigned long)args->offset,
 			RADEON_VA_RESERVED_SIZE);
@@ -460,13 +460,13 @@ int radeon_gem_va_ioctl(struct drm_devic
 	 */
 	invalid_flags = RADEON_VM_PAGE_VALID | RADEON_VM_PAGE_SYSTEM;
 	if ((args->flags & invalid_flags)) {
-		dev_err(&dev->pdev->dev, "invalid flags 0x%08X vs 0x%08X\n",
+		dev_err(dev->dev, "invalid flags 0x%08X vs 0x%08X\n",
 			args->flags, invalid_flags);
 		args->operation = RADEON_VA_RESULT_ERROR;
 		return -EINVAL;
 	}
 	if (!(args->flags & RADEON_VM_PAGE_SNOOPED)) {
-		dev_err(&dev->pdev->dev, "only supported snooped mapping for now\n");
+		dev_err(dev->dev, "only supported snooped mapping for now\n");
 		args->operation = RADEON_VA_RESULT_ERROR;
 		return -EINVAL;
 	}
@@ -476,7 +476,7 @@ int radeon_gem_va_ioctl(struct drm_devic
 	case RADEON_VA_UNMAP:
 		break;
 	default:
-		dev_err(&dev->pdev->dev, "unsupported operation %d\n",
+		dev_err(dev->dev, "unsupported operation %d\n",
 			args->operation);
 		args->operation = RADEON_VA_RESULT_ERROR;
 		return -EINVAL;
Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_i2c.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_i2c.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_i2c.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_i2c.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_i2c.c	Tue Oct 27 13:18:21 2015
@@ -917,7 +917,7 @@ struct radeon_i2c_chan *radeon_i2c_creat
 	i2c->rec = *rec;
 	i2c->adapter.owner = THIS_MODULE;
 	i2c->adapter.class = I2C_CLASS_DDC;
-	i2c->adapter.dev.parent = &dev->pdev->dev;
+	i2c->adapter.dev.parent = dev->dev;
 	i2c->dev = dev;
 	i2c_set_adapdata(&i2c->adapter, i2c);
 	if (rec->mm_i2c ||
Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kms.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kms.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kms.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kms.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kms.c	Tue Oct 27 13:18:21 2015
@@ -126,7 +126,7 @@ int radeon_driver_load_kms(struct drm_de
 	 */
 	r = radeon_device_init(rdev, dev, dev->pdev, flags);
 	if (r) {
-		dev_err(&dev->pdev->dev, "Fatal error during GPU init\n");
+		dev_err(dev->dev, "Fatal error during GPU init\n");
 		goto out;
 	}
 
@@ -136,7 +136,7 @@ int radeon_driver_load_kms(struct drm_de
 	 */
 	r = radeon_modeset_init(rdev);
 	if (r)
-		dev_err(&dev->pdev->dev, "Fatal error during modeset init\n");
+		dev_err(dev->dev, "Fatal error during modeset init\n");
 
 	/* Call ACPI methods: require modeset init
 	 * but failure is not fatal
@@ -144,7 +144,7 @@ int radeon_driver_load_kms(struct drm_de
 	if (!r) {
 		acpi_status = radeon_acpi_init(rdev);
 		if (acpi_status)
-		dev_dbg(&dev->pdev->dev,
+		dev_dbg(dev->dev,
 "Error during ACPI methods call\n");
 	}
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2015-08-17 Thread Jonathan A. Kollasch
Module Name:src
Committed By:   jakllsch
Date:   Mon Aug 17 15:12:37 UTC 2015

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: atombios_crtc.c

Log Message:
Apply preceeding change:

Don't reserve if atomic -- caller must have pre-pinned the buffer.

to avivo_crtc_do_set_base() as well.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c:1.3	Wed Apr  8 01:47:20 2015
+++ src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c	Mon Aug 17 15:12:37 2015
@@ -1382,24 +1382,26 @@ static int avivo_crtc_do_set_base(struct
 
 	obj = radeon_fb->obj;
 	rbo = gem_to_radeon_bo(obj);
-	r = radeon_bo_reserve(rbo, false);
-	if (unlikely(r != 0))
-		return r;
 
 	/* If atomic, assume fb object is pinned & idle & fenced and
 	 * just update base pointers
 	 */
-	if (atomic)
+	if (atomic) {
+		BUG_ON(rbo->pin_count == 0);
 		fb_location = radeon_bo_gpu_offset(rbo);
-	else {
+		tiling_flags = 0;
+	} else {
+		r = radeon_bo_reserve(rbo, false);
+		if (unlikely(r != 0))
+			return r;
 		r = radeon_bo_pin(rbo, RADEON_GEM_DOMAIN_VRAM, &fb_location);
 		if (unlikely(r != 0)) {
 			radeon_bo_unreserve(rbo);
 			return -EINVAL;
 		}
+		radeon_bo_get_tiling_flags(rbo, &tiling_flags, NULL);
+		radeon_bo_unreserve(rbo);
 	}
-	radeon_bo_get_tiling_flags(rbo, &tiling_flags, NULL);
-	radeon_bo_unreserve(rbo);
 
 	switch (target_fb->bits_per_pixel) {
 	case 8:



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2015-06-24 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jun 24 18:23:23 UTC 2015

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_bios.c

Log Message:
Use bus_space_read rather than kmemdup to read ROM.

jakllsch@ reports that on some 64-bit systems, kmemdup does 8-byte
reads, which yield garbage in the high word.  bus_space_read_region_1
does 1-byte reads instead, which seem to work.

Derived from a patch from jakllsch@.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c:1.3	Sat Jun 13 18:18:18 2015
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c	Wed Jun 24 18:23:23 2015
@@ -116,6 +116,31 @@ static bool radeon_read_bios(struct rade
 		return false;
 	}
 
+#ifdef __NetBSD__
+	/*
+	 * Using kmemdup results in >4-byte memory access on 64-bit
+	 * systems, which yields bogus answers on some devices.  So we
+	 * use bus_space(9) to do guaranteed byte access with
+	 * bus_space_read_region_1 which seems to work better.
+	 */
+{
+	const bus_space_tag_t bst = rdev->pdev->pd_rom_bst;
+	const bus_space_handle_t bsh = rdev->pdev->pd_rom_found_bsh;
+
+	if (size == 0 ||
+	bus_space_read_1(bst, bsh, 0) != 0x55 ||
+	bus_space_read_1(bst, bsh, 1) != 0xaa) {
+		pci_unmap_rom(rdev->pdev, bios);
+		return false;
+	}
+	rdev->bios = kmalloc(size, GFP_KERNEL);
+	if (rdev->bios == NULL) {
+		pci_unmap_rom(rdev->pdev, bios);
+		return false;
+	}
+	bus_space_read_region_1(bst, bsh, 0, rdev->bios, size);
+}
+#else
 	if (size == 0 || bios[0] != 0x55 || bios[1] != 0xaa) {
 		pci_unmap_rom(rdev->pdev, bios);
 		return false;
@@ -125,6 +150,7 @@ static bool radeon_read_bios(struct rade
 		pci_unmap_rom(rdev->pdev, bios);
 		return false;
 	}
+#endif
 	pci_unmap_rom(rdev->pdev, bios);
 	return true;
 }



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2015-06-13 Thread Jonathan A. Kollasch
Module Name:src
Committed By:   jakllsch
Date:   Sat Jun 13 18:18:18 UTC 2015

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_bios.c

Log Message:
Fix two issues in NetBSD implementation of igp_read_bios_from_vram():

 * Allocate the correct buffer for the VGA BIOS image.
 * Abort if buffer allocation failed, not if buffer allocation succeeded.

Not directly tested, but I can't imagine this makes anything worse.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c	Sat Jun 13 18:18:18 2015
@@ -72,7 +72,7 @@ static bool igp_read_bios_from_vram(stru
 	(size < 256 * 1024) ||
 	(bus_space_read_1(bst, bsh, 0) != 0x55) ||
 	(bus_space_read_1(bst, bsh, 1) != 0xaa) ||
-	((rdev = kmalloc(size, GFP_KERNEL)) != NULL)) {
+	((rdev->bios = kmalloc(size, GFP_KERNEL)) == NULL)) {
 		bus_space_unmap(bst, bsh, size);
 		return false;
 	}



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2015-05-20 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed May 20 18:13:23 UTC 2015

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_connectors.c

Log Message:
Add XXX comment for previous.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_connectors.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_connectors.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_connectors.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_connectors.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_connectors.c:1.2	Wed May 20 18:12:01 2015
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_connectors.c	Wed May 20 18:13:23 2015
@@ -822,6 +822,7 @@ radeon_vga_detect(struct drm_connector *
 		}
 	}
 
+	/* XXX Can encoder be null if the connector is connected here?  */
 	if (ret == connector_status_connected && encoder)
 		ret = radeon_connector_analog_encoder_conflict_solve(connector, encoder, ret, true);
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2015-05-20 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed May 20 18:12:01 UTC 2015

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_connectors.c

Log Message:
Don't pass along null encoder.  Noted by Coverity, CID 113253.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1 -r1.2 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_connectors.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_connectors.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_connectors.c:1.1.1.1 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_connectors.c:1.2
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_connectors.c:1.1.1.1	Wed Jul 16 19:35:28 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_connectors.c	Wed May 20 18:12:01 2015
@@ -822,7 +822,7 @@ radeon_vga_detect(struct drm_connector *
 		}
 	}
 
-	if (ret == connector_status_connected)
+	if (ret == connector_status_connected && encoder)
 		ret = radeon_connector_analog_encoder_conflict_solve(connector, encoder, ret, true);
 
 	/* RN50 and some RV100 asics in servers often have a hardcoded EDID in the



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2015-04-25 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Sat Apr 25 20:50:04 UTC 2015

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_display.c

Log Message:
don't apply the "don't set CLUT" to RV280.  it isn't necessary for
my PCI 9250 card, and hoses the colours in X when running.

unfortunately, my RV250 does need this to avoid the console being
very very dark on black.

i'm curious what other earlier radeon card (anything matching any
of the card marked as:  CHIP_R100, CHIP_RV100, CHIP_RS100,
CHIP_RV200, CHIP_RS200, CHIP_R200, CHIP_RV250, and CHIP_RS300.)

the RV280 now works again properly, but the RV250 is still having
a problem waiting for commands to complete and it appears as if
X is hung, when infact it is asking the kernel quite frequently
if the job it asked for is complete, each time sleeping for a
short time and thus only appearing to take almost no CPU.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.3	Wed Mar 18 02:57:13 2015
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c	Sat Apr 25 20:50:04 2015
@@ -185,7 +185,7 @@ static void legacy_crtc_load_lut(struct 
 	 * At least the RV100 [vendor 1002 product 515e (rev. 0x02)]
 	 * has an old style palette
 	 */
-	if (ASIC_IS_RV100(rdev)) {
+	if (rdev->family < CHIP_RV280) {
 #ifdef notyet
 		/*
 		 * Leave CLUT alone for now. The code below gives us a



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2015-04-07 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Apr  8 01:47:20 UTC 2015

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: atombios_crtc.c

Log Message:
Don't reserve if atomic -- caller must have pre-pinned the buffer.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c	Wed Apr  8 01:47:20 2015
@@ -1124,23 +1124,24 @@ static int dce4_crtc_do_set_base(struct 
 	 */
 	obj = radeon_fb->obj;
 	rbo = gem_to_radeon_bo(obj);
-	r = radeon_bo_reserve(rbo, false);
-	if (unlikely(r != 0))
-		return r;
 
-	if (atomic)
+	if (atomic) {
+		BUG_ON(rbo->pin_count == 0);
 		fb_location = radeon_bo_gpu_offset(rbo);
-	else {
+		tiling_flags = 0;
+	} else {
+		r = radeon_bo_reserve(rbo, false);
+		if (unlikely(r != 0))
+			return r;
 		r = radeon_bo_pin(rbo, RADEON_GEM_DOMAIN_VRAM, &fb_location);
 		if (unlikely(r != 0)) {
 			radeon_bo_unreserve(rbo);
 			return -EINVAL;
 		}
+		radeon_bo_get_tiling_flags(rbo, &tiling_flags, NULL);
+		radeon_bo_unreserve(rbo);
 	}
 
-	radeon_bo_get_tiling_flags(rbo, &tiling_flags, NULL);
-	radeon_bo_unreserve(rbo);
-
 	switch (target_fb->bits_per_pixel) {
 	case 8:
 		fb_format = (EVERGREEN_GRPH_DEPTH(EVERGREEN_GRPH_DEPTH_8BPP) |



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2015-04-07 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Apr  8 01:42:40 UTC 2015

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_legacy_crtc.c

Log Message:
Don't reserve if atomic -- caller must have pre-pinned the buffer.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1 -r1.2 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_legacy_crtc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_legacy_crtc.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_legacy_crtc.c:1.1.1.1 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_legacy_crtc.c:1.2
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_legacy_crtc.c:1.1.1.1	Wed Jul 16 19:35:28 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_legacy_crtc.c	Wed Apr  8 01:42:40 2015
@@ -422,6 +422,16 @@ int radeon_crtc_do_set_base(struct drm_c
 	/* Pin framebuffer & get tilling informations */
 	obj = radeon_fb->obj;
 	rbo = gem_to_radeon_bo(obj);
+	if (atomic) {
+		/*
+		 * If you want to do this in atomic, better have it
+		 * pinned ahead of time.
+		 */
+		BUG_ON(rbo->pin_count == 0);
+		base = radeon_bo_gpu_offset(rbo);
+		tiling_flags = 0;
+		goto pinned;
+	}
 retry:
 	r = radeon_bo_reserve(rbo, false);
 	if (unlikely(r != 0))
@@ -444,7 +454,7 @@ retry:
 		 * We don't shutdown the display controller because new buffer
 		 * will end up in same spot.
 		 */
-		if (!atomic && fb && fb != crtc->primary->fb) {
+		if (fb && fb != crtc->primary->fb) {
 			struct radeon_bo *old_rbo;
 			unsigned long nsize, osize;
 
@@ -462,6 +472,7 @@ retry:
 	}
 	radeon_bo_get_tiling_flags(rbo, &tiling_flags, NULL);
 	radeon_bo_unreserve(rbo);
+pinned:
 	if (tiling_flags & RADEON_TILING_MICRO)
 		DRM_ERROR("trying to scanout microtiled buffer\n");
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2015-03-17 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Wed Mar 18 02:57:13 UTC 2015

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_display.c

Log Message:
Hack against the blank console problem:
Leave the CLUT alone on ancient cards. At least this leaves us with a
semi working console (red and blue are flipped). Leave an example of what
seems to be happening but disable it because colors are better than 444 bit
greyscale.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.2	Wed Jul 16 16:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c	Tue Mar 17 22:57:13 2015
@@ -181,12 +181,36 @@ static void legacy_crtc_load_lut(struct 
 		dac2_cntl |= RADEON_DAC2_PALETTE_ACC_CTL;
 	WREG32(RADEON_DAC_CNTL2, dac2_cntl);
 
-	WREG8(RADEON_PALETTE_INDEX, 0);
-	for (i = 0; i < 256; i++) {
-		WREG32(RADEON_PALETTE_30_DATA,
-			 (radeon_crtc->lut_r[i] << 20) |
-			 (radeon_crtc->lut_g[i] << 10) |
-			 (radeon_crtc->lut_b[i] << 0));
+	/*
+	 * At least the RV100 [vendor 1002 product 515e (rev. 0x02)]
+	 * has an old style palette
+	 */
+	if (ASIC_IS_RV100(rdev)) {
+#ifdef notyet
+		/*
+		 * Leave CLUT alone for now. The code below gives us a
+		 * nice 444 grayscale, but we are not in true color mode
+		 * anymore and I don't have any docs how to do this right.
+		 */
+		WREG8(RADEON_PALETTE_INDEX, 0);
+		for (i = 0; i < 256; i++) {
+#define R(x) (radeon_crtc->lut_r[i] >> 2)
+#define G(x) (radeon_crtc->lut_g[i] >> 2)
+#define B(x) (radeon_crtc->lut_b[i] >> 2)
+			WREG32(RADEON_PALETTE_DATA, ((R(i) << 16)
+| (G(i) << 8) | B(i)) << 4);
+		}
+#else
+		printf("%s: unknown DAC, can't set lookup table\n", __func__);
+#endif
+	} else {
+		WREG8(RADEON_PALETTE_INDEX, 0);
+		for (i = 0; i < 256; i++) {
+			WREG32(RADEON_PALETTE_30_DATA,
+ (radeon_crtc->lut_r[i] << 20) |
+ (radeon_crtc->lut_g[i] << 10) |
+ (radeon_crtc->lut_b[i] << 0));
+		}
 	}
 }
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2015-03-03 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Tue Mar  3 13:57:20 UTC 2015

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_fence.c

Log Message:
radeon_fence_wait returns 0, not positive, on success.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.7 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.7	Mon Mar  2 23:29:56 2015
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c	Tue Mar  3 13:57:20 2015
@@ -425,7 +425,12 @@ static int radeon_fence_wait_seq(struct 
 		}
 	}
 	spin_unlock(&rdev->fence_lock);
-	return r;
+	/*
+	 * The timed wait returns 0 on timeout or the positive number
+	 * of ticks left (minimum 1) if the condition passed.  We
+	 * return zero on success.
+	 */
+	return (r < 0? r : 0);
 }
 
 /**



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2015-03-02 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Mar  2 23:29:56 UTC 2015

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_fence.c

Log Message:
Replace `out' label by break.

Reduces diff from upstream a little.

No functional change, confirmed by diffing `objdump -dr' output.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.6 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.6	Mon Mar  2 17:53:00 2015
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c	Mon Mar  2 23:29:56 2015
@@ -372,12 +372,12 @@ static int radeon_fence_wait_seq(struct 
 		}
 
 		if (unlikely(r < 0))
-			goto out;
+			break;
 
 		if (unlikely(!signaled)) {
 			if (rdev->needs_reset) {
 r = -EDEADLK;
-goto out;
+break;
 			}
 
 			/* we were interrupted for some reason and fence
@@ -420,11 +420,11 @@ static int radeon_fence_wait_seq(struct 
 wake_up_all(&rdev->fence_queue);
 #endif
 r = -EDEADLK;
-goto out;
+break;
 			}
 		}
 	}
-out:	spin_unlock(&rdev->fence_lock);
+	spin_unlock(&rdev->fence_lock);
 	return r;
 }
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2015-03-02 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Mar  2 17:53:00 UTC 2015

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_fence.c

Log Message:
Return the error if there is one in radeon_fence_wait_seq.

Don't just always say we succeeded!


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.5 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.5	Wed Aug  6 22:12:51 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c	Mon Mar  2 17:53:00 2015
@@ -323,7 +323,7 @@ static int radeon_fence_wait_seq(struct 
 {
 	uint64_t last_seq[RADEON_NUM_RINGS];
 	bool signaled;
-	int i, r;
+	int i, r = 0;
 
 	spin_lock(&rdev->fence_lock);
 	while (!radeon_fence_any_seq_signaled(rdev, target_seq)) {
@@ -425,7 +425,7 @@ static int radeon_fence_wait_seq(struct 
 		}
 	}
 out:	spin_unlock(&rdev->fence_lock);
-	return 0;
+	return r;
 }
 
 /**



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2015-02-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sat Feb 28 05:42:07 UTC 2015

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_pm.c

Log Message:
Another upstream uninterruptible.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_pm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_pm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_pm.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_pm.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_pm.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_pm.c	Sat Feb 28 05:42:07 2015
@@ -159,7 +159,7 @@ static void radeon_sync_with_vblank(stru
 
 		spin_lock(&rdev->irq.vblank_lock);
 		rdev->pm.vblank_sync = false;
-		DRM_SPIN_TIMED_WAIT_UNTIL(ret, &rdev->irq.vblank_queue,
+		DRM_SPIN_TIMED_WAIT_NOINTR_UNTIL(ret, &rdev->irq.vblank_queue,
 		&rdev->irq.vblank_lock,
 		msecs_to_jiffies(RADEON_WAIT_VBLANK_TIMEOUT),
 		rdev->pm.vblank_sync);



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2015-02-26 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Thu Feb 26 23:00:05 UTC 2015

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: rs400.c

Log Message:
Omit needless bus_dmamap_sync -- they're batched for gart updates.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/radeon/rs400.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/rs400.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/rs400.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/rs400.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/rs400.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/rs400.c	Thu Feb 26 23:00:05 2015
@@ -225,15 +225,7 @@ int rs400_gart_set_page(struct radeon_de
 		((upper_32_bits(addr) & 0xff) << 4) |
 		RS400_PTE_WRITEABLE | RS400_PTE_READABLE;
 	entry = cpu_to_le32(entry);
-#ifdef __NetBSD__		/* XXX Batch syncs for batch GART updates.  */
-	bus_dmamap_sync(rdev->ddev->dmat, rdev->gart.rg_table_map, i*4, 4,
-	BUS_DMASYNC_PREWRITE);
-#endif
 	gtt[i] = entry;
-#ifdef __NetBSD__		/* XXX Batch syncs for batch GART updates.  */
-	bus_dmamap_sync(rdev->ddev->dmat, rdev->gart.rg_table_map, i*4, 4,
-	BUS_DMASYNC_POSTWRITE);
-#endif
 	return 0;
 }
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2015-01-04 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Mon Jan  5 06:28:34 UTC 2015

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_ttm.c

Log Message:
apply a patch from rjs@, which is necessary for radeondrmkms on i386:

set DRM_FILE_PAGE_OFFSET to 0xa000UL for 32 bit platforms.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.5 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.5	Sat Jul 26 21:19:45 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c	Mon Jan  5 06:28:34 2015
@@ -50,7 +50,11 @@
 #include 
 #endif
 
+#ifdef _LP64
 #define DRM_FILE_PAGE_OFFSET (0x1ULL >> PAGE_SHIFT)
+#else
+#define DRM_FILE_PAGE_OFFSET (0xa000UL >> PAGE_SHIFT)
+#endif
 
 static int radeon_ttm_debugfs_init(struct radeon_device *rdev);
 static void radeon_ttm_debugfs_fini(struct radeon_device *rdev);



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2014-11-22 Thread Joerg Sonnenberger
Module Name:src
Committed By:   joerg
Date:   Sat Nov 22 18:50:49 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: cik.c ni.c si.c

Log Message:
Drop casts in favour of expressions that actually give the right
pointer.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/radeon/cik.c \
src/sys/external/bsd/drm2/dist/drm/radeon/ni.c \
src/sys/external/bsd/drm2/dist/drm/radeon/si.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/cik.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/cik.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/cik.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/cik.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/cik.c	Sat Nov 22 18:50:49 2014
@@ -1771,7 +1771,7 @@ int ci_mc_load_microcode(struct radeon_d
 {
 	const __be32 *fw_data;
 	u32 running, blackout = 0;
-	u32 *io_mc_regs;
+	const u32 *io_mc_regs;
 	int i, regs_size, ucode_size;
 
 	if (!rdev->mc_fw)
@@ -1781,11 +1781,11 @@ int ci_mc_load_microcode(struct radeon_d
 
 	switch (rdev->family) {
 	case CHIP_BONAIRE:
-		io_mc_regs = (u32 *)&bonaire_io_mc_regs;
+		io_mc_regs = &bonaire_io_mc_regs[0][0];
 		regs_size = BONAIRE_IO_MC_REGS_SIZE;
 		break;
 	case CHIP_HAWAII:
-		io_mc_regs = (u32 *)&hawaii_io_mc_regs;
+		io_mc_regs = &hawaii_io_mc_regs[0][0];
 		regs_size = HAWAII_IO_MC_REGS_SIZE;
 		break;
 	default:
Index: src/sys/external/bsd/drm2/dist/drm/radeon/ni.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/ni.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/ni.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/ni.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/ni.c	Sat Nov 22 18:50:49 2014
@@ -609,7 +609,7 @@ int ni_mc_load_microcode(struct radeon_d
 {
 	const __be32 *fw_data;
 	u32 mem_type, running, blackout = 0;
-	u32 *io_mc_regs;
+	const u32 *io_mc_regs;
 	int i, ucode_size, regs_size;
 
 	if (!rdev->mc_fw)
@@ -617,23 +617,23 @@ int ni_mc_load_microcode(struct radeon_d
 
 	switch (rdev->family) {
 	case CHIP_BARTS:
-		io_mc_regs = (u32 *)&barts_io_mc_regs;
+		io_mc_regs = &barts_io_mc_regs[0][0];
 		ucode_size = BTC_MC_UCODE_SIZE;
 		regs_size = BTC_IO_MC_REGS_SIZE;
 		break;
 	case CHIP_TURKS:
-		io_mc_regs = (u32 *)&turks_io_mc_regs;
+		io_mc_regs = &turks_io_mc_regs[0][0];
 		ucode_size = BTC_MC_UCODE_SIZE;
 		regs_size = BTC_IO_MC_REGS_SIZE;
 		break;
 	case CHIP_CAICOS:
 	default:
-		io_mc_regs = (u32 *)&caicos_io_mc_regs;
+		io_mc_regs = &caicos_io_mc_regs[0][0];
 		ucode_size = BTC_MC_UCODE_SIZE;
 		regs_size = BTC_IO_MC_REGS_SIZE;
 		break;
 	case CHIP_CAYMAN:
-		io_mc_regs = (u32 *)&cayman_io_mc_regs;
+		io_mc_regs = &cayman_io_mc_regs[0][0];
 		ucode_size = CAYMAN_MC_UCODE_SIZE;
 		regs_size = BTC_IO_MC_REGS_SIZE;
 		break;
Index: src/sys/external/bsd/drm2/dist/drm/radeon/si.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/si.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/si.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/si.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/si.c	Sat Nov 22 18:50:49 2014
@@ -1471,7 +1471,7 @@ int si_mc_load_microcode(struct radeon_d
 {
 	const __be32 *fw_data;
 	u32 running, blackout = 0;
-	u32 *io_mc_regs;
+	const u32 *io_mc_regs;
 	int i, regs_size, ucode_size;
 
 	if (!rdev->mc_fw)
@@ -1481,24 +1481,24 @@ int si_mc_load_microcode(struct radeon_d
 
 	switch (rdev->family) {
 	case CHIP_TAHITI:
-		io_mc_regs = (u32 *)&tahiti_io_mc_regs;
+		io_mc_regs = &tahiti_io_mc_regs[0][0];
 		regs_size = TAHITI_IO_MC_REGS_SIZE;
 		break;
 	case CHIP_PITCAIRN:
-		io_mc_regs = (u32 *)&pitcairn_io_mc_regs;
+		io_mc_regs = &pitcairn_io_mc_regs[0][0];
 		regs_size = TAHITI_IO_MC_REGS_SIZE;
 		break;
 	case CHIP_VERDE:
 	default:
-		io_mc_regs = (u32 *)&verde_io_mc_regs;
+		io_mc_regs = &verde_io_mc_regs[0][0];
 		regs_size = TAHITI_IO_MC_REGS_SIZE;
 		break;
 	case CHIP_OLAND:
-		io_mc_regs = (u32 *)&oland_io_mc_regs;
+		io_mc_regs = &oland_io_mc_regs[0][0];
 		regs_size = TAHITI_IO_MC_REGS_SIZE;
 		break;
 	case CHIP_HAINAN:
-		io_mc_regs = (u32 *)&hainan_io_mc_regs;
+		io_mc_regs = &hainan_io_mc_regs[0][0];
 		regs_size = TAHITI_IO_MC_REGS_SIZE;
 		break;
 	}



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2014-11-01 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sat Nov  1 21:46:10 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: ci_dpm.c evergreen_cs.c
rv770_dpm.c si_dpm.c sumo_dpm.c trinity_dpm.c

Log Message:
fix shadowing for min() and max() from libkern


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c \
src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/rv770_dpm.c \
src/sys/external/bsd/drm2/dist/drm/radeon/si_dpm.c \
src/sys/external/bsd/drm2/dist/drm/radeon/sumo_dpm.c \
src/sys/external/bsd/drm2/dist/drm/radeon/trinity_dpm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c:1.3	Wed Sep 17 11:54:31 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c	Sat Nov  1 17:46:10 2014
@@ -361,29 +361,29 @@ static int ci_min_max_v_gnbl_pm_lid_from
 	struct ci_power_info *pi = ci_get_pi(rdev);
 	u8 *hi_vid = pi->smc_powertune_table.BapmVddCVidHiSidd;
 	u8 *lo_vid = pi->smc_powertune_table.BapmVddCVidLoSidd;
-	int i, min, max;
+	int i, vmin, vmax;
 
-	min = max = hi_vid[0];
+	vmin = vmax = hi_vid[0];
 	for (i = 0; i < 8; i++) {
 		if (0 != hi_vid[i]) {
-			if (min > hi_vid[i])
-min = hi_vid[i];
-			if (max < hi_vid[i])
-max = hi_vid[i];
+			if (vmin > hi_vid[i])
+vmin = hi_vid[i];
+			if (vmax < hi_vid[i])
+vmax = hi_vid[i];
 		}
 
 		if (0 != lo_vid[i]) {
-			if (min > lo_vid[i])
-min = lo_vid[i];
-			if (max < lo_vid[i])
-max = lo_vid[i];
+			if (vmin > lo_vid[i])
+vmin = lo_vid[i];
+			if (vmax < lo_vid[i])
+vmax = lo_vid[i];
 		}
 	}
 
-	if ((min == 0) || (max == 0))
+	if ((vmin == 0) || (vmax == 0))
 		return -EINVAL;
-	pi->smc_powertune_table.GnbLPMLMaxVid = (u8)max;
-	pi->smc_powertune_table.GnbLPMLMinVid = (u8)min;
+	pi->smc_powertune_table.GnbLPMLMaxVid = (u8)vmax;
+	pi->smc_powertune_table.GnbLPMLMinVid = (u8)vmin;
 
 	return 0;
 }
@@ -2028,15 +2028,15 @@ static u8 ci_get_sleep_divider_id_from_c
 {
 	u32 i;
 	u32 tmp;
-	u32 min = (min_sclk_in_sr > CISLAND_MINIMUM_ENGINE_CLOCK) ?
+	u32 vmin = (min_sclk_in_sr > CISLAND_MINIMUM_ENGINE_CLOCK) ?
 		min_sclk_in_sr : CISLAND_MINIMUM_ENGINE_CLOCK;
 
-	if (sclk < min)
+	if (sclk < vmin)
 		return 0;
 
 	for (i = CISLAND_MAX_DEEPSLEEP_DIVIDER_ID;  ; i--) {
 		tmp = sclk / (1 << i);
-		if (tmp >= min || i == 0)
+		if (tmp >= vmin || i == 0)
 			break;
 	}
 
Index: src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c:1.3	Sat Sep  6 14:43:00 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c	Sat Nov  1 17:46:10 2014
@@ -446,21 +446,21 @@ static int evergreen_cs_track_validate_c
 		 */
 		if (!surf.mode) {
 			volatile u32 *ib = p->ib.ptr;
-			unsigned long tmp, nby, bsize, size, min = 0;
+			unsigned long tmp, nby, bsize, size, vmin = 0;
 
 			/* find the height the ddx wants */
 			if (surf.nby > 8) {
-min = surf.nby - 8;
+vmin = surf.nby - 8;
 			}
 			bsize = radeon_bo_size(track->cb_color_bo[id]);
 			tmp = track->cb_color_bo_offset[id] << 8;
-			for (nby = surf.nby; nby > min; nby--) {
+			for (nby = surf.nby; nby > vmin; nby--) {
 size = nby * surf.nbx * surf.bpe * surf.nsamples;
 if ((tmp + size * mslice) <= bsize) {
 	break;
 }
 			}
-			if (nby > min) {
+			if (nby > vmin) {
 surf.nby = nby;
 slice = ((nby * surf.nbx) / 64) - 1;
 if (!evergreen_surface_check(p, &surf, "cb")) {

Index: src/sys/external/bsd/drm2/dist/drm/radeon/rv770_dpm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/rv770_dpm.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/rv770_dpm.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/rv770_dpm.c:1.2	Wed Jul 16 16:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/rv770_dpm.c	Sat Nov  1 17:46:10 2014
@@ -1229,16 +1229,16 @@ static int rv770_init_smc_table(struct r
 static int rv770_construct_vddc_table(struct radeon_device *rdev)
 {
 	struct rv7xx_power_info *pi = rv770_get_pi(rdev);
-	u16 min, max, step;
+	u16 vmin, vmax, step;
 	u32 steps = 0;
 	u8 vddc_index = 0;
 	u32 i;
 
-	radeon_atom_get_min_voltage(rdev, SET_VOLTAGE_TYPE_ASIC_VDDC, &min);
-	radeon_atom_get_max_voltage(rdev, SET_VOLTAGE_TYPE_ASIC_VDDC, &max);
+	radeon_atom_get_min_voltage(rdev, SET_VOLTAGE_TYPE_ASIC_VDDC, &vmin);
+	radeon_atom_get_max_voltage(rdev, SET_VOLTAGE_TYPE_ASIC_VDDC, &vmax);
 	radeon_atom_get_voltage_step(rdev, SET_VOLTAGE_TYPE_ASIC_VDDC, &step);
 
-	steps = (max - m

CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2014-11-01 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sat Nov  1 21:45:31 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: r100.c

Log Message:
fix uninitialized


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/radeon/r100.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/r100.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/r100.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/r100.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/r100.c:1.2	Wed Jul 16 16:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/r100.c	Sat Nov  1 17:45:31 2014
@@ -3230,6 +3230,8 @@ void r100_bandwidth_update(struct radeon
 	uint32_t pixel_bytes1 = 0;
 	uint32_t pixel_bytes2 = 0;
 
+	crit_point_ff.full = 0;
+	disp_drain_rate.full = 0;
 	radeon_update_display_priority(rdev);
 
 	if (rdev->mode_info.crtcs[0]->base.enabled) {



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2014-10-02 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Thu Oct  2 12:18:26 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: kv_dpm.c

Log Message:
Ifdef out another nonsensical comparison.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/drm/radeon/kv_dpm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/kv_dpm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/kv_dpm.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/kv_dpm.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/kv_dpm.c:1.3	Wed Sep 17 16:43:31 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/kv_dpm.c	Thu Oct  2 12:18:26 2014
@@ -1535,8 +1535,10 @@ static u8 kv_get_acp_boot_level(struct r
 		&rdev->pm.dpm.dyn_state.acp_clock_voltage_dependency_table;
 
 	for (i = 0; i < table->count; i++) {
+#if 0		/* XXX Upstream has changed this to make sense.  */
 		if (table->entries[i].clk >= 0) /* XXX */
 			break;
+#endif
 	}
 
 	if (i >= table->count)



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2014-10-02 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Thu Oct  2 11:09:07 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_drv.c

Log Message:
We don't use radeon_(un)register_atpx_handler at the moment.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.c:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.c:1.4	Sat Jul 26 21:15:45 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.c	Thu Oct  2 11:09:07 2014
@@ -152,9 +152,11 @@ void radeon_debugfs_cleanup(struct drm_m
 void radeon_register_atpx_handler(void);
 void radeon_unregister_atpx_handler(void);
 #else
+#ifndef __NetBSD__
 static inline void radeon_register_atpx_handler(void) {}
 static inline void radeon_unregister_atpx_handler(void) {}
 #endif
+#endif
 
 int radeon_no_wb;
 int radeon_modeset = -1;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2014-09-17 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Sep 17 16:43:31 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: kv_dpm.c

Log Message:
Ifdef out nonsensical comparison until we update from upstream.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/radeon/kv_dpm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/kv_dpm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/kv_dpm.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/kv_dpm.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/kv_dpm.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/kv_dpm.c	Wed Sep 17 16:43:31 2014
@@ -1445,8 +1445,10 @@ static u8 kv_get_vce_boot_level(struct r
 		&rdev->pm.dpm.dyn_state.vce_clock_voltage_dependency_table;
 
 	for (i = 0; i < table->count; i++) {
+#if 0		/* XXX Upstream has changed this to make sense.  */
 		if (table->entries[i].evclk >= 0) /* XXX */
 			break;
+#endif
 	}
 
 	return i;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2014-09-17 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Sep 17 15:54:31 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: ci_dpm.c

Log Message:
Mark some unused variables as such to shut up Clang.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c	Wed Sep 17 15:54:31 2014
@@ -64,7 +64,7 @@ static const struct ci_pt_defaults defau
 	{ 0x17C, 0x172, 0x180, 0x1BC, 0x1B3, 0x1BD, 0x206, 0x200, 0x203, 0x25D, 0x25A, 0x255, 0x2C3, 0x2C5, 0x2B4 }
 };
 
-static const struct ci_pt_defaults defaults_bonaire_pro =
+static const struct ci_pt_defaults defaults_bonaire_pro __unused =
 {
 	1, 0xF, 0xFD, 0x19, 5, 45, 0, 0x65062,
 	{ 0x8C,  0x23F, 0x244, 0xA6,  0x83,  0x85,  0x86,  0x86,  0x83,  0xDB,  0xDB,  0xDA,  0x67,  0x60,  0x5F  },
@@ -78,7 +78,7 @@ static const struct ci_pt_defaults defau
 	{ 0x187, 0x187, 0x187, 0x1C7, 0x1C7, 0x1C7, 0x210, 0x210, 0x210, 0x266, 0x266, 0x266, 0x2C9, 0x2C9, 0x2C9 }
 };
 
-static const struct ci_pt_defaults defaults_saturn_pro =
+static const struct ci_pt_defaults defaults_saturn_pro __unused =
 {
 	1, 0xF, 0xFD, 0x19, 5, 55, 0, 0x3,
 	{ 0x96,  0x21D, 0x23B, 0xA1,  0x85,  0x87,  0x83,  0x84,  0x81,  0xE6,  0xE6,  0xE6,  0x71,  0x6A,  0x6A  },



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2014-09-17 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Sep 17 15:41:56 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: atombios_dp.c

Log Message:
Use %hhx for uint8_t, not %hx.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/radeon/atombios_dp.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/atombios_dp.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/atombios_dp.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/atombios_dp.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/atombios_dp.c:1.3	Thu Aug 28 20:40:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/atombios_dp.c	Wed Sep 17 15:41:56 2014
@@ -371,11 +371,11 @@ static void radeon_dp_probe_oui(struct r
 		return;
 
 	if (drm_dp_dpcd_read(&radeon_connector->ddc_bus->aux, DP_SINK_OUI, buf, 3) == 3)
-		DRM_DEBUG_KMS("Sink OUI: %02hx%02hx%02hx\n",
+		DRM_DEBUG_KMS("Sink OUI: %02hhx%02hhx%02hhx\n",
 			  buf[0], buf[1], buf[2]);
 
 	if (drm_dp_dpcd_read(&radeon_connector->ddc_bus->aux, DP_BRANCH_OUI, buf, 3) == 3)
-		DRM_DEBUG_KMS("Branch OUI: %02hx%02hx%02hx\n",
+		DRM_DEBUG_KMS("Branch OUI: %02hhx%02hhx%02hhx\n",
 			  buf[0], buf[1], buf[2]);
 }
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2014-09-06 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Sat Sep  6 18:43:00 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: evergreen_cs.c

Log Message:
test some pointers and return EINVAL instead of blindly assuming
they're valid.  converts kernel crashes in to app failures.

GL is still not working on evergreen for me.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c	Sat Sep  6 18:43:00 2014
@@ -546,6 +546,10 @@ static int evergreen_cs_track_validate_h
 	size = roundup(nbx * nby * 4, track->npipes * (2 << 10));
 	size += track->htile_offset;
 
+	if (!track->htile_bo) {
+		dev_warn(p->dev, "%s:%d htile_bo not set", __func__, __LINE__);
+		return -EINVAL;
+	}
 	if (size > radeon_bo_size(track->htile_bo)) {
 		dev_warn(p->dev, "%s:%d htile surface too small %ld for %ld (%d %d)\n",
 __func__, __LINE__, radeon_bo_size(track->htile_bo),
@@ -613,6 +617,10 @@ static int evergreen_cs_track_validate_s
 		return -EINVAL;
 	}
 	offset += surf.layer_size * mslice;
+	if (!track->db_s_read_bo) {
+		dev_warn(p->dev, "%s:%d db_s_read_bo not set", __func__, __LINE__);
+		return -EINVAL;
+	}
 	if (offset > radeon_bo_size(track->db_s_read_bo)) {
 		dev_warn(p->dev, "%s:%d stencil read bo too small (layer size %d, "
 			 "offset %ld, max layer %d, bo size %ld)\n",
@@ -632,6 +640,10 @@ static int evergreen_cs_track_validate_s
 		return -EINVAL;
 	}
 	offset += surf.layer_size * mslice;
+	if (!track->db_s_write_bo) {
+		dev_warn(p->dev, "%s:%d db_s_write_bo not set", __func__, __LINE__);
+		return -EINVAL;
+	}
 	if (offset > radeon_bo_size(track->db_s_write_bo)) {
 		dev_warn(p->dev, "%s:%d stencil write bo too small (layer size %d, "
 			 "offset %ld, max layer %d, bo size %ld)\n",
@@ -711,6 +723,10 @@ static int evergreen_cs_track_validate_d
 		return -EINVAL;
 	}
 	offset += surf.layer_size * mslice;
+	if (!track->db_z_read_bo) {
+		dev_warn(p->dev, "%s:%d db_z_read_bo not set", __func__, __LINE__);
+		return -EINVAL;
+	}
 	if (offset > radeon_bo_size(track->db_z_read_bo)) {
 		dev_warn(p->dev, "%s:%d depth read bo too small (layer size %d, "
 			 "offset %ld, max layer %d, bo size %ld)\n",
@@ -727,6 +743,10 @@ static int evergreen_cs_track_validate_d
 		return -EINVAL;
 	}
 	offset += surf.layer_size * mslice;
+	if (!track->db_z_write_bo) {
+		dev_warn(p->dev, "%s:%d db_z_write_bo not set", __func__, __LINE__);
+		return -EINVAL;
+	}
 	if (offset > radeon_bo_size(track->db_z_write_bo)) {
 		dev_warn(p->dev, "%s:%d depth write bo too small (layer size %d, "
 			 "offset %ld, max layer %d, bo size %ld)\n",



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2014-08-28 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Thu Aug 28 20:40:57 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: atombios_dp.c

Log Message:
hack around an evergreen attach crash for now: provide a hard coded
name for the i2c.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/atombios_dp.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/atombios_dp.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/atombios_dp.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/atombios_dp.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/atombios_dp.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/atombios_dp.c	Thu Aug 28 20:40:57 2014
@@ -212,6 +212,10 @@ void radeon_dp_aux_init(struct radeon_co
 	radeon_connector->ddc_bus->rec.hpd = radeon_connector->hpd.hpd;
 	radeon_connector->ddc_bus->aux.dev = radeon_connector->base.kdev;
 	radeon_connector->ddc_bus->aux.transfer = radeon_dp_aux_transfer;
+#ifdef __NetBSD__
+	/* XXX dervied from sysfs/i2c on linux. */
+	radeon_connector->ddc_bus->aux.name = "radeon_dp_aux";
+#endif
 	ret = drm_dp_aux_register_i2c_bus(&radeon_connector->ddc_bus->aux);
 	if (!ret)
 		radeon_connector->ddc_bus->has_aux = true;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2014-08-06 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Aug  6 22:12:51 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_fence.c

Log Message:
radeon_fence_signaled needs to take the fence lock.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.4	Wed Aug  6 12:47:13 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c	Wed Aug  6 22:12:51 2014
@@ -265,13 +265,17 @@ bool radeon_fence_signaled(struct radeon
 	if (!fence) {
 		return true;
 	}
+	spin_lock(&fence->rdev->fence_lock);
 	if (fence->seq == RADEON_FENCE_SIGNALED_SEQ) {
+		spin_unlock(&fence->rdev->fence_lock);
 		return true;
 	}
 	if (radeon_fence_seq_signaled(fence->rdev, fence->seq, fence->ring)) {
 		fence->seq = RADEON_FENCE_SIGNALED_SEQ;
+		spin_unlock(&fence->rdev->fence_lock);
 		return true;
 	}
+	spin_unlock(&fence->rdev->fence_lock);
 	return false;
 }
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2014-08-06 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Aug  6 12:47:13 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_fence.c

Log Message:
Tweak fence locking again with a broader view of the code paths.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.3	Mon Jul 28 12:59:39 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c	Wed Aug  6 12:47:13 2014
@@ -134,12 +134,14 @@ int radeon_fence_emit(struct radeon_devi
  * Checks the current fence value and wakes the fence queue
  * if the sequence number has increased (all asics).
  */
-void radeon_fence_process(struct radeon_device *rdev, int ring)
+static void radeon_fence_process_locked(struct radeon_device *rdev, int ring)
 {
 	uint64_t seq, last_seq, last_emitted;
 	unsigned count_loop = 0;
 	bool wake = false;
 
+	BUG_ON(!spin_is_locked(&rdev->fence_lock));
+
 	/* Note there is a scenario here for an infinite loop but it's
 	 * very unlikely to happen. For it to happen, the current polling
 	 * process need to be interrupted by another process and another
@@ -192,16 +194,20 @@ void radeon_fence_process(struct radeon_
 
 	if (wake)
 #ifdef __NetBSD__
-	{
-		spin_lock(&rdev->fence_lock);
 		DRM_SPIN_WAKEUP_ALL(&rdev->fence_queue, &rdev->fence_lock);
-		spin_unlock(&rdev->fence_lock);
-	}
 #else
 		wake_up_all(&rdev->fence_queue);
 #endif
 }
 
+void radeon_fence_process(struct radeon_device *rdev, int ring)
+{
+
+	spin_lock(&rdev->fence_lock);
+	radeon_fence_process_locked(rdev, ring);
+	spin_unlock(&rdev->fence_lock);
+}
+
 /**
  * radeon_fence_destroy - destroy a fence
  *
@@ -234,11 +240,12 @@ static void radeon_fence_destroy(struct 
 static bool radeon_fence_seq_signaled(struct radeon_device *rdev,
   u64 seq, unsigned ring)
 {
+	BUG_ON(!spin_is_locked(&rdev->fence_lock));
 	if (atomic64_read(&rdev->fence_drv[ring].last_seq) >= seq) {
 		return true;
 	}
 	/* poll new last sequence at least once */
-	radeon_fence_process(rdev, ring);
+	radeon_fence_process_locked(rdev, ring);
 	if (atomic64_read(&rdev->fence_drv[ring].last_seq) >= seq) {
 		return true;
 	}
@@ -283,6 +290,8 @@ static bool radeon_fence_any_seq_signale
 {
 	unsigned i;
 
+	BUG_ON(!spin_is_locked(&rdev->fence_lock));
+
 	for (i = 0; i < RADEON_NUM_RINGS; ++i) {
 		if (seq[i] && radeon_fence_seq_signaled(rdev, seq[i], i))
 			return true;
@@ -312,6 +321,7 @@ static int radeon_fence_wait_seq(struct 
 	bool signaled;
 	int i, r;
 
+	spin_lock(&rdev->fence_lock);
 	while (!radeon_fence_any_seq_signaled(rdev, target_seq)) {
 
 		/* Save current sequence values, used to check for GPU lockups */
@@ -325,7 +335,6 @@ static int radeon_fence_wait_seq(struct 
 		}
 
 #ifdef __NetBSD__
-		spin_lock(&rdev->fence_lock);
 		if (intr)
 			DRM_SPIN_TIMED_WAIT_UNTIL(r, &rdev->fence_queue,
 			&rdev->fence_lock, RADEON_FENCE_JIFFIES_TIMEOUT,
@@ -338,7 +347,6 @@ static int radeon_fence_wait_seq(struct 
 			((signaled = radeon_fence_any_seq_signaled(rdev,
 target_seq))
 || rdev->needs_reset));
-		spin_unlock(&rdev->fence_lock);
 #else
 		if (intr) {
 			r = wait_event_interruptible_timeout(rdev->fence_queue, (
@@ -360,11 +368,13 @@ static int radeon_fence_wait_seq(struct 
 		}
 
 		if (unlikely(r < 0))
-			return r;
+			goto out;
 
 		if (unlikely(!signaled)) {
-			if (rdev->needs_reset)
-return -EDEADLK;
+			if (rdev->needs_reset) {
+r = -EDEADLK;
+goto out;
+			}
 
 			/* we were interrupted for some reason and fence
 			 * isn't signaled yet, resume waiting */
@@ -398,20 +408,19 @@ static int radeon_fence_wait_seq(struct 
 	 target_seq[i], last_seq[i], i);
 
 /* remember that we need an reset */
-#ifdef __NetBSD__
-spin_lock(&rdev->fence_lock);
 rdev->needs_reset = true;
+#ifdef __NetBSD__
 DRM_SPIN_WAKEUP_ALL(&rdev->fence_queue,
 &rdev->fence_lock);
-spin_unlock(&rdev->fence_lock);
 #else
-rdev->needs_reset = true;
 wake_up_all(&rdev->fence_queue);
 #endif
-return -EDEADLK;
+r = -EDEADLK;
+goto out;
 			}
 		}
 	}
+out:	spin_unlock(&rdev->fence_lock);
 	return 0;
 }
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2014-07-28 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Jul 28 12:59:39 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_fence.c

Log Message:
Take rdev->fence_lock around the wakeup.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c	Mon Jul 28 12:59:39 2014
@@ -192,7 +192,11 @@ void radeon_fence_process(struct radeon_
 
 	if (wake)
 #ifdef __NetBSD__
+	{
+		spin_lock(&rdev->fence_lock);
 		DRM_SPIN_WAKEUP_ALL(&rdev->fence_queue, &rdev->fence_lock);
+		spin_unlock(&rdev->fence_lock);
+	}
 #else
 		wake_up_all(&rdev->fence_queue);
 #endif



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2014-07-26 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sat Jul 26 21:19:45 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_ttm.c

Log Message:
Make sure the low bits, not the high bits, of the offset are zero!


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.4	Sat Jul 26 21:15:45 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c	Sat Jul 26 21:19:45 2014
@@ -872,7 +872,7 @@ radeon_mmap_object(struct drm_device *de
 {
 	struct radeon_device *rdev = dev->dev_private;
 
-	KASSERT(0 == (offset & ~(PAGE_SIZE - 1)));
+	KASSERT(0 == (offset & (PAGE_SIZE - 1)));
 
 	if (__predict_false(rdev == NULL))	/* XXX How?? */
 		return -EINVAL;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2014-07-25 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sat Jul 26 06:37:53 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_fb.c

Log Message:
Fix botched conversion from ALIGN to round_up (not DIV_ROUND_UP!).


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fb.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fb.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fb.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fb.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fb.c:1.3	Fri Jul 25 12:48:34 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fb.c	Sat Jul 26 06:37:53 2014
@@ -128,14 +128,14 @@ static int radeonfb_create_pinned_object
 		  fb_tiled) * ((bpp + 1) / 8);
 
 	if (rdev->family >= CHIP_R600)
-#ifdef __NetBSD__
-		height = DIV_ROUND_UP(mode_cmd->height, 8);
+#ifdef __NetBSD__		/* XXX ALIGN means something else.  */
+		height = round_up(mode_cmd->height, 8);
 #else
 		height = ALIGN(mode_cmd->height, 8);
 #endif
 	size = mode_cmd->pitches[0] * height;
-#ifdef __NetBSD__
-	aligned_size = DIV_ROUND_UP (size, PAGE_SIZE);
+#ifdef __NetBSD__		/* XXX ALIGN means something else.  */
+	aligned_size = round_up(size, PAGE_SIZE);
 #else
 	aligned_size = ALIGN(size, PAGE_SIZE);
 #endif



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2014-07-25 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sat Jul 26 05:45:53 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_gart.c

Log Message:
Fix some dumb thinkos in radeon_gart.c.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.4	Sat Jul 26 05:23:11 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c	Sat Jul 26 05:45:53 2014
@@ -322,7 +322,8 @@ radeon_gart_unbind(struct radeon_device 
 		if (rdev->gart.ptr == NULL)
 			continue;
 		for (gpu_pgno = 0; gpu_pgno < gpu_per_cpu; gpu_pgno++)
-			radeon_gart_set_page(rdev, gpu_pgstart + gpu_pgno,
+			radeon_gart_set_page(rdev,
+			(gpu_pgstart + gpu_per_cpu*pgno + gpu_pgno),
 			(rdev->dummy_page.addr +
 gpu_pgno*RADEON_GPU_PAGE_SIZE));
 	}
@@ -402,7 +403,8 @@ radeon_gart_bind(struct radeon_device *r
 		if (rdev->gart.ptr == NULL)
 			continue;
 		for (gpu_pgno = 0; gpu_pgno < gpu_per_cpu; gpu_pgno++)
-			radeon_gart_set_page(rdev, gpu_pgstart + gpu_pgno,
+			radeon_gart_set_page(rdev,
+			(gpu_pgstart + gpu_per_cpu*pgno + gpu_pgno),
 			(addr + gpu_pgno*RADEON_GPU_PAGE_SIZE));
 	}
 	radeon_gart_post_update(rdev, gpu_pgstart, gpu_npages);
@@ -476,10 +478,11 @@ void radeon_gart_restore(struct radeon_d
 	for (pgno = 0; pgno < rdev->gart.num_cpu_pages; pgno++) {
 		const bus_addr_t addr = rdev->gart.pages_addr[pgno];
 		for (gpu_pgno = 0; gpu_pgno < gpu_per_cpu; gpu_pgno++)
-			radeon_gart_set_page(rdev, gpu_pgno,
+			radeon_gart_set_page(rdev,
+			(gpu_per_cpu*pgno + gpu_pgno),
 			(addr + gpu_pgno*RADEON_GPU_PAGE_SIZE));
 	}
-	radeon_gart_pre_update(rdev, 0, rdev->gart.num_gpu_pages);
+	radeon_gart_post_update(rdev, 0, rdev->gart.num_gpu_pages);
 #else
 	int i, j, t;
 	u64 page_base;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2014-07-25 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sat Jul 26 05:23:11 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_gart.c

Log Message:
Fix little arithmetic mistakes in radeon_gart.c.

Unlikely to fix the failing ring tests on boot, though.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.3	Thu Jul 17 17:29:39 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c	Sat Jul 26 05:23:11 2014
@@ -262,9 +262,14 @@ radeon_gart_pre_update(struct radeon_dev
 unsigned gpu_npages)
 {
 
-	if (rdev->gart.rg_table_map != NULL)
+	if (rdev->gart.rg_table_map != NULL) {
+		const unsigned entsize =
+		rdev->gart.table_size / rdev->gart.num_gpu_pages;
+
 		bus_dmamap_sync(rdev->ddev->dmat, rdev->gart.rg_table_map,
-		gpu_pgstart*4, gpu_npages*4, BUS_DMASYNC_PREWRITE);
+		gpu_pgstart*entsize, gpu_npages*entsize,
+		BUS_DMASYNC_PREWRITE);
+	}
 }
 
 static void
@@ -273,9 +278,14 @@ radeon_gart_post_update(struct radeon_de
 {
 
 	membar_sync();		/* XXX overkill */
-	if (rdev->gart.rg_table_map != NULL)
+	if (rdev->gart.rg_table_map != NULL) {
+		const unsigned entsize =
+		rdev->gart.table_size / rdev->gart.num_gpu_pages;
+
 		bus_dmamap_sync(rdev->ddev->dmat, rdev->gart.rg_table_map,
-		gpu_pgstart*4, gpu_npages*4, BUS_DMASYNC_POSTWRITE);
+		gpu_pgstart*entsize, gpu_npages*entsize,
+		BUS_DMASYNC_POSTWRITE);
+	}
 	radeon_gart_tlb_flush(rdev);
 }
 #endif
@@ -289,7 +299,7 @@ radeon_gart_unbind(struct radeon_device 
 unsigned npages)
 {
 	const unsigned gpu_per_cpu = (PAGE_SIZE / RADEON_GPU_PAGE_SIZE);
-	const unsigned gpu_npages = (npages / gpu_per_cpu);
+	const unsigned gpu_npages = (npages * gpu_per_cpu);
 	const unsigned gpu_pgstart = (gpu_start / RADEON_GPU_PAGE_SIZE);
 	const unsigned pgstart = (gpu_pgstart / gpu_per_cpu);
 	unsigned pgno, gpu_pgno;
@@ -367,7 +377,7 @@ radeon_gart_bind(struct radeon_device *r
 unsigned npages, struct page **pages, bus_dmamap_t dmamap)
 {
 	const unsigned gpu_per_cpu = (PAGE_SIZE / RADEON_GPU_PAGE_SIZE);
-	const unsigned gpu_npages = (npages / gpu_per_cpu);
+	const unsigned gpu_npages = (npages * gpu_per_cpu);
 	const unsigned gpu_pgstart = (gpu_start / RADEON_GPU_PAGE_SIZE);
 	const unsigned pgstart = (gpu_pgstart / gpu_per_cpu);
 	unsigned pgno, gpu_pgno;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2014-07-25 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Fri Jul 25 12:48:34 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_fb.c

Log Message:
Forgot this file for radeondrmkmsfb.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fb.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fb.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fb.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fb.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fb.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fb.c	Fri Jul 25 12:48:34 2014
@@ -37,6 +37,10 @@
 
 #include 
 
+#ifdef __NetBSD__
+#include "radeondrmkmsfb.h"
+#endif
+
 /* object hierarchy -
this contains a helper + a radeon fb
the helper contains a pointer to radeon framebuffer baseclass.
@@ -243,12 +247,22 @@ static int radeonfb_create(struct drm_fb
 	}
 
 	(void)memset(rbo->kptr, 0, radeon_bo_size(rbo));
-	ret = radeon_genfb_attach(rdev->ddev, helper, sizes, rbo);
-	if (ret) {
-		DRM_ERROR("failed to attach genfb: %d\n", ret);
+
+{
+	static const struct radeonfb_attach_args zero_rfa;
+	struct radeonfb_attach_args rfa = zero_rfa;
+
+	rfa.rfa_fb_helper = helper;
+	rfa.rfa_fb_sizes = *sizes;
+	rfa.rfa_fb_ptr = rbo->kptr;
+
+	helper->fbdev = config_found_ia(rdev->ddev->dev, "radeonfbbus", &rfa,
+	NULL);
+	if (helper->fbdev == NULL) {
+		DRM_ERROR("failed to attach genfb\n");
 		goto out_unref;
 	}
-	helper->genfb_attached = true;
+}
 	fb = &rfbdev->rfb.base;
 	rfbdev->helper.fb = fb;
 #else
@@ -346,12 +360,16 @@ static int radeon_fbdev_destroy(struct d
 	struct fb_info *info;
 #endif
 	struct radeon_framebuffer *rfb = &rfbdev->rfb;
+#ifdef __NetBSD__
+	int ret;
+#endif
 
 #ifdef __NetBSD__
-	if (rfbdev->helper.genfb_attached) {
-		/* XXX detach genfb for real...  */
-		(void)config_detach_children(dev->dev, DETACH_FORCE);
-	}
+	/* XXX errno NetBSD->Linux */
+	ret = -config_detach(rfbdev->helper.fbdev, DETACH_FORCE);
+	if (ret)
+		DRM_ERROR("failed to detach radeonfb: %d\n", ret);
+	rfbdev->helper.fbdev = NULL;
 #else
 	if (rfbdev->helper.fbdev) {
 		info = rfbdev->helper.fbdev;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2014-07-25 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Fri Jul 25 12:47:18 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon.h

Log Message:
Declare radeon_device_private.

Not used right now, but harmless and needed by a local patch and I
accidentally committed the definition already.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h	Fri Jul 25 12:47:18 2014
@@ -233,6 +233,9 @@ enum radeon_pll_errata {
 
 struct radeon_device;
 
+#ifdef __NetBSD__
+extern struct radeon_device *radeon_device_private(device_t);
+#endif
 
 /*
  * BIOS.



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2014-07-17 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Thu Jul 17 20:41:22 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_device.c

Log Message:
In radeon_device_init, use ddev->dev, not &pdev->dev, for rdev->dev.

ddev->dev is the actual device_t, and we need it for firmware load.
&pdev->dev is a dummy structure that serves no purpose except some
kludge in our Linux PCI compatibility crap.  In Linux the two should
be the same, so no need to #ifdef __NetBSD__ this.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c	Thu Jul 17 20:41:22 2014
@@ -1250,7 +1250,7 @@ int radeon_device_init(struct radeon_dev
 #endif
 
 	rdev->shutdown = false;
-	rdev->dev = &pdev->dev;
+	rdev->dev = ddev->dev;
 	rdev->ddev = ddev;
 	rdev->pdev = pdev;
 	rdev->flags = flags;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2014-07-17 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Thu Jul 17 17:29:40 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_gart.c

Log Message:
Do a post-write DMA sync pos-write, not a pre-write one.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c	Thu Jul 17 17:29:39 2014
@@ -275,7 +275,7 @@ radeon_gart_post_update(struct radeon_de
 	membar_sync();		/* XXX overkill */
 	if (rdev->gart.rg_table_map != NULL)
 		bus_dmamap_sync(rdev->ddev->dmat, rdev->gart.rg_table_map,
-		gpu_pgstart*4, gpu_npages*4, BUS_DMASYNC_PREWRITE);
+		gpu_pgstart*4, gpu_npages*4, BUS_DMASYNC_POSTWRITE);
 	radeon_gart_tlb_flush(rdev);
 }
 #endif



  1   2   >