@@ -279,7 +279,7 @@ amdgpu_i2c_lookup(struct amdgpu_device *adev,
279
279
return NULL ;
280
280
}
281
281
282
- static void amdgpu_i2c_get_byte (struct amdgpu_i2c_chan * i2c_bus ,
282
+ static int amdgpu_i2c_get_byte (struct amdgpu_i2c_chan * i2c_bus ,
283
283
u8 slave_addr ,
284
284
u8 addr ,
285
285
u8 * val )
@@ -304,16 +304,18 @@ static void amdgpu_i2c_get_byte(struct amdgpu_i2c_chan *i2c_bus,
304
304
out_buf [0 ] = addr ;
305
305
out_buf [1 ] = 0 ;
306
306
307
- if (i2c_transfer (& i2c_bus -> adapter , msgs , 2 ) == 2 ) {
308
- * val = in_buf [0 ];
309
- DRM_DEBUG ("val = 0x%02x\n" , * val );
310
- } else {
311
- DRM_DEBUG ("i2c 0x%02x 0x%02x read failed\n" ,
312
- addr , * val );
307
+ if (i2c_transfer (& i2c_bus -> adapter , msgs , 2 ) != 2 ) {
308
+ DRM_DEBUG ("i2c 0x%02x read failed\n" , addr );
309
+ return - EIO ;
313
310
}
311
+
312
+ * val = in_buf [0 ];
313
+ DRM_DEBUG ("val = 0x%02x\n" , * val );
314
+
315
+ return 0 ;
314
316
}
315
317
316
- static void amdgpu_i2c_put_byte (struct amdgpu_i2c_chan * i2c_bus ,
318
+ static int amdgpu_i2c_put_byte (struct amdgpu_i2c_chan * i2c_bus ,
317
319
u8 slave_addr ,
318
320
u8 addr ,
319
321
u8 val )
@@ -329,9 +331,12 @@ static void amdgpu_i2c_put_byte(struct amdgpu_i2c_chan *i2c_bus,
329
331
out_buf [0 ] = addr ;
330
332
out_buf [1 ] = val ;
331
333
332
- if (i2c_transfer (& i2c_bus -> adapter , & msg , 1 ) != 1 )
333
- DRM_DEBUG ("i2c 0x%02x 0x%02x write failed\n" ,
334
- addr , val );
334
+ if (i2c_transfer (& i2c_bus -> adapter , & msg , 1 ) != 1 ) {
335
+ DRM_DEBUG ("i2c 0x%02x 0x%02x write failed\n" , addr , val );
336
+ return - EIO ;
337
+ }
338
+
339
+ return 0 ;
335
340
}
336
341
337
342
/* ddc router switching */
@@ -346,16 +351,18 @@ amdgpu_i2c_router_select_ddc_port(const struct amdgpu_connector *amdgpu_connecto
346
351
if (!amdgpu_connector -> router_bus )
347
352
return ;
348
353
349
- amdgpu_i2c_get_byte (amdgpu_connector -> router_bus ,
354
+ if ( amdgpu_i2c_get_byte (amdgpu_connector -> router_bus ,
350
355
amdgpu_connector -> router .i2c_addr ,
351
- 0x3 , & val );
356
+ 0x3 , & val ))
357
+ return ;
352
358
val &= ~amdgpu_connector -> router .ddc_mux_control_pin ;
353
359
amdgpu_i2c_put_byte (amdgpu_connector -> router_bus ,
354
360
amdgpu_connector -> router .i2c_addr ,
355
361
0x3 , val );
356
- amdgpu_i2c_get_byte (amdgpu_connector -> router_bus ,
362
+ if ( amdgpu_i2c_get_byte (amdgpu_connector -> router_bus ,
357
363
amdgpu_connector -> router .i2c_addr ,
358
- 0x1 , & val );
364
+ 0x1 , & val ))
365
+ return ;
359
366
val &= ~amdgpu_connector -> router .ddc_mux_control_pin ;
360
367
val |= amdgpu_connector -> router .ddc_mux_state ;
361
368
amdgpu_i2c_put_byte (amdgpu_connector -> router_bus ,
@@ -375,16 +382,18 @@ amdgpu_i2c_router_select_cd_port(const struct amdgpu_connector *amdgpu_connector
375
382
if (!amdgpu_connector -> router_bus )
376
383
return ;
377
384
378
- amdgpu_i2c_get_byte (amdgpu_connector -> router_bus ,
385
+ if ( amdgpu_i2c_get_byte (amdgpu_connector -> router_bus ,
379
386
amdgpu_connector -> router .i2c_addr ,
380
- 0x3 , & val );
387
+ 0x3 , & val ))
388
+ return ;
381
389
val &= ~amdgpu_connector -> router .cd_mux_control_pin ;
382
390
amdgpu_i2c_put_byte (amdgpu_connector -> router_bus ,
383
391
amdgpu_connector -> router .i2c_addr ,
384
392
0x3 , val );
385
- amdgpu_i2c_get_byte (amdgpu_connector -> router_bus ,
393
+ if ( amdgpu_i2c_get_byte (amdgpu_connector -> router_bus ,
386
394
amdgpu_connector -> router .i2c_addr ,
387
- 0x1 , & val );
395
+ 0x1 , & val ))
396
+ return ;
388
397
val &= ~amdgpu_connector -> router .cd_mux_control_pin ;
389
398
val |= amdgpu_connector -> router .cd_mux_state ;
390
399
amdgpu_i2c_put_byte (amdgpu_connector -> router_bus ,
0 commit comments