Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7ebd4675 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
  drm/radeon/kms/legacy: only enable load detection property on DVI-I
  drm/radeon/kms: fix panel scaling adjusted mode setup
  drivers/gpu/drm/drm_sysfs.c: sysfs files error handling
  drivers/gpu/drm/radeon/radeon_atombios.c: range check issues
  gpu: vga_switcheroo, fix lock imbalance
  drivers/gpu/drm/drm_memory.c: fix check for end of loop
  drivers/gpu/drm/via/via_video.c: fix off by one issue
  drm/radeon/kms/agp The wrong AGP chipset can cause a NULL pointer dereference
  drm/radeon/kms: r300 fix CS checker to allow zbuffer-only fastfill
parents d7526f27 68b3adb4
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -77,7 +77,7 @@ static void *agp_remap(unsigned long offset, unsigned long size,
		    && (agpmem->bound + (agpmem->pages << PAGE_SHIFT)) >=
		    && (agpmem->bound + (agpmem->pages << PAGE_SHIFT)) >=
		    (offset + size))
		    (offset + size))
			break;
			break;
	if (!agpmem)
	if (&agpmem->head == &dev->agp->memory)
		return NULL;
		return NULL;


	/*
	/*
+12 −9
Original line number Original line Diff line number Diff line
@@ -354,7 +354,10 @@ static struct bin_attribute edid_attr = {
int drm_sysfs_connector_add(struct drm_connector *connector)
int drm_sysfs_connector_add(struct drm_connector *connector)
{
{
	struct drm_device *dev = connector->dev;
	struct drm_device *dev = connector->dev;
	int ret = 0, i, j;
	int attr_cnt = 0;
	int opt_cnt = 0;
	int i;
	int ret = 0;


	/* We shouldn't get called more than once for the same connector */
	/* We shouldn't get called more than once for the same connector */
	BUG_ON(device_is_registered(&connector->kdev));
	BUG_ON(device_is_registered(&connector->kdev));
@@ -377,8 +380,8 @@ int drm_sysfs_connector_add(struct drm_connector *connector)


	/* Standard attributes */
	/* Standard attributes */


	for (i = 0; i < ARRAY_SIZE(connector_attrs); i++) {
	for (attr_cnt = 0; attr_cnt < ARRAY_SIZE(connector_attrs); attr_cnt++) {
		ret = device_create_file(&connector->kdev, &connector_attrs[i]);
		ret = device_create_file(&connector->kdev, &connector_attrs[attr_cnt]);
		if (ret)
		if (ret)
			goto err_out_files;
			goto err_out_files;
	}
	}
@@ -394,8 +397,8 @@ int drm_sysfs_connector_add(struct drm_connector *connector)
		case DRM_MODE_CONNECTOR_SVIDEO:
		case DRM_MODE_CONNECTOR_SVIDEO:
		case DRM_MODE_CONNECTOR_Component:
		case DRM_MODE_CONNECTOR_Component:
		case DRM_MODE_CONNECTOR_TV:
		case DRM_MODE_CONNECTOR_TV:
			for (i = 0; i < ARRAY_SIZE(connector_attrs_opt1); i++) {
			for (opt_cnt = 0; opt_cnt < ARRAY_SIZE(connector_attrs_opt1); opt_cnt++) {
				ret = device_create_file(&connector->kdev, &connector_attrs_opt1[i]);
				ret = device_create_file(&connector->kdev, &connector_attrs_opt1[opt_cnt]);
				if (ret)
				if (ret)
					goto err_out_files;
					goto err_out_files;
			}
			}
@@ -414,10 +417,10 @@ int drm_sysfs_connector_add(struct drm_connector *connector)
	return 0;
	return 0;


err_out_files:
err_out_files:
	if (i > 0)
	for (i = 0; i < opt_cnt; i++)
		for (j = 0; j < i; j++)
		device_remove_file(&connector->kdev, &connector_attrs_opt1[i]);
			device_remove_file(&connector->kdev,
	for (i = 0; i < attr_cnt; i++)
					   &connector_attrs[i]);
		device_remove_file(&connector->kdev, &connector_attrs[i]);
	device_unregister(&connector->kdev);
	device_unregister(&connector->kdev);


out:
out:
+1 −1
Original line number Original line Diff line number Diff line
@@ -2912,7 +2912,7 @@ typedef struct _ATOM_ANALOG_TV_INFO_V1_2
  UCHAR                    ucTV_BootUpDefaultStandard; 
  UCHAR                    ucTV_BootUpDefaultStandard; 
  UCHAR                    ucExt_TV_ASIC_ID;
  UCHAR                    ucExt_TV_ASIC_ID;
  UCHAR                    ucExt_TV_ASIC_SlaveAddr;
  UCHAR                    ucExt_TV_ASIC_SlaveAddr;
  ATOM_DTD_FORMAT          aModeTimings[MAX_SUPPORTED_TV_TIMING];
  ATOM_DTD_FORMAT          aModeTimings[MAX_SUPPORTED_TV_TIMING_V1_2];
}ATOM_ANALOG_TV_INFO_V1_2;
}ATOM_ANALOG_TV_INFO_V1_2;


typedef struct _ATOM_DPCD_INFO
typedef struct _ATOM_DPCD_INFO
+1 −1
Original line number Original line Diff line number Diff line
@@ -2975,7 +2975,7 @@ int r100_cs_track_check(struct radeon_device *rdev, struct r100_cs_track *track)


	for (i = 0; i < track->num_cb; i++) {
	for (i = 0; i < track->num_cb; i++) {
		if (track->cb[i].robj == NULL) {
		if (track->cb[i].robj == NULL) {
			if (!(track->fastfill || track->color_channel_mask ||
			if (!(track->zb_cb_clear || track->color_channel_mask ||
			      track->blend_read_enable)) {
			      track->blend_read_enable)) {
				continue;
				continue;
			}
			}
+1 −1
Original line number Original line Diff line number Diff line
@@ -75,7 +75,7 @@ struct r100_cs_track {
	struct r100_cs_track_texture	textures[R300_TRACK_MAX_TEXTURE];
	struct r100_cs_track_texture	textures[R300_TRACK_MAX_TEXTURE];
	bool				z_enabled;
	bool				z_enabled;
	bool                            separate_cube;
	bool                            separate_cube;
	bool				fastfill;
	bool				zb_cb_clear;
	bool				blend_read_enable;
	bool				blend_read_enable;
};
};


Loading