drm/nouveau: allocate device object for every client
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Dieser Commit ist enthalten in:
@@ -65,7 +65,7 @@ static int
|
||||
nv40_get_intensity(struct backlight_device *bd)
|
||||
{
|
||||
struct nouveau_drm *drm = bl_get_data(bd);
|
||||
struct nvif_object *device = &drm->device.object;
|
||||
struct nvif_object *device = &drm->client.device.object;
|
||||
int val = (nvif_rd32(device, NV40_PMC_BACKLIGHT) &
|
||||
NV40_PMC_BACKLIGHT_MASK) >> 16;
|
||||
|
||||
@@ -76,7 +76,7 @@ static int
|
||||
nv40_set_intensity(struct backlight_device *bd)
|
||||
{
|
||||
struct nouveau_drm *drm = bl_get_data(bd);
|
||||
struct nvif_object *device = &drm->device.object;
|
||||
struct nvif_object *device = &drm->client.device.object;
|
||||
int val = bd->props.brightness;
|
||||
int reg = nvif_rd32(device, NV40_PMC_BACKLIGHT);
|
||||
|
||||
@@ -96,7 +96,7 @@ static int
|
||||
nv40_backlight_init(struct drm_connector *connector)
|
||||
{
|
||||
struct nouveau_drm *drm = nouveau_drm(connector->dev);
|
||||
struct nvif_object *device = &drm->device.object;
|
||||
struct nvif_object *device = &drm->client.device.object;
|
||||
struct backlight_properties props;
|
||||
struct backlight_device *bd;
|
||||
struct backlight_connector bl_connector;
|
||||
@@ -133,7 +133,7 @@ nv50_get_intensity(struct backlight_device *bd)
|
||||
{
|
||||
struct nouveau_encoder *nv_encoder = bl_get_data(bd);
|
||||
struct nouveau_drm *drm = nouveau_drm(nv_encoder->base.base.dev);
|
||||
struct nvif_object *device = &drm->device.object;
|
||||
struct nvif_object *device = &drm->client.device.object;
|
||||
int or = nv_encoder->or;
|
||||
u32 div = 1025;
|
||||
u32 val;
|
||||
@@ -148,7 +148,7 @@ nv50_set_intensity(struct backlight_device *bd)
|
||||
{
|
||||
struct nouveau_encoder *nv_encoder = bl_get_data(bd);
|
||||
struct nouveau_drm *drm = nouveau_drm(nv_encoder->base.base.dev);
|
||||
struct nvif_object *device = &drm->device.object;
|
||||
struct nvif_object *device = &drm->client.device.object;
|
||||
int or = nv_encoder->or;
|
||||
u32 div = 1025;
|
||||
u32 val = (bd->props.brightness * div) / 100;
|
||||
@@ -169,7 +169,7 @@ nva3_get_intensity(struct backlight_device *bd)
|
||||
{
|
||||
struct nouveau_encoder *nv_encoder = bl_get_data(bd);
|
||||
struct nouveau_drm *drm = nouveau_drm(nv_encoder->base.base.dev);
|
||||
struct nvif_object *device = &drm->device.object;
|
||||
struct nvif_object *device = &drm->client.device.object;
|
||||
int or = nv_encoder->or;
|
||||
u32 div, val;
|
||||
|
||||
@@ -187,7 +187,7 @@ nva3_set_intensity(struct backlight_device *bd)
|
||||
{
|
||||
struct nouveau_encoder *nv_encoder = bl_get_data(bd);
|
||||
struct nouveau_drm *drm = nouveau_drm(nv_encoder->base.base.dev);
|
||||
struct nvif_object *device = &drm->device.object;
|
||||
struct nvif_object *device = &drm->client.device.object;
|
||||
int or = nv_encoder->or;
|
||||
u32 div, val;
|
||||
|
||||
@@ -213,7 +213,7 @@ static int
|
||||
nv50_backlight_init(struct drm_connector *connector)
|
||||
{
|
||||
struct nouveau_drm *drm = nouveau_drm(connector->dev);
|
||||
struct nvif_object *device = &drm->device.object;
|
||||
struct nvif_object *device = &drm->client.device.object;
|
||||
struct nouveau_encoder *nv_encoder;
|
||||
struct backlight_properties props;
|
||||
struct backlight_device *bd;
|
||||
@@ -231,9 +231,9 @@ nv50_backlight_init(struct drm_connector *connector)
|
||||
if (!nvif_rd32(device, NV50_PDISP_SOR_PWM_CTL(nv_encoder->or)))
|
||||
return 0;
|
||||
|
||||
if (drm->device.info.chipset <= 0xa0 ||
|
||||
drm->device.info.chipset == 0xaa ||
|
||||
drm->device.info.chipset == 0xac)
|
||||
if (drm->client.device.info.chipset <= 0xa0 ||
|
||||
drm->client.device.info.chipset == 0xaa ||
|
||||
drm->client.device.info.chipset == 0xac)
|
||||
ops = &nv50_bl_ops;
|
||||
else
|
||||
ops = &nva3_bl_ops;
|
||||
@@ -265,7 +265,7 @@ int
|
||||
nouveau_backlight_init(struct drm_device *dev)
|
||||
{
|
||||
struct nouveau_drm *drm = nouveau_drm(dev);
|
||||
struct nvif_device *device = &drm->device;
|
||||
struct nvif_device *device = &drm->client.device;
|
||||
struct drm_connector *connector;
|
||||
|
||||
if (apple_gmux_present()) {
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren