3232
3333DEFINE_DRM_GEM_FOPS (hibmc_fops );
3434
35- static const char * g_irqs_names_map [HIBMC_MAX_VECTORS ] = { "vblank" , "hpd" };
35+ static const char * g_irqs_names_map [HIBMC_MAX_VECTORS ] = { "hibmc- vblank" , "hibmc- hpd" };
3636
3737static irqreturn_t hibmc_interrupt (int irq , void * arg )
3838{
@@ -115,6 +115,8 @@ static const struct drm_mode_config_funcs hibmc_mode_funcs = {
115115static int hibmc_kms_init (struct hibmc_drm_private * priv )
116116{
117117 struct drm_device * dev = & priv -> dev ;
118+ struct drm_encoder * encoder ;
119+ u32 clone_mask = 0 ;
118120 int ret ;
119121
120122 ret = drmm_mode_config_init (dev );
@@ -154,6 +156,12 @@ static int hibmc_kms_init(struct hibmc_drm_private *priv)
154156 return ret ;
155157 }
156158
159+ drm_for_each_encoder (encoder , dev )
160+ clone_mask |= drm_encoder_mask (encoder );
161+
162+ drm_for_each_encoder (encoder , dev )
163+ encoder -> possible_clones = clone_mask ;
164+
157165 return 0 ;
158166}
159167
@@ -277,7 +285,6 @@ static void hibmc_unload(struct drm_device *dev)
277285static int hibmc_msi_init (struct drm_device * dev )
278286{
279287 struct pci_dev * pdev = to_pci_dev (dev -> dev );
280- char name [32 ] = {0 };
281288 int valid_irq_num ;
282289 int irq ;
283290 int ret ;
@@ -292,20 +299,17 @@ static int hibmc_msi_init(struct drm_device *dev)
292299 valid_irq_num = ret ;
293300
294301 for (int i = 0 ; i < valid_irq_num ; i ++ ) {
295- snprintf (name , ARRAY_SIZE (name ) - 1 , "%s-%s-%s" ,
296- dev -> driver -> name , pci_name (pdev ), g_irqs_names_map [i ]);
297-
298302 irq = pci_irq_vector (pdev , i );
299303
300304 if (i )
301305 /* PCI devices require shared interrupts. */
302306 ret = devm_request_threaded_irq (& pdev -> dev , irq ,
303307 hibmc_dp_interrupt ,
304308 hibmc_dp_hpd_isr ,
305- IRQF_SHARED , name , dev );
309+ IRQF_SHARED , g_irqs_names_map [ i ] , dev );
306310 else
307311 ret = devm_request_irq (& pdev -> dev , irq , hibmc_interrupt ,
308- IRQF_SHARED , name , dev );
312+ IRQF_SHARED , g_irqs_names_map [ i ] , dev );
309313 if (ret ) {
310314 drm_err (dev , "install irq failed: %d\n" , ret );
311315 return ret ;
@@ -323,13 +327,13 @@ static int hibmc_load(struct drm_device *dev)
323327
324328 ret = hibmc_hw_init (priv );
325329 if (ret )
326- goto err ;
330+ return ret ;
327331
328332 ret = drmm_vram_helper_init (dev , pci_resource_start (pdev , 0 ),
329333 pci_resource_len (pdev , 0 ));
330334 if (ret ) {
331335 drm_err (dev , "Error initializing VRAM MM; %d\n" , ret );
332- goto err ;
336+ return ret ;
333337 }
334338
335339 ret = hibmc_kms_init (priv );
0 commit comments